# libtoolize.at -- test libtoolize operation                  -*- Autotest -*-
#
#   Copyright (C) 2005, 2007-2008, 2011-2019, 2021-2026 Free Software
#   Foundation, Inc.
#   Written by Gary V. Vaughan, 2005
#
#   This file is part of GNU Libtool.
#
# GNU Libtool 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.
#
# GNU Libtool 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 GNU Libtool.  If not, see <https://www.gnu.org/licenses/>.
####


AT_BANNER([Libtoolize operation.])

# _LT_CONFIGURE_AC
# ----------------
m4_define([_LT_CONFIGURE_AC],
[AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
AC_OUTPUT
]])
])# _LT_CONFIGURE_AC

# _LT_LIBTOOLIZE_SETUP
# --------------------
m4_define([_LT_LIBTOOLIZE_SETUP],
[_LT_CONFIGURE_AC

test -d m4 || { rm -f m4 && mkdir m4; }

rm -f m4/libtool.m4 m4/ltoptions.m4 build-aux/ltmain.sh

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I m4
]])

# This file should be upgraded.
AT_DATA([m4/libtool.m4], [[
# serial 25 LT_INIT
]])

# This file has a very high serial number, and should be left unchanged
# until --force is passed.
AT_DATA([m4/ltoptions.m4], [[
# serial 99999 ltoptions.m4
]])

test -d build-aux || { rm -f build-aux && mkdir build-aux; }

# This file has a very high serial number, and needs --force to be updated.
AT_DATA([build-aux/ltmain.sh], [[
package_revision=9999.9999
]])

# This file has a very old serial number, but should be left unchanged
# unless the --install flag is invoked.
AT_DATA([build-aux/config.guess], [[
timestamp='1970-01-01'
]])
])# LT_LIBTOOLIZE_SETUP


## ------------------- ##
## Macro installation. ##
## ------------------- ##

AT_SETUP([libtoolize macro installation])

_LT_CONFIGURE_AC

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)

AT_CLEANUP


## ------------------------- ##
## ACLOCAL_AMFLAGS mismatch. ##
## ------------------------- ##

AT_SETUP([libtoolize macro directory mismatch error])

_LT_CONFIGURE_AC

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I me2
]])

AT_DATA(experr,
[[libtoolize:   error: AC_CONFIG_MACRO_DIRS([m4]) conflicts with ACLOCAL_AMFLAGS=-I me2.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 1, [ignore], experr)

AT_CLEANUP


## ----------------------------------------- ##
## AC_CONFIG_MACRO_DIRS macrodir extraction. ##
## ----------------------------------------- ##

AT_SETUP([multiple AC_CONFIG_MACRO_DIRS invocation])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([first])
AC_CONFIG_MACRO_DIRS([second])
LT_INIT
AC_OUTPUT
]])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'first'.
libtoolize: copying file 'first/libtool.m4'
libtoolize: copying file 'first/ltoptions.m4'
libtoolize: copying file 'first/ltsugar.m4'
libtoolize: copying file 'first/ltversion.m4'
libtoolize: copying file 'first/lt~obsolete.m4'
libtoolize: Consider adding '-I first' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)

AT_CLEANUP


AT_SETUP([multiple AC_CONFIG_MACRO_DIRS directories])

AT_DATA([configure.ac],
[[AC_INIT([libtooize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([first second third])
LT_INIT
AC_OUTPUT
]])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'first'.
libtoolize: copying file 'first/libtool.m4'
libtoolize: copying file 'first/ltoptions.m4'
libtoolize: copying file 'first/ltsugar.m4'
libtoolize: copying file 'first/ltversion.m4'
libtoolize: copying file 'first/lt~obsolete.m4'
libtoolize: Consider adding '-I first' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)

AT_CLEANUP



## ------------------------------------ ##
## ACLOCAL_AMFLAGS macrodir extraction. ##
## ------------------------------------ ##

AT_SETUP([libtoolize ACLOCAL_AMFLAGS extraction])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
LT_INIT
AC_OUTPUT
]])

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I first -I second
]])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in 'first'.
libtoolize: copying file 'first/libtool.m4'
libtoolize: copying file 'first/ltoptions.m4'
libtoolize: copying file 'first/ltsugar.m4'
libtoolize: copying file 'first/ltversion.m4'
libtoolize: copying file 'first/lt~obsolete.m4'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([first])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)

AT_CLEANUP


## -------------- ##
## Serial update. ##
## -------------- ##

AT_SETUP([libtoolize macro serial update])

_LT_LIBTOOLIZE_SETUP



