summaryrefslogtreecommitdiff
path: root/libtoolize.in
blob: b02ae759562f16509060fe67d16797bae36b8d4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
m4_define([_m4_divert(SCRIPT)], 100)
m4_divert_push([SCRIPT])#! /bin/sh
# @configure_input@

# libtoolize (GNU @PACKAGE@@TIMESTAMP@) @VERSION@
# Written by Gary V. Vaughan <gary@gnu.org>, 2003

# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.  There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# 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, a copy can be downloaded from
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

# Usage: $progname [OPTION]...
#
# Prepare a package to use libtool.
#
# -c, --copy            copy files rather than symlinking them
#     --debug           enable verbose shell tracing
# -n, --dry-run         print commands rather than running them
# -f, --force           replace existing files
# -i, --install         copy missing auxiliary files
#     --ltdl[=DIR]      install libltdl in a subdirectory [default: libltdl]
# -q, --quiet           work silently
# -v, --verbose         verbosely report processing
#     --version         print version information and exit
# -h, --help            print short or long help message
#
# You must `cd' to the top directory of your package before you run
# `$progname'.
#
# When reporting a bug, please describe a test case to reproduce it and
# include the following information:
#
#       host-triplet:	@host_triplet@
#       $progname:	(GNU @PACKAGE@@TIMESTAMP@) @VERSION@
#       automake:		$automake_version
#       autoconf:		$autoconf_version
#
# Report bugs to <bug-libtool@gnu.org>.

PROGRAM=libtoolize

AS_SHELL_SANITIZE
$as_unset CDPATH

m4_include([getopt.m4sh])

# Command line options:
opt_force=false
opt_install=false
opt_link=:

seen_libtool=false
seen_ltdl=false

# Collect flags to pass into libltdl libtoolize
libtoolize_flags=

# Locations for important files:
prefix=@prefix@
datadir=@datadir@
pkgdatadir=@pkgdatadir@
aclocaldir=@aclocaldir@
auxdir=
m4dir=
ltdldir=
configure_ac=configure.in


# Parse options once, thoroughly.  This comes as soon as possible in
# the script to make things like `libtoolize --version' happen quickly.
{
  # sed scripts:
  my_sed_single_opt='1s/^\(..\).*$/\1/;q'
  my_sed_single_rest='1s/^..\(.*\)$/\1/;q'
  my_sed_long_opt='1s/^\(--[[^=]]*\)=.*/\1/;q'
  my_sed_long_arg='1s/^--[[^=]]*=//'

  while test "$#" -gt 0; do
    opt="$1"
    shift
    case $opt in
      --copy|-c)	opt_link=false
      			libtoolize_flags="$libtoolize_flags --copy"
	    		;;

      --debug)		func_echo "enabling shell trace mode"
			set -x
			;;

      --dry-run|-n)	if $opt_dry_run; then :; else
			  opt_dry_run=:
			  RM="$ECHO $RM"
			  test -n "$LN_S" && LN_S="$ECHO $LN_S"
			  CP="$ECHO $CP"
			  MKDIR="$ECHO $MKDIR"
			fi
      			libtoolize_flags="${libtoolize_flags} --dry-run"
			;;

      --force|-f)	opt_force=:
      			libtoolize_flags="${libtoolize_flags} --force"
			;;

      --install|-i)	opt_install=:
      			libtoolize_flags="${libtoolize_flags} --install"
			;;

      --ltdl)		ltdldir=libltdl
      			if test "$#" -gt 0; then
			  case $1 in
			    -*)				;;
			    *)  ltdldir="$1"; shift	;;
			  esac
			fi
			;;

      --quiet|--automake|-q) # --automake is for 1.5 compatibility
			opt_quiet=:
      			libtoolize_flags="${libtoolize_flags} --quiet"
			;;

      --verbose|-v)	opt_verbose=:
      			libtoolize_flags="${libtoolize_flags} --verbose"
			;;

      # Separate optargs to long options:
      --ltdl=*)
      			arg=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_arg"`
			opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_long_opt"`
			set -- "$opt" "$arg" ${1+"$@"}
			;;

      # Separate non-argument short options:
      -c*|-i*|-f*|-n*|-q*|-v*)
			rest=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_rest"`
			opt=`$ECHO "X$opt" | $Xsed -e "$my_sed_single_opt"`
			set -- "$opt" "-$rest" ${1+"$@"}
			;;

      -\?|-h)		func_usage					;;
      --help)		func_help					;;
      --version)	func_version					;;
      --)		break						;;
      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
      *)		func_fatal_help "too many arguments"		;;
    esac
  done
}


