# Change the following variable if you installed channelflow elsewhere # or if your channelflow directory is labeled with a version number, # e.g. CHANNELDIR = $(HOME)/channelflow-1.3.2 CHANNELDIR = $(HOME)/channelflow CHANNELINC = -I$(CHANNELDIR)/include CHANNELLIB = -L$(CHANNELDIR)/lib EIGENINC = -I/usr/include/eigen3 # Define default C flags for optimized and debugging compilation # Possible additional flags: -mtune=pentium4, -mtune-=athlon64 CFLAGS = -Wall -O3 -fomit-frame-pointer -DNDEBUG DCFLAGS = -Wall -g -O1 -fno-inline -DDEBUG PCFLAGS = -Wall -pg -O2 -DNDEBUG INCLUDES = $(CHANNELINC) $(EIGENINC) LIBRARIES = $(CHANNELLIB) -lchflow -lfftw3 -lm DLIBRARIES = $(CHANNELLIB) -lchflow-debug -lfftw3 -lm PLIBRARIES = $(CHANNELLIB) -lchflow-profile -lfftw3 -lm #DLIBS = $(CHANNELLIB)/lib -lchflow-debug $(OCTAVELIB) -lfftw3 -lm #PLIBS = -L$(CHANNELDIR)/lib -lchflow-profile $(OCTAVELIB) -lfftw3 -lm # Make optimized objects from source %.o : %.cpp g++ $(CFLAGS) $(INCLUDES) -c $< # Make debugging objects from source %.do : %.cpp g++ $(DCFLAGS) $(INCLUDES) -o $@ -c $< # Make debugging objects from source %.po : %.cpp g++ $(PCFLAGS) $(INCLUDES) -o $@ -c $< # Make optimized executables from objects and libraries %.x: %.o g++ $(CFLAGS) -o $@ $< $(LIBRARIES) cp $@ $(CHANNELDIR)/bin # Make debugging executables from objects and libraries %.dx: %.do matrixutils.do g++ $(DCFLAGS) -o $@ $< $(DLIBRARIES) # Make debugging executables from objects and libraries %.px: %.po matrixutils.po g++ $(PCFLAGS) -o $@ $< $(PLIBRARIES) clean : rm -f *.o *.x *.do *.dx *.asc *.bf *.ff *~