## -------------------------------------------------------------------- ##
## First we try to update with some newer files in the destination dir. ##
## -------------------------------------------------------------------- ##

AT_DATA(expout,
[[libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

AT_DATA(experr,
[[libtoolize:   error: 'build-aux/ltmain.sh' is newer: use '--force' to overwrite
libtoolize:   error: 'm4/ltoptions.m4' is newer: use '--force' to overwrite
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout, experr)


## ---------------------------------------------------------- ##
## Next, a second update attempt with everything now updated. ##
## ---------------------------------------------------------- ##

: >expout

AT_DATA(experr,
[[libtoolize:   error: 'build-aux/ltmain.sh' is newer: use '--force' to overwrite
libtoolize:   error: 'm4/ltoptions.m4' is newer: use '--force' to overwrite
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout, experr)


## ----------------------------------------------------------- ##
## Now, a forced update to downgrade files with newer serials. ##
## ----------------------------------------------------------- ##

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --force], 0, expout)


## ---------------------------------------------------------------- ##
## A final update attempt with everything previously force updated. ##
## ---------------------------------------------------------------- ##

: >expout

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)

AT_CLEANUP


## --------------- ##
## --install flag. ##
## --------------- ##

AT_SETUP([libtoolize config files serial update])

_LT_LIBTOOLIZE_SETUP



## -------------------------------------------------------------------- ##
## First we try to update with some newer files in the destination dir. ##
## -------------------------------------------------------------------- ##

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

AT_DATA(experr,
[[libtoolize:   error: 'build-aux/ltmain.sh' is newer: use '--force' to overwrite
libtoolize:   error: 'm4/ltoptions.m4' is newer: use '--force' to overwrite
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --install], 0, expout, experr)


## ---------------------------------------------------------- ##
## Next, a second update attempt with everything now updated. ##
## ---------------------------------------------------------- ##

: >expout

AT_DATA(experr,
[[libtoolize:   error: 'build-aux/ltmain.sh' is newer: use '--force' to overwrite
libtoolize:   error: 'm4/ltoptions.m4' is newer: use '--force' to overwrite
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --install], 0, expout, experr)


## ----------------------------------------------------------- ##
## Now, a forced update to downgrade files with newer serials. ##
## ----------------------------------------------------------- ##

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --force --install], 0, expout)


## ---------------------------------------------------------------- ##
## A final update attempt with everything previously force updated. ##
## ---------------------------------------------------------------- ##

: >expout

LT_AT_CHECK_LIBTOOLIZE([--copy --install], 0, expout)

AT_CLEANUP


## ----------------------------------------------------------------- ##
## Ensure libtoolize works when LT_CONFIG_LTDL_DIR is not specified. ##
## ----------------------------------------------------------------- ##

AT_SETUP([diagnose missing LT_CONFIG_LTDL_DIR])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltargz.m4'
libtoolize: copying file 'm4/ltdl.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: putting libltdl files in 'ltdl'.
libtoolize: copying file 'ltdl/COPYING.LIB'
libtoolize: copying file 'ltdl/README'
libtoolize: copying file 'ltdl/libltdl/lt__alloc.h'
libtoolize: copying file 'ltdl/libltdl/lt__argz_.h'
libtoolize: copying file 'ltdl/libltdl/lt__dirent.h'
libtoolize: copying file 'ltdl/libltdl/lt__glibc.h'
libtoolize: copying file 'ltdl/libltdl/lt__private.h'
libtoolize: copying file 'ltdl/libltdl/lt__strl.h'
libtoolize: copying file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: copying file 'ltdl/libltdl/lt_error.h'
libtoolize: copying file 'ltdl/libltdl/lt_system.h'
libtoolize: copying file 'ltdl/libltdl/slist.h'
libtoolize: copying file 'ltdl/loaders/dld_link.c'
libtoolize: copying file 'ltdl/loaders/dlopen.c'
libtoolize: copying file 'ltdl/loaders/dyld.c'
libtoolize: copying file 'ltdl/loaders/load_add_on.c'
libtoolize: copying file 'ltdl/loaders/loadlibrary.c'
libtoolize: copying file 'ltdl/loaders/preopen.c'
libtoolize: copying file 'ltdl/loaders/shl_load.c'
libtoolize: copying file 'ltdl/lt__alloc.c'
libtoolize: copying file 'ltdl/lt__argz.c'
libtoolize: copying file 'ltdl/lt__dirent.c'
libtoolize: copying file 'ltdl/lt__strl.c'
libtoolize: copying file 'ltdl/lt_dlloader.c'
libtoolize: copying file 'ltdl/lt_error.c'
libtoolize: copying file 'ltdl/ltdl.c'
libtoolize: copying file 'ltdl/ltdl.h'
libtoolize: creating file 'ltdl/ltdl.mk'
libtoolize: copying file 'ltdl/slist.c'
libtoolize: Remember to add 'LT_CONFIG_LTDL_DIR([ltdl])' to 'configure.ac'.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
LTDL_INIT([nonrecursive])
AC_OUTPUT
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --install --ltdl=ltdl], 0, expout)

AT_CLEANUP


## ---------------------------- ##
## Make sure ltdl.m4 is copied. ##
## ---------------------------- ##

# _LT_AT_LTDL_SETUP
# -----------------
# Macro to generate data files common to several tests.
m4_pushdef([_LT_AT_LTDL_SETUP],
[AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: linking file 'build-aux/compile'
libtoolize: linking file 'build-aux/config.guess'
libtoolize: linking file 'build-aux/config.sub'
libtoolize: linking file 'build-aux/depcomp'
libtoolize: linking file 'build-aux/install-sh'
libtoolize: linking file 'build-aux/missing'
libtoolize: linking file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: linking file 'm4/libtool.m4'
libtoolize: linking file 'm4/ltargz.m4'
libtoolize: linking file 'm4/ltdl.m4'
libtoolize: linking file 'm4/ltoptions.m4'
libtoolize: linking file 'm4/ltsugar.m4'
libtoolize: linking file 'm4/ltversion.m4'
libtoolize: linking file 'm4/lt~obsolete.m4'
libtoolize: putting libltdl files in LT_CONFIG_LTDL_DIR, 'ltdl'.
libtoolize: linking file 'ltdl/COPYING.LIB'
libtoolize: linking file 'ltdl/Makefile.am'
libtoolize: linking file 'ltdl/README'
libtoolize: linking file 'ltdl/configure.ac'
libtoolize: copying file 'ltdl/aclocal.m4'
libtoolize: linking file 'ltdl/Makefile.in'
libtoolize: copying file 'ltdl/config-h.in'
libtoolize: copying file 'ltdl/configure'
libtoolize: linking file 'ltdl/libltdl/lt__alloc.h'
libtoolize: linking file 'ltdl/libltdl/lt__argz_.h'
libtoolize: linking file 'ltdl/libltdl/lt__dirent.h'
libtoolize: linking file 'ltdl/libltdl/lt__glibc.h'
libtoolize: linking file 'ltdl/libltdl/lt__private.h'
libtoolize: linking file 'ltdl/libltdl/lt__strl.h'
libtoolize: linking file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: linking file 'ltdl/libltdl/lt_error.h'
libtoolize: linking file 'ltdl/libltdl/lt_system.h'
libtoolize: linking file 'ltdl/libltdl/slist.h'
libtoolize: linking file 'ltdl/loaders/dld_link.c'
libtoolize: linking file 'ltdl/loaders/dlopen.c'
libtoolize: linking file 'ltdl/loaders/dyld.c'
libtoolize: linking file 'ltdl/loaders/load_add_on.c'
libtoolize: linking file 'ltdl/loaders/loadlibrary.c'
libtoolize: linking file 'ltdl/loaders/preopen.c'
libtoolize: linking file 'ltdl/loaders/shl_load.c'
libtoolize: linking file 'ltdl/lt__alloc.c'
libtoolize: linking file 'ltdl/lt__argz.c'
libtoolize: linking file 'ltdl/lt__dirent.c'
libtoolize: linking file 'ltdl/lt__strl.c'
libtoolize: linking file 'ltdl/lt_dlloader.c'
libtoolize: linking file 'ltdl/lt_error.c'
libtoolize: linking file 'ltdl/ltdl.c'
libtoolize: linking file 'ltdl/ltdl.h'
libtoolize: linking file 'ltdl/slist.c'
]])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_CONFIG_LTDL_DIR([ltdl])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
LTDL_INIT
AC_OUTPUT
]])

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I m4
]])
])# _LT_AT_LTDL_SETUP

