From e69d98df22bf49c4016b0b99cec8b0d73c99f2e3 Mon Sep 17 00:00:00 2001 From: stephan Date: Tue, 5 Nov 2024 08:21:47 +0000 Subject: [PATCH] Enhance the rpath configure check to honor --exec-prefix=... Remove some debugging code and move other debugging code around. FossilOrigin-Name: a8c1a82b56412a4277a3c9bf2b256d3bd22bd8aca9096b8d08fcc0bf7d9364cb --- auto.def | 65 +++++++++++++++++++++++++--------------------- autosetup/proj.tcl | 15 +++++------ manifest | 14 +++++----- manifest.uuid | 2 +- 4 files changed, 49 insertions(+), 47 deletions(-) diff --git a/auto.def b/auto.def index 7d67ad7675..aa3e23e85f 100644 --- a/auto.def +++ b/auto.def @@ -217,12 +217,6 @@ proj-xfer-options-aliases { with-readline-inc => with-readline-cflags with-readline-lib => with-readline-ldflags } -# -# "Re-export" the autoconf-conventional --XYZdir flags into something -# which is more easily overridable from a make invocation. See the docs -# for [proj-redirect-autoconf-dir-vars] for the explanation of why. -# -proj-redirect-autoconf-dir-vars set srcdir $::autosetup(srcdir) set top_srcdir [get-define abs_top_srcdir] @@ -1204,6 +1198,18 @@ if {0 && "" ne [get-define CFLAGS_JIMSH]} { define-append CFLAGS_JIMSH -DHAVE_LONG_LONG; # SQLite relies on long long, so we know it's available }; # JimTCL + +######################################################################## +# "Re-export" the autoconf-conventional --XYZdir flags into something +# which is more easily overridable from a make invocation. See the docs +# for [proj-redirect-autoconf-dir-vars] for the explanation of why. +# +# We do this late in the config process, immediately before we export +# the Makefile and other generated files, so that configure tests +# which may make use of the autotools-conventional flags +# (e.g. [proj-check-rpath]) may do so before we "mangle" them here. +proj-redirect-autoconf-dir-vars + ######################################################################## # Generate the output files. # @@ -1224,30 +1230,6 @@ if {0} { -none * proj-touch sqlite_cfg.h ; # help avoid frequent unnecessary @SQLITE_AUTORECONFIG@ } -#TODO proj-make-from-dot-in ext/wasm/GNUmakefile - -if {"" ne $DUMP_DEFINES_JSON} { - ######################################################################## - # Dump config-defines.json... - # Demonstrate (mis?)handling of spaces in JSON-export array values: - # define-append OPT_FOO.list {"-DFOO=bar baz" -DBAR="baz barre"} - define OPT_FEATURE_FLAGS.list [get-define OPT_FEATURE_FLAGS] - define OPT_SHELL.list [get-define OPT_SHELL] - set dumpDefsOpt { - -bare {SIZEOF_* HAVE_DECL_*} - -none {HAVE_CFLAG_* LDFLAGS_* SH_* SQLITE_AUTORECONFIG TARGET_* USE_GCOV TCL_*} - -array {*.list} - -auto {OPT_* PACKAGE_* HAVE_*} - } - if {[opt-bool defines-json-include-lowercase]} { - lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends - lappend dumpDefsOpt -auto {[a-z]*} - } - lappend dumpDefsOpt -none * - proj-dump-defs-json $DUMP_DEFINES_JSON {*}$dumpDefsOpt - undefine OPT_FEATURE_FLAGS.list - undefine OPT_SHELL.list -} ######################################################################## # Some build-dev/debug-only output @@ -1264,4 +1246,27 @@ proj-if-opt-truthy dump-defines { puts "\t$x" } } + if {"" ne $DUMP_DEFINES_JSON} { + msg-result "--dump-defines is creating $::DUMP_DEFINES_JSON" + ######################################################################## + # Dump config-defines.json... + # Demonstrate (mis?)handling of spaces in JSON-export array values: + # define-append OPT_FOO.list {"-DFOO=bar baz" -DBAR="baz barre"} + define OPT_FEATURE_FLAGS.list [get-define OPT_FEATURE_FLAGS] + define OPT_SHELL.list [get-define OPT_SHELL] + set dumpDefsOpt { + -bare {SIZEOF_* HAVE_DECL_*} + -none {HAVE_CFLAG_* LDFLAGS_* SH_* SQLITE_AUTORECONFIG TARGET_* USE_GCOV TCL_*} + -array {*.list} + -auto {OPT_* PACKAGE_* HAVE_*} + } + if {[opt-bool defines-json-include-lowercase]} { + lappend dumpDefsOpt -none {lib_*} ; # remnants from proj-check-function-in-lib and friends + lappend dumpDefsOpt -auto {[a-z]*} + } + lappend dumpDefsOpt -none * + proj-dump-defs-json $DUMP_DEFINES_JSON {*}$dumpDefsOpt + undefine OPT_FEATURE_FLAGS.list + undefine OPT_SHELL.list + } } diff --git a/autosetup/proj.tcl b/autosetup/proj.tcl index eee526dea6..05695ca26a 100644 --- a/autosetup/proj.tcl +++ b/autosetup/proj.tcl @@ -790,16 +790,18 @@ proc proj-check-emsdk {} { # flag. Defines LDFLAGS_RPATH to that/those flag(s) or an empty # string. Returns 1 if it finds an option, else 0. # -# By default, the rpath is set to $prefix/lib. However, if -# --libdir=... is explicitly passed to configure then that value is -# used. +# By default, the rpath is set to $prefix/lib. However, if either of +# --exec-prefix=... or --libdir=... are explicitly passed to +# configure then [get-define libdir] is used (noting that it derives +# from exec-prefix by default). # # Achtung: we have seen platforms which report that a given option # checked here will work but then fails at build-time, and the current # order of checks reflects that. proc proj-check-rpath {} { set rc 1 - if {[proj-opt-was-provided libdir]} { + if {[proj-opt-was-provided libdir] + || [proj-opt-was-provided exec-prefix]} { set lp "[get-define libdir]" } else { set lp "[get-define prefix]/lib" @@ -1090,7 +1092,6 @@ proc proj-redirect-autoconf-dir-vars {} { # [subst] command. i.e. they must use the form ${X}. foreach {flag makeVar makeDeref} { exec-prefix exec_prefix ${prefix} - libdir libdir ${exec_prefix}/lib datadir datadir ${prefix}/share mandir mandir ${datadir}/man includedir includedir ${prefix}/include @@ -1104,15 +1105,11 @@ proc proj-redirect-autoconf-dir-vars {} { infodir infodir ${datadir}/info libexecdir libexecdir ${exec_prefix}/libexec } { - # puts "flag=$flag var=$makeVar makeDeref=$makeDeref" if {[proj-opt-was-provided $flag]} { - #set x "+" define $makeVar [opt-val $flag] } else { - #set x "~" define $makeVar $makeDeref } - #puts "$x $makeVar = [get-define $makeVar]" } } diff --git a/manifest b/manifest index 7e9a7e6d58..3c5981fff8 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Roll\sback\s[47e50fa84dacf83c]\sfor\sconsistency\swith\sthe\slegacy\sbuild.\ssqlite3.pc\sis\snow\sgenerated\sequivalently\sto\sprior\sversions. -D 2024-11-05T08:14:27.481 +C Enhance\sthe\srpath\sconfigure\scheck\sto\shonor\s--exec-prefix=...\sRemove\ssome\sdebugging\scode\sand\smove\sother\sdebugging\scode\saround. +D 2024-11-05T08:21:47.035 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md c5b4009dca54d127d2d6033c22fd9cc34f53bedb6ef12c7cbaa468381c74ab28 @@ -13,7 +13,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 -F auto.def dd8555a00b22645f0ec06bde38f36fb4a9625fb2ce0950d79dc13c3051f242d1 +F auto.def 3f6aec871699bc3e54f7dc6f4496daf4b435d4b8326bfed51ccabd12b633988c F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac @@ -49,7 +49,7 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82 F autosetup/jimsh0.c d40e381ea4526a067590e7b91bd4b2efa6d4980d286f908054c647b3df4aee14 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba -F autosetup/proj.tcl 0bcced417a59fc56da5e6cc6a83e10cca4e10710c0f2f1ae9bc82b366d17699d +F autosetup/proj.tcl 16138ac9c8bc071613b260a18f46ada9a31ed3b496a7ae6f403fd9d49d588aea F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9 F autosetup/tmake.auto eaebc74ad538dfdd3c817c27eefc31930c20510c4f3a3704071f6cb0629ed71f F autosetup/tmake.tcl a275793ec1b6f8708179af0acef1f6f10d46c2920739743f7a8720c6d700c7a9 @@ -2199,8 +2199,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 6c6fa3adfee6ec2c57dc76461e7c97416b4fad45772ce367d223cc67e66049f6 -R 91f8f712e56b95f1d0840a661628f372 +P af79d11e389b4772a401f6c2cbde42de95287addf7077ad4db55d39cc504f9fe +R 8f4205f94f3bfdb54022edc4daed40c7 U stephan -Z 5ec50233ebe03347ef3d5c1ede9ca068 +Z 23df65f4992f1d4489c83b5031514bec # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 00a2ccce48..a0e57dacbc 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -af79d11e389b4772a401f6c2cbde42de95287addf7077ad4db55d39cc504f9fe +a8c1a82b56412a4277a3c9bf2b256d3bd22bd8aca9096b8d08fcc0bf7d9364cb