[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/7] libtoolize: refactor configure_ac discovery.
From: |
Gary V. Vaughan |
Subject: |
[PATCH 2/7] libtoolize: refactor configure_ac discovery. |
Date: |
Sat, 5 Nov 2011 23:41:24 +0700 |
Make a start on decomposing some of the giant functions at the
heart of libtoolize into the much more flexible and manageable
(albeit somewhat more verbose) model of self-organising
$require_<foo> function pointers.
* libtoolize.m4sh (require_configure_ac): New function factored
out of func_scan_files for setting $configure_ac appropriately,
implementation taken from extract-trace script.
(func_autoconf_configure): And similarly for ensuring that a
filename which matches something Autoconf would read also has
content that appears to be destined for Autoconf processing.
(func_scan_files): Simplified the factored out code to a single
require_configure_ac call.
(func_install_pkgconfig_files, func_check_macros): Ditto.
(seen_autoconf): Removed.
Signed-off-by: Gary V. Vaughan <address@hidden>
---
libtoolize.m4sh | 101 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 79 insertions(+), 22 deletions(-)
diff --git a/libtoolize.m4sh b/libtoolize.m4sh
index 6bd7e4e..07a21ee 100644
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
@@ -376,25 +376,9 @@ func_scan_files ()
{
$debug_cmd
- # Prefer configure.ac to configure.in
- test -f configure.ac && configure_ac=configure.ac
- test -f "$configure_ac" || configure_ac=
-
- # Set local variables to reflect contents of configure.ac
- my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
- /AC_INIT/ {
- s,^.*$,seen_autoconf=:,
- p
- }
- d'
- test -z "$configure_ac" \
- || eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`
-
- $seen_autoconf || {
- my_configure_ac=
- test -n "$configure_ac" && my_configure_ac="$configure_ac: "
- func_verbose "${my_configure_ac}not using Autoconf"
+ $require_configure_ac
+ test -n "$configure_ac" || {
# Make sure ltdldir and ltdl_mode have sensible defaults
# since we return early here:
test -n "$ltdldir" || ltdldir=libltdl
@@ -1305,6 +1289,8 @@ func_install_pkgconfig_files ()
{
$debug_cmd
+ $require_configure_ac
+
func_massage_pkgconfig_files
# 1. Parent shares aux_dir with subproject ltdl:
@@ -1317,7 +1303,7 @@ func_install_pkgconfig_files ()
elif $opt_ltdl && test "x$ltdl_mode" = "xsubproject"
# && test "x$aux_dir" != "x$subproject_aux_dir" is implied
then
- if $seen_autoconf; then
+ if test -n "$configure_ac"; then
func_install_pkgconfig_parent
fi
func_install_pkgconfig_subproject
@@ -1359,8 +1345,10 @@ func_check_macros ()
{
$debug_cmd
+ $require_configure_ac
+
$opt_quiet && return
- $seen_autoconf || return
+ test -n "$configure_ac" || return
ac_config_macro_dir_advised=false
@@ -1462,6 +1450,77 @@ func_check_macros ()
}
+
+## ------------------##
+## Helper functions. ##
+## ------------------##
+
+# This section contains the helper functions used by the rest of
+# this script.
+
+
+# func_autoconf_configure MAYBE-CONFIGURE-FILE
+# ------------------------------------------
+# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current
+# directory which contains an uncommented call to AC_INIT.
+func_autoconf_configure ()
+{
+ $debug_cmd
+
+ _G_sed_no_comment='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;'
+ _G_ac_init=
+
+ # If we were passed a genuine file, make sure it calls AC_INIT.
+ test -f "$1" \
+ && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |grep AC_INIT`
+
+ # Otherwise it is not a genuine Autoconf input file.
+ test -n "$_G_ac_init"
+ _G_status=$?
+
+ test "$_G_status" -ne 0 \
+ && func_verbose "\`$1' not using Autoconf"
+
+ (exit $_G_status)
+}
+
+
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Where a variable already has a non-
+# empty value (as set by the package's `bootstrap.conf'), that value is
+# used in preference to deriving the default. Call them using their
+# associated `require_*' variable to ensure that they are executed, at
+# most, once.
+
+
+# require_configure_ac
+# --------------------
+# Ensure that there is a `configure.ac' or `configure.in' file in the
+# current directory, and that `$configure_ac' contains its name.
+require_configure_ac=func_require_configure_ac
+func_require_configure_ac ()
+{
+ $debug_cmd
+
+ test -z "$configure_ac" \
+ && func_autoconf_configure configure.ac && configure_ac=configure.ac
+ test -z "$configure_ac" \
+ && func_autoconf_configure configure.in && configure_ac=configure.in
+ test -z "$configure_ac" \
+ || func_verbose "found \`$configure_ac'"
+
+ require_configure_ac=:
+}
+
+
+
## ----------- ##
## Main. ##
## ----------- ##
@@ -1484,9 +1543,7 @@ func_check_macros ()
address@hidden@
aux_dir=
macro_dir=
- configure_ac=configure.in
- seen_autoconf=false
seen_libtool=false
seen_ltdl=false
--
1.7.7.2
Cheers,
--
Gary V. Vaughan (gary AT gnu DOT org)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH 2/7] libtoolize: refactor configure_ac discovery.,
Gary V. Vaughan <=