# func_copy srcfile destfile
# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails,
# then try to copy SRCFILE to DESTFILE.
func_copy ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_return_status=1

    func_mkdir_p `$ECHO "X$my_destfile" | $Xsed -e "$dirname"`

    $RM "$my_destfile"
    if $opt_link && $LN_S "$my_srcfile" "$my_destfile"; then
      $opt_quiet || func_echo "copying file \`$my_destfile'"
      my_return_status=0
    elif $CP "$my_srcfile" "$my_destfile"; then
      $opt_quiet || func_echo "copying file \`$my_destfile'"
      my_return_status=0
    else
      func_error "can not copy \`$my_srcfile' to \`$my_destfile'"
      exit_status=$EXIT_FAILURE
    fi

    return $my_return_status
}

# func_copy_all_files [-r] srcdir destdir [glob_exclude] [copy_cb=func_copy]
# For each file in SRCDIR, then try to copy the file to DESTDIR by calling
# COPY_CB with the src and dest files.  With the `-r' option, recurse into
# subdirectories of srcdir too.  If GLOB_EXCLUDE is given, exclude any
# matching filenames from the copy.  If COPY_CB is passed, then the check
# for overwriting without opt_force is the callbacks responsibility:  This
# allows using callbacks like func_serial_update, which perform their own
# checks to decide whether to overwrite the dest file.
func_copy_all_files ()
{
    my_opt_recurse=false
    if test "X$1" = X-r; then
      my_opt_recurse=:
      shift
    fi

    my_srcdir="$1"
    my_destdir="$2"
    my_glob_exclude="$3"
    my_copy_cb="${4-func_copy}"

    my_srcfiles=
    my_basedir="$my_srcdir"
    my_srcdirs="$my_srcdir"
    my_save_IFS="$IFS"
    IFS=:
    while test -n "$my_srcdirs"; do

      IFS="$my_save_IFS"
      my_srcdir=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:.*,,g'`
      my_srcdirs=`$ECHO "X$my_srcdirs" | $Xsed -e 's,:*[[^:]][[^:]]*:*,,'`

      for my_filename in `cd "$my_srcdir" && ls`; do

        # ignore excluded filenames
        if test -n "$my_glob_exclude"; then
          eval 'case $my_filename in '$my_glob_exclude') continue ;; esac'
        fi

	# Add to the appropriate list
	if test -f "$my_srcdir/$my_filename"; then
	  my_srcfile=`$ECHO "X$my_srcdir/$my_filename" | $Xsed \
	      -e "s,^$my_basedir/*,,"`
	  my_srcfiles="$my_srcfiles${my_srcfiles:+:}$my_srcfile"
	elif $my_opt_recurse && test -d "$my_srcdir/$my_filename"; then
	  my_srcdirs="$my_srcdirs${my_srcdirs:+:}$my_srcdir/$my_filename"
	fi

      done
    done
    IFS="$my_save_IFS"

    func_copy_some_files "$my_basedir" "$my_srcfiles" \
      "$my_destdir" "$my_copy_cb"
}


# func_copy_some_files srcdir srcfile_spec destdir [copy_cb=func_copy]
# Call COPY_CB for each regular file in SRCDIR named by the ':' delimited
# names in SRCFILE_SPEC.  The odd calling convention is needed to allow
# spaces in file and directory names.
func_copy_some_files ()
{
    my_srcdir="$1"
    my_srcfile_spec="$2"
    my_destdir="$3"
    my_copy_cb="${4-func_copy}"

    my_save_IFS="$IFS"
    IFS=:
    for my_filename in $my_srcfile_spec; do

      IFS="$my_save_IFS"
      if test -f "$my_srcdir/$my_filename"; then
        if test "X$my_copy_cb" = Xfunc_copy; then
	  $opt_force || if test -f "$my_destdir/$my_filename"; then
  	    $opt_quiet \
	      || func_error "\`$my_destdir/$my_filename' exists: use \`--force' to overwrite"
	    continue
	  fi
        fi
      else
        # Not a regular file
        continue
      fi

      $my_copy_cb "$my_srcdir/$my_filename" "$my_destdir/$my_filename"
    done
    IFS="$my_save_IFS"
}

