Rework install_cc recipe

This commit is contained in:
Corentin Le Molgat
2018-04-25 16:52:01 +02:00
parent f3fd8aa995
commit db17e75c48
3 changed files with 65 additions and 49 deletions

3
.gitignore vendored
View File

@@ -27,6 +27,7 @@ objs/
temp/
temp-python*
lib/
install/
examples/csharp/solution/*.csproj
examples/csharp/*.sln
examples/notebook/.ipynb_checkpoints
@@ -80,4 +81,4 @@ tools/netstandard/CreateSigningKey/obj
ortools/fsharp/**/bin
ortools/fsharp/**/obj
ortools/fsharp/**/packages
ortools/fsharp/**/packages

View File

@@ -10,6 +10,14 @@ else
@echo
endif
# Checks if the user has overwritten default install prefix.
# cf https://www.gnu.org/prep/standards/html_node/Directory-Variables.html#index-prefix
ifeq ($(SYSTEM),win)
prefix ?= C:\\Program Files\\or-tools
else
prefix ?= /usr/local
endif
# Main target
.PHONY: cc # Build C++ OR-Tools.
cc: ortoolslibs ccexe
@@ -799,6 +807,46 @@ rcc: $(BIN_DIR)$S$(basename $(notdir $(EX)))$E
@echo running $(BIN_DIR)$S$(basename $(notdir $(EX)))$E
$(BIN_DIR)$S$(basename $(notdir $(EX)))$E $(ARGS)
###############
## INSTALL ##
###############
install_dirs:
-$(MKDIR) "$(prefix)"
-$(MKDIR) "$(prefix)$Slib"
-$(MKDIR) "$(prefix)$Sinclude"
-$(DELREC) "$(prefix)$Sinclude$Sortools"
$(MKDIR) "$(prefix)$Sinclude$Sortools"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Salgorithms"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sbase"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sbop"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sconstraint_solver"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sglop"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sgraph"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Slinear_solver"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Slp_data"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Ssat"
$(MKDIR) "$(prefix)$Sinclude$Sortools$Sutil"
.PHONY: install_cc # Install C++ OR-Tools to $(prefix)/.
install_cc: ortoolslibs $(PATCHELF) install_dirs
$(COPY) $(LIB_DIR)$S$(LIB_PREFIX)ortools.$(LIB_SUFFIX) "$(prefix)$Slib"
$(COPY) ortools$Salgorithms$S*.h "$(prefix)$Sinclude$Sortools$Salgorithms"
$(COPY) ortools$Sbase$S*.h "$(prefix)$Sinclude$Sortools$Sbase"
$(COPY) ortools$Sconstraint_solver$S*.h "$(prefix)$Sinclude$Sortools$Sconstraint_solver"
$(COPY) ortools$Sgen$Sortools$Sconstraint_solver$S*.pb.h "$(prefix)$Sinclude$Sortools$Sconstraint_solver"
$(COPY) ortools$Sbop$S*.h "$(prefix)$Sinclude$Sortools$Sbop"
$(COPY) ortools$Sgen$Sortools$Sbop$S*.pb.h "$(prefix)$Sinclude$Sortools$Sbop"
$(COPY) ortools$Sglop$S*.h "$(prefix)$Sinclude$Sortools$Sglop"
$(COPY) ortools$Sgen$Sortools$Sglop$S*.pb.h "$(prefix)$Sinclude$Sortools$Sglop"
$(COPY) ortools$Sgraph$S*.h "$(prefix)$Sinclude$Sortools$Sgraph"
$(COPY) ortools$Sgen$Sortools$Sgraph$S*.h "$(prefix)$Sinclude$Sortools$Sgraph"
$(COPY) ortools$Slinear_solver$S*.h "$(prefix)$Sinclude$Sortools$Slinear_solver"
$(COPY) ortools$Slp_data$S*.h "$(prefix)$Sinclude$Sortools$Slp_data"
$(COPY) ortools$Sgen$Sortools$Slinear_solver$S*.pb.h "$(prefix)$Sinclude$Sortools$Slinear_solver"
$(COPY) ortools$Ssat$S*.h "$(prefix)$Sinclude$Sortools$Ssat"
$(COPY) ortools$Sgen$Sortools$Ssat$S*.pb.h "$(prefix)$Sinclude$Sortools$Ssat"
$(COPY) ortools$Sutil$S*.h "$(prefix)$Sinclude$Sortools$Sutil"
.PHONY: detect_cc # Show variables used to build C++ OR-Tools.
detect_cc:
@echo Relevant info for the C++ build:

View File

