# Select optimization (-O or -g). -O will be automatically bumped up to the # highest level of optimization the compiler supports. If want something in # between then specify the exact level you want, e.g., -O1 or -O2 OptLevel := -g ############################################################################## # You should not need to edit below this line. ############################################################################## # The location of the customized Makefiles export CoinDir = $(shell cd ../..; pwd) export MakefileDir := $(CoinDir)/Makefiles include ${MakefileDir}/Makefile.coin include ${MakefileDir}/Makefile.location IncDir := LibDir := LibName := Define := TESTSRC := ifneq ($(filter COIN_libOsiClp,$(CoinLibsDefined)),) IncDir += ${OsiClpIncDir} ${ClpIncDir} LibDir += ${OsiClpLibDir} ${ClpLibDir} LibName += ${OsiClpLibName} ${ClpLibName} Define += ${OsiClpDefine} ${ClpDefine} COIN_USE_CLP TESTSRC += OsiClpSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiCpx,$(CoinLibsDefined)),) IncDir += ${OsiCpxIncDir} ${CpxIncDir} LibDir += ${OsiCpxLibDir} ${CpxLibDir} LibName += ${OsiCpxLibName} ${CpxLibName} Define += ${OsiCpxDefine} ${CpxDefine} COIN_USE_CPX TESTSRC += OsiCpxSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiDylp,$(CoinLibsDefined)),) IncDir += ${OsiDylpIncDir} ${DylpIncDir} LibDir += ${OsiDylpLibDir} ${DylpLibDir} LibName += ${OsiDylpLibName} ${DylpLibName} Define += ${OsiDylpDefine} ${DylpDefine} COIN_USE_DYLP TESTSRC += OsiDylpSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiGlpk,$(CoinLibsDefined)),) IncDir += ${OsiGlpkIncDir} ${GlpkIncDir} LibDir += ${OsiGlpkLibDir} ${GlpkLibDir} LibName += ${OsiGlpkLibName} ${GlpkLibName} Define += ${OsiGlpkDefine} ${GlpkDefine} COIN_USE_GLPK TESTSRC += OsiGlpkSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiOsl,$(CoinLibsDefined)),) IncDir += ${OsiOslIncDir} ${OslIncDir} LibDir += ${OsiOslLibDir} ${OslLibDir} LibName += ${OsiOslLibName} ${OslLibName} Define += ${OsiOslDefine} ${OslDefine} COIN_USE_OSL TESTSRC += OsiOslSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiSpx,$(CoinLibsDefined)),) IncDir += ${OsiSpxIncDir} ${SpxIncDir} LibDir += ${OsiSpxLibDir} ${SpxLibDir} LibName += ${OsiSpxLibName} ${SpxLibName} Define += ${OsiSpxDefine} ${SpxDefine} COIN_USE_SPX TESTSRC += OsiSpxSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiVol,$(CoinLibsDefined)),) IncDir += ${OsiVolIncDir} ${VolIncDir} LibDir += ${OsiVolLibDir} ${VolLibDir} LibName += ${OsiVolLibName} ${VolLibName} Define += ${OsiVolDefine} ${VolDefine} COIN_USE_VOL TESTSRC += OsiVolSolverInterfaceTest.cpp endif ifneq ($(filter COIN_libOsiXpr,$(CoinLibsDefined)),) IncDir += ${OsiXprIncDir} ${XprIncDir} LibDir += ${OsiXprLibDir} ${XprLibDir} LibName += ${OsiXprLibName} ${XprLibName} Define += ${OsiXprDefine} ${XprDefine} COIN_USE_XPR TESTSRC += OsiXprSolverInterfaceTest.cpp endif ############################################################################## IncDir += ${OsiIncDir} ${CoinIncDir} ${zlibIncDir} ${bzlibIncDir} LibDir += ${OsiLibDir} ${CoinLibDir} ${zlibLibDir} ${bzlibLibDir} LibName += ${OsiLibName} ${CoinLibName} ${zlibLibName} ${bzlibLibName} Define += ${OsiDefine} ${CoinDefine} ${zlibDefine} ${bzlibDefine} TESTSRC += OsiColCutTest.cpp TESTSRC += OsiCutsTest.cpp TESTSRC += OsiRowCutDebuggerTest.cpp TESTSRC += OsiRowCutTest.cpp TESTSRC += OsiSolverInterfaceTest.cpp TESTSRC += OsiSimplexInterfaceTest.cpp TESTSRC += unitTest.cpp ############################################################################## # You should not need to edit below this line. ############################################################################## CXXFLAGS += $(OPTFLAG) ifeq ($(OptLevel),-g) CXXFLAGS += -DOSI_DEBUG endif ############################################################################### space:= $(empty) $(empty) OptVersion := $(subst $(space),_,$(OptLevel)) TARGETDIR := $(UNAME)$(OptVersion) DEPDIR := dep VPATH := . : include : Junk : ${TARGETDIR} : ${DEPDIR} ######################################################################### CXXFLAGS += $(addprefix -I,${IncDir}) CXXFLAGS += $(addprefix -D,${Define}) LIBDIRS := ${LibDir} LIBS := ${LibName} LDFLAGS := $(addprefix -L,$(LIBDIRS)) LDFLAGS += $(call ifprefix,$(SHLINKPREFIX),$(LIBDIRS)) LDFLAGS += $(patsubst lib%,-l%,$(basename $(LIBS))) #LDFLAGS += -lefence ############################################################################### TESTOBJ := $(addprefix $(TARGETDIR)/, $(TESTSRC:.cpp=.o)) TESTDEP := $(addprefix $(DEPDIR)/, $(TESTSRC:.cpp=.d)) ############################################################################### # This one must be right before the rules include ${MakefileDir}/Makefile.rules ############################################################################### .DELETE_ON_ERROR: .PHONY: default clean doc unitTest default: unitTest ############################################################################### unitTest: $(TARGETDIR)/unitTest $(TARGETDIR)/unitTest : $(TESTOBJ) @rm -rf Junk @echo "" @echo Creating unitTest @mkdir -p $(TARGETDIR) @rm -f $@ $(CXX) $(CXXFLAGS) -o $@ $(TESTOBJ) $(LDFLAGS) $(SYSLD) -lm ${CP} $@ .. ############################################################################### doc: doxygen $(MakefileDir)/doxygen.conf clean : rm -rf Junk @rm -rf $(DEPDIR) @rm -rf $(TARGETDIR) ############################################################################### %:: @mkdir -p Junk touch Junk/$(notdir $@) ############################################################################### -include $(TESTDEP)