--- a/Makefile +++ b/Makefile @@ -13,11 +13,8 @@ EXEC = minisat+ -CXX = g++ #CXX = icpc -CFLAGS = -Wall -ffloat-store -CFLAGS += -IADTs -include Global.h -include Main.h -D_FILE_OFFSET_BITS=64 -COPTIMIZE = -O3 #-fomit-frame-pointer # -falign-loops=4 -falign-functions=16 -foptimize-sibling-calls -finline-functions -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse +CXXFLAGS += -IADTs -include Global.h -include Main.h -D_FILE_OFFSET_BITS=64 .PHONY : s p d r build clean depend @@ -26,22 +23,22 @@ p: WAY=profile d: WAY=debug r: WAY=release -rs: WAY="release static / bignums" -rx: WAY="release static / 64-bit integers" +rs: WAY="release / bignums" +rx: WAY="release / 64-bit integers" -s: CFLAGS+=$(COPTIMIZE) -ggdb -D DEBUG -p: CFLAGS+=$(COPTIMIZE) -pg -ggdb -D DEBUG -d: CFLAGS+=-O0 -ggdb -D DEBUG -r: CFLAGS+=$(COPTIMIZE) -D NDEBUG -rs: CFLAGS+=$(COPTIMIZE) -D NDEBUG -rx: CFLAGS+=$(COPTIMIZE) -D NDEBUG -D NO_GMP +s: CXXFLAGS+=-ggdb -D DEBUG +p: CXXFLAGS+=-pg -ggdb -D DEBUG +d: CXXFLAGS+=-O0 -ggdb -D DEBUG +r: CXXFLAGS+=-D NDEBUG +rs: CXXFLAGS+=-D NDEBUG +rx: CXXFLAGS+=-D NDEBUG -D NO_GMP s: build $(EXEC) p: build $(EXEC)_profile d: build $(EXEC)_debug r: build $(EXEC)_release -rs: build $(EXEC)_bignum_static -rx: build $(EXEC)_64-bit_static +rs: build $(EXEC)_bignum +rx: build $(EXEC)_64-bit build: @echo Building $(EXEC) "("$(WAY)")" @@ -53,39 +50,39 @@ ## Build rule %.o %.op %.od %.or %.ox: %.C @echo Compiling: $< - @$(CXX) $(CFLAGS) -c -o $@ $< + @$(CXX) $(CXXFLAGS) -fPIC -c -o $@ $< ## Linking rules (standard/profile/debug/release) $(EXEC): $(COBJS) @echo Linking $(EXEC) - @$(CXX) $(COBJS) -lz -lgmp -ggdb -Wall -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(COBJS) -lz -lgmp -ggdb -Wall -o $@ $(EXEC)_profile: $(PCOBJS) @echo Linking $@ - @$(CXX) $(PCOBJS) -lz -lgmp -ggdb -Wall -pg -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(PCOBJS) -lz -lgmp -ggdb -Wall -pg -o $@ $(EXEC)_debug: $(DCOBJS) @echo Linking $@ - @$(CXX) $(DCOBJS) -lz -lgmp -ggdb -Wall -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(DCOBJS) -lz -lgmp -ggdb -Wall -o $@ $(EXEC)_release: $(RCOBJS) @echo Linking $@ - @$(CXX) $(RCOBJS) -lz -lgmp -Wall -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(RCOBJS) -lz -lgmp -Wall -o $@ -$(EXEC)_bignum_static: $(RCOBJS) +$(EXEC)_bignum: $(RCOBJS) @echo Linking $@ - @$(CXX) --static $(RCOBJS) -lz -lgmp -Wall -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(RCOBJS) -lz -lgmp -Wall -o $@ -$(EXEC)_64-bit_static: $(R64COBJS) +$(EXEC)_64-bit: $(R64COBJS) @echo Linking $@ - @$(CXX) --static $(R64COBJS) -lz -Wall -o $@ + @$(CXX) $(CXXFLAGS) $(LDFLAGS) -fPIE $(R64COBJS) -lz -Wall -o $@ ## Make dependencies depend: depend.mak depend.mak: $(CSRCS) $(CHDRS) @echo Making dependencies... - @$(CXX) -MM $(CSRCS) $(CFLAGS) > depend.mak + @$(CXX) -MM $(CSRCS) $(CXXFLAGS) > depend.mak @cp depend.mak /tmp/depend.mak.tmp @sed "s/o:/op:/" /tmp/depend.mak.tmp >> depend.mak @sed "s/o:/od:/" /tmp/depend.mak.tmp >> depend.mak