## ------------------------------------------------ ##
## First we make sure libtoolize --ltdl is working. ##
## ------------------------------------------------ ##

AT_SETUP([copy ltdl.m4 with shared macro directory])

_LT_AT_LTDL_SETUP

case $LN_S in
*mklink*)
  LT_AT_CHECK_LIBTOOLIZE([--ltdl], 0, stdout) ;;
*)
  LT_AT_CHECK_LIBTOOLIZE([--ltdl], 0, expout) ;;
esac

AT_CLEANUP

## ----------------------------------------------------- ##
## And also that libtoolize is taking note of LTDL_INIT. ##
## ----------------------------------------------------- ##

AT_SETUP([correctly parse LTDL_INIT from configure.ac])

_LT_AT_LTDL_SETUP

case $LN_S in
*mklink*)
  LT_AT_CHECK_LIBTOOLIZE([], 0, stdout) ;;
*)
  LT_AT_CHECK_LIBTOOLIZE([], 0, expout) ;;
esac

AT_CLEANUP

## ----------------------------------------------------------- ##
## And finally, that libtoolize diagnoses a missing LTDL_INIT. ##
## ----------------------------------------------------------- ##

AT_SETUP([diagnose missing LTDL_INIT invocation])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/compile'
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/depcomp'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/missing'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltargz.m4'
libtoolize: copying file 'm4/ltdl.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: putting libltdl files in LT_CONFIG_LTDL_DIR, 'ltdl'.
libtoolize: copying file 'ltdl/COPYING.LIB'
libtoolize: copying file 'ltdl/Makefile.am'
libtoolize: copying file 'ltdl/README'
libtoolize: copying file 'ltdl/configure.ac'
libtoolize: copying file 'ltdl/aclocal.m4'
libtoolize: copying file 'ltdl/Makefile.in'
libtoolize: copying file 'ltdl/config-h.in'
libtoolize: copying file 'ltdl/configure'
libtoolize: copying file 'ltdl/libltdl/lt__alloc.h'
libtoolize: copying file 'ltdl/libltdl/lt__argz_.h'
libtoolize: copying file 'ltdl/libltdl/lt__dirent.h'
libtoolize: copying file 'ltdl/libltdl/lt__glibc.h'
libtoolize: copying file 'ltdl/libltdl/lt__private.h'
libtoolize: copying file 'ltdl/libltdl/lt__strl.h'
libtoolize: copying file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: copying file 'ltdl/libltdl/lt_error.h'
libtoolize: copying file 'ltdl/libltdl/lt_system.h'
libtoolize: copying file 'ltdl/libltdl/slist.h'
libtoolize: copying file 'ltdl/loaders/dld_link.c'
libtoolize: copying file 'ltdl/loaders/dlopen.c'
libtoolize: copying file 'ltdl/loaders/dyld.c'
libtoolize: copying file 'ltdl/loaders/load_add_on.c'
libtoolize: copying file 'ltdl/loaders/loadlibrary.c'
libtoolize: copying file 'ltdl/loaders/preopen.c'
libtoolize: copying file 'ltdl/loaders/shl_load.c'
libtoolize: copying file 'ltdl/lt__alloc.c'
libtoolize: copying file 'ltdl/lt__argz.c'
libtoolize: copying file 'ltdl/lt__dirent.c'
libtoolize: copying file 'ltdl/lt__strl.c'
libtoolize: copying file 'ltdl/lt_dlloader.c'
libtoolize: copying file 'ltdl/lt_error.c'
libtoolize: copying file 'ltdl/ltdl.c'
libtoolize: copying file 'ltdl/ltdl.h'
libtoolize: copying file 'ltdl/slist.c'
libtoolize: Remember to add 'LTDL_INIT' to configure.ac.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_CONFIG_LTDL_DIR([ltdl])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
AC_OUTPUT
]])

