From 04001db647d43322996547845929194012814d3e Mon Sep 17 00:00:00 2001 From: Mizux Seiha Date: Wed, 30 Mar 2022 09:35:51 +0200 Subject: [PATCH] make: cleanup --- makefiles/Makefile.archive.mk | 8 +- makefiles/Makefile.dotnet.mk | 307 +++++++++++++++------------------- makefiles/Makefile.java.mk | 269 +++++++++++++++-------------- makefiles/Makefile.port.mk | 238 +------------------------- makefiles/Makefile.python.mk | 177 ++++++++------------ 5 files changed, 349 insertions(+), 650 deletions(-) diff --git a/makefiles/Makefile.archive.mk b/makefiles/Makefile.archive.mk index b82e7f7fe3..49fe983c5e 100644 --- a/makefiles/Makefile.archive.mk +++ b/makefiles/Makefile.archive.mk @@ -205,12 +205,12 @@ $(FZ_INSTALL_DIR)$(ARCHIVE_EXT): fz | $(TEMP_FZ_DIR) -$(DELREC) $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sshare/eigen3 -$(DELREC) $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sshare/man ifeq ($(PLATFORM),WIN64) - $(COPY) "$(LIB_DIR)$S$(LIB_PREFIX)flatzinc.$L*" "$(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Slib" + $(COPY) "lib$S$(LIB_PREFIX)flatzinc.$L*" "$(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Slib" else - $(COPY) $(LIB_DIR)*$S$(LIB_PREFIX)flatzinc*.$L* "$(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Slib" + $(COPY) lib*$S$(LIB_PREFIX)flatzinc*.$L* "$(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Slib" endif - $(COPY) $(BIN_DIR)$Sfz$E $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sbin$S$(FZ_EXE) - $(COPY) $(BIN_DIR)$Sparser_main$E $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sbin$Sparser-or-tools$E + $(COPY) bin$Sfz$E $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sbin$S$(FZ_EXE) + $(COPY) bin$Sparser_main$E $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sbin$Sparser-or-tools$E -$(MKDIR_P) $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sshare -$(MKDIR) $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sshare$Sminizinc $(COPY) ortools$Sflatzinc$Smznlib$S* $(TEMP_FZ_DIR)$S$(FZ_INSTALL_DIR)$Sshare$Sminizinc diff --git a/makefiles/Makefile.dotnet.mk b/makefiles/Makefile.dotnet.mk index 74ea0aa341..0afff31828 100644 --- a/makefiles/Makefile.dotnet.mk +++ b/makefiles/Makefile.dotnet.mk @@ -21,7 +21,7 @@ check_dotnet: dotnet else # HAS_DOTNET=ON -DOTNET_BUILD_DIR = $(BUILD_DIR)$Sdotnet +DOTNET_BUILD_PATH = $(BUILD_DIR)$Sdotnet # All libraries and dependencies TEMP_DOTNET_DIR = temp_dotnet @@ -38,10 +38,14 @@ DOTNET_ORTOOLS_ASSEMBLY_NAME := Google.OrTools # OR Tools unique library. dotnet: $(MAKE) third_party BUILD_DOTNET=ON - cmake --build dependencies --target install --config $(BUILD_TYPE) -j $(JOBS) -v + cmake --build $(BUILD_DIR) --target install --config $(BUILD_TYPE) -j $(JOBS) -v -temp_dotnet: - mkdir temp_dotnet +$(TEMP_DOTNET_DIR): + $(MKDIR) $(TEMP_DOTNET_DIR) + +package_dotnet: dotnet + -$(DEL) $.*pkg + $(COPY) $(DOTNET_BUILD_PATH)$Spackages$S*.*pkg . ################### ## .NET SOURCE ## @@ -54,7 +58,7 @@ SOURCE_PROJECT_DIR := $(subst /$(SOURCE_NAME).cs,, $(SOURCE_PROJECT_DIR)) SOURCE_PROJECT_PATH = $(subst /,$S,$(SOURCE_PROJECT_DIR)) .PHONY: build # Build a .Net C# program. -build: $(SOURCE) $(SOURCE)proj $(DOTNET_ORTOOLS_NUPKG) +build: $(SOURCE) $(SOURCE)proj dotnet cd $(SOURCE_PROJECT_PATH) && "$(DOTNET_BIN)" build -c Release $(ARGS) cd $(SOURCE_PROJECT_PATH) && "$(DOTNET_BIN)" pack -c Release @@ -67,111 +71,113 @@ run_test: build cd $(SOURCE_PROJECT_PATH) && "$(DOTNET_BIN)" test --no-build -c Release $(ARGS) endif -############################# -## .NET Examples/Samples ## -############################# -DOTNET_SAMPLES := algorithms graph constraint_solver linear_solver sat +################################### +## .NET Samples/Examples/Tests ## +################################### +# Samples define dotnet-sample-target = -$$(TEMP_DOTNET_DIR)/$1: | $$(TEMP_DOTNET_DIR) - -$$(MKDIR) $$(TEMP_DOTNET_DIR)$$S$1 +$(TEMP_DOTNET_DIR)/$1: | $(TEMP_DOTNET_DIR) + -$(MKDIR) $(TEMP_DOTNET_DIR)$S$1 -$$(TEMP_DOTNET_DIR)/$1/%: \ - $$(SRC_DIR)/ortools/$1/samples/%.cs \ - | $$(TEMP_DOTNET_DIR)/$1 - -$$(MKDIR) $$(TEMP_DOTNET_DIR)$$S$1$$S$$* +$(TEMP_DOTNET_DIR)/$1/%: \ + $(SRC_DIR)/ortools/$1/samples/%.cs \ + | $(TEMP_DOTNET_DIR)/$1 + -$(MKDIR) $(TEMP_DOTNET_DIR)$S$1$S$$* -$$(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ +$(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ $${SRC_DIR}/ortools/dotnet/Sample.csproj.in \ - | $$(TEMP_DOTNET_DIR)/$1/% - $$(SED) -e "s/@DOTNET_PACKAGES_DIR@/..\/..\/..\/$(BUILD_DIR)\/dotnet\/packages/" \ - ortools$$Sdotnet$$SSample.csproj.in \ - > $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@DOTNET_PROJECT@/$$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj + | $(TEMP_DOTNET_DIR)/$1/% + $(SED) -e "s/@DOTNET_PACKAGES_DIR@/..\/..\/..\/$(BUILD_DIR)\/dotnet\/packages/" \ + ortools$Sdotnet$SSample.csproj.in \ + > $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@DOTNET_PROJECT@/$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj -$$(TEMP_DOTNET_DIR)/$1/%/%.cs: \ - $$(SRC_DIR)/ortools/$1/samples/%.cs \ - | $$(TEMP_DOTNET_DIR)/$1/% - $$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.cs \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$* +$(TEMP_DOTNET_DIR)/$1/%/%.cs: \ + $(SRC_DIR)/ortools/$1/samples/%.cs \ + | $(TEMP_DOTNET_DIR)/$1/% + $(COPY) $(SRC_DIR)$Sortools$S$1$Ssamples$S$$*.cs \ + $(TEMP_DOTNET_DIR)$S$1$S$$* rdotnet_%: \ - $(DOTNET_ORTOOLS_NUPKG) \ - $$(TEMP_DOTNET_DIR)/$1/%/%.csproj \ - $$(TEMP_DOTNET_DIR)/$1/%/%.cs \ + dotnet \ + $(TEMP_DOTNET_DIR)/$1/%/%.csproj \ + $(TEMP_DOTNET_DIR)/$1/%/%.cs \ FORCE - cd $$(TEMP_DOTNET_DIR)$$S$1$$S$$* && "$$(DOTNET_BIN)" build -c Release - cd $$(TEMP_DOTNET_DIR)$$S$1$$S$$* && "$$(DOTNET_BIN)" run --no-build --framework net6.0 -c Release $$(ARGS) + cd $(TEMP_DOTNET_DIR)$S$1$S$$* && "$(DOTNET_BIN)" build -c Release + cd $(TEMP_DOTNET_DIR)$S$1$S$$* && "$(DOTNET_BIN)" run --no-build --framework net6.0 -c Release $(ARGS) endef +DOTNET_SAMPLES := algorithms graph constraint_solver linear_solver model_builder sat $(foreach sample,$(DOTNET_SAMPLES),$(eval $(call dotnet-sample-target,$(sample)))) -DOTNET_EXAMPLES := contrib dotnet - +# Examples define dotnet-example-target = -$$(TEMP_DOTNET_DIR)/$1: | $$(TEMP_DOTNET_DIR) - -$$(MKDIR) $$(TEMP_DOTNET_DIR)$$S$1 +$(TEMP_DOTNET_DIR)/$1: | $(TEMP_DOTNET_DIR) + -$(MKDIR) $(TEMP_DOTNET_DIR)$S$1 -$$(TEMP_DOTNET_DIR)/$1/%: \ - $$(SRC_DIR)/examples/$1/%.cs \ - | $$(TEMP_DOTNET_DIR)/$1 - -$$(MKDIR) $$(TEMP_DOTNET_DIR)$$S$1$$S$$* +$(TEMP_DOTNET_DIR)/$1/%: \ + $(SRC_DIR)/examples/$1/%.cs \ + | $(TEMP_DOTNET_DIR)/$1 + -$(MKDIR) $(TEMP_DOTNET_DIR)$S$1$S$$* -$$(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ +$(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ $${SRC_DIR}/ortools/dotnet/Sample.csproj.in \ - | $$(TEMP_DOTNET_DIR)/$1/% - $$(SED) -e "s/@DOTNET_PACKAGES_DIR@/..\/..\/..\/$(BUILD_DIR)\/dotnet\/packages/" \ - ortools$$Sdotnet$$SSample.csproj.in \ - > $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@DOTNET_PROJECT@/$$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj - $$(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$*$$S$$*.csproj + | $(TEMP_DOTNET_DIR)/$1/% + $(SED) -e "s/@DOTNET_PACKAGES_DIR@/..\/..\/..\/$(BUILD_DIR)\/dotnet\/packages/" \ + ortools$Sdotnet$SSample.csproj.in \ + > $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@DOTNET_PROJECT@/$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj + $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ + $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj -$$(TEMP_DOTNET_DIR)/$1/%/%.cs: \ - $$(SRC_DIR)/examples/$1/%.cs \ - | $$(TEMP_DOTNET_DIR)/$1/% - $$(COPY) $$(SRC_DIR)$$Sexamples$$S$1$$S$$*.cs \ - $$(TEMP_DOTNET_DIR)$$S$1$$S$$* +$(TEMP_DOTNET_DIR)/$1/%/%.cs: \ + $(SRC_DIR)/examples/$1/%.cs \ + | $(TEMP_DOTNET_DIR)/$1/% + $(COPY) $(SRC_DIR)$Sexamples$S$1$S$$*.cs \ + $(TEMP_DOTNET_DIR)$S$1$S$$* rdotnet_%: \ - $(DOTNET_ORTOOLS_NUPKG) \ - $$(TEMP_DOTNET_DIR)/$1/%/%.csproj \ - $$(TEMP_DOTNET_DIR)/$1/%/%.cs \ + dotnet \ + $(TEMP_DOTNET_DIR)/$1/%/%.csproj \ + $(TEMP_DOTNET_DIR)/$1/%/%.cs \ FORCE - cd $$(TEMP_DOTNET_DIR)$$S$1$$S$$* && "$$(DOTNET_BIN)" build -c Release - cd $$(TEMP_DOTNET_DIR)$$S$1$$S$$* && "$$(DOTNET_BIN)" run --no-build --framework net6.0 -c Release $$(ARGS) + cd $(TEMP_DOTNET_DIR)$S$1$S$$* && "$(DOTNET_BIN)" build -c Release + cd $(TEMP_DOTNET_DIR)$S$1$S$$* && "$(DOTNET_BIN)" run --no-build --framework net6.0 -c Release $(ARGS) endef +DOTNET_EXAMPLES := contrib dotnet $(foreach example,$(DOTNET_EXAMPLES),$(eval $(call dotnet-example-target,$(example)))) +# Tests DOTNET_TESTS := tests $(TEMP_DOTNET_DIR)/tests: | $(TEMP_DOTNET_DIR) @@ -214,16 +220,17 @@ $(TEMP_DOTNET_DIR)/tests/%/%.cs: \ $(TEMP_DOTNET_DIR)$Stests$S$* rdotnet_%: \ - $(DOTNET_ORTOOLS_NUPKG) \ + dotnet \ $(TEMP_DOTNET_DIR)/tests/%/%.cs \ $(TEMP_DOTNET_DIR)/tests/%/%.csproj \ FORCE cd $(TEMP_DOTNET_DIR)$Stests$S$* && "$(DOTNET_BIN)" build -c Release cd $(TEMP_DOTNET_DIR)$Stests$S$* && "$(DOTNET_BIN)" test --no-build -c Release $(ARGS) -############################# -## .NET Examples/Samples ## -############################# +#################### +## Test targets ## +#################### + .PHONY: test_dotnet_algorithms_samples # Build and Run all .Net LP Samples (located in ortools/algorithms/samples) test_dotnet_algorithms_samples: \ rdotnet_Knapsack @@ -473,62 +480,62 @@ $(TEMP_DOTNET_DIR)/ortools_examples/examples/data: | $(TEMP_DOTNET_DIR)/ortools_ $(MKDIR) $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdata define dotnet-sample-archive = -$$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ +$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ ortools/$1/samples/%.cs \ - | $$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet - $$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.cs \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet - $$(COPY) ortools$$Sdotnet$$SSample.csproj.in \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + | $(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet + $(COPY) $(SRC_DIR)$Sortools$S$1$Ssamples$S$$*.cs \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet + $(COPY) ortools$Sdotnet$SSample.csproj.in \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_PACKAGES_DIR@/./' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $(SED) -i -e 's/@DOTNET_PROJECT@/$$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@DOTNET_PROJECT@/$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj endef DOTNET_SAMPLES := algorithms graph constraint_solver linear_solver sat $(foreach sample,$(DOTNET_SAMPLES),$(eval $(call dotnet-sample-archive,$(sample)))) define dotnet-example-archive = -$$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ +$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ examples/$1/%.cs \ - | $$(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet - $$(COPY) $$(SRC_DIR)$$Sexamples$$S$1$$S$$*.cs \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet - $$(COPY) ortools$$Sdotnet$$SSample.csproj.in \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + | $(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet + $(COPY) $(SRC_DIR)$Sexamples$S$1$S$$*.cs \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet + $(COPY) ortools$Sdotnet$SSample.csproj.in \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_PACKAGES_DIR@/./' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_TFM@/netcoreapp3.1;net6.0<\/TargetFrameworks>/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj - $(SED) -i -e 's/@DOTNET_PROJECT@/$$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj + $(SED) -i -e 's/@DOTNET_PROJECT@/$(DOTNET_ORTOOLS_ASSEMBLY_NAME)/' \ + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@SAMPLE_NAME@/$$*/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ - $$(TEMP_DOTNET_DIR)$$Sortools_examples$$Sexamples$$Sdotnet$$S$$*.csproj + $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj endef DOTNET_EXAMPLES := contrib dotnet @@ -565,17 +572,13 @@ endif ## Nuget artifact ## ###################### -package_dotnet: cc - -$(DEL) $.*pkg - $(COPY) $(DOTNET_BUILD_DIR)$Spackages$S*.*pkg . - .PHONY: nuget_archive # Build .Net "Google.OrTools" Nuget Package nuget_archive: dotnet | $(TEMP_DOTNET_DIR) "$(DOTNET_BIN)" publish $(DOTNET_BUILD_ARGS) --no-build --no-dependencies --no-restore -f net6.0 \ -o "..$S..$S..$S$(TEMP_DOTNET_DIR)" \ ortools$Sdotnet$S$(DOTNET_ORTOOLS_ASSEMBLY_NAME)$S$(DOTNET_ORTOOLS_ASSEMBLY_NAME).csproj "$(DOTNET_BIN)" pack -c Release $(NUGET_PACK_ARGS) --no-build \ - -o "..$S..$S..$S$(BIN_DIR)" \ + -o "..$S..$S.." \ ortools$Sdotnet .PHONY: nuget_upload # Upload Nuget Package @@ -590,43 +593,8 @@ endif # HAS_DOTNET=ON ################ .PHONY: clean_dotnet # Clean files clean_dotnet: - -$(DELREC) ortools$Sdotnet$SCreateSigningKey$Sbin - -$(DELREC) ortools$Sdotnet$SCreateSigningKey$Sobj # -$(DEL) $(DOTNET_ORTOOLS_SNK_PATH) -$(DELREC) $(TEMP_DOTNET_DIR) - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*csharp_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*.cs - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*csharp_wrap* - -$(DEL) $(OBJ_DIR)$Sswig$S*_csharp_wrap.$O -# -$(DEL) $(LIB_DIR)$S$(DOTNET_ORTOOLS_NATIVE).* -# -$(DEL) $(BIN_DIR)$S$(DOTNET_ORTOOLS_ASSEMBLY_NAME).* - -$(DELREC) $(DOTNET_EX_PATH)$Sbin - -$(DELREC) $(DOTNET_EX_PATH)$Sobj - -$(DELREC) $(CONTRIB_EX_PATH)$Sbin - -$(DELREC) $(CONTRIB_EX_PATH)$Sobj - -$(DELREC) $(TEST_PATH)$Sbin - -$(DELREC) $(TEST_PATH)$Sobj - -$(DELREC) ortools$Salgorithms$Ssamples$Sbin - -$(DELREC) ortools$Salgorithms$Ssamples$Sobj - -$(DELREC) ortools$Sconstraint_solver$Ssamples$Sbin - -$(DELREC) ortools$Sconstraint_solver$Ssamples$Sobj - -$(DELREC) ortools$Sgraph$Ssamples$Sbin - -$(DELREC) ortools$Sgraph$Ssamples$Sobj - -$(DELREC) ortools$Slinear_solver$Ssamples$Sbin - -$(DELREC) ortools$Slinear_solver$Ssamples$Sobj - -$(DELREC) ortools$Ssat$Ssamples$Sbin - -$(DELREC) ortools$Ssat$Ssamples$Sobj -$(DEL) *.nupkg -$(DEL) *.snupkg -@"$(DOTNET_BIN)" nuget locals all --clear @@ -648,6 +616,7 @@ detect_dotnet: @echo DOTNET_ORTOOLS_RUNTIME_NUPKG = $(DOTNET_ORTOOLS_RUNTIME_NUPKG) @echo DOTNET_ORTOOLS_ASSEMBLY_NAME = $(DOTNET_ORTOOLS_ASSEMBLY_NAME) @echo DOTNET_ORTOOLS_NUPKG = $(DOTNET_ORTOOLS_NUPKG) + @echo INSTALL_DOTNET_NAME = $(INSTALL_DOTNET_NAME) ifeq ($(PLATFORM),WIN64) @echo off & echo( else diff --git a/makefiles/Makefile.java.mk b/makefiles/Makefile.java.mk index ec74ef45a6..3e2398c8af 100644 --- a/makefiles/Makefile.java.mk +++ b/makefiles/Makefile.java.mk @@ -29,7 +29,7 @@ package_java: java else # HAS_JAVA=ON -JAVA_BUILD_DIR = $(BUILD_DIR)$Sjava +JAVA_BUILD_PATH = $(BUILD_DIR)$Sjava TEMP_JAVA_DIR = temp_java JAVA_ORTOOLS_PACKAGE := com.google.ortools @@ -42,7 +42,7 @@ JAVA_ORTOOLS_PACKAGE := com.google.ortools # OR Tools unique library. java: $(MAKE) third_party BUILD_JAVA=ON - cmake --build dependencies --target install --config $(BUILD_TYPE) -j $(JOBS) -v + cmake --build $(BUILD_DIR) --target install --config $(BUILD_TYPE) -j $(JOBS) -v # Detect RuntimeIDentifier ifeq ($(OS),Windows) @@ -68,120 +68,142 @@ JAVA_PATH := $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Ssrc$Smain $(TEMP_JAVA_DIR): $(MKDIR) $(TEMP_JAVA_DIR) -package_java: cc +package_java: java -$(DEL) *.jar - $(COPY) $(JAVA_BUILD_DIR)$Sortools-java$Starget$S*.jar . - $(COPY) $(JAVA_BUILD_DIR)$Sortools-$(JAVA_NATIVE_IDENTIFIER)$Starget$S*.jar . + $(COPY) $(JAVA_BUILD_PATH)$Sortools-java$Starget$S*.jar . + $(COPY) $(JAVA_BUILD_PATH)$Sortools-$(JAVA_NATIVE_IDENTIFIER)$Starget$S*.jar . +################### +## Java SOURCE ## +################### +ifeq ($(SOURCE_SUFFIX),.java) # Those rules will be used if SOURCE contain a .java file -############################# -## Java Examples/Samples ## -############################# +SOURCE_PROJECT_DIR := $(SOURCE) +SOURCE_PROJECT_DIR := $(subst /$(SOURCE_NAME).java,, $(SOURCE_PROJECT_DIR)) +SOURCE_PROJECT_PATH = $(subst /,$S,$(SOURCE_PROJECT_DIR)) + +.PHONY: build # Build a Java program. +build: $(SOURCE) #$(SOURCE_PROJECT_DIR)/pom.xml java + $(warning This is not supported.\ + Prefer to place your java file in a samples/ or examples/ java directory\ + and call "make rjava_$(SOURCE_NAME)" target instead.) +# cd $(SOURCE_PROJECT_PATH) && "$(MVN_BIN)" compile -b $(ARGS) +# cd $(SOURCE_PROJECT_PATH) && "$(MVN_BIN)" pack -c Release + +.PHONY: run # Run a Java program. +run: build +endif + +################################### +## Java Samples/Examples/Tests ## +################################### JAVA_SRC_DIR := src/main/java/com/google/ortools JAVA_SRC_PATH := $(subst /,$S,$(JAVA_SRC_DIR)) JAVA_TEST_DIR := src/test/java/com/google/ortools JAVA_TEST_PATH := $(subst /,$S,$(JAVA_TEST_DIR)) -JAVA_SAMPLES := algorithms graph constraint_solver linear_solver sat model_builder - +# Samples define java-sample-target = -$$(TEMP_JAVA_DIR)/$1: | $$(TEMP_JAVA_DIR) - -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1 +$(TEMP_JAVA_DIR)/$1: | $(TEMP_JAVA_DIR) + -$(MKDIR) $(TEMP_JAVA_DIR)$S$1 -$$(TEMP_JAVA_DIR)/$1/%: \ - $$(SRC_DIR)/ortools/$1/samples/%.java \ - | $$(TEMP_JAVA_DIR)/$1 - -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1$$S$$* +$(TEMP_JAVA_DIR)/$1/%: \ + $(SRC_DIR)/ortools/$1/samples/%.java \ + | $(TEMP_JAVA_DIR)/$1 + -$(MKDIR) $(TEMP_JAVA_DIR)$S$1$S$$* -$$(TEMP_JAVA_DIR)/$1/%/pom.xml: \ - $${SRC_DIR}/ortools/java/pom-sample.xml.in \ - | $$(TEMP_JAVA_DIR)/$1/% - $$(SED) -e "s/@JAVA_PACKAGE@/$$(JAVA_ORTOOLS_PACKAGE)/" \ - ortools$$Sjava$$Spom-sample.xml.in \ - > $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_SAMPLE_PROJECT@/$$*/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_MAIN_CLASS@/com.google.ortools.$2.samples.$$*/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_PROJECT@/$$(JAVA_ORTOOLS_PROJECT)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml +$(TEMP_JAVA_DIR)/$1/%/pom.xml: \ + ${SRC_DIR}/ortools/java/pom-sample.xml.in \ + | $(TEMP_JAVA_DIR)/$1/% + $(SED) -e "s/@JAVA_PACKAGE@/$(JAVA_ORTOOLS_PACKAGE)/" \ + ortools$Sjava$Spom-sample.xml.in \ + > $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_SAMPLE_PROJECT@/$$*/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_MAIN_CLASS@/com.google.ortools.$2.samples.$$*/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml -$$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java: \ - $$(SRC_DIR)/ortools/$1/samples/%.java \ - | $$(TEMP_JAVA_DIR)/$1/% - $$(MKDIR_P) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.java \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) - -rjava_%: \ - $$(TEMP_JAVA_DIR)/$1/%/pom.xml \ - $$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java \ - FORCE - cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" compile -B - cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" exec:java $$(ARGS) -endef - -$(foreach sample,$(JAVA_SAMPLES),$(eval $(call java-sample-target,$(sample),$(subst _,,$(sample))))) - -JAVA_EXAMPLES := contrib java - -define java-example-target = -$$(TEMP_JAVA_DIR)/$1: | $$(TEMP_JAVA_DIR) - -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1 - -$$(TEMP_JAVA_DIR)/$1/%: \ - $$(SRC_DIR)/examples/$1/%.java \ - | $$(TEMP_JAVA_DIR)/$1 - -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1$$S$$* - -$$(TEMP_JAVA_DIR)/$1/%/pom.xml: \ - $${SRC_DIR}/ortools/java/pom-sample.xml.in \ - | $$(TEMP_JAVA_DIR)/$1/% - $$(SED) -e "s/@JAVA_PACKAGE@/$$(JAVA_ORTOOLS_PACKAGE)/" \ - ortools$$Sjava$$Spom-sample.xml.in \ - > $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_SAMPLE_PROJECT@/$$*/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_MAIN_CLASS@/com.google.ortools.$1.$$*/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$$(OR_TOOLS_MAJOR)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$$(OR_TOOLS_MINOR)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$$(GIT_REVISION)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - $$(SED) -i -e 's/@JAVA_PROJECT@/$$(JAVA_ORTOOLS_PROJECT)/' \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml - -$$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java: \ - $$(SRC_DIR)/examples/$1/%.java \ - | $$(TEMP_JAVA_DIR)/$1/% - $$(MKDIR_P) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(SRC_DIR)$$Sexamples$$S$1$$S$$*.java \ - $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) +$(TEMP_JAVA_DIR)/$1/%/$(JAVA_SRC_DIR)/%.java: \ + $(SRC_DIR)/ortools/$1/samples/%.java \ + | $(TEMP_JAVA_DIR)/$1/% + $(MKDIR_P) $(TEMP_JAVA_DIR)$S$1$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(SRC_DIR)$Sortools$S$1$Ssamples$S$$*.java \ + $(TEMP_JAVA_DIR)$S$1$S$$*$S$(JAVA_SRC_PATH) rjava_%: \ java \ - $$(TEMP_JAVA_DIR)/$1/%/pom.xml \ - $$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java \ + $(TEMP_JAVA_DIR)/$1/%/pom.xml \ + $(TEMP_JAVA_DIR)/$1/%/$(JAVA_SRC_DIR)/%.java \ FORCE - cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" compile -B - cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" exec:java $$(ARGS) + cd $(TEMP_JAVA_DIR)$S$1$S$$* && "$(MVN_BIN)" compile -B + cd $(TEMP_JAVA_DIR)$S$1$S$$* && "$(MVN_BIN)" exec:java $(ARGS) endef +JAVA_SAMPLES := algorithms graph constraint_solver linear_solver model_builder sat +$(foreach sample,$(JAVA_SAMPLES),$(eval $(call java-sample-target,$(sample),$(subst _,,$(sample))))) + +# Examples +define java-example-target = +$(TEMP_JAVA_DIR)/$1: | $(TEMP_JAVA_DIR) + -$(MKDIR) $(TEMP_JAVA_DIR)$S$1 + +$(TEMP_JAVA_DIR)/$1/%: \ + $(SRC_DIR)/examples/$1/%.java \ + | $(TEMP_JAVA_DIR)/$1 + -$(MKDIR) $(TEMP_JAVA_DIR)$S$1$S$$* + +$(TEMP_JAVA_DIR)/$1/%/pom.xml: \ + ${SRC_DIR}/ortools/java/pom-sample.xml.in \ + | $(TEMP_JAVA_DIR)/$1/% + $(SED) -e "s/@JAVA_PACKAGE@/$(JAVA_ORTOOLS_PACKAGE)/" \ + ortools$Sjava$Spom-sample.xml.in \ + > $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_SAMPLE_PROJECT@/$$*/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_MAIN_CLASS@/com.google.ortools.$1.$$*/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_MAJOR@/$(OR_TOOLS_MAJOR)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + $(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \ + $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml + +$(TEMP_JAVA_DIR)/$1/%/$(JAVA_SRC_DIR)/%.java: \ + $(SRC_DIR)/examples/$1/%.java \ + | $(TEMP_JAVA_DIR)/$1/% + $(MKDIR_P) $(TEMP_JAVA_DIR)$S$1$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(SRC_DIR)$Sexamples$S$1$S$$*.java \ + $(TEMP_JAVA_DIR)$S$1$S$$*$S$(JAVA_SRC_PATH) + +rjava_%: \ + java \ + $(TEMP_JAVA_DIR)/$1/%/pom.xml \ + $(TEMP_JAVA_DIR)/$1/%/$(JAVA_SRC_DIR)/%.java \ + FORCE + cd $(TEMP_JAVA_DIR)$S$1$S$$* && "$(MVN_BIN)" compile -B + cd $(TEMP_JAVA_DIR)$S$1$S$$* && "$(MVN_BIN)" exec:java $(ARGS) +endef + +JAVA_EXAMPLES := contrib java $(foreach example,$(JAVA_EXAMPLES),$(eval $(call java-example-target,$(example)))) +# Tests JAVA_TESTS := tests $(TEMP_JAVA_DIR)/tests: | $(TEMP_JAVA_DIR) @@ -226,9 +248,10 @@ rjava_%: \ cd $(TEMP_JAVA_DIR)$Stests$S$* && "$(MVN_BIN)" compile -B cd $(TEMP_JAVA_DIR)$Stests$S$* && "$(MVN_BIN)" test $(ARGS) -############################# -## Java Examples/Samples ## -############################# +#################### +## Test targets ## +#################### + .PHONY: test_java_algorithms_samples # Build and Run all Java Algorithms Samples (located in ortools/algorithms/samples) test_java_algorithms_samples: \ rjava_Knapsack @@ -401,8 +424,6 @@ publish_java: java ####################### ## EXAMPLE ARCHIVE ## ####################### -TEMP_JAVA_DIR=temp_java - $(TEMP_JAVA_DIR)/ortools_examples: | $(TEMP_JAVA_DIR) $(MKDIR) $(TEMP_JAVA_DIR)$Sortools_examples @@ -416,29 +437,29 @@ $(TEMP_JAVA_DIR)/ortools_examples/examples/data: | $(TEMP_JAVA_DIR)/ortools_exam $(MKDIR) $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sdata define java-sample-archive = -$$(TEMP_JAVA_DIR)/ortools_examples/examples/java/%/pom.xml: \ - $$(TEMP_JAVA_DIR)/$1/%/pom.xml \ +$(TEMP_JAVA_DIR)/ortools_examples/examples/java/%/pom.xml: \ + $(TEMP_JAVA_DIR)/$1/%/pom.xml \ ortools/$1/samples/%.java \ - | $$(TEMP_JAVA_DIR)/ortools_examples/examples/java - -$$(MKDIR_P) $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.java \ - $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml \ - $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$* + | $(TEMP_JAVA_DIR)/ortools_examples/examples/java + -$(MKDIR_P) $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(SRC_DIR)$Sortools$S$1$Ssamples$S$$*.java \ + $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml \ + $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$* endef $(foreach sample,$(JAVA_SAMPLES),$(eval $(call java-sample-archive,$(sample)))) define java-example-archive = -$$(TEMP_JAVA_DIR)/ortools_examples/examples/java/%/pom.xml: \ - $$(TEMP_JAVA_DIR)/$1/%/pom.xml \ +$(TEMP_JAVA_DIR)/ortools_examples/examples/java/%/pom.xml: \ + $(TEMP_JAVA_DIR)/$1/%/pom.xml \ examples/$1/%.java \ - | $$(TEMP_JAVA_DIR)/ortools_examples/examples/java - -$$(MKDIR_P) $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(SRC_DIR)$$Sexamples$$S$1$$S$$*.java \ - $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH) - $$(COPY) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml \ - $$(TEMP_JAVA_DIR)$$Sortools_examples$$Sexamples$$Sjava$$S$$* + | $(TEMP_JAVA_DIR)/ortools_examples/examples/java + -$(MKDIR_P) $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(SRC_DIR)$Sexamples$S$1$S$$*.java \ + $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$*$S$(JAVA_SRC_PATH) + $(COPY) $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml \ + $(TEMP_JAVA_DIR)$Sortools_examples$Sexamples$Sjava$S$$* endef $(foreach example,$(JAVA_EXAMPLES),$(eval $(call java-example-archive,$(example)))) @@ -477,21 +498,8 @@ endif # HAS_JAVA=ON ################ .PHONY: clean_java # Clean Java output from previous build. clean_java: - -$(DELREC) $(GEN_PATH)$Sjava - -$(DELREC) $(OBJ_DIR)$Scom - -$(DEL) $(CLASS_DIR)$S*.class - -$(DELREC) $(CLASS_DIR) - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*java_wrap* - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*java_wrap* - -$(DEL) $(OBJ_DIR)$Sswig$S*_java_wrap.$O - -$(DEL) $(LIB_DIR)$S*.jar - -$(DEL) *.jar -$(DELREC) $(TEMP_JAVA_DIR) + -$(DEL) *.jar ############# ## DEBUG ## @@ -510,6 +518,7 @@ detect_java: @echo JAVA_ORTOOLS_PACKAGE = $(JAVA_ORTOOLS_PACKAGE) @echo JAVA_ORTOOLS_NATIVE_PROJECT = $(JAVA_ORTOOLS_NATIVE_PROJECT) @echo JAVA_ORTOOLS_PROJECT = $(JAVA_ORTOOLS_PROJECT) + @echo INSTALL_JAVA_NAME = $(INSTALL_JAVA_NAME) ifeq ($(PLATFORM),WIN64) @echo off & echo( else diff --git a/makefiles/Makefile.port.mk b/makefiles/Makefile.port.mk index bf064bb341..b3aa984c99 100644 --- a/makefiles/Makefile.port.mk +++ b/makefiles/Makefile.port.mk @@ -51,13 +51,6 @@ ifneq ($(PLATFORM),WIN64) $(error Please add "cmake" to your PATH) endif - ifdef UNIX_CPLEX_DIR - CPLEX_INC = -I$(UNIX_CPLEX_DIR)/cplex/include -DUSE_CPLEX - endif - ifdef UNIX_XPRESS_DIR - XPRESS_INC = -I$(UNIX_XPRESS_DIR)/include -DUSE_XPRESS -DXPRESS_PATH="$(UNIX_XPRESS_DIR)" - endif - # Compilation flags DEBUG = -O4 -DNDEBUG @@ -67,28 +60,6 @@ ifneq ($(PLATFORM),WIN64) CXX ?= g++ L = so - # This is needed to find libz.a - ZLIB_LNK = -lz - ifdef UNIX_GLPK_DIR - GLPK_LNK = $(UNIX_GLPK_DIR)/lib/libglpk.a - endif - ifdef UNIX_CPLEX_DIR - CPLEX_LNK = \ - -L$(UNIX_CPLEX_DIR)/cplex/lib/x86-64_linux/static_pic -lcplex \ - -lm -lpthread -ldl - endif - ifdef UNIX_XPRESS_DIR - XPRESS_LNK = -L$(UNIX_XPRESS_DIR)/lib -lxprs -lxprl - endif - - SYS_LNK = -lrt -lpthread -Wl,--no-as-needed -ldl - - PRE_LIB = -L$(OR_ROOT_FULL)/install/lib64 -L$(OR_ROOT_FULL)/install/lib -l - POST_LIB = - LINK_FLAGS = \ - -Wl,-rpath,'$$ORIGIN' \ - -Wl,-rpath,'$$ORIGIN/../lib64' \ - -Wl,-rpath,'$$ORIGIN/../lib' DISTRIBUTION_ID = $(shell lsb_release -i -s) DISTRIBUTION_NUMBER = $(shell lsb_release -r -s) DISTRIBUTION = $(DISTRIBUTION_ID)-$(DISTRIBUTION_NUMBER) @@ -145,54 +116,8 @@ ifneq ($(PLATFORM),WIN64) CXX ?= clang++ L = dylib - ZLIB_LNK = -lz - - ifdef UNIX_GLPK_DIR - GLPK_LNK = $(UNIX_GLPK_DIR)/lib/libglpk.a - endif - ifdef UNIX_CPLEX_DIR - CPLEX_LNK = \ - -force_load $(UNIX_CPLEX_DIR)/cplex/lib/x86-64_osx/static_pic/libcplex.a \ - -lm -lpthread -framework CoreFoundation -framework IOKit - endif - ifdef UNIX_XPRESS_DIR - XPRESS_LNK = -Wl,-rpath,$(UNIX_XPRESS_DIR)/lib -L$(UNIX_XPRESS_DIR)/lib -lxprs -lxprl - endif - SYS_LNK = - - PRE_LIB = -L$(OR_ROOT)lib -l - POST_LIB = - LINK_FLAGS = \ - -framework CoreFoundation \ - -Wl,-rpath,@loader_path \ - -Wl,-rpath,@loader_path/../lib \ - -Wl,-rpath,@loader_path/../dependencies/lib endif # ($(OS),Darwin) - CFLAGS = \ - $(DEBUG) \ - -I$(INC_DIR) \ - -I$(SRC_DIR) \ - -I$(GEN_DIR) \ - -Wno-deprecated \ - -DUSE_GLOP \ - -DUSE_BOP \ - -DUSE_PDLP \ - $(GLPK_INC) \ - $(CPLEX_INC) \ - $(XPRESS_INC) \ - -DOR_TOOLS_MAJOR=$(OR_TOOLS_MAJOR) \ - -DOR_TOOLS_MINOR=$(OR_TOOLS_MINOR) \ - -DOR_TOOLS_PATCH=$(GIT_REVISION) - LDFLAGS = \ - $(PRE_LIB)ortools$(POST_LIB) \ - $(ZLIB_LNK) \ - $(SYS_LNK) \ - $(LINK_FLAGS) \ - $(GLPK_LNK) \ - $(CPLEX_LNK) \ - $(XPRESS_LNK) - # language targets HAS_PYTHON ?= ON ifeq ($(PYTHON_VERSION),) @@ -259,12 +184,7 @@ else # Windows specific part. # Windows specific definitions LIB_PREFIX = - PRE_LIB = $(OR_ROOT)lib\\ - POST_LIB = .lib LIB_SUFFIX = lib - STATIC_PRE_LIB = $(OR_ROOT)lib\\ - STATIC_POST_LIB = .lib - STATIC_LIB_SUFFIX = lib O = obj L = lib @@ -302,135 +222,6 @@ else # Windows specific part. # Compilation macros. DEBUG=/O2 -DNDEBUG - CCC=cl /std:c++20 /EHsc /MD /nologo -nologo $(SYSCFLAGS) /D__WIN32__ /DPSAPI_VERSION=1 \ - /DNOMINMAX /DWIN32_LEAN_AND_MEAN=1 /D_CRT_SECURE_NO_WARNINGS - - # This is needed to find GLPK include files and libraries. - ifdef WINDOWS_GLPK_DIR - GLPK_INC = /I"$(WINDOWS_GLPK_DIR)\\include" /DUSE_GLPK - GLPK_LNK = "$(WINDOWS_GLPK_DIR)\\lib\\glpk.lib" - endif - # This is needed to find CPLEX include files and libraries. - ifdef WINDOWS_CPLEX_DIR - CPLEX_INC = /I"$(WINDOWS_CPLEX_DIR)\\cplex\\include" /DUSE_CPLEX - CPLEX_LNK = "$(WINDOWS_CPLEX_DIR)\\cplex\\lib\\x64_windows_msvc14\\stat_mda\\cplex$(WINDOWS_CPLEX_VERSION).lib" - endif - ifdef WINDOWS_XPRESS_DIR - XPRESS_INC = /I"$(WINDOWS_XPRESS_DIR)\\include" /DUSE_XPRESS /DXPRESS_PATH=\"$(WINDOWS_XPRESS_DIR)\" - XPRESS_LNK = "$(WINDOWS_XPRESS_DIR)\\lib\\xprs.lib" - endif - - SYS_LNK = psapi.lib ws2_32.lib shlwapi.lib - - CFLAGS = \ - $(DEBUG) \ - /I$(INC_DIR) \ - /I$(SRC_DIR) \ - /I$(GEN_DIR) \ - /DUSE_GLOP \ - /DUSE_BOP \ - /DUSE_PDLP \ - $(GLPK_INC) \ - $(CPLEX_INC) \ - $(XPRESS_INC) \ - /DOR_TOOLS_MAJOR=$(OR_TOOLS_MAJOR) \ - /DOR_TOOLS_MINOR=$(OR_TOOLS_MINOR) \ - /DOR_TOOLS_PATCH=$(GIT_REVISION) - ifneq ($(USE_COINOR),OFF) - COINOR_LNK = \ - $(PRE_LIB)CoinUtils.lib \ - $(PRE_LIB)Osi.lib \ - $(PRE_LIB)Clp.lib \ - $(PRE_LIB)OsiClp.lib \ - $(PRE_LIB)Cgl.lib \ - $(PRE_LIB)Cbc.lib \ - $(PRE_LIB)OsiCbc.lib \ - $(PRE_LIB)ClpSolver.lib \ - $(PRE_LIB)CbcSolver.lib - endif - ifneq ($(USE_SCIP),OFF) - SCIP_LNK = $(PRE_LIB)libscip.lib - endif - ABSL_LNK = \ - $(PRE_LIB)absl_bad_any_cast_impl.lib \ - $(PRE_LIB)absl_bad_optional_access.lib \ - $(PRE_LIB)absl_bad_variant_access.lib \ - $(PRE_LIB)absl_base.lib \ - $(PRE_LIB)absl_city.lib \ - $(PRE_LIB)absl_civil_time.lib \ - $(PRE_LIB)absl_cord.lib \ - $(PRE_LIB)absl_cordz_functions.lib \ - $(PRE_LIB)absl_cordz_handle.lib \ - $(PRE_LIB)absl_cordz_info.lib \ - $(PRE_LIB)absl_cordz_sample_token.lib \ - $(PRE_LIB)absl_cord_internal.lib \ - $(PRE_LIB)absl_debugging_internal.lib \ - $(PRE_LIB)absl_demangle_internal.lib \ - $(PRE_LIB)absl_examine_stack.lib \ - $(PRE_LIB)absl_exponential_biased.lib \ - $(PRE_LIB)absl_failure_signal_handler.lib \ - $(PRE_LIB)absl_flags.lib \ - $(PRE_LIB)absl_flags_commandlineflag.lib \ - $(PRE_LIB)absl_flags_commandlineflag_internal.lib \ - $(PRE_LIB)absl_flags_config.lib \ - $(PRE_LIB)absl_flags_internal.lib \ - $(PRE_LIB)absl_flags_marshalling.lib \ - $(PRE_LIB)absl_flags_parse.lib \ - $(PRE_LIB)absl_flags_private_handle_accessor.lib \ - $(PRE_LIB)absl_flags_program_name.lib \ - $(PRE_LIB)absl_flags_reflection.lib \ - $(PRE_LIB)absl_flags_usage.lib \ - $(PRE_LIB)absl_flags_usage_internal.lib \ - $(PRE_LIB)absl_graphcycles_internal.lib \ - $(PRE_LIB)absl_hash.lib \ - $(PRE_LIB)absl_hashtablez_sampler.lib \ - $(PRE_LIB)absl_int128.lib \ - $(PRE_LIB)absl_leak_check.lib \ - $(PRE_LIB)absl_leak_check_disable.lib \ - $(PRE_LIB)absl_log_severity.lib \ - $(PRE_LIB)absl_low_level_hash.lib \ - $(PRE_LIB)absl_malloc_internal.lib \ - $(PRE_LIB)absl_periodic_sampler.lib \ - $(PRE_LIB)absl_random_distributions.lib \ - $(PRE_LIB)absl_random_internal_distribution_test_util.lib \ - $(PRE_LIB)absl_random_internal_platform.lib \ - $(PRE_LIB)absl_random_internal_pool_urbg.lib \ - $(PRE_LIB)absl_random_internal_randen.lib \ - $(PRE_LIB)absl_random_internal_randen_hwaes.lib \ - $(PRE_LIB)absl_random_internal_randen_hwaes_impl.lib \ - $(PRE_LIB)absl_random_internal_randen_slow.lib \ - $(PRE_LIB)absl_random_internal_seed_material.lib \ - $(PRE_LIB)absl_random_seed_gen_exception.lib \ - $(PRE_LIB)absl_random_seed_sequences.lib \ - $(PRE_LIB)absl_raw_hash_set.lib \ - $(PRE_LIB)absl_raw_logging_internal.lib \ - $(PRE_LIB)absl_scoped_set_env.lib \ - $(PRE_LIB)absl_spinlock_wait.lib \ - $(PRE_LIB)absl_stacktrace.lib \ - $(PRE_LIB)absl_status.lib \ - $(PRE_LIB)absl_statusor.lib \ - $(PRE_LIB)absl_strerror.lib \ - $(PRE_LIB)absl_strings.lib \ - $(PRE_LIB)absl_strings_internal.lib \ - $(PRE_LIB)absl_str_format_internal.lib \ - $(PRE_LIB)absl_symbolize.lib \ - $(PRE_LIB)absl_synchronization.lib \ - $(PRE_LIB)absl_throw_delegate.lib \ - $(PRE_LIB)absl_time.lib \ - $(PRE_LIB)absl_time_zone.lib - - LDFLAGS = \ - $(PRE_LIB)ortools$(POST_LIB) \ - $(PRE_LIB)libprotobuf.lib \ - $(PRE_LIB)re2.lib \ - $(PRE_LIB)zlib.lib \ - $(ABSL_LNK) \ - $(COINOR_LNK) \ - $(SCIP_LNK) \ - $(SYS_LNK) \ - $(GLPK_LNK) \ - $(CPLEX_LNK) \ - $(XPRESS_LNK) # language targets HAS_PYTHON ?= ON @@ -468,33 +259,6 @@ SRC_DIR = $(OR_ROOT). BUILD_DIR = $(OR_ROOT)build_make INSTALL_DIR ?= $(OR_ROOT)install_make -GEN_DIR = $(OR_ROOT)ortools/gen -GEN_PATH = $(subst /,$S,$(GEN_DIR)) -INC_DIR = $(OR_ROOT)include -LIB_DIR = $(OR_ROOT)lib -FZ_EX_DIR = $(OR_ROOT)examples/flatzinc -FZ_EX_PATH = $(subst /,$S,$(FZ_EX_DIR)) - -# Python relevant directory -PYTHON_EX_DIR = $(OR_ROOT)examples/python -PYTHON_EX_PATH = $(subst /,$S,$(PYTHON_EX_DIR)) - -# Java relevant directory -JAVA_EX_DIR = $(OR_ROOT)examples/java -JAVA_EX_PATH = $(subst /,$S,$(JAVA_EX_DIR)) - -# .Net relevant directory -DOTNET_EX_DIR = $(OR_ROOT)examples/dotnet -DOTNET_EX_PATH = $(subst /,$S,$(DOTNET_EX_DIR)) - -# Contrib examples directory -CONTRIB_EX_DIR = $(OR_ROOT)examples/contrib -CONTRIB_EX_PATH = $(subst /,$S,$(CONTRIB_EX_DIR)) - -# Test examples directory -TEST_DIR = $(OR_ROOT)examples/tests -TEST_PATH = $(subst /,$S,$(TEST_DIR)) - # Get github revision level ifneq ($(wildcard .git),) ifneq ($(wildcard .git/shallow),) @@ -515,8 +279,8 @@ ifdef PRE_RELEASE OR_TOOLS_VERSION := $(OR_TOOLS_VERSION)-beta OR_TOOLS_SHORT_VERSION := $(OR_TOOLS_SHORT_VERSION)-beta endif -FZ_INSTALL_DIR = or-tools_flatzinc_$(PORT)_v$(OR_TOOLS_VERSION) +#FZ_INSTALL_NAME = or-tools_flatzinc_$(PORT)_v$(OR_TOOLS_VERSION) INSTALL_CPP_NAME = or-tools_cpp_$(PORT)_v$(OR_TOOLS_VERSION) INSTALL_DOTNET_NAME = or-tools_dotnet_$(PORT)_v$(OR_TOOLS_VERSION) INSTALL_JAVA_NAME = or-tools_java_$(PORT)_v$(OR_TOOLS_VERSION) diff --git a/makefiles/Makefile.python.mk b/makefiles/Makefile.python.mk index 84db3970d0..d95ea569f3 100644 --- a/makefiles/Makefile.python.mk +++ b/makefiles/Makefile.python.mk @@ -21,7 +21,7 @@ check_python: python else # HAS_PYTHON=ON -PYTHON_BUILD_DIR = $(BUILD_DIR)$Spython +PYTHON_BUILD_PATH = $(BUILD_DIR)$Spython # Main target .PHONY: python # Build Python OR-Tools. @@ -32,14 +32,14 @@ PYTHON_BUILD_DIR = $(BUILD_DIR)$Spython .PHONY: install_python # Install Python OR-Tools on the host system # OR Tools unique library. -python: +python: $(MAKE) third_party BUILD_PYTHON=ON - cmake --build dependencies --target install --config $(BUILD_TYPE) -j $(JOBS) -v + cmake --build $(BUILD_DIR) --target install --config $(BUILD_TYPE) -j $(JOBS) -v ifeq ($(PLATFORM),WIN64) -PYTHON_EXECUTABLE := $(PYTHON_BUILD_DIR)\\venv\\Scripts\\python +PYTHON_EXECUTABLE := $(PYTHON_BUILD_PATH)$Svenv$SScripts$Spython else -PYTHON_EXECUTABLE := $(PYTHON_BUILD_DIR)/venv/bin/python +PYTHON_EXECUTABLE := $(PYTHON_BUILD_PATH)$Svenv$Sbin$Spython endif ####################### @@ -51,32 +51,44 @@ run: "$(PYTHON_EXECUTABLE)" $(SOURCE_PATH) $(ARGS) endif -############################### -## Python Examples/Samples ## -############################### -rpy_%: $(TEST_DIR)/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" $(TEST_PATH)$S$*.py $(ARGS) +##################################### +## Python Samples/Examples/Tests ## +##################################### -rpy_%: $(PYTHON_EX_DIR)/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" $(PYTHON_EX_PATH)$S$*.py $(ARGS) +# Samples +define python-sample-target = +rpy_%: \ + python \ + $(SRC_DIR)/ortools/$1/samples/%.py \ + FORCE + "$(PYTHON_EXECUTABLE)" ortools$S$1$Ssamples$S$$*.py $(ARGS) +endef -rpy_%: $(CONTRIB_EX_DIR)/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" $(CONTRIB_EX_PATH)$S$*.py $(ARGS) +PYTHON_SAMPLES := algorithms graph constraint_solver linear_solver model_builder sat +$(foreach sample,$(PYTHON_SAMPLES),$(eval $(call python-sample-target,$(sample)))) -rpy_%: ortools/algorithms/samples/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" ortools$Salgorithms$Ssamples$S$*.py $(ARGS) +# Examples +define python-example-target = +rpy_%: \ + python \ + $(SRC_DIR)/examples/$1/%.py \ + FORCE + "$(PYTHON_EXECUTABLE)" examples$S$1$S$$*.py $(ARGS) +endef -rpy_%: ortools/constraint_solver/samples/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" ortools$Sconstraint_solver$Ssamples$S$*.py $(ARGS) +PYTHON_EXAMPLES := contrib python +$(foreach example,$(PYTHON_EXAMPLES),$(eval $(call python-example-target,$(example)))) -rpy_%: ortools/graph/samples/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" ortools$Sgraph$Ssamples$S$*.py $(ARGS) +# Tests +rpy_%: \ + python \ + $(SRC_DIR)/examples/tests/%.py \ + FORCE + "$(PYTHON_EXECUTABLE)" examples$Stests$S$*.py $(ARGS) -rpy_%: ortools/linear_solver/samples/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" ortools$Slinear_solver$Ssamples$S$*.py $(ARGS) - -rpy_%: ortools/sat/samples/%.py $(PYTHON_OR_TOOLS_LIBS) FORCE - "$(PYTHON_EXECUTABLE)" ortools$Ssat$Ssamples$S$*.py $(ARGS) +#################### +## Test targets ## +#################### .PHONY: test_python_algorithms_samples # Run all Python Algorithms Samples (located in ortools/algorithms/samples) test_python_algorithms_samples: \ @@ -135,6 +147,13 @@ test_python_linear_solver_samples: \ rpy_simple_mip_program \ rpy_stigler_diet +.PHONY: test_python_model_builder_samples # Run all Python Model Builder Samples (located in ortools/model_builder/samples) +test_python_model_builder_samples: \ + rpy_assignment_mb \ + rpy_bin_packing_mb \ + rpy_simple_lp_program_mb \ + rpy_simple_mip_program_mb + .PHONY: test_python_sat_samples # Run all Python Sat Samples (located in ortools/sat/samples) test_python_sat_samples: \ rpy_assignment_sat \ @@ -166,6 +185,7 @@ check_python: \ test_python_constraint_solver_samples \ test_python_graph_samples \ test_python_linear_solver_samples \ + test_python_model_builder_samples \ test_python_sat_samples \ # rpy_rabbits_pheasants_cp \ # rpy_cryptarithmetic_cp \ @@ -431,7 +451,7 @@ endif $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/__init__.py: \ | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools - $(COPY) $(GEN_PATH)$Sortools$S__init__.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$S__init__.py + $(COPY) ortools$Spython$S__init__.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$S__init__.py ifeq ($(PLATFORM),WIN64) echo __version__ = "$(OR_TOOLS_PYTHON_VERSION)" >> \ $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$S__init__.py @@ -444,37 +464,37 @@ $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/init: $(PYINIT_LIBS) | $(PYPI_ARCHIVE_T -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Sinit$Spywrapinit.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit - $(COPY) $(GEN_PATH)$Sortools$Sinit$S_pywrapinit.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit + $(COPY) ortools$Sinit$Spywrapinit.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit + $(COPY) ortools$Sinit$S_pywrapinit.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sinit $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/algorithms: $(PYALGORITHMS_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Salgorithms$Spywrapknapsack_solver.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms - $(COPY) $(GEN_PATH)$Sortools$Salgorithms$S_pywrapknapsack_solver.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms + $(COPY) ortools$Salgorithms$Spywrapknapsack_solver.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms + $(COPY) ortools$Salgorithms$S_pywrapknapsack_solver.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Salgorithms $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/graph: $(PYGRAPH_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Sgraph$Spywrapgraph.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph - $(COPY) $(GEN_PATH)$Sortools$Sgraph$S_pywrapgraph.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph + $(COPY) ortools$Sgraph$Spywrapgraph.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph + $(COPY) ortools$Sgraph$S_pywrapgraph.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sgraph $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/constraint_solver: $(PYCP_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Sconstraint_solver$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver - $(COPY) $(GEN_PATH)$Sortools$Sconstraint_solver$S_pywrapcp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver + $(COPY) ortools$Sconstraint_solver$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver + $(COPY) ortools$Sconstraint_solver$S_pywrapcp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sconstraint_solver $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/linear_solver: $(PYLP_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver$S__init__.py $(COPY) ortools$Slinear_solver$S*.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver - $(COPY) $(GEN_PATH)$Sortools$Slinear_solver$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver - $(COPY) $(GEN_PATH)$Sortools$Slinear_solver$S_pywraplp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver + $(COPY) ortools$Slinear_solver$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver + $(COPY) ortools$Slinear_solver$S_pywraplp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Slinear_solver $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/sat: $(PYSAT_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat @@ -482,8 +502,8 @@ $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/sat: $(PYSAT_LIBS) | $(PYPI_ARCHIVE_TEM $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat$S__init__.py $(COPY) ortools$Ssat$Sdoc$S*.md $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat $(COPY) ortools$Ssat$S*.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat - $(COPY) $(GEN_PATH)$Sortools$Ssat$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat - $(COPY) $(GEN_PATH)$Sortools$Ssat$S_pywrapsat.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat + $(COPY) ortools$Ssat$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat + $(COPY) ortools$Ssat$S_pywrapsat.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat$Spython $(COPY) ortools$Ssat$Spython$S*.py $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Ssat$Spython @@ -491,21 +511,21 @@ $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/packing: $(PYPACKING_LIBS) | $(PYPI_ARC -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Spacking -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Spacking $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Spacking$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Spacking$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Spacking + $(COPY) ortools$Spacking$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Spacking $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/scheduling: $(PYSCHEDULING_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Sscheduling$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling - $(COPY) $(GEN_PATH)$Sortools$Sscheduling$S_pywraprcpsp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling + $(COPY) ortools$Sscheduling$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling + $(COPY) ortools$Sscheduling$S_pywraprcpsp.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sscheduling $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/util: $(PYSORTED_INTERVAL_LIST_LIBS) | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil -$(MKDIR) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil $(TOUCH) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil$S__init__.py - $(COPY) $(GEN_PATH)$Sortools$Sutil$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil - $(COPY) $(GEN_PATH)$Sortools$Sutil$S_sorted_interval_list.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil + $(COPY) ortools$Sutil$S*.py* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil + $(COPY) ortools$Sutil$S_sorted_interval_list.* $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$Sutil $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/.libs: | $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Sortools$Sortools$S.libs @@ -514,7 +534,7 @@ $(PYPI_ARCHIVE_TEMP_DIR)/ortools/ortools/.libs: | $(PYPI_ARCHIVE_TEMP_DIR)/ortoo ifneq ($(PYTHON_EXECUTABLE),) package_python: cc -$(DEL) $.*whl - $(COPY) $(PYTHON_BUILD_DIR)$Sdist$S*.whl . + $(COPY) $(PYTHON_BUILD_PATH)$Sdist$S*.whl . test_package_python: package_python -$(DELREC) $(PYPI_ARCHIVE_TEMP_DIR)$Svenv @@ -565,7 +585,7 @@ publish_python_pimpl: package_python cd $(PYPI_ARCHIVE_TEMP_DIR)$Sortools && "$(TWINE_EXECUTABLE)" upload "*.whl" install_python: package_python - cd "$(PYTHON_BUILD_DIR)" && "$(PYTHON_EXECUTABLE)" setup.py install --user + cd "$(PYTHON_BUILD_PATH)" && "$(PYTHON_EXECUTABLE)" setup.py install --user .PHONY: uninstall_python # Uninstall Python OR-Tools from the host system uninstall_python: @@ -644,72 +664,8 @@ endif # HAS_PYTHON=ON ################ .PHONY: clean_python # Clean Python output from previous build. clean_python: - -$(DEL) $(GEN_PATH)$Sortools$S__init__.py - -$(DEL) ortools$S*.pyc - -$(DELREC) ortools$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Sinit$S__pycache__ - -$(DEL) ortools$Sinit$S*.pyc - -$(DELREC) ortools$Sinit$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Sinit$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Salgorithms$S__pycache__ - -$(DEL) ortools$Salgorithms$S*.pyc - -$(DELREC) ortools$Salgorithms$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Sgraph$S__pycache__ - -$(DEL) ortools$Sgraph$S*.pyc - -$(DELREC) ortools$Sgraph$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Sconstraint_solver$S__pycache__ - -$(DEL) ortools$Sconstraint_solver$S*.pyc - -$(DELREC) ortools$Sconstraint_solver$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Slinear_solver$S__pycache__ - -$(DEL) ortools$Slinear_solver$S*.pyc - -$(DELREC) ortools$Slinear_solver$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Ssat$S__pycache__ - -$(DEL) ortools$Ssat$S*.pyc - -$(DELREC) ortools$Ssat$S__pycache__ - -$(DEL) ortools$Ssat$Spython$S*.pyc - -$(DELREC) ortools$Ssat$Spython$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Ssat$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Sscheduling$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Sscheduling$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Sscheduling$S__pycache__ - -$(DEL) ortools$Spacking$S*.pyc - -$(DELREC) ortools$Spacking$S__pycache__ - -$(DEL) ortools$Sscheduling$S*.pyc - -$(DELREC) ortools$Sscheduling$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sscheduling$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Sscheduling$S_pywrap* - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*.py - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*.pyc - -$(DELREC) $(GEN_PATH)$Sortools$Sutil$S__pycache__ - -$(DEL) ortools$Sutil$S*.pyc - -$(DELREC) ortools$Sutil$S__pycache__ - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S*_python_wrap.* - -$(DEL) $(GEN_PATH)$Sortools$Sutil$S_* - -$(DEL) $(OBJ_DIR)$Sswig$S*python_wrap.$O + -$(DELREC) $(TEMP_PYTHON_DIR)* -$(DEL) *.whl - -$(DELREC) temp_python* ############# ## DEBUG ## @@ -721,6 +677,7 @@ detect_python: @echo HAS_PYTHON = $(HAS_PYTHON) @echo PYTHON_EXECUTABLE = "$(PYTHON_EXECUTABLE)" @echo PYTHON_VERSION = $(PYTHON_VERSION) + @echo INSTALL_PYTHON_NAME = $(INSTALL_PYTHON_NAME) ifeq ($(PLATFORM),WIN64) @echo off & echo( else