# func_scan_files
# Scan configure.(ac|in) and aclocal.m4 (if present) for use of libltdl
# and libtool.  Possibly running some of these tools if necessary.
# Libtoolize affects the contents of aclocal.m4, and should be run before
# aclocal, so we can't use configure --trace which relies on a consistent
# configure.(ac|in) and aclocal.m4.
func_scan_files ()
{
    # Prefer configure.ac to configure.in
    test -f configure.ac && configure_ac=configure.ac
    test -f "$configure_ac" \
        || func_fatal_help "\`$configure_ac' does not exist"

    test -n "`cd $pkgdatadir && ls`" \
        || func_fatal_error "can not list files in \`$pkgdatadir'"


    # Set local variables to reflect contents of configure.ac
    my_uses_autoconf=false
    my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
	/AC_INIT/ { s,^.*$,my_uses_autoconf=:,; p; };
	d'
    eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`

    $my_uses_autoconf || {
        func_verbose "$configure_ac: not using Autoconf"
	return
    }

    # ---------------------------------------------------- #
    # Probe macro usage in configure.ac and/or aclocal.m4. #
    # ---------------------------------------------------- #

    my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
    	/AC_CONFIG_AUX_DIR[[^_]]/  {
	    s,^.*AC_CONFIG_AUX_DIR([[[ 	]*\([^])]]*\).*$,auxdir=\1,; p;
        };
    	/AC_CONFIG_MACRO_DIR/   {
	    s,^.*AC_CONFIG_MACRO_DIR([[[ 	]*\([^])]]*\).*$,m4dir=\1,; p;
        };
	/A[[CM]]_PROG_LIBTOOL/ { s,^.*$,seen_libtool=:,; p; };
	/LT_INIT/	     { s,^.*$,seen_libtool=:,; p; };
	/LTDL_INIT/          { s,^.*$,seen_ltdl=:,; p; };
	/LT_WITH_LTDL/       { s,^.*$,seen_ltdl=:,; p; };
	/AC_LIB_LTDL/        { s,^.*$,seen_ltdl=:,; p; };
	/AC_WITH_LTDL/       { s,^.*$,seen_ltdl=:,; p; };
	d;'
    eval `cat aclocal.m4 "$configure_ac" 2>/dev/null | $SED "$my_sed_traces"`


    # ---------------- #
    # Validate auxdir. #
    # ---------------- #

    if test -n "$auxdir"; then
      # If $configure_ac contains AC_CONFIG_AUX_DIR, check that it was
      # not given in terms of a shell variable!
      case "$auxdir" in
      *\$*)
        func_fatal_error "can not handle variables in AC_CONFIG_AUX_DIR"
        ;;
      *);;
      esac
    else
      # Try to discover auxdir the same way it is discovered by configure.
      # Note that we default to the current directory.
      for dir in . .. ../..; do
        if test -f "$dir/install-sh"; then
          auxdir=$dir
          break
        elif test -f "$dir/install.sh"; then
          auxdir="$dir"
          break
        fi
      done
    fi

    # Just use the current directory if all else fails.
    test -n "$auxdir" || auxdir=.


    # ------------------------------ #
    # Find local m4 macro directory. #
    # ------------------------------ #

    # If AC_CONFIG_MACRO_DIR turned nothing up, we hunt for ACLOCAL_AMFLAGS
    # in `Makefile.am' for a `-I' argument.

    my_sed_aclocal_flags='/^[[ 	]]*ACLOCAL_[[A-Z_]]*FLAGS[[ 	]]*=/ {
	s,^[[^=]]*=[[ 	]]*\(.*\), \1,; q; }; d'
    if test ! -n "$m4dir" && test -f Makefile.am; then
      my_m4dir_is_next=false
      for arg in `$SED "$my_sed_aclocal_flags" Makefile.am`; do
        if $my_m4dir_is_next; then
          m4dir="$arg"
          break
        else
          if test "X$arg" = "X-I"; then
            my_m4dir_is_next=:
          else
            my_m4dir_is_next=false
          fi
        fi
      done
    fi
}