LT_AT_CHECK_LIBTOOLIZE([--ltdl --copy], 0, expout)

AT_CLEANUP

m4_popdef([_LT_AT_LTDL_SETUP])

## ------------------------------------------------------ ##
## Creating an aclocal.m4 without in-tree libtool macros. ##
## ------------------------------------------------------ ##

AT_SETUP([upgrading verbatim style aclocal.m4])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
LT_INIT
AC_OUTPUT
]])

AT_DATA([expout],
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: You should add the contents of the following files to 'aclocal.m4':
libtoolize:   '/usr/local/share/aclocal/libtool.m4'
libtoolize:   '/usr/local/share/aclocal/ltoptions.m4'
libtoolize:   '/usr/local/share/aclocal/ltsugar.m4'
libtoolize:   '/usr/local/share/aclocal/ltversion.m4'
libtoolize:   '/usr/local/share/aclocal/lt~obsolete.m4'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)


## --------------------------------------- ##
## Upgrading a hand maintained aclocal.m4. ##
## --------------------------------------- ##

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
AC_OUTPUT
]])

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I m4
]])

AT_DATA([aclocal.m4],
[[# This should need upgrading:
# serial 25 LT_INIT
AC_DEFUN([LT_INIT],
[blah])

# This is newer than the upgrade version:
# serial 99999 ltoptions.m4

# This is older than the upgrade version:
# serial 1 ltversion.m4
]])

