summaryrefslogtreecommitdiff
path: root/sci-libs/coinor-cppad
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/coinor-cppad')
-rw-r--r--sci-libs/coinor-cppad/Manifest9
-rw-r--r--sci-libs/coinor-cppad/coinor-cppad-20140519-r1.ebuild59
-rw-r--r--sci-libs/coinor-cppad/coinor-cppad-20210000.5.ebuild73
-rw-r--r--sci-libs/coinor-cppad/files/coinor-cppad-20140519-boost.patch79
-rw-r--r--sci-libs/coinor-cppad/files/coinor-cppad-20140519-dash.patch215
-rw-r--r--sci-libs/coinor-cppad/files/coinor-cppad-20210000.5-pkgconfig.patch26
-rw-r--r--sci-libs/coinor-cppad/metadata.xml10
7 files changed, 112 insertions, 359 deletions
diff --git a/sci-libs/coinor-cppad/Manifest b/sci-libs/coinor-cppad/Manifest
index 337428a0889f..a299487a17eb 100644
--- a/sci-libs/coinor-cppad/Manifest
+++ b/sci-libs/coinor-cppad/Manifest
@@ -1,5 +1,4 @@
-AUX coinor-cppad-20140519-boost.patch 2799 BLAKE2B 973de79d9d4b33ac7c35758eb8bde7d59fdda8ed84380ffb46f56e179de589e3a9378cdb02246f6525047a7b08a67b6caa1476f354e84d06727dfc29ba327112 SHA512 fe3af84b635aeefc30dedee488914f1de00d139756b2fa5c1f39c95b3886860c88ce02d8aaea6d0ec467f135bf17e8f2ce6df427fdd4d11188dbfe1a080cc014
-AUX coinor-cppad-20140519-dash.patch 7659 BLAKE2B 2bbf233f1d5081d29c5520612892c26bee210bcda651e8009ec928bf4063a2779e8590278dc38f5cceec3135be79ad825831ef4e8abd624f3f435d439371981b SHA512 a1aa44e9949d67823492f0296ba51ebdbb2f201855903a9571dfb686b6a42ac3756c577167ee7e8cf664872db0d570ec7576085d0f9d6642b78096708f83cf04
-DIST cppad-20140519.gpl.tgz 2208236 BLAKE2B 5d53891ef3b458c3914f5d59f6656290be2811fbc84ca3f9bd253ce4620b1a4b00397e1beed694cdc5284a1f74441b68520b861c90d158c4eee11d1f8927b362 SHA512 8f47e545bc76f66edccb9ea083ddebcb5852fa1807d727b6e1f445ca74731e74f7614a1d33b48c6eafbc5129b319e513594b415ee838bdc634f9c00a6d9a22af
-EBUILD coinor-cppad-20140519-r1.ebuild 1169 BLAKE2B ce2fde6a966575d7893b13414c0ee0c6bfeacbe1a3a4b5ca7ad47fc17ec3369108748b03f490e0e8cd7710ab2b30145529d75eb2521202595642a986fcf49edd SHA512 1c9681cb5e7ab7d3d0b7136994acc37f4bf3acd733b80033263b47f8b887e0d727ca062372a55722b83e641f3fdcff134cb85b29b91d6d2a771073cbb5ad3095
-MISC metadata.xml 730 BLAKE2B d2a7b1e486d64f316b3f021d12c109f2779136607438dee059eb3c70f30bf0ba82475f0b49ce8e6d9f5187aec520abc265df769c2b44c6c7f1a8937481e13a1d SHA512 4803e579d3c8d6f83a7ad08658025fe7e366eab3996ba36d6352ef2bf1a36a5b2dce608731604f25a73f23e9ab45a6b100a542ce001408184e799f1def985634
+AUX coinor-cppad-20210000.5-pkgconfig.patch 811 BLAKE2B 353b7a5d6d87019e8e81fe60711f10681ae94ff14e47150514e628e640be97fd5a31aa0de656e77786c35d368979f3428b85dd582a01ad396d003505f2f02405 SHA512 6ca51f3c2f0e51d833939a460b2e121cf1bb4fd3df0f9988a2861f56659423ca55e1960ae654ee6632167e694d7a29b18fa32fcfd9e61a0c4c8c05b0d3cfb83c
+DIST coinor-cppad-20210000.5.tar.gz 1663397 BLAKE2B 3ce4f5733641fac16ac00b6e49cb74e2237502eac32f592190491ddd5dcb8a41f340c1eed8529dbdecb343f7a791d4fc5ddc1e21ce9f9706f28608ac3a5e965a SHA512 40cbe8dc32af9bb3b92cdd4c81e6f75424ece701df9251d4c63652998ca4cb8d50057e190a16e51333d168299f33ff2353074fa7f24f2cec29f68db53f6ae17c
+EBUILD coinor-cppad-20210000.5.ebuild 1643 BLAKE2B 29e321f75047abac2c41bb7c2ca58a0535d46dab6585a3676c98b420b5359195014ae5a506f489443e477c21aa861cd6e68f6a4f85a918ced4efdf051a23abd2 SHA512 1ec8e3f21ef3f2735f2b61641c12c9e9e31901f6adf882c1f4d9bc6e3cf50e6d0c3bbe543e8d696a15e81686db7f5d7b329fa7ce617af519a197e09107904ec6
+MISC metadata.xml 1071 BLAKE2B 32463cc6a30f237e30d56a17414ed990f83de53ddbb0e55b7637937ccb9c2583f3a70a56af16057f4a7f9450e051af24bfebac4d4397db07caffccbffa79e6ba SHA512 1cb70b2272f589c46787e0f3aad8fc75313a7be3f70fded2f01531ae6ab8bbca91fa5f38b3f216af04ee92fbd51c426c89f6ee09bd354a5fda651c9a8d293f7d
diff --git a/sci-libs/coinor-cppad/coinor-cppad-20140519-r1.ebuild b/sci-libs/coinor-cppad/coinor-cppad-20140519-r1.ebuild
deleted file mode 100644
index 537f051053f1..000000000000
--- a/sci-libs/coinor-cppad/coinor-cppad-20140519-r1.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-AUTOTOOLS_AUTORECONF=yes
-
-inherit autotools-utils multilib
-
-MYP=cppad-${PV}
-
-DESCRIPTION="COIN-OR C++ Algorithmic Differentiation"
-HOMEPAGE="https://projects.coin-or.org/CppAD/"
-SRC_URI="http://www.coin-or.org/download/source/CppAD/${MYP}.gpl.tgz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc examples"
-
-RDEPEND="
- dev-libs/boost[threads]
- sci-libs/adolc:0=
- sci-libs/ipopt:0="
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? ( app-doc/doxygen[dot] )"
-
-S="${WORKDIR}/${MYP}"
-
-PATCHES=(
- "${FILESDIR}"/${P}-dash.patch
- "${FILESDIR}"/${P}-boost.patch
- )
-
-src_configure() {
- local myeconfargs=( $(use doc Documentation) )
- autotools-utils_src_configure CXX_FLAGS="${CXXFLAGS}"
-}
-
-src_compile() {
- autotools-utils_src_compile
- if use doc; then
- ./build.sh doxygen || die
- fi
-}
-
-src_test() {
- autotools-utils_src_test check test
-}
-
-src_install() {
- use doc && HTML_DOC=( "${BUILD_DIR}"/doxydocs/html/. )
- autotools-utils_src_install
- if use examples; then
- insinto /usr/share/doc/${PF}/examples
- doins -r example/*
- fi
-}
diff --git a/sci-libs/coinor-cppad/coinor-cppad-20210000.5.ebuild b/sci-libs/coinor-cppad/coinor-cppad-20210000.5.ebuild
new file mode 100644
index 000000000000..b0f442dd2f2c
--- /dev/null
+++ b/sci-libs/coinor-cppad/coinor-cppad-20210000.5.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_MAKEFILE_GENERATOR="emake" # needed for tests
+inherit cmake
+
+DESCRIPTION="COIN-OR C++ Algorithmic Differentiation"
+HOMEPAGE="https://projects.coin-or.org/CppAD/"
+SRC_URI="https://github.com/coin-or/CppAD/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/CppAD-${PV}"
+
+LICENSE="EPL-2.0"
+SLOT="0/${PV}" # soname is bumped every versions
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="adolc doc eigen ipopt"
+
+# adolc currently can't build tests and ipopt fails them.
+RESTRICT="adolc? ( test ) ipopt? ( test )"
+
+# No need for RDEPEND.
+DEPEND="
+ dev-libs/boost[threads]
+ adolc? ( sci-libs/adolc )
+ eigen? ( dev-cpp/eigen )
+ ipopt? ( sci-libs/ipopt )"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen[dot]
+ virtual/latex-base
+ )"
+
+PATCHES=( "${FILESDIR}"/${P}-pkgconfig.patch )
+
+src_prepare() {
+ cmake_src_prepare
+ # Gentoo uses coin/ rather than coin-or/ for includes.
+ sed -i 's/<coin-or/<coin/' \
+ cppad_ipopt/src/cppad_ipopt_nlp.hpp \
+ include/cppad/ipopt/solve_callback.hpp || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Dcmake_install_libdirs=$(get_libdir)
+ -Dinclude_adolc=$(usex adolc)
+ -Dinclude_cppadcg=no
+ -Dinclude_eigen=$(usex eigen)
+ -Dinclude_ipopt=$(usex ipopt)
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ bin/doxyfile.sh ${PV} dox.log doc && doxygen doxyfile || die
+ fi
+}
+
+src_test() {
+ cmake_build check
+}
+
+src_install() {
+ cmake_src_install
+ use doc && dodoc -r doc/html
+
+ # Remove superfluous .pc file.
+ rm -r "${ED}"/usr/share/pkgconfig || die
+}
diff --git a/sci-libs/coinor-cppad/files/coinor-cppad-20140519-boost.patch b/sci-libs/coinor-cppad/files/coinor-cppad-20140519-boost.patch
deleted file mode 100644
index 7a4d3ae83aca..000000000000
--- a/sci-libs/coinor-cppad/files/coinor-cppad-20140519-boost.patch
+++ /dev/null
@@ -1,79 +0,0 @@
- configure.ac | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 033621f..87e129a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -550,13 +550,14 @@ dnl check for boost thread library
- AC_LANG_PUSH([C++])
- LDFLAGS_save=$LDFLAGS
- CXXFLAGS_save=$CXXFLAGS
-+LIBS_save=$LIBS
- boost_thread_found='no'
- if test "$BOOST_DIR" != '' ; then
- CXXFLAGS="-I$BOOST_DIR/include $CXXFLAGS"
- fi
- if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
-- bthread_lib='-lboost_thread-mt'
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ bthread_lib='-lboost_thread-mt -lboost_system'
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -568,7 +569,7 @@ if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
- fi
- if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread-mt.so"
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -580,7 +581,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- fi
- if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread-mt.a"
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -591,8 +592,8 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- )
- fi
- if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
-- bthread_lib='-lboost_thread'
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ bthread_lib='-lboost_thread -lboost_system'
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -604,7 +605,7 @@ if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
- fi
- if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread.so"
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -616,7 +617,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- fi
- if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread.a"
-- LDFLAGS="$LDFLAGS_save $bthread_lib"
-+ LIBS="$LIBS_save $bthread_lib"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [# include <boost/thread.hpp>],
-@@ -636,6 +637,7 @@ else
- fi
- LDFLAGS=$LDFLAGS_save
- CXXFLAGS=$CXXFLAGS_save
-+LIBS=$LIBS_save
- AC_LANG_POP([C++])
- #
- dnl --------------------------------------------------------------------------
diff --git a/sci-libs/coinor-cppad/files/coinor-cppad-20140519-dash.patch b/sci-libs/coinor-cppad/files/coinor-cppad-20140519-dash.patch
deleted file mode 100644
index fe0b210f1075..000000000000
--- a/sci-libs/coinor-cppad/files/coinor-cppad-20140519-dash.patch
+++ /dev/null
@@ -1,215 +0,0 @@
- configure.ac | 56 ++++++++++++++++++++++++++++----------------------------
- 1 file changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9e917dd..033621f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -194,7 +194,7 @@ AC_ARG_WITH(sparse_list,
- )
- AC_MSG_RESULT([$sparse_list])
- if test "$sparse_set" = "yes" ; then
-- if test "$sparse_list" == "yes" ; then
-+ if test "$sparse_list" = "yes" ; then
- AC_MSG_ERROR([cannot --with both sparse_set and sparse_list])
- fi
- AC_SUBST(cppad_internal_sparse_set, sparse_set)
-@@ -374,7 +374,7 @@ AC_SUBST(cppad_max_num_threads, [$max_num_threads])
- dnl type used for addresses in AD tapes [ default = unsigned int ] -----------
- AC_MSG_CHECKING([TAPE_ADDR_TYPE])
- AC_ARG_VAR(TAPE_ADDR_TYPE, [type used for addresses in AD tapes])
--if test "$TAPE_ADDR_TYPE" == "" ; then
-+if test "$TAPE_ADDR_TYPE" = "" ; then
- addr_t="unsigned int"
- else
- addr_t="$TAPE_ADDR_TYPE"
-@@ -382,22 +382,22 @@ fi
- AC_SUBST(cppad_tape_addr_type, [$addr_t])
- AC_MSG_RESULT([$addr_t])
- ok="no"
--if test "$addr_t" == "size_t" ; then
-+if test "$addr_t" = "size_t" ; then
- ok="yes"
- fi
--if test "$addr_t" == "int" ; then
-+if test "$addr_t" = "int" ; then
- AC_MSG_WARN(
- [TAPE_ADDR_TYPE=int is for CppAD developers (not users)]
- )
- ok="yes"
- fi
--if test "$addr_t" == "unsigned int" ; then
-+if test "$addr_t" = "unsigned int" ; then
- ok="yes"
- fi
--if test "$addr_t" == "unsigned short int" ; then
-+if test "$addr_t" = "unsigned short int" ; then
- ok="yes"
- fi
--if test "$ok" == "no" ; then
-+if test "$ok" = "no" ; then
- AC_MSG_ERROR(
- [$addr_t is not a valid choice for TAPE_ADDR_TYPE]
- )
-@@ -406,7 +406,7 @@ fi
- dnl type used for tape identifier [ default = unsigned int ] -----------
- AC_MSG_CHECKING([TAPE_ID_TYPE])
- AC_ARG_VAR(TAPE_ID_TYPE, [type used for addresses in AD tapes])
--if test "$TAPE_ID_TYPE" == "" ; then
-+if test "$TAPE_ID_TYPE" = "" ; then
- tape_id_t="unsigned int"
- else
- tape_id_t="$TAPE_ID_TYPE"
-@@ -414,22 +414,22 @@ fi
- AC_SUBST(cppad_tape_id_type, [$tape_id_t])
- AC_MSG_RESULT([$tape_id_t])
- ok="no"
--if test "$tape_id_t" == "size_t" ; then
-+if test "$tape_id_t" = "size_t" ; then
- ok="yes"
- fi
--if test "$tape_id_t" == "int" ; then
-+if test "$tape_id_t" = "int" ; then
- AC_MSG_WARN(
- [TAPE_ID_TYPE=int is for CppAD developers (not users)]
- )
- ok="yes"
- fi
--if test "$tape_id_t" == "unsigned int" ; then
-+if test "$tape_id_t" = "unsigned int" ; then
- ok="yes"
- fi
--if test "$tape_id_t" == "unsigned short int" ; then
-+if test "$tape_id_t" = "unsigned short int" ; then
- ok="yes"
- fi
--if test "$ok" == "no" ; then
-+if test "$ok" = "no" ; then
- AC_MSG_ERROR(
- [$tape_id_t is not a valid choice for TAPE_ID_TYPE]
- )
-@@ -447,7 +447,7 @@ AC_SUBST(cppad_has_rvalue, 0)
- dnl Determine if size_t has same size as unsigned int
- AC_CHECK_SIZEOF([size_t])
- AC_CHECK_SIZEOF([unsigned int])
--if test "$ac_cv_size_t" == "$ac_cv_unsigned_int" ; then
-+if test "$ac_cv_size_t" = "$ac_cv_unsigned_int" ; then
- AC_SUBST(cppad_size_t_same_unsigned_int, 1)
- else
- AC_SUBST(cppad_size_t_same_unsigned_int, 0)
-@@ -485,8 +485,8 @@ AC_PROG_RANLIB
- dnl AC_PROG_CXX([compiler-search-list]) outputs CXX as C++ compiler to use
- AC_PROG_CXX
- AC_MSG_CHECKING([whether using Microsoft C++ compiler])
--AM_CONDITIONAL(CppAD_MS_COMPILER, test "$CXX" == "cl" || test "$CXX" == "icl")
--if test "$CXX" == "cl" || test "$CXX" == "icl"; then
-+AM_CONDITIONAL(CppAD_MS_COMPILER, test "$CXX" = "cl" || test "$CXX" = "icl")
-+if test "$CXX" = "cl" || test "$CXX" = "icl"; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
-@@ -531,7 +531,7 @@ AC_CHECK_LIB(
- [pthread="no"]
- )
- AM_CONDITIONAL(CppAD_PTHREAD, test "$pthread" = "yes")
--if test "$pthread" == "yes" ; then
-+if test "$pthread" = "yes" ; then
- AC_SUBST(PTHREAD_LIB,"-lpthread")
- else
- AC_SUBST(PTHREAD_LIB,"")
-@@ -554,7 +554,7 @@ boost_thread_found='no'
- if test "$BOOST_DIR" != '' ; then
- CXXFLAGS="-I$BOOST_DIR/include $CXXFLAGS"
- fi
--if test "$BOOST_DIR" == '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib='-lboost_thread-mt'
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -566,7 +566,7 @@ if test "$BOOST_DIR" == '' && test "$boost_thread_found" == 'no' ; then
- [boost_thread_found='no']
- )
- fi
--if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread-mt.so"
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -578,7 +578,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
- [boost_thread_found='no']
- )
- fi
--if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread-mt.a"
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -590,7 +590,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
- [boost_thread_found='no']
- )
- fi
--if test "$BOOST_DIR" == '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" = '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib='-lboost_thread'
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -602,7 +602,7 @@ if test "$BOOST_DIR" == '' && test "$boost_thread_found" == 'no' ; then
- [boost_thread_found='no']
- )
- fi
--if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread.so"
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -614,7 +614,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
- [boost_thread_found='no']
- )
- fi
--if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
-+if test "$BOOST_DIR" != '' && test "$boost_thread_found" = 'no' ; then
- bthread_lib="$BOOST_DIR/lib/libboost_thread.a"
- LDFLAGS="$LDFLAGS_save $bthread_lib"
- AC_LINK_IFELSE(
-@@ -627,7 +627,7 @@ if test "$BOOST_DIR" != '' && test "$boost_thread_found" == 'no' ; then
- )
- fi
- AM_CONDITIONAL(CppAD_BTHREAD, test "$boost_thread_found" = 'yes')
--if test "$boost_thread_found" == 'yes' ; then
-+if test "$boost_thread_found" = 'yes' ; then
- AC_SUBST(BTHREAD_LIB,"$bthread_lib")
- AC_MSG_RESULT([boost::thread library... yes])
- else
-@@ -650,12 +650,12 @@ fi
- AC_SUBST(CPPAD_IPOPT_LD_PATH, "$IPOPT_LD_PATH")
- #
- AC_SUBST(CPPAD_IPOPT_LIBS, "$IPOPT_LIBS -lipopt")
--if test "$have_pkg_config" == "yes"; then
-+if test "$have_pkg_config" = "yes"; then
- dnl set CPPAD_IPOPT_LIBS
- PKG_CONFIG_PATH="$IPOPT_DIR/lib/pkgconfig:$IPOPT_DIR/share/pkgconfig"
- PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$IPOPT_DIR/lib64/pkgconfig"
- export PKG_CONFIG_PATH
-- if pkg-config --libs ipopt >& /dev/null ; then
-+ if pkg-config --libs ipopt > /dev/null 2>&1 ; then
- CPPAD_IPOPT_LIBS=`pkg-config --libs ipopt`
- else
- dnl check for blas library
-@@ -696,7 +696,7 @@ dnl
- AC_SUBST(cppad_description, "Differentiation of C++ Algorithms")
- AC_SUBST(cppad_version, ${PACKAGE_VERSION} )
- AC_SUBST(cppad_url, "http://www.coin-or.org/CppAD")
--if test "$prefix" == "NONE" ; then
-+if test "$prefix" = "NONE" ; then
- cppad_cflags_value="-I$HOME/include"
- cppad_libs_value="-L$HOME/lib"
- else
-@@ -707,7 +707,7 @@ if test "$POSTFIX_DIR" != "" ; then
- cppad_cflags_value="$cppad_cflags_value/$POSTFIX_DIR"
- cppad_libs_value="$cppad_libs_value/$POSTFIX_DIR"
- fi
--if test "$IPOPT_DIR" == "" ; then
-+if test "$IPOPT_DIR" = "" ; then
- cppad_libs_value=""
- cppad_requires_value=""
- else
diff --git a/sci-libs/coinor-cppad/files/coinor-cppad-20210000.5-pkgconfig.patch b/sci-libs/coinor-cppad/files/coinor-cppad-20210000.5-pkgconfig.patch
new file mode 100644
index 000000000000..0483eea52ec4
--- /dev/null
+++ b/sci-libs/coinor-cppad/files/coinor-cppad-20210000.5-pkgconfig.patch
@@ -0,0 +1,26 @@
+Fix pkg-config file generation, backported from upstream commit:
+https://github.com/coin-or/CppAD/commit/6d10b8d
+with an additional fix to not have -l-lcppad_lib
+--- a/pkgconfig/CMakeLists.txt
++++ b/pkgconfig/CMakeLists.txt
+@@ -124,3 +124,3 @@
+ # cppad_includedir
+-LIST(GET cmake_install_libdirs 0 cppad_includedir)
++LIST(GET cmake_install_includedirs 0 cppad_includedir)
+ #
+@@ -161,2 +161,3 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/cppad.pc
++ @ONLY
+ )
+--- a/pkgconfig/cppad.pc.in
++++ b/pkgconfig/cppad.pc.in
+@@ -17,3 +17,3 @@
+ prefix=@cppad_prefix@
+-exec_prefix=$(prefix)
++exec_prefix=${prefix}
+ includedir=${prefix}/@cppad_includedir@
+@@ -30,3 +30,3 @@
+ Cflags: -I${includedir}
+-Libs: -L{libdir} -l@cppad_lib_list@
++Libs: -L${libdir} @cppad_lib_list@
+ Requires:
diff --git a/sci-libs/coinor-cppad/metadata.xml b/sci-libs/coinor-cppad/metadata.xml
index 0edc1f35c6e9..be6da625a6d1 100644
--- a/sci-libs/coinor-cppad/metadata.xml
+++ b/sci-libs/coinor-cppad/metadata.xml
@@ -13,5 +13,13 @@
function values, CppAD generates an algorithm that computes
corresponding derivative values (of arbitrary order using either
forward or reverse mode).
-</longdescription>
+ </longdescription>
+ <use>
+ <flag name="adolc">Add support for ADOL-C (<pkg>sci-libs/adolc</pkg>)</flag>
+ <flag name="eigen">Add support for Eigen (<pkg>dev-cpp/eigen</pkg>)</flag>
+ <flag name="ipopt">Add support for IPOPT (<pkg>sci-libs/ipopt</pkg>)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">coin-or/CppAD</remote-id>
+ </upstream>
</pkgmetadata>