# func_included_files searchfile
# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE.
func_included_files ()
{
    my_searchfile="$1"

    my_include_regex=
    my_sed_include='
        /^[m4]_include(\[[.*\]])$/ { s,^[m4]_include(\[[\(.*\)\]])$,\1,; p; };
        d'

    if test -f "$my_searchfile"; then
      $ECHO "X$my_searchfile" | $Xsed
    fi

    # Only recurse when we don't care if all the variables we use get
    # trashed, since they are in global scope.
    for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do
      func_included_files $my_filename
    done
}

# 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=
    for my_file in `func_included_files "$my_filename"`; do
      if test -z "$my_macro_regex" ||
         func_grep '^AC_DEFUN(\@<:@'"$my_macro_regex" "$my_file"
      then
        my_serial=`$SED -e "$my_sed_serial" "$my_file"`
	break
      fi
    done

    # If the file has no serial number, we assume it's ancient.
    test -n "$my_serial" || my_serial=0

    $ECHO $my_serial
}

# func_serial_update srcfile destfile [macro_regex] [old_macro_regex]
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer serial number, or
# DESTFILE does not yet exist, or the user specified `--force'.  If given,
# MACRO_REGEX or OLD_MACRO_REGEX must match any text after "# serial N" in
# both files.
func_serial_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_macro_regex="$3"
    my_old_macro_regex="$4"

    my_return_status=1
    my_update_p=:

    if test -f "$my_destfile"; then
      my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"`
      # Strictly, this libtoolize ought not to have to deal with ancient
      # serial formats, but we accept them here to be complete:
      test "$my_src_serial" -eq 0 &&
        my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"`

      my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"`
      test "$my_dest_serial" -eq 0 &&
        my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"`

      test "$my_src_serial" -eq 0 && {
        func_error "warning: no serial number on \`$my_srcfile', not copying."
	return
      }

      # Only perform the file update if the destination has an older serial.
      test "$my_src_serial" -gt "$my_dest_serial" || my_update_p=false

      test "$my_src_serial" -gt "$my_dest_serial" \
        && func_verbose "\`$my_srcfile' is serial $my_srcserial, greater than $my_destserial in \`$my_destfile'"

      if test "$my_src_serial" -lt "$my_dest_serial"; then
        func_error "\`$my_srcfile' is serial $my_srcserial, less than $my_destserial in \`$my_destfile'"
	$opt_force \
          || func_fatal_error "Use \`--force' to replace newer libtool files with this version."
      fi
    fi

    if $my_update_p || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
      my_return_status=$?
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi

    # Do this after the copy for hand maintained `aclocal.m4', incase
    # it has `m4_include([DESTFILE])', so the copy effectively already
    # updated `aclocal.m4'.
    $use_aclocal || if test -f aclocal.m4; then
      test "$my_src_serial" -gt `func_serial aclocal.m4 "$my_macro_regex"` \
	  && func_echo "You should add the contents of \'$my_destfile' to \`aclocal.m4'."
    fi

    return $my_return_status
}

# func_check_macros
# Sanity check macros from aclocal.m4 against installed versions.
func_check_macros ()
{
    # Don't trace for this, we're just checking the user didn't invoke it
    # directly from configure.ac.
    $SED 's,[d]nl .*$,,; s,# .*$,,' "$configure_ac" | grep AC_PROG_RANLIB \
      && func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"

    $seen_libtool \
      || func_echo "Remember to add \`LT_INIT' to \`$configure_ac'."

    # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
}