AT_DATA([expout],
[[libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)


## ------------------------------------------- ##
## Upgrading an aclocal maintained aclocal.m4. ##
## ------------------------------------------- ##

LT_AT_ACLOCAL([-I m4])

rm -f m4/libtool.m4 m4/ltoptions.m4

# This file should be upgraded.
AT_DATA([m4/libtool.m4], [[
# serial 25 LT_INIT
AC_DEFUN([LT_INIT])
]])

# This file has a very high serial number, and should be left unchanged.
AT_DATA([m4/ltoptions.m4], [[
# serial 99999 ltoptions.m4
]])

AT_DATA([expout],
[[libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
]])

AT_DATA([experr],
[[libtoolize:   error: 'm4/ltoptions.m4' is newer: use '--force' to overwrite
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout, experr)

## ----------------------------------------------------------- ##
## Now, a forced update to downgrade files with newer serials. ##
## ----------------------------------------------------------- ##

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --force], 0, expout)

AT_CLEANUP


## ------------------------------------------------------------------- ##
## Ensure libtoolize works when AC_CONFIG_MACRO_DIRS is not specified. ##
## ------------------------------------------------------------------- ##

AT_SETUP([verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIRS])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_INIT
AC_OUTPUT
]])

AT_DATA([aclocal.m4],
[[# This should need upgrading:
# serial 25 LT_INIT
AC_DEFUN([LT_INIT],
[blah])

# This is newer than the upgrade version:
# serial 99999 ltoptions.m4

# This is older than the upgrade version:
# serial 1 ltversion.m4
]])

