TARGET = complement2.oct # make the variable STANDALONE defined if non-octave(debuggable) version should be generated #STANDALONE = 1 PRJ_HEADERS = PRJ_SRCS = complement2.cpp COMM_HEADERS = COMM_SRCS = OTL_HEADERS = OTL_SRCS = INCL_DIR = ROOT_DIR = . ################# rules ############### external dependencies PSQL_INCL_DIR = PSQL_LIB_DIR = OCT_INCL_DIR =-I$(shell octave-config -p OCTINCLUDEDIR) OCT_LIB_DIR =-L$(shell octave-config -p OCTLIBDIR) HEADERS = $(COMM_HEADERS) $(PRJ_HEADERS) SOURCES = $(PRJ_SRCS) $(COMM_SRCS) ############## compilations specific CXX = g++ EXTRAOCTFLAGS = -fPIC -mieee-fp -fno-fast-math $(OCT_INCL_DIR)/octave $(OCT_INCL_DIR) -I. DEBUG = -DDEBUG -g3 ifdef STANDALONE CXXFLAGS = -c -Wall $(DEBUG) -pipe -march=i586 $(EXTRACXXFLAGS) else CXXFLAGS = -c -Wall $(DEBUG) -pipe -march=i586 $(EXTRACXXFLAGS) -DOCTAVE endif ALL_INCL_DIRS = -I$(ROOT_DIR) $(PSQL_INCL_DIR) $(INCL_DIR) -I. OBJECTS = $(SOURCES:.cpp=.o) BACKUPS = $(HEADERS:.h=.h~) $(SOURCES:.cpp=.cpp~) ############# linking specific LD = g++ ifdef STANDALONE LD_OCT_FLAGS = -rdynamic -fPIC -Wl,-rpath -Wl,$(shell octave-config -p OCTLIBDIR) else LD_OCT_FLAGS = -shared -Wl,-Bsymbolic OCT_LIBS = -lblas -L/usr/lib/octave-2.1.73 -loctinterp -loctave -lcruft -llapack-3 -lblas-3 -lfftw3 -lreadline -lncurses -ldl -lhdf5 -lz -lm -lhdf5 -lz -lm -lgcc_s endif LD_STD_FLAGS = LD_FLAGS = $(LD_OCT_FLAGS) $(LD_STD_FLAGS) LIB_DIRS = -L$(ROOT_DIR)/lib $(OCT_LIB_DIR) $(PSQL_LIB_DIR) STATIC_LIBS = STD_LIBS = -lm #-lACE #OCT_LIBS = -L/usr/lib/octave-2.1.73 -loctinterp -loctave -lreadline -lncurses -ldl -lm LIBS = $(STD_LIBS) $(OCT_LIBS) $(STATIC_LIBS) ########### RM = rm -f ########### all: $(TARGET) ####### Implicit rules .SUFFIXES: .o .cpp .h .cpp.o: $(CXX) $(CXXFLAGS) $(ALL_INCL_DIRS) $(EXTRAOCTFLAGS) -c -o $@ $< ####### Explicit rules for octave related modules $(TARGET): $(OBJECTS) $(LD) $(LD_FLAGS) $(OBJECTS) $(LIB_DIRS) $(LIBS) -o $(TARGET) clean: $(RM) $(OBJECTS) $(TARGET) $(BACKUPS) core octave-core