mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-01-12 14:06:37 +08:00
e46561b83e
required to write this changeset -- especially that ltmain.sh is the same on any machine for a given release, which I hadn't noticed for some bizarre reason: It turns out that generating distributed files from configure causes no end of hassle, as evidenced by the many patches I've generated over the last few days to try and get the dist and distcheck make rules to work. Instead of all that hair, we now simply generate our distributed files (now including ltmain.sh) with make rules -- and since automake creates make variables for all AC_SUBSTs, that is really easy. The code looks a lot more like automake and autoconf Makefile.ams now, and doesn't have all the rough edges the earlier hacky solution suffered from. We still generate libtool from config.status, but that is not a distributed file, and doesn't break the golden rule. Besides, there is way more going on there than a bunch of substitutions: * Makefile.am (edit): New common sed substitutions for files now generated by make instead of config.status. (CLEANFILES): Clean new tmp files. (EXTRA_DIST): Add ltmain.sh. (vcl-tmp): Reinstated. (m4/ltversion.m4, config/ltmain.sh): New rules. Generate from here instead of config.status. (libtoolize): Ditto. (libtool): Call config.status to regenerate if necessary. (dist-hook): Removed. * config/ltmain.in: Moved here from top_srcdir. * README-alpha: Update instructions to check AS_SHELL_SANITIZE is up to date. * bootstrap: Rewritten. Generate m4/ltversion.m4 and config/ltmain.sh because configure depends on them. * configure.ac (AC_CONFIG_SRCDIR): Use libtoolize.in now that ltmain.in has moved. (AC_CONFIG_FILES): Don't generate distributed files, config/ltmain.sh and libtoolize from config.status. We have make rules to do that now.
206 lines
6.5 KiB
Plaintext
206 lines
6.5 KiB
Plaintext
## Process this file with autoconf to create configure. -*- autoconf -*-
|
|
# Copyright (C) 2001, 2004 Free Software Foundation, Inc.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
# 02111-1307 USA
|
|
|
|
|
|
AC_PREREQ(2.58) ## We use AS_HELP_STRING
|
|
## Oldest automake required for bootstrap is below in AM_INIT_AUTOMAKE.
|
|
|
|
|
|
## ------------------------ ##
|
|
## Autoconf initialisation. ##
|
|
## ------------------------ ##
|
|
AC_INIT([libtool], [1.5a], [bug-libtool@gnu.org])
|
|
AC_CONFIG_HEADERS([config.h:config-h.in])
|
|
AC_CONFIG_SRCDIR([libtoolize.in])
|
|
AC_CONFIG_AUX_DIR([config])
|
|
|
|
|
|
## ------------------------ ##
|
|
## Autotest initialisation. ##
|
|
## ------------------------ ##
|
|
|
|
dnl AC_CONFIG_TESTDIR([tests])
|
|
dnl AC_CONFIG_FILES([tests/atlocal])
|
|
|
|
|
|
## ---------------------------------------- ##
|
|
## Display a configure time version banner. ##
|
|
## ---------------------------------------- ##
|
|
|
|
# Calculating the previous version is somewhat involved, so do it once
|
|
# here, and SUBST the result for the maintainer release rules. The
|
|
# versioning scheme we use is described here:
|
|
# http://www.gnu.org/software/libtool/contribute.html
|
|
|
|
# First we break the version number up into its constituent parts.
|
|
lt_major=`echo "AC_PACKAGE_VERSION" | sed ['s,\..*$,,g']`
|
|
lt_minor=`echo "AC_PACKAGE_VERSION" | sed ['s,^[0-9]*\.\([0-9]*\).*$,\1,']`
|
|
lt_micro=`echo "AC_PACKAGE_VERSION" | sed ['s,^[0-9]*\.[0-9]*\(\.[0-9]*\).*$,\1,']`
|
|
lt_alpha=`echo "AC_PACKAGE_VERSION" | sed ['s,^[0-9.]*,,']`
|
|
|
|
test "$lt_minor" = "AC_PACKAGE_VERSION" && lt_minor=0
|
|
test "$lt_micro" = "AC_PACKAGE_VERSION" && lt_micro=""
|
|
|
|
# Then we try to work out what the release before this one would have been
|
|
# numbered. The only time we come unstuck is when this is the first release
|
|
# from a stable branch (lt_micro=lt_alpha=""), so LASTRELEASE is the last
|
|
# release from the old stable branch, and we don't know what version that
|
|
# was, so leave it unset so that the Makefile can complain.
|
|
case $lt_alpha in
|
|
[[ab]])
|
|
case $lt_micro in
|
|
[.[01]])
|
|
LASTRELEASE="$lt_major.$lt_minor" ;;
|
|
*)
|
|
LASTRELEASE="$lt_major.$lt_minor$lt_micro" ;;
|
|
esac
|
|
;;
|
|
[[cegikmoqsuwy]])
|
|
LASTRELEASE=`echo "AC_PACKAGE_VERSION" | tr 'c-y' 'b-w'` ;;
|
|
[[dfhjlnprtvxz]])
|
|
LASTRELEASE=`echo "AC_PACKAGE_VERSION" | tr 'd-z' 'b-x'` ;;
|
|
*) # No lt_alpha component
|
|
case $lt_micro in
|
|
.0)
|
|
LASTRELEASE="" ;;
|
|
.1)
|
|
LASTRELEASE="$lt_major.$lt_minor" ;;
|
|
.*)
|
|
lt_micro_value=`echo $lt_micro | sed 's,^\.,,'`
|
|
LASTRELEASE="$lt_major.$lt_minor.`expr $lt_micro_value - 1`" ;;
|
|
*)
|
|
LASTRELEASE="" ;;
|
|
esac
|
|
;;
|
|
esac
|
|
AC_SUBST([LASTRELEASE])
|
|
|
|
# This is a sanity check so we can see which version is used in bug reports.
|
|
# It is assumed that we only want to see the date extension for cvs libtool
|
|
# versions (i.e. "odd" letters) and not actual alpha releases.
|
|
TIMESTAMP=`${CONFIG_SHELL} ${ac_aux_dir}/mkstamp < ${srcdir}/ChangeLog`
|
|
package_revision=`( set $TIMESTAMP; echo $1; )`
|
|
case $lt_alpha in
|
|
[[bdfhjlnprtvxz]])
|
|
TIMESTAMP=
|
|
;;
|
|
esac
|
|
AS_BOX([Configuring AC_PACKAGE_TARNAME${TIMESTAMP:+" (Build:$TIMESTAMP)"} AC_PACKAGE_VERSION])
|
|
echo
|
|
AC_SUBST([TIMESTAMP])
|
|
AC_SUBST([package_revision])
|
|
|
|
|
|
## ------------------------ ##
|
|
## Automake Initialisation. ##
|
|
## ------------------------ ##
|
|
|
|
dnl These are bootstrap requirements, once built, libtool may work with
|
|
dnl much older releases of autoconf and automake. See release notes.
|
|
AM_INIT_AUTOMAKE([1.8 gnits dist-bzip2]) ## We use auto-m4_including
|
|
|
|
dnl Make sure config.status is regenerated when the version timestamp changes
|
|
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_builddir)/stamp-vcl'])
|
|
|
|
## ------------------------------- ##
|
|
## Libtool specific configuration. ##
|
|
## ------------------------------- ##
|
|
pkgdatadir='${datadir}'"/${PACKAGE}"
|
|
AC_SUBST([pkgdatadir]) # automake does not need this, but libtoolize does
|
|
|
|
aclocaldir='${datadir}/aclocal'
|
|
AC_SUBST([aclocaldir])
|
|
|
|
AC_ARG_ENABLE(ltdl-install,
|
|
[AS_HELP_STRING([--disable-ltdl-install], [do not install libltdl])])
|
|
if test x"${enable_ltdl_install+set}" != xset; then
|
|
enable_ltdl_install=yes
|
|
fi
|
|
|
|
# All subdirectories that are configured on demand, but that must be
|
|
# included in the distribution. This substitution is for tests/Makefile.am,
|
|
# so the directory names are relative to that directory.
|
|
CONF_SUBDIRS="cdemo demo depdemo f77demo mdemo mdemo2 pdemo tagdemo"
|
|
AC_SUBST([CONF_SUBDIRS])
|
|
|
|
DIST_MAKEFILE_LIST=
|
|
for dir in $CONF_SUBDIRS; do
|
|
DIST_MAKEFILE_LIST="${DIST_MAKEFILE_LIST}tests/$dir/Makefile "
|
|
done
|
|
AC_SUBST([DIST_MAKEFILE_LIST])
|
|
|
|
|
|
|
|
## ---------------- ##
|
|
## compiler checks. ##
|
|
## ---------------- ##
|
|
|
|
# Use the specified CC and LD
|
|
AC_PROG_CC
|
|
AC_EXEEXT
|
|
AC_PROG_LD
|
|
AC_PROG_NM
|
|
AC_PROG_LN_S
|
|
|
|
# The Autoconf tests for C++ and Fortran 77 sometimes call AC_MSG_ERROR
|
|
# and we don't want that to be an error whilst creating the libtool script.
|
|
# As these are AC_REQUIREd inside libtool.m4 we can simply call them here
|
|
# and catch the errors now.
|
|
pushdef([AC_MSG_ERROR], [caught_CXX_error=yes])
|
|
AC_PROG_CXX
|
|
AC_PROG_CXXCPP
|
|
popdef([AC_MSG_ERROR])
|
|
|
|
pushdef([AC_MSG_ERROR], [caught_F77_error=yes])
|
|
AC_PROG_F77
|
|
popdef([AC_MSG_ERROR])
|
|
|
|
|
|
## ----------------------- ##
|
|
## Libtool initialisation. ##
|
|
## ----------------------- ##
|
|
LT_INIT([dlopen win32-dll])
|
|
AC_LIB_LTDL
|
|
|
|
# Enable all the language support we can
|
|
LT_LANG(C++)
|
|
LT_LANG(Fortran 77)
|
|
LT_LANG(Java)
|
|
LT_LANG(Windows Resource)
|
|
|
|
|
|
## --------------------------- ##
|
|
## Work out which tests to run ##
|
|
## --------------------------- ##
|
|
AM_CONDITIONAL(HAVE_CXX,
|
|
[test "X$caught_CXX_error" != "Xyes" &&
|
|
test -n "[$]_LT_AC_TAGVAR(compiler, CXX)"])
|
|
AM_CONDITIONAL(HAVE_F77,
|
|
[test "X$caught_F77_error" != "Xyes" &&
|
|
test -n "[$]_LT_AC_TAGVAR(compiler, F77)"])
|
|
AM_CONDITIONAL(HAVE_GCJ, [test -n "[$]_LT_AC_TAGVAR(compiler, GCJ)"])
|
|
AM_CONDITIONAL(HAVE_RC, [test -n "[$]_LT_AC_TAGVAR(compiler, RC)"])
|
|
|
|
|
|
## -------- ##
|
|
## Outputs. ##
|
|
## -------- ##
|
|
AC_CONFIG_FILES([Makefile libltdl/Makefile libltdl/loaders/Makefile
|
|
doc/Makefile tests/Makefile])
|
|
AC_OUTPUT
|