AT_DATA([expout],
[[libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: You should add the contents of the following files to 'aclocal.m4':
libtoolize:   '/usr/local/share/aclocal/libtool.m4'
libtoolize:   '/usr/local/share/aclocal/ltsugar.m4'
libtoolize:   '/usr/local/share/aclocal/ltversion.m4'
libtoolize:   '/usr/local/share/aclocal/lt~obsolete.m4'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)


## ------------------------------------------------------------------------ ##
## Upgrading an aclocal maintained aclocal.m4 without AC_CONFIG_MACRO_DIRS. ##
## ------------------------------------------------------------------------ ##

LT_AT_ACLOCAL([-I $abs_top_srcdir/m4])

## The following code is adapted (and simplified) from libtoolize.in
####
basename='s|^.*/||'

# func_grep expression filename
# Check whether EXPRESSION matches any line of FILENAME, without output.
func_grep ()
{
    $GREP "$1" "$2" >/dev/null 2>&1
}

# func_serial filename [macro_regex]
# Output the value of the serial number comment in FILENAME, where the
# comment line must also match MACRO_REGEX, if given.
func_serial ()
{
    my_filename=$1
    my_macro_regex=$2
    my_sed_serial='
	/^# serial [1-9][0-9.]*[	 ]*'"$my_macro_regex"'[	 ]*$/ {
	    s|^# serial \([1-9][0-9.]*\).*$|\1|
	    q
	}
	d'

    # Search FILENAME and all the files it m4_includes for a serial number
    # in the file that AC_DEFUNs MACRO_REGEX.
    my_serial=
    if test -z "$my_macro_regex" ||
       test aclocal.m4 = "$my_filename" ||
       test "$my_macro_regex" = `echo "$my_filename" | $SED "$basename"` ||
       func_grep '^AC_DEFUN(\@<:@'"$my_macro_regex" "$my_filename"
    then
      my_serial=`$SED -e "$my_sed_serial" "$my_filename"`
    fi

    # If the file has no serial number, something is badly wrong!
    test -n "$my_serial" || exit 1

    echo $my_serial
}

# Make the serial number in aclocal.m4 higher than installed ltoptions.m4,
# and the others match the macro files that libtoolize will compare against.
libtool_serial=`func_serial "$tst_aclocaldir/libtool.m4" LT_INIT`
ltversion_serial=`func_serial "$tst_aclocaldir/ltversion.m4" ltversion.m4`
ltsugar_serial=`func_serial "$tst_aclocaldir/ltsugar.m4" ltsugar.m4`
lt_obsolete_serial=`func_serial "$tst_aclocaldir/lt~obsolete.m4" lt~obsolete.m4`
$SED -e 's|^#.*serial.*ltoptions.m4$|# serial 99999 ltoptions.m4|' \
   -e "s|^#.*serial.*libtool.m4\$|# serial $libtool_serial libtool.m4|" \
  -e "s|^#.*serial.*ltversion.m4\$|# serial $ltversion_serial ltversion.m4|" \
  -e "s|^#.*serial.*ltsugar.m4\$|# serial $ltsugar_serial ltsugar.m4|" \
  -e "s|^#.*serial.*lt~obsolete.m4\$|# serial $lt_obsolete_serial lt~obsolete.m4|" \
 < aclocal.m4 > aclocal.m4t
mv -f aclocal.m4t aclocal.m4

AT_DATA([expout],
[[libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout)


## --------------------- ##
## Now, a forced update. ##
## --------------------- ##

AT_DATA(expout,
[[libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --force], 0, expout)

AT_CLEANUP


## -------------------------------------------------------------- ##
## Check nonrecursive ltdl puts m4 files in AC_CONFIG_MACRO_DIRS. ##
## -------------------------------------------------------------- ##

AT_SETUP([nonrecursive ltdl with AC_CONFIG_MACRO_DIRS])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/config.guess'
libtoolize: copying file 'build-aux/config.sub'
libtoolize: copying file 'build-aux/install-sh'
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltargz.m4'
libtoolize: copying file 'm4/ltdl.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: putting libltdl files in LT_CONFIG_LTDL_DIR, 'ltdl'.
libtoolize: copying file 'ltdl/COPYING.LIB'
libtoolize: copying file 'ltdl/README'
libtoolize: copying file 'ltdl/libltdl/lt__alloc.h'
libtoolize: copying file 'ltdl/libltdl/lt__argz_.h'
libtoolize: copying file 'ltdl/libltdl/lt__dirent.h'
libtoolize: copying file 'ltdl/libltdl/lt__glibc.h'
libtoolize: copying file 'ltdl/libltdl/lt__private.h'
libtoolize: copying file 'ltdl/libltdl/lt__strl.h'
libtoolize: copying file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: copying file 'ltdl/libltdl/lt_error.h'
libtoolize: copying file 'ltdl/libltdl/lt_system.h'
libtoolize: copying file 'ltdl/libltdl/slist.h'
libtoolize: copying file 'ltdl/loaders/dld_link.c'
libtoolize: copying file 'ltdl/loaders/dlopen.c'
libtoolize: copying file 'ltdl/loaders/dyld.c'
libtoolize: copying file 'ltdl/loaders/load_add_on.c'
libtoolize: copying file 'ltdl/loaders/loadlibrary.c'
libtoolize: copying file 'ltdl/loaders/preopen.c'
libtoolize: copying file 'ltdl/loaders/shl_load.c'
libtoolize: copying file 'ltdl/lt__alloc.c'
libtoolize: copying file 'ltdl/lt__argz.c'
libtoolize: copying file 'ltdl/lt__dirent.c'
libtoolize: copying file 'ltdl/lt__strl.c'
libtoolize: copying file 'ltdl/lt_dlloader.c'
libtoolize: copying file 'ltdl/lt_error.c'
libtoolize: copying file 'ltdl/ltdl.c'
libtoolize: copying file 'ltdl/ltdl.h'
libtoolize: creating file 'ltdl/ltdl.mk'
libtoolize: copying file 'ltdl/slist.c'
]])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_CONFIG_LTDL_DIR([ltdl])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4])
LT_INIT
LTDL_INIT([nonrecursive])
AC_OUTPUT
]])

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I m4
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --install --ltdl=ltdl], 0, expout)

AT_CLEANUP


## ------------------------------------------------- ##
## Check subproject ltdl with unconventional layout. ##
## ------------------------------------------------- ##

