- Add ubuntu-18.04
- add pkg-config to ubuntu(s)
- Rework Docker Makefile
- Add test job to verify archive
- Add cc.Dockerfile
- Add java.Dockerfile
- Add dotnet.Dockerfile
- Build ortools in docker_<lang>
- Build archive and fz_archive in two separate containers
- Add dependencies to makefiles when building docker image
- Suppress previous archive if any
- Improve docker build by using export/archive when building language images
- Reduce build context using export/$* instead of .
note: when running `docker build ... foo`, all files in `foo` are recursively
send to the docker daemon before building. Since we have tons of Go of images
it could take time to "upload".
- Use pattern rules
- Remove dead code (CP_BINARIES and LP_BINARIES doesn't exist anymore)
- Expose fz and test_fz in help_cc
- Relayout makefile.cc.mk
- Move CVRP Problem rule before generic ones (needed for make < 4.0)
- Rename [Makefile|Readme].cc.java.dotnet
- Add missing dynamic lib on unix archive (Fix#723)
- Add rpah to lib64 for centos
- Use CXX, CXXFLAGS and LDFLAGS
src: https://www.gnu.org/software/make/manual/make.html#Catalogue-of-Rules
- Add which.exe to archive on windows
- Add test_archive to .PHONY
- Add detect_archive
- Create empty rules for all source file
- Add Empty recipe for ALL ortools/*/*.h
- Add Empty recipe for ALL ortools/*/*.cc
- Add Empty recipe for ALL ortools/*/*.proto
- Compute .$O prerequisite using .cc AND .h
- Add all pb.h for each associated *_DEPS
- Add all pb.h as prerequisite to associated .$O object
- Generate_deps on MacOS
- Add missing "-e" to echo
- Cleaning comments
- Remove uneeded space before *.cc prerequisite
Unix:
- Rename install_directories rule
this target creates dependencies/install dir not ortools install dir
- replace $(LIB_SUFFIX) by $L to be consistent with $E and $O suffix
- fix rpath, no need anymore patchelf
-> remove prerequisite $(PATCHELF) in install_cc
- use build_cmake as build directory
note: MacOS is case insensitive when creating directory
and bazel file is named BUILD -> `mkdir build` won't work
- Fix CMD_LNK on mac
- Fix MacOS LINK_FLAGS
- MacOS also use LIB_DIR = lib
Win:
- Fix windows lib suffix $L
Protobuf:
- Need to use PROTOC (like MONO) to add LD_LIBRARY_PATH hack
-> PROTOC = LD_LIBARY_PATH="..." protoc
-> replace $(PROTOBUF_DIR)/bin/protoc by $(PROTOC)
- Remove uneeded PROTOBUF_DIR defs
- Apply patch to protobuf to use @rpath on MacOS
- Add rpath to protobuf install rules
Coin-OR
- Use coin-or github repos mirror instead of the svn repo (Fix#379)
- Use the splited Cbc (CoinUtils, Osi, Clp, Cgl, Cbc)
note: usually distro use this layout cf https://repology.org/metapackage/coin-or-cbc/badges
- Fix rpath for all coin-or libraries at post-install using patchelf (linux) or otools (osx)