Makefile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. GUROBI_DIR=/opt/gurobi650/linux64
  2. CPP=g++ -O2 -D_GLIBCXX_USE_CXX11_ABI=0 -m64 -g
  3. INC=-I$(GUROBI_DIR)/include
  4. LIBS=-L $(GUROBI_DIR)/lib -lgurobi_c++ -lgurobi65 -lpthread -lm
  5. SOURCES=instance.cpp main.cpp
  6. SOURCES_GUROBI=gurobi.cpp
  7. all: source.zip bd.out moaw.out red.out
  8. bd.out: main
  9. ./main < ../busy_day.in > /tmp/hashcode
  10. wc -l /tmp/hashcode | cut -d' ' -f1 > bd.out
  11. cat /tmp/hashcode >> bd.out
  12. moaw.out: main
  13. ./main < ../mother_of_all_warehouses.in > /tmp/hashcode
  14. wc -l /tmp/hashcode | cut -d' ' -f1 > moaw.out
  15. cat /tmp/hashcode >> moaw.out
  16. red.out: main
  17. ./main < ../redundancy.in > /tmp/hashcode
  18. wc -l /tmp/hashcode | cut -d' ' -f1 > red.out
  19. cat /tmp/hashcode >> red.out
  20. source.zip: $(SOURCES)
  21. zip source.zip $(wildcard *.cpp) $(wildcard *.h)
  22. main: $(SOURCES:.cpp=.o)
  23. $(CPP) -o $@ $^ $(INC) $(LIBS)
  24. gurobi: $(SOURCES_GUROBI:.cpp=.o)
  25. $(CPP) -o $@ $^ $(INC) $(LIBS)
  26. %.o: %.cpp
  27. $(CPP) -o $@ -c $< $(INC)
  28. .PHONY: all clean mrproper init
  29. init:
  30. @echo '# please run the following command'
  31. @echo '# source /dev/stdin <<< "$$(make init)"'
  32. @echo 'export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(GUROBI_DIR)/lib'
  33. clean:
  34. rm -f $(SOURCES:.cpp=.o) $(SOURCES_GUROBI:.cpp=.o)
  35. mrproper: clean
  36. rm -f main gurobi *.out