AT_SETUP([subproject ltdl with unconventional layout])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'acaux'.
libtoolize: copying file 'acaux/compile'
libtoolize: copying file 'acaux/config.guess'
libtoolize: copying file 'acaux/config.sub'
libtoolize: copying file 'acaux/depcomp'
libtoolize: copying file 'acaux/install-sh'
libtoolize: copying file 'acaux/missing'
libtoolize: copying file 'acaux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'acm4'.
libtoolize: copying file 'acm4/libtool.m4'
libtoolize: copying file 'acm4/ltargz.m4'
libtoolize: copying file 'acm4/ltdl.m4'
libtoolize: copying file 'acm4/ltoptions.m4'
libtoolize: copying file 'acm4/ltsugar.m4'
libtoolize: copying file 'acm4/ltversion.m4'
libtoolize: copying file 'acm4/lt~obsolete.m4'
libtoolize: putting libltdl files in LT_CONFIG_LTDL_DIR, 'ltdl'.
libtoolize: copying file 'ltdl/COPYING.LIB'
libtoolize: creating file 'ltdl/Makefile.am'
libtoolize: copying file 'ltdl/README'
libtoolize: creating file 'ltdl/configure.ac'
libtoolize: creating file 'ltdl/aclocal.m4'
libtoolize: creating file 'ltdl/Makefile.in'
libtoolize: copying file 'ltdl/config-h.in'
libtoolize: creating file 'ltdl/configure'
libtoolize: copying file 'ltdl/libltdl/lt__alloc.h'
libtoolize: copying file 'ltdl/libltdl/lt__argz_.h'
libtoolize: copying file 'ltdl/libltdl/lt__dirent.h'
libtoolize: copying file 'ltdl/libltdl/lt__glibc.h'
libtoolize: copying file 'ltdl/libltdl/lt__private.h'
libtoolize: copying file 'ltdl/libltdl/lt__strl.h'
libtoolize: copying file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: copying file 'ltdl/libltdl/lt_error.h'
libtoolize: copying file 'ltdl/libltdl/lt_system.h'
libtoolize: copying file 'ltdl/libltdl/slist.h'
libtoolize: copying file 'ltdl/loaders/dld_link.c'
libtoolize: copying file 'ltdl/loaders/dlopen.c'
libtoolize: copying file 'ltdl/loaders/dyld.c'
libtoolize: copying file 'ltdl/loaders/load_add_on.c'
libtoolize: copying file 'ltdl/loaders/loadlibrary.c'
libtoolize: copying file 'ltdl/loaders/preopen.c'
libtoolize: copying file 'ltdl/loaders/shl_load.c'
libtoolize: copying file 'ltdl/lt__alloc.c'
libtoolize: copying file 'ltdl/lt__argz.c'
libtoolize: copying file 'ltdl/lt__dirent.c'
libtoolize: copying file 'ltdl/lt__strl.c'
libtoolize: copying file 'ltdl/lt_dlloader.c'
libtoolize: copying file 'ltdl/lt_error.c'
libtoolize: copying file 'ltdl/ltdl.c'
libtoolize: copying file 'ltdl/ltdl.h'
libtoolize: copying file 'ltdl/slist.c'
libtoolize: Consider adding '-I acm4' to ACLOCAL_AMFLAGS in Makefile.am.
]])

AT_DATA([configure.ac],
[[AC_INIT([libtoolize-demo], ]AT_PACKAGE_VERSION[, ]AT_PACKAGE_BUGREPORT[)
LT_CONFIG_LTDL_DIR([ltdl])
AC_CONFIG_AUX_DIR([acaux])
AC_CONFIG_MACRO_DIRS([acm4])
LT_INIT
LTDL_INIT([subproject])
AC_OUTPUT
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --install], 0, expout)

AT_CLEANUP


## ------------------------------------------- ##
## Create a working subproject without GNU M4. ##
## ------------------------------------------- ##

AT_SETUP([Subproject ltdl without GNU M4])

AT_DATA(expout,
[[libtoolize: putting auxiliary files in 'ltdl'.
libtoolize: linking file 'ltdl/compile'
libtoolize: linking file 'ltdl/config.guess'
libtoolize: linking file 'ltdl/config.sub'
libtoolize: linking file 'ltdl/depcomp'
libtoolize: linking file 'ltdl/install-sh'
libtoolize: linking file 'ltdl/missing'
libtoolize: linking file 'ltdl/ltmain.sh'
libtoolize: putting macros in 'ltdl/m4'.
libtoolize: linking file 'ltdl/m4/libtool.m4'
libtoolize: linking file 'ltdl/m4/ltargz.m4'
libtoolize: linking file 'ltdl/m4/ltdl.m4'
libtoolize: linking file 'ltdl/m4/ltoptions.m4'
libtoolize: linking file 'ltdl/m4/ltsugar.m4'
libtoolize: linking file 'ltdl/m4/ltversion.m4'
libtoolize: linking file 'ltdl/m4/lt~obsolete.m4'
libtoolize: putting libltdl files in 'ltdl'.
libtoolize: linking file 'ltdl/COPYING.LIB'
libtoolize: creating file 'ltdl/Makefile.am'
libtoolize: linking file 'ltdl/README'
libtoolize: creating file 'ltdl/configure.ac'
libtoolize: creating file 'ltdl/aclocal.m4'
libtoolize: creating file 'ltdl/Makefile.in'
libtoolize: copying file 'ltdl/config-h.in'
libtoolize: creating file 'ltdl/configure'
libtoolize: linking file 'ltdl/libltdl/lt__alloc.h'
libtoolize: linking file 'ltdl/libltdl/lt__argz_.h'
libtoolize: linking file 'ltdl/libltdl/lt__dirent.h'
libtoolize: linking file 'ltdl/libltdl/lt__glibc.h'
libtoolize: linking file 'ltdl/libltdl/lt__private.h'
libtoolize: linking file 'ltdl/libltdl/lt__strl.h'
libtoolize: linking file 'ltdl/libltdl/lt_dlloader.h'
libtoolize: linking file 'ltdl/libltdl/lt_error.h'
libtoolize: linking file 'ltdl/libltdl/lt_system.h'
libtoolize: linking file 'ltdl/libltdl/slist.h'
libtoolize: linking file 'ltdl/loaders/dld_link.c'
libtoolize: linking file 'ltdl/loaders/dlopen.c'
libtoolize: linking file 'ltdl/loaders/dyld.c'
libtoolize: linking file 'ltdl/loaders/load_add_on.c'
libtoolize: linking file 'ltdl/loaders/loadlibrary.c'
libtoolize: linking file 'ltdl/loaders/preopen.c'
libtoolize: linking file 'ltdl/loaders/shl_load.c'
libtoolize: linking file 'ltdl/lt__alloc.c'
libtoolize: linking file 'ltdl/lt__argz.c'
libtoolize: linking file 'ltdl/lt__dirent.c'
libtoolize: linking file 'ltdl/lt__strl.c'
libtoolize: linking file 'ltdl/lt_dlloader.c'
libtoolize: linking file 'ltdl/lt_error.c'
libtoolize: linking file 'ltdl/ltdl.c'
libtoolize: linking file 'ltdl/ltdl.h'
libtoolize: linking file 'ltdl/slist.c'
]])

# Replace transformed name of $lt_name to account for program-prefix
lt_name=`$ECHO "$LIBTOOLIZE" | $SED "s|^.*/||"`
$SED -i "s/libtoolize/$lt_name/g" expout

AT_DATA([no-m4],
[[#! /bin/sh
echo 'error: do not call m4' >&2
exit 1
]])
chmod a+x ./no-m4

case $LN_S in
*mklink*)
  AT_CHECK([PATH=`pwd`:$PATH M4=`pwd`/no-m4 $LIBTOOLIZE --ltdl=ltdl], 0, stdout) ;;
*)
  AT_CHECK([PATH=`pwd`:$PATH M4=`pwd`/no-m4 $LIBTOOLIZE --ltdl=ltdl], 0, expout) ;;
esac

AT_CLEANUP


## --------------------------- ##
## Garbled LIBTOOLIZE_OPTIONS. ##
## --------------------------- ##

AT_SETUP([LIBTOOLIZE_OPTIONS])

_LT_CONFIGURE_AC

LIBTOOLIZE_OPTIONS=narf
export LIBTOOLIZE_OPTIONS

AT_DATA(experr,
[[libtoolize:   error: garbled LIBTOOLIZE_OPTIONS near 'narf'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 1, [ignore], experr)


## --------------------------- ##
## Unknown LIBTOOLIZE_OPTIONS. ##
## --------------------------- ##

LIBTOOLIZE_OPTIONS=--no-such-option
export LIBTOOLIZE_OPTIONS

AT_DATA(experr,
[[libtoolize: warning: unrecognized environment option '--no-such-option'
]])

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, [ignore], experr)


## ----------------------------- ##
## --no-warn environment option. ##
## ----------------------------- ##

LIBTOOLIZE_OPTIONS=--no-warn,--no-such-option
export LIBTOOLIZE_OPTIONS

: >experr

LT_AT_CHECK_LIBTOOLIZE([--copy], 0, [ignore], experr)

AT_CLEANUP


## ------------------------------------------------------ ##
## Remove file droppings from old libtoolize invocations. ##
## ------------------------------------------------------ ##

AT_SETUP([cleanup old installation])

_LT_CONFIGURE_AC

AT_DATA([Makefile.am],
[[ACLOCAL_AMFLAGS = -I m4
]])

AT_DATA([acinclude.m4],
[[AC_DEFUN([LT_INIT],
[: keep me, I might be hand maintained!]) # LT_INIT
]])

AT_DATA([libltdl/acinclude.m4],
[[AC_DEFUN([LT_INIT],
[: delete me, I was left here by on old libltdl build]) # LT_INIT
]])

LT_AT_CHECK_LIBTOOLIZE([--copy --force --ltdl], 0, [ignore])

# check files are left as expected
AT_CHECK([$GREP 'keep me' acinclude.m4], 0, [ignore])
AT_CHECK([test -f libltdl/acinclude.m4], 1, [ignore], [ignore])

AT_CLEANUP
