# Change the value of the INSTALLDIR variable to change the install location. INSTALLDIR=$(HOME)/research/sat DEBUG_FLAGS=-O3 #DEBUG_FLAGS=-O3 -ffast-math # This GCC option can improve performance #DEBUG_FLAGS=-g -O3 #DEBUG_FLAGS=-g -O3 -pg #USE_EFENCE=1 #USE_MPATROL=1 #ifdef USE_MPATROL # MEM_DEBUG=-umalloc -ufree -ucalloc -urealloc -uvalloc -umemalign -lmpatrol -lbfd -liberty #endif #ifdef USE_EFENCE # MEM_DEBUG=-umalloc -ufree -ucalloc -urealloc -uvalloc -umemalign -lefence # EF_PROTECT_BELOW=1 #endif LIBS=$(CCMALLOC_FLAGS) $(MEM_DEBUG) -lm CC_FLAGS=-Wall $(DEBUG_FLAGS) #CC_FLAGS=-ansi -Wall -pedantic $(DEBUG_FLAGS) #CC_FLAGS=-ansi -Wall -pedantic -Wstrict-prototypes -Wmissing-prototypes $(DEBUG_FLAGS) CC=gcc $(CC_FLAGS) DLMDIR=SAT_DLM_2000/SRC STD_EXES=gsat sa hsat wsat wsat-g wsat-b novel pnovel sdfflt esg asg cnf2cop STD_DOCS=README CHANGES gpl.txt STAT_SRC=mobility1.c mobility2.c mobility3.c copysoln.c assigndump.c unsat1.c all: $(STD_EXES) dlm2k-quiet ob: sdfflt-noisy25 sdfflt-noisy5 dlm2k-noisy25 dlm2k-noisy5 readcnf.o: readcnf.c readcnf.h $(CC) -c readcnf.c satfront.o: satfront.c satfront.h readcnf.h $(CC) -c satfront.c mbflip.o: mbflip.c mbflip.h $(CC) -c mbflip.c msat.o: msat.c msat.h readcnf.h satfront.h $(STAT_SRC) $(CC) -c msat.c mwsat.o: mwsat.c msat.h readcnf.h satfront.h $(STAT_SRC) $(CC) -c mwsat.c mwsat: mwsat.o msat.o satfront.o readcnf.o $(CC) -o mwsat satfront.o readcnf.o msat.o mwsat.o $(LIBS) wsat-skc.o: wsat.c mbflip.h mbflipimpl.c readcnf.h satfront.h $(STAT_SRC) $(CC) -DWSATSKC -o wsat-skc.o -c wsat.c wsat: wsat-skc.o mbflip.o satfront.o readcnf.o $(CC) -o wsat satfront.o readcnf.o wsat-skc.o mbflip.o $(LIBS) wsat-g.o: wsat.c mbflip.h mbflipimpl.c readcnf.h satfront.h $(STAT_SRC) $(CC) -DWSATG -o wsat-g.o -c wsat.c wsat-g: wsat-g.o mbflip.o satfront.o readcnf.o $(CC) -o wsat-g satfront.o readcnf.o wsat-g.o mbflip.o $(LIBS) wsat-b.o: wsat.c mbflip.h mbflipimpl.c readcnf.h satfront.h $(STAT_SRC) $(CC) -DWSATB -o wsat-b.o -c wsat.c wsat-b: wsat-b.o mbflip.o satfront.o readcnf.o $(CC) -o wsat-b satfront.o readcnf.o wsat-b.o mbflip.o $(LIBS) gsat.o: gsat.c readcnf.h satfront.h $(STAT_SRC) $(CC) -c gsat.c gsat: gsat.o satfront.o readcnf.o $(CC) -o gsat satfront.o readcnf.o gsat.o $(LIBS) hsat.o: hsat.c readcnf.h satfront.h $(STAT_SRC) $(CC) -c hsat.c hsat: hsat.o satfront.o readcnf.o $(CC) -o hsat satfront.o readcnf.o hsat.o $(LIBS) sa.o: sa.c readcnf.h satfront.h $(STAT_SRC) $(CC) -c sa.c sa: sa.o satfront.o readcnf.o $(CC) -o sa satfront.o readcnf.o sa.o $(LIBS) pnovel.o: novel.c mbflip.h mbflipimpl.c readcnf.h satfront.h $(STAT_SRC) $(CC) -DNOVELTY_PLUS -o pnovel.o -c novel.c pnovel: pnovel.o satfront.o readcnf.o mbflip.o $(CC) -o pnovel satfront.o readcnf.o pnovel.o mbflip.o $(LIBS) novel.o: novel.c mbflip.h mbflipimpl.c readcnf.h satfront.h $(STAT_SRC) $(CC) -o novel.o -c novel.c novel: novel.o satfront.o readcnf.o mbflip.o $(CC) -o novel satfront.o readcnf.o novel.o mbflip.o $(LIBS) cop.o: cop.c satfront.h cop.h $(CC) -c cop.c esg.o: esg.c satfront.h cop.h $(CC) -c esg.c esg: esg.o satfront.o cop.o $(CC) satfront.o cop.o esg.o -o esg $(LIBS) asg.o: asg.c satfront.h cop.h $(STAT_SRC) $(CC) -c asg.c asg: asg.o satfront.o cop.o $(CC) satfront.o cop.o asg.o -o asg $(LIBS) sdfflt.o: sdfflt.c satfront.h readcnf.h $(STAT_SRC) $(CC) -c sdfflt.c sdfflt: sdfflt.o satfront.o readcnf.o $(CC) satfront.o readcnf.o sdfflt.o -o sdfflt $(LIBS) sdfflt-noisy25.o: sdfflt.c satfront.h readcnf.h $(STAT_SRC) $(CC) -c sdfflt.c -o sdfflt-noisy25.o -DADD_NOISE -DADDED_NOISE=0.25 sdfflt-noisy25: sdfflt-noisy25.o satfront.o readcnf.o $(CC) satfront.o readcnf.o sdfflt-noisy25.o -o sdfflt-noisy25 $(LIBS) sdfflt-noisy5.o: sdfflt.c satfront.h readcnf.h $(STAT_SRC) $(CC) -c sdfflt.c -o sdfflt-noisy5.o -DADD_NOISE -DADDED_NOISE=0.5 sdfflt-noisy5: sdfflt-noisy5.o satfront.o readcnf.o $(CC) satfront.o readcnf.o sdfflt-noisy5.o -o sdfflt-noisy5 $(LIBS) # The following three rules are used to avoid displaying unnecessary # command messages when the DLM source is not available. .POSIX: .SILENT: dlm2k dlm2k.o DLMSAT.o dlm2k-quiet $(DLMDIR)/DLMSAT.c dlmsat.o : ; dlm2k.o: dlm2k.c satfront.h readcnf.h if [ -r $(DLMDIR)/DLMSAT.c ] ; then $(CC) -c dlm2k.c; fi DLMSAT.o: $(DLMDIR)/DLMSAT.c dlmparams/assigndump-dlm.c dlmparams/mobility1-dlm.c dlmparams/mobility2-dlm.c dlmparams/mobility3-dlm.c satfront.h if [ -r $(DLMDIR)/DLMSAT.c ] ; then $(CC) -c $(DLMDIR)/utility.c $(DLMDIR)/DLMSAT.c $(DLMDIR)/ran2.c $(DLMDIR)/cputime.c ; fi dlm2k: dlm2k-quiet if [ -r DLMSAT.o ] ; then echo "DLM source found. Building."; else echo "DLM sources not found. See dlmparams/README." ; fi dlm2k-quiet: dlm2k.o satfront.o DLMSAT.o if [ -r DLMSAT.o ] ; then $(CC) satfront.o dlm2k.o DLMSAT.o cputime.o ran2.o utility.o -o dlm2k $(LIBS) ; fi DLMSAT-noisy25.o: $(DLMDIR)/DLMSAT.c dlmparams/assigndump-dlm.c dlmparams/mobility1-dlm.c dlmparams/mobility2-dlm.c dlmparams/mobility3-dlm.c satfront.h $(CC) -o DLMSAT-noisy25.o -c $(DLMDIR)/DLMSAT.c -DADD_NOISE -DADDED_NOISE=0.25 dlm2k-noisy25: dlm2k.o satfront.o DLMSAT.o DLMSAT-noisy25.o $(CC) satfront.o dlm2k.o DLMSAT-noisy25.o cputime.o ran2.o utility.o -o dlm2k-noisy25 $(LIBS) DLMSAT-noisy5.o: $(DLMDIR)/DLMSAT.c dlmparams/assigndump-dlm.c dlmparams/mobility1-dlm.c dlmparams/mobility2-dlm.c dlmparams/mobility3-dlm.c satfront.h $(CC) -o DLMSAT-noisy5.o -c $(DLMDIR)/DLMSAT.c -DADD_NOISE -DADDED_NOISE=0.5 dlm2k-noisy5: dlm2k.o satfront.o DLMSAT.o DLMSAT-noisy5.o $(CC) satfront.o dlm2k.o DLMSAT-noisy5.o cputime.o ran2.o utility.o -o dlm2k-noisy5 $(LIBS) churn: churn.c $(CC) -o churn churn.c $(LIBS) cnf2cop: cnf2cop.c $(CC) -o cnf2cop cnf2cop.c $(LIBS) dlmdiff: diff dlmparams/DLMSAT.org SAT_DLM_2000/SRC/DLMSAT.c > dlmparams/dlm2kpatch.diff install-scripts: if [ $(PWD) = $(INSTALLDIR) ] ; then echo; echo; echo "Cannot install to the directory in which you unpacked/built." ; echo "Either move the build directory or change the install directory."; exit 1; fi mkdir -p $(INSTALLDIR)/scripts mkdir -p $(INSTALLDIR)/scripts/dlmparams cp dlmparams/dlmpara-? $(INSTALLDIR)/scripts/dlmparams cp scripts/racing $(INSTALLDIR)/scripts cp scripts/meta* $(INSTALLDIR)/scripts cp `grep -l -d skip BASE_NAME scripts/*` $(INSTALLDIR)/scripts chmod u+x $(INSTALLDIR)/scripts/* install-bin: if [ $(PWD) = $(INSTALLDIR) ] ; then echo; echo; echo "Cannot install to the directory in which you unpacked/built." ; echo "Either move the build directory or change the install directory."; exit 1; fi mkdir -p $(INSTALLDIR)/bin mkdir -p $(INSTALLDIR)/bin/dlmparams cp $(STD_EXES) $(INSTALLDIR)/bin cp turnon turnoffall turnononly $(INSTALLDIR)/bin if [ -r dlm2k ] ; then cp dlm2k $(INSTALLDIR)/bin ; fi; cp dlmparams/dlmpara-? $(INSTALLDIR)/bin/dlmparams chmod u+x $(INSTALLDIR)/bin/* install: install-bin install-scripts mkdir -p $(INSTALLDIR)/cnf mkdir -p $(INSTALLDIR)/cop mkdir -p $(INSTALLDIR)/results archive: mkdir esgsat cp mbflip.h mbflip.c mbflipimpl.c churn.h cop.h readcnf.h satfront.h esgsat cp asg.c churn.c cnf2cop.c cop.c countrank.c dlm2k.c esgsat cp gsat.c hsat.c esgsat cp esg.c readcnf.c sa.c satfront.c sdfflt.c novel.c wsat.c esgsat cp Makefile esgsat cp $(STD_DOCS) esgsat cp $(STAT_SRC) esgsat cp rankem turnon turnoffall turnononly esgsat mkdir esgsat/dlmparams cp dlmparams/dlmpara-? dlmparams/README dlmparams/dlm-para.txt esgsat/dlmparams cp dlmparams/unsat1-dlm.c dlmparams/dlm2kpatch.diff dlmparams/patchdlm esgsat/dlmparams cp dlmparams/assigndump-dlm.c dlmparams/mobility?-dlm.c esgsat/dlmparams mkdir esgsat/scripts mkdir esgsat/scripts/dlmparams cp scripts/uf* esgsat/scripts cp scripts/meta-uf? esgsat/scripts cp scripts/racing esgsat/scripts cp dlmparams/dlmpara-? esgsat/scripts/dlmparams chmod u+x $(INSTALLDIR)/scripts/* tar zcvf esgsat.tar.gz esgsat rm -rf esgsat clean: rm -f *.o rm -f $(STD_EXES) rm -f churn countrank rm -f dlm2k rm -f sdfflt-noisy25 sdfflt-noisy5 rm -f dlm2k-noisy25 dlm2k-noisy5