1#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2#* * 3#* This file is part of the program and library * 4#* SCIP --- Solving Constraint Integer Programs * 5#* * 6#* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum * 7#* fuer Informationstechnik Berlin * 8#* * 9#* SCIP is distributed under the terms of the ZIB Academic License. * 10#* * 11#* You should have received a copy of the ZIB Academic License * 12#* along with SCIP; see the file COPYING. If not email to scip@zib.de. * 13#* * 14#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 15 16#@file Makefile 17#@brief Makefile for cumulative scheduling application 18#@author Stefan Heinz 19 20 21#----------------------------------------------------------------------------- 22# paths 23#----------------------------------------------------------------------------- 24 25SCIPDIR = ../.. 26CPOPT = false 27 28#----------------------------------------------------------------------------- 29# include default project Makefile from SCIP (need to do this twice, once to 30# find the correct binary, then, after getting the correct flags from the 31# binary (which is necessary since the ZIMPL flags differ from the default 32# if compiled with the SCIP Optsuite instead of SCIP), we need to set the 33# compile flags, e.g., for the ZIMPL library, which is again done in make.project 34#----------------------------------------------------------------------------- 35include $(SCIPDIR)/make/make.project 36SCIPVERSION :=$(shell $(SCIPDIR)/bin/scip.$(BASE).$(LPS).$(TPI)$(EXEEXTENSION) -v | sed -e 's/$$/@/') 37override ARCH :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ARCH=\([^@]*\).*/\1/') 38override EXPRINT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* EXPRINT=\([^@]*\).*/\1/') 39override GAMS :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* GAMS=\([^@]*\).*/\1/') 40override GMP :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* GMP=\([^@]*\).*/\1/') 41override SYM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* SYM=\([^@]*\).*/\1/') 42override IPOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* IPOPT=\([^@]*\).*/\1/') 43override IPOPTOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* IPOPTOPT=\([^@]*\).*/\1/') 44override LPSCHECK :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* LPSCHECK=\([^@]*\).*/\1/') 45override LPSOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* LPSOPT=\([^@]*\).*/\1/') 46override NOBLKBUFMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBLKBUFMEM=\([^@]*\).*/\1/') 47override NOBLKMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBLKMEM=\([^@]*\).*/\1/') 48override NOBUFMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBUFMEM=\([^@]*\).*/\1/') 49override PARASCIP :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* PARASCIP=\([^@]*\).*/\1/') 50override READLINE :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* READLINE=\([^@]*\).*/\1/') 51override SANITIZE :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* SANITIZE=\([^@]*\).*/\1/') 52override ZIMPL :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZIMPL=\([^@]*\).*/\1/') 53override ZIMPLOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZIMPLOPT=\([^@]*\).*/\1/') 54override ZLIB :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZLIB=\([^@]*\).*/\1/') 55include $(SCIPDIR)/make/make.project 56 57#----------------------------------------------------------------------------- 58# Main Program 59#----------------------------------------------------------------------------- 60 61MAINNAME = scheduler 62MAINOBJ = cons_optcumulative.o \ 63 heur_listscheduling.o \ 64 heur_optcumulative.o \ 65 reader_cmin.o \ 66 reader_sch.o \ 67 reader_sm.o \ 68 reader_rcp.o 69 70MAINCXXOBJ = main.o \ 71 cpoptimizer.o 72 73MAINSRC = $(addprefix $(SRCDIR)/,$(MAINOBJ:.o=.c)) 74MAINSRC += $(addprefix $(SRCDIR)/,$(MAINCXXOBJ:.o=.cpp)) 75 76MAIN = $(MAINNAME).$(BASE).$(LPS)$(EXEEXTENSION) 77MAINFILE = $(BINDIR)/$(MAIN) 78MAINSHORTLINK = $(BINDIR)/$(MAINNAME) 79MAINOBJFILES = $(addprefix $(OBJDIR)/,$(MAINOBJ)) 80MAINOBJFILES += $(addprefix $(OBJDIR)/,$(MAINCXXOBJ)) 81 82ifeq ($(CPOPT),true) 83FLAGS += -DWITH_CPOPTIMIZER -DIL_STD -I$(LIBDIR)/cpinc -I$(LIBDIR)/cpxinc 84FLAGS += -I$(LIBDIR)/ilconcertinc 85LDFLAGS += $(LIBDIR)/libcp.a $(LIBDIR)/libconcert.a $(LIBDIR)/libcplex.a -lpthread 86endif 87 88LASTSETTINGS = $(OBJDIR)/make.lastsettings 89 90CPOPTDEP := $(SRCDIR)/depend.cpoptimizer 91CPOPTSRC := $(shell cat $(CPOPTDEP)) 92 93#----------------------------------------------------------------------------- 94# Rules 95#----------------------------------------------------------------------------- 96 97ifeq ($(VERBOSE),false) 98.SILENT: $(MAINFILE) $(MAINOBJFILES) $(MAINSHORTLINK) 99endif 100 101.PHONY: all 102all: $(SCIPDIR) $(MAINFILE) $(MAINSHORTLINK) 103 104.PHONY: lint 105lint: $(MAINSRC) 106 -rm -f lint.out 107 $(SHELL) -ec 'for i in $^; \ 108 do \ 109 echo $$i; \ 110 $(LINT) -I$(SCIPDIR) lint/main-gcc.lnt +os\(lint.out\) -u -zero \ 111 $(FLAGS) -UNDEBUG -USCIP_WITH_READLINE -USCIP_ROUNDING_FE $$i; \ 112 done' 113 114.PHONY: scip 115scip: 116 @$(MAKE) -C $(SCIPDIR) libs $^ 117 @$(MAKE) $^ 118 119.PHONY: doc 120doc: 121 @-(cd doc && $(LN_sf) ../$(SCIPDIR)/doc/pictures/scippy.png); 122 @-(cd doc && $(LN_sf) ../$(SCIPDIR)/doc/pictures/miniscippy.png); 123 @-(cd doc && $(LN_sf) ../$(SCIPDIR)/doc/scipfooter.html footer.html); 124 cd doc; $(DOXY) scheduler.dxy 125 126$(MAINSHORTLINK): $(MAINFILE) 127 @rm -f $@ 128 cd $(dir $@) && $(LN_s) $(notdir $(MAINFILE)) $(notdir $@) 129 130$(OBJDIR): 131 @-rm -f $(LASTSETTINGS) 132 @-mkdir -p $(OBJDIR) 133 134$(BINDIR): 135 @-mkdir -p $(BINDIR) 136 137$(CHECKDIR): 138 @-mkdir -p $(CHECKDIR) 139 140.PHONY: test 141test: $(MAINFILE) $(CHECKDIR) 142 @-(cd check && ln -fs ../$(SCIPDIR)/check/check.sh); 143 @-(cd check && ln -fs ../$(SCIPDIR)/check/evaluate.sh); 144 @-(cd check && ln -fs ../$(SCIPDIR)/check/evalcheck.sh); 145 @-(cd check && ln -fs ../$(SCIPDIR)/check/evalcheck_cluster.sh); 146 @-(cd check && ln -fs ../$(SCIPDIR)/check/check.awk); 147 @-(cd check && ln -fs ../$(SCIPDIR)/check/getlastprob.awk); 148 @-(cd check && ln -fs ../$(SCIPDIR)/check/configuration_set.sh); 149 @-(cd check && ln -fs ../$(SCIPDIR)/check/configuration_solufile.sh); 150 @-(cd check && ln -fs ../$(SCIPDIR)/check/configuration_logfiles.sh); 151 @-(cd check && ln -fs ../$(SCIPDIR)/check/configuration_tmpfile_setup_scip.sh); 152 @-(cd check && ln -fs ../$(SCIPDIR)/check/run.sh); 153 cd check; \ 154 $(SHELL) ./check.sh $(TEST) $(EXECUTABLE) $(SETTINGS) $(BINID) $(OUTPUTDIR) $(TIME) $(NODES) $(MEM) $(THREADS) $(FEASTOL) $(DISPFREQ) \ 155 $(CONTINUE) $(LOCK) "example" $(LPS) $(DEBUGTOOL) $(CLIENTTMPDIR) $(REOPT) $(OPTCOMMAND) $(SETCUTOFF) $(MAXJOBS) $(VISUALIZE) $(PERMUTE) $(SEEDS) $(GLBSEEDSHIFT) $(STARTPERM); 156 157# include local targets 158-include $(SCIPDIR)/make/local/make.targets 159 160.PHONY: clean 161clean: $(OBJDIR) 162ifneq ($(OBJDIR),) 163 @-rm -f $(LASTSETTINGS) 164 @-(rm -f $(OBJDIR)/*.o $(OBJDIR)/*.d && rmdir $(OBJDIR)); 165 @echo "-> remove main objective files" 166endif 167 @-rm -f $(MAINFILE) $(MAINLINK) $(MAINSHORTLINK) 168 @echo "-> remove binary" 169 170.PHONY: tags 171tags: 172 rm -f TAGS; ctags -e src/*.c src/*.h $(SCIPDIR)/src/scip/*.c $(SCIPDIR)/src/scip/*.h; 173 174.PHONY: depend 175depend: $(SCIPDIR) 176 @echo `grep -l "WITH_CPOPTIMIZER" $(MAINSRC)` >$(CPOPTDEP) 177 178 179-include $(LASTSETTINGS) 180 181.PHONY: touchexternal 182touchexternal: $(CPOPTDEP) 183ifneq ($(CPOPT),$(LAST_CPOPT)) 184 @-touch $(CPOPTSRC) 185endif 186 @-rm -f $(LASTSETTINGS) 187 @echo "LAST_CPOPT=$(CPOPT)" >> $(LASTSETTINGS) 188 189 190-include $(MAINOBJFILES:.o=.d) 191 192$(MAINFILE): $(BINDIR) $(OBJDIR) $(SCIPLIBFILE) $(LPILIBFILE) $(NLPILIBFILE) touchexternal $(MAINOBJFILES) 193 @echo "-> linking $@" 194 $(LINKCXX) $(MAINOBJFILES) $(LINKCXXSCIPALL) $(LDFLAGS) $(LINKCXX_o)$@ 195 196$(OBJDIR)/%.o: $(SRCDIR)/%.c 197 @echo "-> compiling $@" 198 $(CC) $(FLAGS) $(OFLAGS) $(BINOFLAGS) $(CFLAGS) $(DFLAGS) -c $< $(CC_o)$@ 199 200$(OBJDIR)/%.o: $(SRCDIR)/%.cpp 201 @echo "-> compiling $@" 202 $(CXX) $(FLAGS) $(OFLAGS) $(BINOFLAGS) $(CXXFLAGS) $(DFLAGS) -c $< $(CXX_o)$@ 203 204#---- EOF -------------------------------------------------------------------- 205