summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-02-28 10:39:19 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-03-03 13:35:43 +0100
commit4f7b96886ec2e98f270a9ec3c3509cd523fce7cc (patch)
treef98576d9ae0ea90a37a2619937790d4a10f0698e
parent083fa76745d0c8cb095d856df633866c117b0f3a (diff)
Allow to build lpsolver based on CoinMP library.
Change-Id: I0a3b2bd6744f6ccca0017cd1e06a4018f085445a
-rw-r--r--Repository.mk2
-rw-r--r--RepositoryExternal.mk35
-rw-r--r--config_host.mk.in2
-rw-r--r--configure.ac88
-rwxr-xr-xpostprocess/Rdb_services.mk2
-rw-r--r--sccomp/Library_solver.mk10
-rw-r--r--sccomp/Module_sccomp.mk2
-rw-r--r--scp2/InstallModule_calc.mk7
-rw-r--r--scp2/InstallModule_ooo.mk1
-rw-r--r--scp2/source/calc/file_calc.scp2
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)