# func_ltmain_update srcfile destfile
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer VERSION/TIMESTAMP,
# or DESTFILE does not yet exist, or the user specified `--force'.
func_ltmain_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_sed_ltmain='
	s,^VERSION=[[^0-9]]*\(.*\)[[ 	]]*$,\1,; t
	s,^TIMESTAMP=[[^0-9]]*\([[.0-9]]*\) .*$,\1,; t
	d'

    if test -f "$my_srcfile"; then :
    else
      func_error "\`$my_srcfile' does not exist."
      return
    fi

    # FIXME:  check versions, and only downgrade with --force
    cmp -s  "$my_srcfile" "$my_destfile"
    if test "$?" -ne 0 || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi
}

# func_config_update srcfile destfile
# Copy SRCFILE to DESTFILE provided SRCFILE has a newer TIMESTAMP,
# or DESTFILE does not yet exist, or the user specified `--force'.
func_config_update ()
{
    my_srcfile="$1"
    my_destfile="$2"
    my_sed_config='s,^timestamp=[[^0-9]]*\([[.0-9-]]*\)[[^0-9]].*$,\1,; t; d'

    if test -f "$my_srcfile"; then :
    else
      func_error "\`$my_srcfile' does not exist."
      return
    fi

    # FIXME:  check versions, and only downgrade with --force
    cmp -s  "$my_srcfile" "$my_destfile"
    if test "$?" -ne 0 || $opt_force; then
      func_copy "$my_srcfile" "$my_destfile"
    else
      $opt_quiet \
        || func_echo "\`$my_destfile' is already up to date."
    fi
}



## ----------- ##
##    Main.    ##
## ----------- ##

{
  rerun_aclocal=false

  # NOTE: PKGMACRO_FILES must be kept in synch with aclocal_DATA in the
  #       libtool top_srcdir/Makefile.am (libtool.m4 and ltdl.m4 are handled
  #       specially below though, so don't add them here):
  pkgmacro_files='argz.m4:ltoptions.m4:ltsugar.m4:ltversion.m4'

  glob_exclude_pkgaux_files='config.guess|config.sub|ltmain.sh'

  func_scan_files
  $opt_quiet || func_check_macros

  # Copy all the files from installed libltdl to this project, if the
  # user specified `--ltdl'.
  if test -n "$ltdldir"; then
    eval func_copy_all_files -r "$pkgdatadir/libltdl" "$ltdldir"

    # libtoolize the newly copied libltdl tree
    ( cd "$ltdldir" && "$progpath" $libtoolize_flags ) || exit $EXIT_FAILURE
  fi

  # Copy all the installed utility files to the auxiliary directory if
  # `--install' was passed, or else copy just ltmain.sh.
  $opt_quiet || if test "$auxdir" != .; then
    func_echo "putting files in AC_CONFIG_AUX_DIR, \`$auxdir'."
  fi
  if $opt_install || $opt_force; then
    func_copy_all_files "$pkgdatadir" "$auxdir" "$glob_exclude_pkgaux_files"
    func_config_update "$pkgdatadir/config.guess" "$auxdir/config.guess"
    test -f "$pkgdatadir/config.sub" \
      && func_config_update "$pkgdatadir/config.sub" "$auxdir/config.sub"
  fi
  func_ltmain_update "$pkgdatadir/ltmain.sh" "$auxdir/ltmain.sh"

  # Copy libtool's m4 macros to the macro directory, if they are newer.
  if test -n "$m4dir"; then
    libtool_m4="$aclocaldir/libtool.m4"
    ltdl_m4="$aclocaldir/ltdl.m4"

    $opt_quiet || func_echo "putting macros in AC_CONFIG_MACRO_DIR, \`$m4dir'."

    func_serial_update  "$libtool_m4" "$m4dir/libtool.m4" \
      LT_INIT 'A[[CM]]_PROG_LIBTOOL'

    if $seen_ltdl; then
      func_serial_update "$ltdl_m4" "$m4dir/ltdl.m4" 'LTDL_INIT'
    else
      func_verbose "Not copying \`$ltdl_m4', libltdl not used."
    fi

    func_copy_some_files "$aclocaldir" "$pkgmacro_files" \
      "$m4dir" func_serial_update
  fi
}

exit $exit_status

# Local Variables:
# mode:shell-script
# sh-indentation:2
# End: