.SUFFIXES: .o .c .cpp .d

CP2KHOME= ${HOME}/CP2K
FORPAR	= $(CP2KHOME)/tools/forpar.x -chkint

include OBJECTDEFS

include MACHINEDEFS

OBJECTS	= $(OBJECTS_GENERIC) $(OBJECTS_ARCHITECTURE)

#################################

PROG	= cp2k.x

all: $(PROG)

$(PROG): $(OBJECTS)
	$(LDR) $(LFLAGS) -o $(PROG) $(OBJECTS) $(LIBS)

%.o : %.cpp
	$(CXX) -c $(CXXFLAGS) $*.cpp
	$(CPP) -P $(CDEFS) $*.cpp
	-$(FORPAR) $*.cpp
	rm -f $*.cpp

%.o : %.c
	$(CC) -c $(CFLAGS) $*.c
	$(CC) -P $(CDEFS) $*.c
	-$(FORPAR) $*.c
	rm -f $*.c

parallel_include.o : parallel_include.cpp
	$(CXXfixed) -c $(CXXFLAGS) $*.cpp
	$(CPP) -P $(CDEFS) $*.cpp $*.cpp
	-$(FORPAR) -fix $*.cpp
	rm -f $*.cpp

%.d : %.cpp
	$(CPP) -P $(CDEFS) $*.cpp
	$(PERL) $(CP2KHOME)/tools/sfmakedepend -m int -s -f $*.d $*.cpp
	rm -f $*.cpp $*.d.old

depend:
	../tools/deps

clean:
	rm -f *.o *.mod

realclean:
	rm -f $(PROG) *.o *.mod *.d *.int *~ F*.cpp F*.c *.lst

####################

include $(OBJECTS:.o=.d)
