frostblooded

Untitled

Jan 11th, 2016
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.21 KB | None | 0 0
  1. # OR_ROOT is the minimal prefix to define the root of or-tools, if we
  2. # are compiling in the or-tools root, it is empty. Otherwise, it is
  3. # $(OR_TOOLS_TOP)/ or $(OR_TOOLS_TOP)\\ depending on the platform. It
  4. # contains the trailing separator if not empty.
  5.  
  6. # Let's discover something about where we run
  7. ifeq "$(SHELL)" "cmd.exe"
  8. SYSTEM = win
  9. else
  10. ifeq "$(SHELL)" "sh.exe"
  11. SYSTEM = win
  12. else
  13. SYSTEM = unix
  14. endif
  15. endif
  16.  
  17. # Define the OR_ROOT directory.
  18. ifeq ($(OR_TOOLS_TOP),)
  19. OR_ROOT =
  20. else
  21. ifeq "$(SYSTEM)" "win"
  22. OR_ROOT = $(OR_TOOLS_TOP)\\
  23. else
  24. OR_ROOT = $(OR_TOOLS_TOP)/
  25. endif
  26. endif
  27.  
  28. # Useful directories.
  29. BIN_DIR = $(OR_ROOT)bin
  30. OBJ_DIR = $(OR_ROOT)objs
  31. EX_DIR = $(OR_ROOT)examples
  32. INC_DIR = $(OR_ROOT)include
  33.  
  34. # Unix specific part.
  35. ifeq ("$(SYSTEM)","unix")
  36. OS = $(shell uname -s)
  37. ifeq ($(OS),Linux)
  38. CCC = g++ -fPIC -std=c++0x
  39. LD_FLAGS = -lz -lrt -lpthread
  40. # Defines OR_TOOLS_TOP if it is not already defined.
  41. OR_TOOLS_TOP ?= $(shell pwd)
  42. ORTOOLS_LIB = -Wl,-rpath $(OR_TOOLS_TOP)/lib -L$(OR_TOOLS_TOP)/lib -lortools
  43. LBITS = $(shell getconf LONG_BIT)
  44. ifeq ($(LBITS),64)
  45. PORT = Linux64
  46. ARCH = -DARCH_K8
  47. else
  48. PORT = Linux32
  49. endif
  50. endif
  51. ifeq ($(OS),Darwin) # Assume Mac Os X
  52. CCC = clang++ -fPIC -std=c++11
  53. LD_FLAGS = -lz
  54. ORTOOLS_LIB = -L$(OR_ROOT)lib -lortools
  55. ARCH = -DARCH_K8
  56. PORT = MacOsX64
  57. endif
  58. O = o
  59. E =
  60. OBJ_OUT = -o #
  61. EXE_OUT = -o #
  62. DEL = rm -f
  63. S = /
  64. CLP_INC = -DUSE_CLP
  65. CBC_INC = -DUSE_CBC
  66. DEBUG = -O4 -DNDEBUG
  67. CFLAGS = $(DEBUG) -I$(INC_DIR) -I$(EX_DIR) $(ARCH) -Wno-deprecated \
  68. $(CBC_INC) $(CLP_INC)
  69. endif
  70.  
  71. # Windows specific part.
  72. ifeq ("$(SYSTEM)","win")
  73. ifeq ("$(Platform)", "X64")
  74. PLATFORM = Win64
  75. endif
  76. ifeq ("$(Platform)", "x64")
  77. PLATFORM = Win64
  78. endif
  79. ifeq ("$(PLATFORM)", "Win64")
  80. PORT = VisualStudio$(VISUAL_STUDIO)-64b
  81. else
  82. PORT = VisualStudio$(VISUAL_STUDIO)-32b
  83. endif
  84. CLP_INC = -DUSE_CLP
  85. CBC_INC = -DUSE_CBC
  86. CFLAGS= -nologo $(DEBUG) $(CBC_INC) $(CLP_INC)\
  87. /D__WIN32__ /I$(INC_DIR)\\src\\windows /DGFLAGS_DLL_DECL= \
  88. /DGFLAGS_DLL_DECLARE_FLAG= /DGFLAGS_DLL_DEFINE_FLAG= \
  89. /I$(INC_DIR) /I$(EX_DIR)
  90. LD_FLAGS = psapi.lib ws2_32.lib
  91. ORTOOLS_LIB = lib\\ortools.lib
  92. O=obj
  93. E=.exe
  94. OBJ_OUT = /Fo
  95. EXE_OUT = /Fe
  96. DEL = del
  97. S = \\
  98. DEBUG=/O2 -DNDEBUG
  99. CCC=cl /EHsc /MD /nologo
  100. endif
  101.  
  102. # Cleaning
  103.  
  104. clean:
  105. -$(DEL) $(OR_ROOT)objs/*
  106. -$(DEL) $(OR_ROOT)bin/*
  107.  
  108. # Constraint Programming and Routing examples.
  109.  
  110. $(OBJ_DIR)/costas_array.$O: $(EX_DIR)/costas_array.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  111. $(CCC) $(CFLAGS) -c $(EX_DIR)$Scostas_array.cc $(OBJ_OUT)$(OBJ_DIR)$Scostas_array.$O
  112.  
  113. $(BIN_DIR)/costas_array$E: $(OBJ_DIR)/costas_array.$O
  114. $(CCC) $(CFLAGS) $(OBJ_DIR)/costas_array.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Scostas_array$E
  115.  
  116. $(OBJ_DIR)/cryptarithm.$O:$(EX_DIR)/cryptarithm.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  117. $(CCC) $(CFLAGS) -c $(EX_DIR)$Scryptarithm.cc $(OBJ_OUT)$(OBJ_DIR)$Scryptarithm.$O
  118.  
  119. $(BIN_DIR)/cryptarithm$E: $(OBJ_DIR)/cryptarithm.$O
  120. $(CCC) $(CFLAGS) $(OBJ_DIR)/cryptarithm.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Scryptarithm$E
  121.  
  122. $(OBJ_DIR)/cvrptw.$O: $(EX_DIR)/cvrptw.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  123. $(CCC) $(CFLAGS) -c $(EX_DIR)$Scvrptw.cc $(OBJ_OUT)$(OBJ_DIR)$Scvrptw.$O
  124.  
  125. $(BIN_DIR)/cvrptw$E: $(OBJ_DIR)/cvrptw.$O
  126. $(CCC) $(CFLAGS) $(OBJ_DIR)/cvrptw.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Scvrptw$E
  127.  
  128. $(OBJ_DIR)/dobble_ls.$O:$(EX_DIR)/dobble_ls.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  129. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sdobble_ls.cc $(OBJ_OUT)$(OBJ_DIR)$Sdobble_ls.$O
  130.  
  131. $(BIN_DIR)/dobble_ls$E: $(OBJ_DIR)/dobble_ls.$O
  132. $(CCC) $(CFLAGS) $(OBJ_DIR)/dobble_ls.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sdobble_ls$E
  133.  
  134. $(OBJ_DIR)/flexible_jobshop.$O:$(EX_DIR)/flexible_jobshop.cc $(INC_DIR)/constraint_solver/constraint_solver.h $(EX_DIR)/flexible_jobshop.h
  135. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sflexible_jobshop.cc $(OBJ_OUT)$(OBJ_DIR)$Sflexible_jobshop.$O
  136.  
  137. $(BIN_DIR)/flexible_jobshop$E: $(OBJ_DIR)/flexible_jobshop.$O
  138. $(CCC) $(CFLAGS) $(OBJ_DIR)/flexible_jobshop.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sflexible_jobshop$E
  139.  
  140. $(OBJ_DIR)/golomb.$O:$(EX_DIR)/golomb.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  141. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sgolomb.cc $(OBJ_OUT)$(OBJ_DIR)$Sgolomb.$O
  142.  
  143. $(BIN_DIR)/golomb$E: $(OBJ_DIR)/golomb.$O
  144. $(CCC) $(CFLAGS) $(OBJ_DIR)/golomb.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sgolomb$E
  145.  
  146. $(OBJ_DIR)/jobshop.$O:$(EX_DIR)/jobshop.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  147. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sjobshop.cc $(OBJ_OUT)$(OBJ_DIR)$Sjobshop.$O
  148.  
  149. $(BIN_DIR)/jobshop$E: $(OBJ_DIR)/jobshop.$O
  150. $(CCC) $(CFLAGS) $(OBJ_DIR)/jobshop.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sjobshop$E
  151.  
  152. $(OBJ_DIR)/jobshop_ls.$O:$(EX_DIR)/jobshop_ls.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  153. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sjobshop_ls.cc $(OBJ_OUT)$(OBJ_DIR)$Sjobshop_ls.$O
  154.  
  155. $(BIN_DIR)/jobshop_ls$E: $(OBJ_DIR)/jobshop_ls.$O
  156. $(CCC) $(CFLAGS) $(OBJ_DIR)/jobshop_ls.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sjobshop_ls$E
  157.  
  158. $(OBJ_DIR)/jobshop_earlytardy.$O:$(EX_DIR)/jobshop_earlytardy.cc $(INC_DIR)/constraint_solver/constraint_solver.h $(EX_DIR)/jobshop_earlytardy.h
  159. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sjobshop_earlytardy.cc $(OBJ_OUT)$(OBJ_DIR)$Sjobshop_earlytardy.$O
  160.  
  161. $(BIN_DIR)/jobshop_earlytardy$E: $(OBJ_DIR)/jobshop_earlytardy.$O
  162. $(CCC) $(CFLAGS) $(OBJ_DIR)/jobshop_earlytardy.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sjobshop_earlytardy$E
  163.  
  164. $(OBJ_DIR)/magic_square.$O:$(EX_DIR)/magic_square.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  165. $(CCC) $(CFLAGS) -c $(EX_DIR)$Smagic_square.cc $(OBJ_OUT)$(OBJ_DIR)$Smagic_square.$O
  166.  
  167. $(BIN_DIR)/magic_square$E: $(OBJ_DIR)/magic_square.$O
  168. $(CCC) $(CFLAGS) $(OBJ_DIR)/magic_square.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Smagic_square$E
  169.  
  170. $(OBJ_DIR)/model_util.$O:$(EX_DIR)/model_util.cc $(GEN_DIR)/constraint_solver/model.pb.h $(INC_DIR)/constraint_solver/constraint_solver.h
  171. $(CCC) $(CFLAGS) -c $(EX_DIR)$Smodel_util.cc $(OBJ_OUT)$(OBJ_DIR)$Smodel_util.$O
  172.  
  173. $(BIN_DIR)/model_util$E: $(OBJ_DIR)/model_util.$O
  174. $(CCC) $(CFLAGS) $(OBJ_DIR)/model_util.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Smodel_util$E
  175.  
  176. $(OBJ_DIR)/multidim_knapsack.$O:$(EX_DIR)/multidim_knapsack.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  177. $(CCC) $(CFLAGS) -c $(EX_DIR)$Smultidim_knapsack.cc $(OBJ_OUT)$(OBJ_DIR)$Smultidim_knapsack.$O
  178.  
  179. $(BIN_DIR)/multidim_knapsack$E: $(OBJ_DIR)/multidim_knapsack.$O
  180. $(CCC) $(CFLAGS) $(OBJ_DIR)/multidim_knapsack.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Smultidim_knapsack$E
  181.  
  182. $(OBJ_DIR)/network_routing.$O:$(EX_DIR)/network_routing.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  183. $(CCC) $(CFLAGS) -c $(EX_DIR)$Snetwork_routing.cc $(OBJ_OUT)$(OBJ_DIR)$Snetwork_routing.$O
  184.  
  185. $(BIN_DIR)/network_routing$E: $(GRAPH_DEPS) $(OBJ_DIR)/network_routing.$O
  186. $(CCC) $(CFLAGS) $(OBJ_DIR)/network_routing.$O $(ORTOOLS_LIB) $(GRAPH_LNK) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Snetwork_routing$E
  187.  
  188. $(OBJ_DIR)/nqueens.$O: $(EX_DIR)/nqueens.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  189. $(CCC) $(CFLAGS) -c $(EX_DIR)$Snqueens.cc $(OBJ_OUT)$(OBJ_DIR)$Snqueens.$O
  190.  
  191. $(BIN_DIR)/nqueens$E: $(OBJ_DIR)/nqueens.$O
  192. $(CCC) $(CFLAGS) $(OBJ_DIR)/nqueens.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Snqueens$E
  193.  
  194. $(OBJ_DIR)/pdptw.$O: $(EX_DIR)/pdptw.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  195. $(CCC) $(CFLAGS) -c $(EX_DIR)$Spdptw.cc $(OBJ_OUT)$(OBJ_DIR)$Spdptw.$O
  196.  
  197. $(BIN_DIR)/pdptw$E: $(OBJ_DIR)/pdptw.$O
  198. $(CCC) $(CFLAGS) $(OBJ_DIR)/pdptw.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Spdptw$E
  199.  
  200. $(OBJ_DIR)/sports_scheduling.$O:$(EX_DIR)/sports_scheduling.cc $(INC_DIR)/constraint_solver/constraint_solver.h
  201. $(CCC) $(CFLAGS) -c $(EX_DIR)$Ssports_scheduling.cc $(OBJ_OUT)$(OBJ_DIR)$Ssports_scheduling.$O
  202.  
  203. $(BIN_DIR)/sports_scheduling$E: $(OBJ_DIR)/sports_scheduling.$O
  204. $(CCC) $(CFLAGS) $(OBJ_DIR)/sports_scheduling.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Ssports_scheduling$E
  205.  
  206. $(OBJ_DIR)/tsp.$O: $(EX_DIR)/tsp.cc $(INC_DIR)/constraint_solver/routing.h
  207. $(CCC) $(CFLAGS) -c $(EX_DIR)$Stsp.cc $(OBJ_OUT)$(OBJ_DIR)$Stsp.$O
  208.  
  209. $(BIN_DIR)/tsp$E: $(OBJ_DIR)/tsp.$O
  210. $(CCC) $(CFLAGS) $(OBJ_DIR)/tsp.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Stsp$E
  211.  
  212. # Flow and linear assignment cpp
  213.  
  214. $(OBJ_DIR)/linear_assignment_api.$O:$(EX_DIR)/linear_assignment_api.cc
  215. $(CCC) $(CFLAGS) -c $(EX_DIR)$Slinear_assignment_api.cc $(OBJ_OUT)$(OBJ_DIR)$Slinear_assignment_api.$O
  216.  
  217. $(BIN_DIR)/linear_assignment_api$E: $(OBJ_DIR)/linear_assignment_api.$O
  218. $(CCC) $(CFLAGS) $(OBJ_DIR)/linear_assignment_api.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Slinear_assignment_api$E
  219.  
  220. $(OBJ_DIR)/flow_api.$O:$(EX_DIR)/flow_api.cc
  221. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sflow_api.cc $(OBJ_OUT)$(OBJ_DIR)$Sflow_api.$O
  222.  
  223. $(BIN_DIR)/flow_api$E: $(OBJ_DIR)/flow_api.$O
  224. $(CCC) $(CFLAGS) $(OBJ_DIR)/flow_api.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sflow_api$E
  225.  
  226. # Linear Programming Examples
  227.  
  228. $(OBJ_DIR)/strawberry_fields_with_column_generation.$O: $(EX_DIR)/strawberry_fields_with_column_generation.cc $(INC_DIR)/linear_solver/linear_solver.h
  229. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sstrawberry_fields_with_column_generation.cc $(OBJ_OUT)$(OBJ_DIR)$Sstrawberry_fields_with_column_generation.$O
  230.  
  231. $(BIN_DIR)/strawberry_fields_with_column_generation$E: $(OBJ_DIR)/strawberry_fields_with_column_generation.$O
  232. $(CCC) $(CFLAGS) $(OBJ_DIR)/strawberry_fields_with_column_generation.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sstrawberry_fields_with_column_generation$E
  233.  
  234. $(OBJ_DIR)/linear_programming.$O: $(EX_DIR)/linear_programming.cc $(INC_DIR)/linear_solver/linear_solver.h
  235. $(CCC) $(CFLAGS) -c $(EX_DIR)$Slinear_programming.cc $(OBJ_OUT)$(OBJ_DIR)$Slinear_programming.$O
  236.  
  237. $(BIN_DIR)/linear_programming$E: $(OBJ_DIR)/linear_programming.$O
  238. $(CCC) $(CFLAGS) $(OBJ_DIR)/linear_programming.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Slinear_programming$E
  239.  
  240. $(OBJ_DIR)/linear_solver_protocol_buffers.$O: $(EX_DIR)/linear_solver_protocol_buffers.cc $(INC_DIR)/linear_solver/linear_solver.h
  241. $(CCC) $(CFLAGS) -c $(EX_DIR)$Slinear_solver_protocol_buffers.cc $(OBJ_OUT)$(OBJ_DIR)$Slinear_solver_protocol_buffers.$O
  242.  
  243. $(BIN_DIR)/linear_solver_protocol_buffers$E: $(OBJ_DIR)/linear_solver_protocol_buffers.$O
  244. $(CCC) $(CFLAGS) $(OBJ_DIR)/linear_solver_protocol_buffers.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Slinear_solver_protocol_buffers$E
  245.  
  246. $(OBJ_DIR)/integer_programming.$O: $(EX_DIR)/integer_programming.cc $(INC_DIR)/linear_solver/linear_solver.h
  247. $(CCC) $(CFLAGS) -c $(EX_DIR)$Sinteger_programming.cc $(OBJ_OUT)$(OBJ_DIR)$Sinteger_programming.$O
  248.  
  249. $(BIN_DIR)/integer_programming$E: $(OBJ_DIR)/integer_programming.$O
  250. $(CCC) $(CFLAGS) $(OBJ_DIR)/integer_programming.$O $(ORTOOLS_LIB) $(LD_FLAGS) $(EXE_OUT)$(BIN_DIR)$Sinteger_programming$E
  251.  
  252. # Debug
  253.  
  254. printport:
  255. @echo SHELL = $(SHELL)
  256. @echo SYSTEM = $(SYSTEM)
  257. @echo PORT = $(PORT)
  258. @echo OS = $(OS)
  259. @echo CCC = $(CCC)
  260.  
  261. # Include user makefile
  262.  
  263. -include $(OR_ROOT)Makefile.user
Advertisement
Add Comment
Please, Sign In to add comment