diff --git a/makefiles/Makefile.archive.mk b/makefiles/Makefile.archive.mk index 3dbf7e230f..ff6daf0309 100644 --- a/makefiles/Makefile.archive.mk +++ b/makefiles/Makefile.archive.mk @@ -174,13 +174,16 @@ endif -test_archive: archive +test_archive: $(INSTALL_DIR).tar.gz -$(DELREC) temp $(MKDIR) temp +#this is to make sure the archive tests don't use the root libraries + $(RENAME) lib lib2 ifeq "$(SYSTEM)" "win" tools$Sunzip.exe $(INSTALL_DIR).zip -d temp else tar -x -v -f $(INSTALL_DIR).tar.gz -C temp endif - cd temp$S$(INSTALL_DIR) && $(MAKE) all test + cd temp$S$(INSTALL_DIR) && $(MAKE) test -$(DELREC) $(INSTALL_DIR) + $(RENAME) lib2 lib diff --git a/makefiles/Makefile.unix b/makefiles/Makefile.unix index 8d552a05d1..5c8504f57d 100755 --- a/makefiles/Makefile.unix +++ b/makefiles/Makefile.unix @@ -31,6 +31,7 @@ OBJ_OUT = -o # EXE_OUT = -o # DEL = rm -f DELREC = rm -rf +RENAME = mv S = / CPSEP = : SED = sed diff --git a/makefiles/Makefile.win b/makefiles/Makefile.win index fbb65beeca..ba50f1600c 100755 --- a/makefiles/Makefile.win +++ b/makefiles/Makefile.win @@ -31,6 +31,7 @@ S = \\ CPSEP =; DEL = del DELREC = tools\rm.exe -rf +RENAME = rename MKDIR = md MKDIR_P = tools\mkdir.exe -p COPY = copy diff --git a/tools/Makefile.cc b/tools/Makefile.cc index 47e31bd7ef..7537451ef0 100644 --- a/tools/Makefile.cc +++ b/tools/Makefile.cc @@ -5,24 +5,24 @@ # Let's discover something about where we run ifeq "$(SHELL)" "cmd.exe" - SYSTEM = win + SYSTEM = win else - ifeq "$(SHELL)" "sh.exe" - SYSTEM = win - else - SYSTEM = unix - endif + ifeq "$(SHELL)" "sh.exe" + SYSTEM = win + else + SYSTEM = unix + endif endif # Define the OR_ROOT directory. ifeq ($(OR_TOOLS_TOP),) - OR_ROOT = + OR_ROOT = else - ifeq "$(SYSTEM)" "win" - OR_ROOT = $(OR_TOOLS_TOP)\\ - else - OR_ROOT = $(OR_TOOLS_TOP)/ - endif + ifeq "$(SYSTEM)" "win" + OR_ROOT = $(OR_TOOLS_TOP)\\ + else + OR_ROOT = $(OR_TOOLS_TOP)/ + endif endif # Useful directories. @@ -38,97 +38,97 @@ LIB_DIR = $(OR_ROOT)lib # Unix specific part. ifeq ("$(SYSTEM)","unix") - OS = $(shell uname -s) - ifeq ($(OS),Linux) - CCC = g++ -fPIC -std=c++0x - LD_FLAGS = -lz -lrt -lpthread - # Defines OR_TOOLS_TOP if it is not already defined. - OR_TOOLS_TOP ?= $(shell pwd) - LIB_PREFIX = -Wl,-rpath $(OR_TOOLS_TOP)/lib -L$(OR_TOOLS_TOP)/lib - OR_TOOLS_LIBS = $(LIB_PREFIX) -lortools - CVRPTW_LIBS = $(LIB_PREFIX) -lcvrptw_lib $(LIB_PREFIX) -lortools - DIMACS_LIBS = $(LIB_PREFIX) -ldimacs $(LIB_PREFIX) -lortools - LBITS = $(shell getconf LONG_BIT) - ifeq ($(LBITS),64) - PORT = Linux64 - ARCH = -DARCH_K8 - NETPLATFORM = anycpu - else - PORT = Linux32 - NETPLATFORM = x86 - endif - CSC = mcs - MONO = LD_LIBRARY_PATH=$(LIB_DIR):$(LD_LIBRARY_PATH) mono - endif - ifeq ($(OS),Darwin) # Assume Mac Os X - CCC = clang++ -fPIC -std=c++11 - LD_FLAGS = -lz - OR_TOOLS_LIBS = -L$(OR_ROOT)lib -lortools - CVRPTW_LIBS = -L$(OR_ROOT)lib -lcvrptw_lib -lortools - DIMACS_LIBS = -L$(OR_ROOT)lib -ldimacs -lortools - ARCH = -DARCH_K8 - PORT = MacOsX64 - CSC = mcs - MONO = DYLD_FALLBACK_LIBRARY_PATH=$(LIB_DIR):$(DYLD_LIBRARY_PATH) mono64 - NETPLATFORM = x64 - endif - O = o - E = - OBJ_OUT = -o # - EXE_OUT = -o # - DEL = rm -f - S = / - CPSEP = : - CLP_INC = -DUSE_CLP - CBC_INC = -DUSE_CBC - GLOP_INC = -DUSE_GLOP - BOP_INT = -DUSE_BOP - DEBUG = -O4 -DNDEBUG - CFLAGS = $(DEBUG) -I$(INC_DIR) -I$(INC_EX_DIR) $(ARCH) -Wno-deprecated \ - $(CBC_INC) $(CLP_INC) $(GLOP_INC) $(BOP_INC) + OS = $(shell uname -s) + ifeq ($(OS),Linux) + CCC = g++ -fPIC -std=c++0x + LD_FLAGS = -lz -lrt -lpthread + # Defines OR_TOOLS_TOP if it is not already defined. + OR_TOOLS_TOP ?= $(shell pwd) + LIB_PREFIX = -Wl,-rpath $(OR_TOOLS_TOP)/lib -L$(OR_TOOLS_TOP)/lib + OR_TOOLS_LIBS = $(LIB_PREFIX) -lortools + CVRPTW_LIBS = $(LIB_PREFIX) -lcvrptw_lib $(LIB_PREFIX) -lortools + DIMACS_LIBS = $(LIB_PREFIX) -ldimacs $(LIB_PREFIX) -lortools + LBITS = $(shell getconf LONG_BIT) + ifeq ($(LBITS),64) + PORT = Linux64 + ARCH = -DARCH_K8 + NETPLATFORM = anycpu + else + PORT = Linux32 + NETPLATFORM = x86 + endif + CSC = mcs + MONO = LD_LIBRARY_PATH=$(LIB_DIR):$(LD_LIBRARY_PATH) mono + endif + ifeq ($(OS),Darwin) # Assume Mac Os X + CCC = clang++ -fPIC -std=c++11 + LD_FLAGS = -lz + OR_TOOLS_LIBS = -L$(OR_ROOT)lib -lortools + CVRPTW_LIBS = -L$(OR_ROOT)lib -lcvrptw_lib -lortools + DIMACS_LIBS = -L$(OR_ROOT)lib -ldimacs -lortools + ARCH = -DARCH_K8 + PORT = MacOsX64 + CSC = mcs + MONO = DYLD_FALLBACK_LIBRARY_PATH=$(LIB_DIR):$(DYLD_LIBRARY_PATH) mono64 + NETPLATFORM = x64 + endif + O = o + E = + OBJ_OUT = -o # + EXE_OUT = -o # + DEL = rm -f + S = / + CPSEP = : + CLP_INC = -DUSE_CLP + CBC_INC = -DUSE_CBC + GLOP_INC = -DUSE_GLOP + BOP_INT = -DUSE_BOP + DEBUG = -O4 -DNDEBUG + CFLAGS = $(DEBUG) -I$(INC_DIR) -I$(INC_EX_DIR) $(ARCH) -Wno-deprecated \ + $(CBC_INC) $(CLP_INC) $(GLOP_INC) $(BOP_INC) endif # Windows specific part. ifeq ("$(SYSTEM)","win") - ifeq ("$(Platform)", "X64") - PLATFORM = Win64 - endif - ifeq ("$(Platform)", "x64") - PLATFORM = Win64 - endif - ifeq ("$(PLATFORM)", "Win64") - PORT = VisualStudio$(VISUAL_STUDIO)-64b - NETPLATFORM = x64 - else - PORT = VisualStudio$(VISUAL_STUDIO)-32b - NETPLATFORM = x86 - endif - CLP_INC = -DUSE_CLP - CBC_INC = -DUSE_CBC - GLOP_INC = -DUSE_GLOP - BOP_INC = -DUSE_BOP - CFLAGS= /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -nologo $(DEBUG) \ - $(CBC_INC) $(CLP_INC) /D__WIN32__ /I$(INC_DIR)\\src\\windows \ - /DGFLAGS_DLL_DECL= /DGFLAGS_DLL_DECLARE_FLAG= /DGFLAGS_DLL_DEFINE_FLAG= \ - /I$(INC_DIR) /I$(INC_EX_DIR) /D $(GLOP_INC) $(BOP_INC) - LD_FLAGS = psapi.lib ws2_32.lib - OR_TOOLS_LIBS = lib\\ortools.lib - CVRPTW_LIBS = lib\\cvrptw_lib.lib lib\\ortools.lib - DIMACS_LIBS = lib\\dimacs.lib lib\\ortools.lib - O=obj - E=.exe - OBJ_OUT = /Fo - EXE_OUT = /Fe - DEL = del - S = \\ - CPSEP = ; - DEBUG=/O2 -DNDEBUG - CCC=cl /EHsc /MD /nologo - CSC=csc - MONO= + ifeq ("$(Platform)", "X64") + PLATFORM = Win64 + endif + ifeq ("$(Platform)", "x64") + PLATFORM = Win64 + endif + ifeq ("$(PLATFORM)", "Win64") + PORT = VisualStudio$(VISUAL_STUDIO)-64b + NETPLATFORM = x64 + else + PORT = VisualStudio$(VISUAL_STUDIO)-32b + NETPLATFORM = x86 + endif + CLP_INC = -DUSE_CLP + CBC_INC = -DUSE_CBC + GLOP_INC = -DUSE_GLOP + BOP_INC = -DUSE_BOP + CFLAGS= /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -nologo $(DEBUG) \ + $(CBC_INC) $(CLP_INC) /D__WIN32__ /I$(INC_DIR)\\src\\windows \ + /DGFLAGS_DLL_DECL= /DGFLAGS_DLL_DECLARE_FLAG= /DGFLAGS_DLL_DEFINE_FLAG= \ + /I$(INC_DIR) /I$(INC_EX_DIR) /D $(GLOP_INC) $(BOP_INC) + LD_FLAGS = psapi.lib ws2_32.lib + OR_TOOLS_LIBS = lib\\ortools.lib + CVRPTW_LIBS = lib\\cvrptw_lib.lib lib\\ortools.lib + DIMACS_LIBS = lib\\dimacs.lib lib\\ortools.lib + O=obj + E=.exe + OBJ_OUT = /Fo + EXE_OUT = /Fe + DEL = del + S = \\ + CPSEP = ; + DEBUG=/O2 -DNDEBUG + CCC=cl /EHsc /MD /nologo + CSC=csc + MONO= endif -.PHONY: all clean +.PHONY: all clean test all: \ $(CPP_BIN_DIR)$Scostas_array$E \ @@ -165,21 +165,26 @@ clean: $(DEL) $(CPP_BIN_DIR)$S* $(DEL) $(OBJ_DIR)$S*$O -test: - $(CPP_BIN_DIR)$Scostas_array$E - $(CPP_BIN_DIR)$Scryptarithm$E - $(CPP_BIN_DIR)$Scvrp_disjoint_tw$E - $(CPP_BIN_DIR)$Scvrptw$E +test_cc: $(CPP_BIN_DIR)$Sgolomb$E $(CPP_BIN_DIR)$Sgolomb$E - $(CPP_BIN_DIR)$Sjobshop$E --data_file examples$Sdata$Syn1.txt - $(CPP_BIN_DIR)$Smagic_square$E - $(CPP_BIN_DIR)$Snqueens$E - $(CPP_BIN_DIR)$Stsp$E - $(CPP_BIN_DIR)$Slinear_assignment_api$E - $(CPP_BIN_DIR)$Slinear_programming$E - $(CPP_BIN_DIR)$Slinear_solver_protocol_buffers$E - $(CPP_BIN_DIR)$Sinteger_programming$E - $(CPP_BIN_DIR)$Sflow_api$E + +test_java: EX:=Tsp +test_java: + javac -d $(OBJ_DIR) -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar $(JAVA_EX_DIR)$Sgoogle$Sortools$Ssamples$S$(EX).java + java -Djava.library.path=$(LIB_DIR) -cp $(OBJ_DIR)$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar com.google.ortools.samples.$(EX) $(ARGS) + +test_cs: EX:=csflow +test_cs: + $(CSC) $Starget:exe $Sout:$(CS_BIN_DIR)$S$(EX).exe /platform:$(NETPLATFORM) /lib:$(CS_BIN_DIR) /r:Google.OrTools.dll /r:Google.Protobuf.dll $(CS_EX_DIR)$S$(EX).cs + $(MONO) $(CS_BIN_DIR)$S$(EX)$(CLR_EXE_SUFFIX).exe $(ARGS) + +test: test_cc test_java test_cs + + +#test_csharp: +# make rcs EX=csflow + + # Constraint Programming and Routing examples. @@ -386,4 +391,4 @@ printport: -include $(OR_ROOT)Makefile.user -print-% : ; @echo $* = $($*) +print-% : ; @echo $* = $($*)