@@ -1,54 +1,21 @@
create_install_dirs:
-$(MKDIR) $(TARGET_DIR)
-$(MKDIR) $(TARGET_DIR)$Slib
-$(MKDIR) $(TARGET_DIR)$Sbin
-$(MKDIR) $(TARGET_DIR)$Sinclude
-$(MKDIR) $(TARGET_DIR)$Sinclude$Sgflags
-$(MKDIR) $(TARGET_DIR)$Sinclude$Sglog
-$(MKDIR) $(TARGET_DIR)$Sinclude$Sgoogle
-$(DELREC) $(TARGET_DIR)$Sinclude$Sortools
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Salgorithms
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sbase
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sbop
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sconstraint_solver
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sglop
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sgraph
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Slinear_solver
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Slp_data
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Ssat
$(MKDIR) $(TARGET_DIR)$Sinclude$Sortools$Sutil
install_deps_dirs:
-$(MKDIR_P) "$(prefix)$Sinclude$Sgflags"
-$(MKDIR_P) "$(prefix)$Sinclude$Sglog"
-$(MKDIR_P) "$(prefix)$Sinclude$Sgoogle"
install_cc: create_install_dirs cc $(PATCHELF)
$(COPY) $(LIB_DIR)$S$(LIB_PREFIX)ortools.$(LIB_SUFFIX) $(TARGET_DIR)$Slib
$(COPY) ortools$Salgorithms$S*.h $(TARGET_DIR)$Sinclude$Sortools$Salgorithms
$(COPY) ortools$Sbase$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sbase
$(COPY) ortools$Sconstraint_solver$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sconstraint_solver
$(COPY) ortools$Sgen$Sortools$Sconstraint_solver$S*.pb.h $(TARGET_DIR)$Sinclude$Sortools$Sconstraint_solver
$(COPY) ortools$Sbop$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sbop
$(COPY) ortools$Sgen$Sortools$Sbop$S*.pb.h $(TARGET_DIR)$Sinclude$Sortools$Sbop
$(COPY) ortools$Sglop$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sglop
$(COPY) ortools$Sgen$Sortools$Sglop$S*.pb.h $(TARGET_DIR)$Sinclude$Sortools$Sglop
$(COPY) ortools$Sgraph$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sgraph
$(COPY) ortools$Sgen$Sortools$Sgraph$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sgraph
$(COPY) ortools$Slinear_solver$S*.h $(TARGET_DIR)$Sinclude$Sortools$Slinear_solver
$(COPY) ortools$Slp_data$S*.h $(TARGET_DIR)$Sinclude$Sortools$Slp_data
$(COPY) ortools$Sgen$Sortools$Slinear_solver$S*.pb.h $(TARGET_DIR)$Sinclude$Sortools$Slinear_solver
$(COPY) ortools$Ssat$S*.h $(TARGET_DIR)$Sinclude$Sortools$Ssat
$(COPY) ortools$Sgen$Sortools$Ssat$S*.pb.h $(TARGET_DIR)$Sinclude$Sortools$Ssat
$(COPY) ortools$Sutil$S*.h $(TARGET_DIR)$Sinclude$Sortools$Sutil
install_full_cc: install_cc install_deps_dirs
ifeq ($(SYSTEM),win)
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude gflags | tools\tar.exe -xpf - -C $(TARGET_DIR)$Sinclude
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude glog | tools\tar.exe -xpf - -C $(TARGET_DIR)$Sinclude
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude google | tools\tar.exe -xpf - -C $(TARGET_DIR)$Sinclude
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude gflags | tools\tar.exe -xpf - -C "$(prefix)$Sinclude"
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude glog | tools\tar.exe -xpf - -C "$(prefix)$Sinclude"
tools\tar.exe -cf - -C dependencies$Sinstall$Sinclude google | tools\tar.exe -xpf - -C "$(prefix)$Sinclude"
else
tar -cf - -C dependencies$Sinstall$Sinclude gflags | tar -xpf - -C $(TARGET_DIR)$Sinclude
tar -cf - -C dependencies$Sinstall$Sinclude glog | tar -xpf - -C $(TARGET_DIR)$Sinclude
tar -cf - -C dependencies$Sinstall$Sinclude google | tar -xpf - -C $(TARGET_DIR)$Sinclude
tar -cf - -C dependencies$Sinstall$Sinclude gflags | tar -xpf - -C "$(prefix)$Sinclude"
tar -cf - -C dependencies$Sinstall$Sinclude glog | tar -xpf - -C "$(prefix)$Sinclude"
tar -cf - -C dependencies$Sinstall$Sinclude google | tar -xpf - -C "$(prefix)$Sinclude"
endif
$(COPY) LICENSE-2.0.txt $(TARGET_DIR)
$(COPY) LICENSE-2.0.txt "$(prefix)"
ifeq ($(PLATFORM),MACOSX)
$(COPY) tools/install_libortools_mac.sh $(TARGET_DIR)
chmod 775 $(TARGET_DIR)/install_libortools_mac.sh
cd $(TARGET_DIR) && ./install_libortools_mac.sh && rm install_libortools_mac.sh
$(COPY) tools/install_libortools_mac.sh "$(prefix)"
chmod 775 "$(prefix)/install_libortools_mac.sh"
cd "$(prefix)" && ./install_libortools_mac.sh && rm install_libortools_mac.sh
endif