diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-02-28 10:39:19 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-03-03 13:35:43 +0100 |
commit | 4f7b96886ec2e98f270a9ec3c3509cd523fce7cc (patch) | |
tree | f98576d9ae0ea90a37a2619937790d4a10f0698e | |
parent | 083fa76745d0c8cb095d856df633866c117b0f3a (diff) |
Allow to build lpsolver based on CoinMP library.
Change-Id: I0a3b2bd6744f6ccca0017cd1e06a4018f085445a
-rw-r--r-- | Repository.mk | 2 | ||||
-rw-r--r-- | RepositoryExternal.mk | 35 | ||||
-rw-r--r-- | config_host.mk.in | 2 | ||||
-rw-r--r-- | configure.ac | 88 | ||||
-rwxr-xr-x | postprocess/Rdb_services.mk | 2 | ||||
-rw-r--r-- | sccomp/Library_solver.mk | 10 | ||||
-rw-r--r-- | sccomp/Module_sccomp.mk | 2 | ||||
-rw-r--r-- | scp2/InstallModule_calc.mk | 7 | ||||
-rw-r--r-- | scp2/InstallModule_ooo.mk | 1 | ||||
-rw-r--r-- | scp2/source/calc/file_calc.scp | 2 |
10 files changed, 103 insertions, 48 deletions
diff --git a/Repository.mk b/Repository.mk index 671f0dcf7133..79d7089d8588 100644 --- a/Repository.mk +++ b/Repository.mk @@ -157,8 +157,8 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,calc, \ scd \ scfilt \ scui \ - $(if $(MPL_SUBSET),,$(if $(ENABLE_LPSOLVE),solver)) \ $(if $(ENABLE_OPENCL),scopencl) \ + $(if $(WITH_LPSOLVER),solver) \ $(if $(DISABLE_SCRIPTING),,vbaobj) \ $(if $(ENABLE_TELEPATHY),tubes) \ )) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 8931fa6d7ce9..8476ae3e3c0c 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1858,8 +1858,8 @@ endef endif # ANDROID endif # SYSTEM_LCMS2 +ifeq ($(WITH_LPSOLVER),lpsolve) -ifneq ($(ENABLE_LPSOLVE),) ifneq ($(SYSTEM_LPSOLVE),) define gb_LinkTarget__use_lpsolve @@ -1895,7 +1895,38 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\ )) endif # SYSTEM_LPSOLVE -endif # ENABLE_LPSOLVE + +else ifeq ($(WITH_LPSOLVER),coinmp) + +define gb_LinkTarget__use_coinmp +$(call gb_LinkTarget_use_package,$(1),coinmp) +ifeq ($(COM),MSC) +$(call gb_LinkTarget_add_libs,$(1),\ + $(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/MSVisualStudio/v9/release/CoinMP.lib \ +) +else +$(call gb_LinkTarget_add_libs,$(1),\ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/Cbc/src/.libs -lCbc -lCbcSolver \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/Cgl/src/.libs -lCgl \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/Clp/src/.libs -lClp \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/Clp/src/OsiClp/.libs -lOsiClp \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/src/.libs -lCoinMP \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/CoinUtils/src/.libs -lCoinUtils \ + -L$(call gb_UnpackedTarball_get_dir,coinmp)/Osi/src/Osi/.libs -lOsi \ +) +endif +$(call gb_LinkTarget_set_include,$(1),\ + -I$(call gb_UnpackedTarball_get_dir,coinmp)/CoinMP/src \ + $$(INCLUDE) \ +) + +endef + +$(eval $(call gb_Helper_register_packages_for_install,ooo,\ + coinmp \ +)) + +endif # WITH_LPSOLVER ifeq ($(ENABLE_GIO),TRUE) diff --git a/config_host.mk.in b/config_host.mk.in index a9caf504eb00..260367823e7e 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -135,7 +135,6 @@ export ENABLE_KDE4=@ENABLE_KDE4@ export ENABLE_KDE=@ENABLE_KDE@ export ENABLE_LIBLANGTAG=@ENABLE_LIBLANGTAG@ export ENABLE_LOCKDOWN=@ENABLE_LOCKDOWN@ -export ENABLE_LPSOLVE=@ENABLE_LPSOLVE@ export ENABLE_LTO=@ENABLE_LTO@ export ENABLE_LWP=@ENABLE_LWP@ export ENABLE_MACOSX_MACLIKE_APP_STRUCTURE=@ENABLE_MACOSX_MACLIKE_APP_STRUCTURE@ @@ -597,6 +596,7 @@ export WITH_KRB5=@WITH_KRB5@ export WITH_LANG=@WITH_LANG@ export WITH_LANG_LIST=@WITH_LANG_LIST@ export WITH_LINKER_HASH_STYLE=@WITH_LINKER_HASH_STYLE@ +export WITH_LPSOLVER=@WITH_LPSOLVER@ export WITH_MOZAB4WIN=@WITH_MOZAB4WIN@ export WITH_MYSPELL_DICTS=@WITH_MYSPELL_DICTS@ export WITH_POOR_HELP_LOCALIZATIONS=@WITH_POOR_HELP_LOCALIZATIONS@ diff --git a/configure.ac b/configure.ac index 301cbc1e27bd..59919d797c1f 100644 --- a/configure.ac +++ b/configure.ac @@ -655,7 +655,6 @@ linux-android*) enable_neon=no enable_mpl_subset=yes enable_opengl=no - enable_lpsolve=no enable_report_builder=no with_theme="tango" test_cups=no @@ -1770,6 +1769,14 @@ AC_ARG_WITH(system-npapi-headers, [with_system_npapi_headers="$with_system_headers"] ) +AC_ARG_WITH(lpsolver, + AS_HELP_STRING([--with-lpsolver], + [Specify which library to use for lpsolver implementation in sccomp. + Possible values: "lpsolve", "coinmp", "no". The default value is "lpsolve". + Example: --with-lpsolver="coinmp"]), + WITH_LPSOLVER=$withval, + WITH_LPSOLVER="lpsolve") + AC_ARG_WITH(linker-hash-style, AS_HELP_STRING([--with-linker-hash-style], [Use linker with --hash-style=<style> when linking shared objects. @@ -7325,7 +7332,6 @@ if test $_os = iOS; then enable_mpl_subset=yes enable_opengl=no enable_lotuswordpro=no - enable_lpsolve=no enable_postgresql_sdbc=no enable_lotuswordpro=no enable_neon=no @@ -9399,42 +9405,48 @@ AC_SUBST(MYTHES_LIBS) dnl =================================================================== dnl How should we build the linear programming solver ? dnl =================================================================== - -# Should we check for system CoinMP ? How to do that ? -BUILD_TYPE="$BUILD_TYPE COINMP" - -ENABLE_LPSOLVE= -AC_MSG_CHECKING([whether to build with lpsolve]) -if test "$enable_lpsolve" != "no"; then - ENABLE_LPSOLVE=TRUE - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi -AC_SUBST(ENABLE_LPSOLVE) - -AC_MSG_CHECKING([which lpsolve to use]) -if test "$with_system_lpsolve" = "yes"; then - AC_MSG_RESULT([external]) - SYSTEM_LPSOLVE=TRUE - AC_CHECK_HEADER(lpsolve/lp_lib.h, [], - [ AC_MSG_ERROR(lpsolve headers not found.)], []) - save_LIBS=$LIBS - # some systems need this. Like Ubuntu.... - AC_CHECK_LIB(m, floor) - AC_CHECK_LIB(dl, dlopen) - AC_CHECK_LIB([lpsolve55], [make_lp], [:], - [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) - LIBS=$save_LIBS - libo_MINGW_CHECK_DLL([lpsolve55]) -else - AC_MSG_RESULT([internal]) - SYSTEM_LPSOLVE= - BUILD_TYPE="$BUILD_TYPE LPSOLVE" +if test "$enable_lpsolve" = "no" -o "$enable_mpl_subset" = "yes"; then + WITH_LPSOLVER="coinmp" fi +if test $_os = iOS -o $_os = Android; then + WITH_LPSOLVER="no" +fi +AC_MSG_CHECKING([for lpsolver library]) +case "$WITH_LPSOLVER" in +coinmp) + AC_MSG_RESULT([CoinMP]) + # Should we check for system CoinMP ? How to do that ? + BUILD_TYPE="$BUILD_TYPE COINMP" + ;; +lpsolve) + AC_MSG_RESULT([lpsolve]) + AC_MSG_CHECKING([which lpsolve to use]) + if test "$with_system_lpsolve" = "yes"; then + AC_MSG_RESULT([external]) + SYSTEM_LPSOLVE=TRUE + AC_CHECK_HEADER(lpsolve/lp_lib.h, [], + [ AC_MSG_ERROR(lpsolve headers not found.)], []) + save_LIBS=$LIBS + # some systems need this. Like Ubuntu.... + AC_CHECK_LIB(m, floor) + AC_CHECK_LIB(dl, dlopen) + AC_CHECK_LIB([lpsolve55], [make_lp], [:], + [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) + LIBS=$save_LIBS + libo_MINGW_CHECK_DLL([lpsolve55]) + else + AC_MSG_RESULT([internal]) + SYSTEM_LPSOLVE= + BUILD_TYPE="$BUILD_TYPE LPSOLVE" + fi + ;; +*) + AC_MSG_RESULT([none, disabled]) + WITH_LPSOLVER="" + ;; +esac AC_SUBST(SYSTEM_LPSOLVE) - - +AC_SUBST(WITH_LPSOLVER) dnl =================================================================== dnl Checking for libexttextcat @@ -12494,8 +12506,8 @@ if test "$enable_mpl_subset" = "yes"; then if test "$enable_opengl" != "no" -o "x$ENABLE_OPENGL" = "xTRUE"; then AC_MSG_ERROR([need to --disable-opengl - GL transitions support.]) fi - if test "$enable_lpsolve" != "no" -o "x$ENABLE_LPSOLVE" = "xTRUE"; then - AC_MSG_ERROR([need to --disable-lpsolve - calc linear programming solver.]) + if test "$WITH_LPSOLVER" = "lpsolve"; then + AC_MSG_ERROR([need --with-lpsolver=coinmp or --without-lpsolver - calc linear programming solver.]) fi MPL_SUBSET="TRUE" diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk index 48d4c07baeaa..41f30777cef6 100755 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk @@ -109,7 +109,7 @@ $(eval $(call gb_Rdb_add_components,services,\ xmlscript/util/xmlscript \ xmlsecurity/util/xmlsecurity \ xmlsecurity/util/xsec_fw \ - $(if $(ENABLE_LPSOLVE), \ + $(if $(WITH_LPSOLVER), \ sccomp/source/solver/solver \ ) \ writerfilter/util/writerfilter \ diff --git a/sccomp/Library_solver.mk b/sccomp/Library_solver.mk index e1b2ca3fdfeb..c5531059bc79 100644 --- a/sccomp/Library_solver.mk +++ b/sccomp/Library_solver.mk @@ -35,11 +35,19 @@ $(eval $(call gb_Library_use_libraries,solver,\ $(eval $(call gb_Library_use_externals,solver,\ boost_headers \ - lpsolve \ + $(WITH_LPSOLVER) \ )) +ifeq ($(WITH_LPSOLVER),lpsolve) $(eval $(call gb_Library_add_exception_objects,solver,\ sccomp/source/solver/solver-lpsolve \ )) +else ifeq ($(WITH_LPSOLVER),coinmp) +$(eval $(call gb_Library_add_exception_objects,solver,\ + sccomp/source/solver/solver \ +)) + +endif + # vim: set noet sw=4 ts=4: diff --git a/sccomp/Module_sccomp.mk b/sccomp/Module_sccomp.mk index dd56f872ecac..d250e3b574de 100644 --- a/sccomp/Module_sccomp.mk +++ b/sccomp/Module_sccomp.mk @@ -19,7 +19,7 @@ $(eval $(call gb_Module_Module,sccomp)) -ifeq ($(ENABLE_LPSOLVE),TRUE) +ifneq ($(WITH_LPSOLVER),) $(eval $(call gb_Module_add_targets,sccomp,\ Library_solver \ diff --git a/scp2/InstallModule_calc.mk b/scp2/InstallModule_calc.mk index 2c41acd8b028..b64ae2abac10 100644 --- a/scp2/InstallModule_calc.mk +++ b/scp2/InstallModule_calc.mk @@ -12,11 +12,16 @@ $(eval $(call gb_InstallModule_InstallModule,scp2/calc)) $(eval $(call gb_InstallModule_use_auto_install_libs,scp2/calc,calc)) $(eval $(call gb_InstallModule_define_if_set,scp2/calc,\ - ENABLE_LPSOLVE \ ENABLE_MACOSX_MACLIKE_APP_STRUCTURE \ ENABLE_MACOSX_SANDBOX \ )) +ifneq (,$(WITH_LPSOLVER)) +$(eval $(call gb_InstallModule_add_defs,scp2/calc,\ + -DWITH_LPSOLVER \ +)) +endif + $(eval $(call gb_InstallModule_add_templates,scp2/calc,\ scp2/source/templates/module_langpack_calc \ )) diff --git a/scp2/InstallModule_ooo.mk b/scp2/InstallModule_ooo.mk index 5f149c3a0c2a..63d8b1bc1748 100644 --- a/scp2/InstallModule_ooo.mk +++ b/scp2/InstallModule_ooo.mk @@ -24,7 +24,6 @@ $(eval $(call gb_InstallModule_define_if_set,scp2/ooo,\ ENABLE_GTK \ ENABLE_KDE \ ENABLE_LIBLANGTAG \ - ENABLE_LPSOLVE \ ENABLE_MACOSX_MACLIKE_APP_STRUCTURE \ ENABLE_MACOSX_SANDBOX \ ENABLE_NPAPI_FROM_BROWSER \ diff --git a/scp2/source/calc/file_calc.scp b/scp2/source/calc/file_calc.scp index 371a08ff1030..c3d2ed2b4ab6 100644 --- a/scp2/source/calc/file_calc.scp +++ b/scp2/source/calc/file_calc.scp @@ -50,7 +50,7 @@ File gid_File_Exe_Scalc End #endif -#if defined(ENABLE_LPSOLVE) +#if defined(WITH_LPSOLVER) STD_RES_FILE( gid_File_Res_Solver, solver) |