Mercurial > octave
changeset 29554:99e3912441ec stable
build: Make relocation of dependencies with Octave optional (bug #60413).
* configure.ac: Add new option "--enable-relocate-all".
* build-aux/subst-config-vals.in.sh, build-aux/subst-cross-config-vals.in.sh:
Replace parts of flags that match the prefix only optionally.
* src/mkoctfile.in.cc (replace_prefix): Only replace arts of flags that match
the prefix only if configured to do so.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 24 Apr 2021 19:17:16 +0200 |
parents | 841ca9987302 |
children | 0f57f0f47216 d75aa2bf4915 |
files | build-aux/subst-config-vals.in.sh build-aux/subst-cross-config-vals.in.sh configure.ac src/mkoctfile.in.cc |
diffstat | 4 files changed, 45 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/build-aux/subst-config-vals.in.sh Tue Apr 20 16:20:10 2021 -0400 +++ b/build-aux/subst-config-vals.in.sh Sat Apr 24 19:17:16 2021 +0200 @@ -77,13 +77,23 @@ startupfiledir=`echo "@startupfiledir@" | sed "s|^${prefix}/\\+||"` texi_macros_file=`echo "@texi_macros_file@" | sed "s|^${prefix}/\\+||"` -## Replace portions of compiler flags that depend on prefix on target -cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"` -ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"` +if [ "x@OCTAVE_RELOCATE_ALL@" = "xyes" ]; then + ## Replace portions of compiler flags that depend on prefix on target + cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"` + ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"` +else + cppflags="@CPPFLAGS@" + fftw3f_ldflags="@FFTW3F_LDFLAGS@" + fftw3_ldflags="@FFTW3_LDFLAGS@" + flibs="@FLIBS@" + ldflags="@LDFLAGS@" + oct_link_opts="@OCT_LINK_OPTS@" +fi + srcdir="@srcdir@" top_srcdir="@top_srcdir@"
--- a/build-aux/subst-cross-config-vals.in.sh Tue Apr 20 16:20:10 2021 -0400 +++ b/build-aux/subst-cross-config-vals.in.sh Sat Apr 24 19:17:16 2021 +0200 @@ -87,13 +87,22 @@ startupfiledir=`echo "@startupfiledir@" | sed "s|^${prefix}/\\+||"` texi_macros_file=`echo "@texi_macros_file@" | sed "s|^${prefix}/\\+||"` -## Replace portions of compiler flags that depend on prefix on target -cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"` -ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` -oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"` +if [ "x@OCTAVE_RELOCATE_ALL@" = "xyes" ]; then + ## Replace portions of compiler flags that depend on prefix on target + cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"` + ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"` + oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"` +else + cppflags="@CPPFLAGS@" + fftw3f_ldflags="@FFTW3F_LDFLAGS@" + fftw3_ldflags="@FFTW3_LDFLAGS@" + flibs="@FLIBS@" + ldflags="@LDFLAGS@" + oct_link_opts="@OCT_LINK_OPTS@" +fi srcdir="@srcdir@"
--- a/configure.ac Tue Apr 20 16:20:10 2021 -0400 +++ b/configure.ac Sat Apr 24 19:17:16 2021 +0200 @@ -2636,6 +2636,16 @@ AM_CONDITIONAL([AMCOND_BUILD_QT_DOCS], [test $ENABLE_DOCS = yes && test $build_qt_gui = yes]) +OCTAVE_RELOCATE_ALL=no +AC_ARG_ENABLE([relocate-all], + [AS_HELP_STRING([--enable-relocate-all], + [assume that all dependencies that are installed under the same prefix are relocated when Octave is relocated])], + [if test "$enableval" = yes; then OCTAVE_RELOCATE_ALL=yes; fi], []) +AC_SUBST(OCTAVE_RELOCATE_ALL) +if test $OCTAVE_RELOCATE_ALL = yes; then + AC_DEFINE(OCTAVE_REPLACE_PREFIX, 1, [Replace prefix in mkoctfile flags.]) +fi + ### Determine whether Mercurial ID should be embedded in library binaries. ENABLE_HG_ID=yes
--- a/src/mkoctfile.in.cc Tue Apr 20 16:20:10 2021 -0400 +++ b/src/mkoctfile.in.cc Sat Apr 24 19:17:16 2021 +0200 @@ -159,6 +159,7 @@ static std::string replace_prefix (std::string s) { +#if defined (OCTAVE_REPLACE_PREFIX) const std::string match = "${prefix}"; size_t pos = s.find (match); while (pos != std::string::npos ) @@ -166,6 +167,7 @@ s.replace(pos, match.length (), prepend_octave_exec_home ("")); pos = s.find (match); } +#endif return s; }