5 eval "exec /usr/local/bin/perl -S $0 $*"
6 if $running_under_some_shell;
8 # automake - create Makefile.in from Makefile.am
9 # Copyright (C) 1994 Free Software Foundation, Inc.
11 # This program is free software; you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation; either version 2, or (at your option)
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with this program; if not, write to the Free Software
23 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 # Originally written by David Mackenzie <djm@gnu.ai.mit.edu>.
26 # Perl reimplementation by Tom Tromey <tromey@drip.colorado.edu>.
29 # Parameters set by configure. Not to be changed.
30 $PACKAGE = "@PACKAGE@";
31 $VERSION = "@VERSION@";
33 $am_dir = "@datadir@/@PACKAGE@";
35 # Commonly found files we look for and automatically include in
39 "THANKS", "TODO", "README", "NEWS", "COPYING", "COPYING.LIB",
40 "INSTALL", "ABOUT-NLS", "ChangeLog", "configure", "configure.in",
41 "config.guess", "config.sub"
44 # Commonly used files we auto-include, but only sometimes.
47 "version.texi", "aclocal.m4", "acconfig.h", "config.h.top",
48 "config.h.bot", "stamp-h.in", "mdate-sh", "ansi2knr.c",
49 "ansi2knr.1", 'stamp-vti', "mkinstalldirs", "install-sh"
52 $USAGE = " --amdir=DIR directory storing config files
53 --help print this help, then exit
54 --version print version number, then exit
55 --include-deps include generated dependencies in Makefile\n";
59 # This is TRUE if GNU make specific automatic dependency generation
60 # code should be included in generated Makefile.in.
61 $use_dependencies = 1;
63 # This holds our (eventual) exit status. We don't actually exit until
64 # we have processed all input files.
67 # These two variables are used when generating each Makefile.in. They
68 # hold the Makefile.in until it is ready to be printed.
73 # Suffixes found during a run.
76 # This holds the contents of a Makefile.am, as parsed by read_am_file.
79 # This holds the "relative directory" of the current Makefile.in. Eg
80 # for src/Makefile.in, this is "src".
83 # This holds a list of files that are included in the distribution.
86 # List of dependencies for the obvious targets.
97 # TRUE if current directory holds any C source files.
98 $dir_holds_sources = 0;
100 # TRUE if install targets should work recursively.
101 $recursive_install = 0;
105 # Parse command line.
106 @input_files = &parse_arguments (@ARGV);
108 # Now do all the work on each file.
109 foreach $am_file (@input_files)
111 if (! -f ($am_file . '.am'))
113 print STDERR "automake: $am_file" . ".am: no such file\n";
118 &generate_makefile ($am_file);
125 ################################################################
127 # Parse command line.
130 local (@arglist) = @_;
133 while ($#arglist >= 0)
135 if ($arglist[0] eq "--version")
137 print "Automake version $VERSION\n";
140 elsif ($arglist[0] eq "--help")
144 elsif ($arglist[0] =~ /^--amdir=(.+)$/)
148 elsif ($arglist[0] eq '--amdir')
153 "automake: no argument given for option \`$arglist[0]'\n";
157 $am_dir = $arglist[0];
159 elsif ($arglist[0] eq '--include-deps')
161 $use_dependencies = 0;
163 elsif ($arglist[0] eq '--')
165 # Stop option processing.
167 push (@make_list, @arglist);
170 elsif ($arglist[0] =~ /^-/)
172 print STDERR "automake: unrecognized option -- \`$arglist[0]'\n";
177 push (@make_list, $arglist[0]);
185 # Look around for some files.
186 push (@make_list, 'Makefile') if -f 'Makefile.am';
188 foreach (<*/Makefile.am>)
191 push (@make_list, $_);
194 if ($#make_list >= 0)
196 print "automake: using ", join (' ', @make_list), "\n";
200 print STDERR "automake: no \"Makefile.am\" found or specified\n";
208 ################################################################
210 # Generate a Makefile.in given the name of the corresponding Makefile.
211 sub generate_makefile
213 local ($makefile) = @_;
215 print "creating ", $makefile, ".in\n";
217 $relative_dir = &dirname ($makefile);
220 $output_trailer = '';
223 @dist_common = ('Makefile.in', 'Makefile.am');
227 $dir_holds_sources = 0;
228 $recursive_install = 0;
235 # Generate header before reading .am file. The header must come
236 # before anything else, and read_am_file copies code into the
240 # This is always the default target. This gives us freedom to do
241 # things in whatever order is convenient.
242 $output_rules .= "default: all\n\n";
244 &read_am_file ($makefile . '.am');
247 local ($programs) = (defined ($contents{'AM_PROGRAMS'})
248 ? $contents{'AM_PROGRAMS'}
249 : $contents{'PROGRAMS'});
250 local ($libprograms) = (defined ($contents{'AM_LIBPROGRAMS'})
251 ? $contents{'AM_LIBPROGRAMS'}
252 : $contents{'LIBPROGRAMS'});
253 local ($libraries) = (defined ($contents{'AM_LIBRARIES'})
254 ? $contents{'AM_LIBRARIES'}
255 : $contents{'LIBRARIES'});
256 local ($scripts) = (defined ($contents{'AM_SCRIPTS'})
257 ? $contents{'AM_SCRIPTS'}
258 : $contents{'SCRIPTS'});
259 local ($libscripts) = (defined ($contents{'AM_LIBSCRIPTS'})
260 ? $contents{'AM_LIBSCRIPTS'}
261 : $contents{'LIBSCRIPTS'});
263 &handle_programs ($programs, $libprograms, $libraries);
264 &handle_scripts ($scripts, $libscripts);
265 &handle_libraries ($libraries);
274 &handle_dependencies;
276 &handle_merge_targets;
279 if (! open (GM_FILE, "> " . $makefile . ".in"))
281 print STDERR "automake: cannot open ", $makefile, ".in: ", $!, "\n";
286 print GM_FILE $output_vars;
287 print GM_FILE $output_rules;
288 print GM_FILE $output_trailer;
293 ################################################################
295 # Generate header of Makefile.in.
300 . "# Makefile.in generated automatically by automake "
302 . " from Makefile.am\n");
304 $output_vars = $output_vars . &file_contents ('header-vars');
305 $output_rules = $output_rules . &file_contents ('header');
308 # Handle C programs and libraries.
311 local ($programs, $libprograms, $libraries) = @_;
313 if (!$programs && !$libprograms && !$libraries)
318 $dir_holds_sources = 1;
321 $output_vars .= &file_contents ('compile-vars');
322 $output_rules .= &file_contents ('compile');
324 # Check for automatic de-ANSI-fication.
326 push (@suffixes, '.c', '.o');
327 push (@clean, 'compile');
329 if (defined $contents{'@kr@'})
332 push (@suffixes, '._c', '._o');
334 &require_file ('ansi2knr.c');
335 &require_file ('ansi2knr.1');
337 $output_vars .= &file_contents ('kr-vars');
338 $output_rules .= &file_contents ('compile-kr');
339 $output_rules .= &file_contents ('clean-kr');
344 local (@sources, @objects);
345 push (@sources, '${SOURCES}') if (defined $contents{'SOURCES'});
346 push (@objects, '${OBJECTS}') if (defined $contents{'OBJECTS'});
349 foreach $one_file (split (' ', ($programs . ' '
353 # Look for file_SOURCES and file_OBJECTS. FIXME file_OBJECTS
354 # should probably not be used(?)
355 if (defined $contents{$one_file . "_SOURCES"})
357 if (! defined $contents{$one_file . "_OBJECTS"})
359 # Turn sources into objects.
360 $_ = $contents{$one_file . "_SOURCES"};
362 # Ugh: Perl syntax vs Emacs.
363 local ($krc1, $krc2) = ('\.\$\{kr\}c', '\.\$\(kr\)c');
368 s/\.[cCmylfs]/$obj/g;
370 $output_vars .= $one_file . "_OBJECTS = " . $_ . "\n";
373 push (@sources, '${' . $one_file . "_SOURCES}");
374 push (@objects, '${' . $one_file . "_OBJECTS}");
378 $output_vars .= ($one_file . "_SOURCES = " . $one_file . ".c\n"
379 . $one_file . "_OBJECTS = ". $one_file
381 push (@sources, $one_file . '.c');
382 push (@objects, $one_file . $obj);
385 if (defined $contents{'CONFIG_HEADER'})
387 $output_rules .= ('$(' . $one_file . "_OBJECTS): "
388 . $contents{'CONFIG_HEADER'} . "\n");
392 $output_vars .= "\n";
394 # Re-init SOURCES and OBJECTS. FIXME other code shouldn't depend
396 $contents{'SOURCES'} = join (' ', @sources);
397 $contents{'OBJECTS'} = join (' ', @objects);
399 # Some boilerplate, and install rules.
402 $output_rules .= &file_contents ('programs');
403 push (@install_exec, "install-programs");
404 push (@uninstall, 'uninstall-programs');
405 push (@clean, 'programs');
409 $output_rules .= &file_contents ('libprograms');
410 push (@install_exec, 'install-libprograms');
411 push (@uninstall, 'uninstall-libprograms');
412 push (@clean, 'libprograms');
416 if ($programs || $libprograms)
418 local ($fcont) = &file_contents ('program');
420 foreach $one_file (split (' ', $programs . ' ' . $libprograms))
422 if (! defined $contents{$one_file . "_LDADD"})
424 # User didn't define prog_LDADD override. So do it.
425 $output_vars .= $one_file . '_LDADD = ${LDADD}' . "\n";
428 ($munge = $fcont) =~ s/@PROGRAM@/$one_file/g;
429 $output_rules .= $munge;
437 local ($libraries) = @_;
439 return if (!$libraries);
441 local (@liblist) = split (' ', $libraries);
443 $output_rules .= &file_contents ('libraries');
444 local ($onefile) = &file_contents ('library');
445 local ($onelib, $munge);
446 foreach $onelib (@liblist)
448 ($munge = $onefile) =~ s/@LIBRARY@/$onelib/g;
449 $output_rules .= $munge;
452 # Turn "foo" into "libfoo.a" and include macro definition.
453 grep (($_ = 'lib' . $_ . '.a') && 0, @liblist);
454 $output_vars .= ("LIBFILES = " . join (' ', @liblist) . "\n\n"
455 . &file_contents ('libraries-vars'));
457 push (@install_exec, 'install-libraries');
458 push (@uninstall, 'uninstall-libraries');
459 push (@clean, 'libraries');
465 local ($scripts, $libscripts) = @_;
469 $output_rules .= &file_contents ('scripts');
470 push (@install_exec, 'install-scripts');
471 push (@uninstall, 'uninstall-scripts');
472 push (@clean, 'scripts');
477 $output_rules .= &file_contents ('libscripts');
478 push (@install_exec, 'install-libscripts');
479 push (@uninstall, 'uninstall-libscripts');
480 push (@clean, 'libscripts');
484 # Handle all Texinfo source.
487 return if (! defined $contents{TEXINFOS});
489 local (@texis) = split (' ', $contents{TEXINFOS});
492 print STDERR "automake: sorry, only one file allowed in \`TEXINFOS'\n";
498 ($infobase = $texis[0]) =~ s/\.texi$//;
500 # If 'version.texi' is referenced by input file, then include
501 # automatic versioning capability.
502 system ("grep version.texi " . $relative_dir . "/" . $texis[0]
503 . " > /dev/null 2>&1");
507 push (@texis, 'version.texi');
508 push (@dist_common, 'version.texi', 'stamp-vti');
509 push (@clean, 'vti');
512 ($tfile = &file_contents ('texi-version')) =~ s/@TEXI@/$texis[0]/g;
513 $output_rules = $output_rules . $tfile;
515 &require_file ('mdate-sh');
518 # If user specified file_TEXINFOS, then use that as explicit
520 if (defined $contents{$infobase . "_TEXINFOS"})
522 push (@texis, "\$" . $infobase . '_TEXINFOS');
523 push (@dist_common, "\$" . $infobase . '_TEXINFOS');
528 $output_rules = ($output_rules . $infobase . ".info: "
529 . join (' ', @texis) . "\n\n");
533 $output_vars = $output_vars . &file_contents ('texinfos-vars');
534 $output_rules = $output_rules . &file_contents ('texinfos');
536 push (@suffixes, '.texi', '.info', '.dvi');
537 push (@uninstall, 'uninstall-info');
538 push (@clean, 'info');
539 push (@info, '$(INFO_DEPS)');
540 push (@dvi, '$(DVIS)');
541 # Make sure documentation is made and installed first.
542 unshift (@install_data, 'install-info');
543 unshift (@all, 'info');
545 $output_vars .= ("INFOS = " . $infobase . ".info*\n"
546 . "INFO_DEPS = " . $infobase . ".info\n"
547 . "DVIS = " . $infobase . ".dvi\n\n");
549 # Do some error checking.
550 &require_file ('texinfo.tex');
553 # Handle any man pages.
556 return if (! defined $contents{'MANS'});
558 $output_vars .= &file_contents ('mans-vars');
559 $output_rules .= &file_contents ('mans');
561 push (@install_data, 'install-man');
562 push (@uninstall, 'uninstall-man');
565 # Handle DATA and PACKAGEDATA.
568 if (defined $contents{'DATA'})
570 $output_rules .= &file_contents ('data');
571 push (@install_data, 'install-ddata');
572 push (@uninstall, 'uninstall-ddata');
575 if (defined $contents{'PACKAGEDATA'})
577 $output_rules .= &file_contents ('packagedata');
578 push (@install_data, 'install-pdata');
579 push (@uninstall, 'uninstall-pdata');
586 local ($tagging) = 0;
588 if (defined ($contents{'SUBDIRS'}))
590 $output_rules .= &file_contents ('tags');
593 elsif ($dir_holds_sources || defined ($contents{'ETAGS_ARGS'}))
595 $output_rules .= &file_contents ('tags-subd');
601 $output_rules .= &file_contents ('tags-clean');
602 push (@clean, 'tags');
606 # Handle 'dist' target.
609 # Look for common files that should be included in distribution.
611 foreach $cfile (@common_files)
613 if (-f ($relative_dir . "/" . $cfile))
615 push (@dist_common, $cfile);
619 $output_vars .= "DIST_COMMON = " . join (' ', @dist_common) . "\n\n";
622 if ($relative_dir ne '.')
625 $output_vars .= (&file_contents ('dist-subd-vars')
626 . "subdir = " . $relative_dir . "\n\n");
627 $output_rules .= &file_contents ('dist-subd');
631 $output_vars .= &file_contents ('dist-vars');
632 $output_rules .= &file_contents (defined ($contents{'SUBDIRS'})
638 # Handle auto-dependency code.
639 sub handle_dependencies
641 if ($use_dependencies)
643 # Include GNU-make-specific auto-dep code.
644 if ($dir_holds_sources)
646 $output_rules .= &file_contents ('depend');
651 # Include any auto-generated deps that are present.
652 if (-d ($relative_dir . "/.deps") && -f ($relative_dir . "/.deps/.P"))
655 local ($gpat) = $relative_dir . "/.deps/*.P";
657 foreach $depfile (<${gpat}>)
659 if (! open (DEP_FILE, $depfile))
661 print STDERR "automake: couldn't open $depfile: $!\n";
666 $output_rules .= join ('', <DEP_FILE>);
671 $output_rules .= "\n";
676 # Handle subdirectories.
679 return if (! defined ($contents{'SUBDIRS'}));
681 $output_rules .= &file_contents ('subdirs');
683 push (@all, "all-recursive");
684 push (@check, "check-recursive");
685 push (@info, "info-recursive");
686 push (@dvi, "dvi-recursive");
688 $recursive_install = 1;
691 # Handle remaking and configure stuff.
694 if ($relative_dir ne '.')
697 $output_rules .= &file_contents ('remake-subd');
703 $output_vars .= "ACLOCAL = aclocal.m4\n";
704 push (@dist_common, 'aclocal.m4');
706 $output_rules .= &file_contents ('remake');
708 # Look for some files we need.
709 &require_file ('install-sh');
710 &require_file ('mkinstalldirs');
713 if (defined ($configure{'CONFIG_HEADER'})
714 && $contents{'CONFIG_HEADER'} !~ m,/,)
716 # Header defined and in this directory.
719 $output_vars .= "ACCONFIG = acconfig.h\n";
720 push (@dist_common, 'acconfig.h');
722 if (-f 'config.h.top')
724 $output_vars .= "CONFIG_TOP = config.h.top\n";
725 push (@dist_common, 'config.h.top');
727 if (-f 'config.h.bot')
729 $output_vars .= "CONFIG_BOT = config.h.bot\n";
730 push (@dist_common, 'config.h.bot');
733 push (@dist_common, 'stamp-h.in', $contents{'CONFIG_HEADER'} . '.in');
735 $output_rules .= &file_contents ('remake-hdr');
739 # Handle footer elements.
742 if ($contents{'SOURCES'})
744 $output_vars .= "SOURCES = " . $contents{'SOURCES'} . "\n";
746 if ($contents{'OBJECTS'})
748 $output_vars .= "OBJECTS = " . $contents{'OBJECTS'} . "\n";
750 if ($contents{'SOURCES'} || $contents{'OBJECTS'})
752 $output_vars .= "\n";
755 $output_trailer .= ".SUFFIXES:\n";
758 $output_trailer .= ".SUFFIXES: " . join (' ', @suffixes) . "\n";
760 $output_trailer .= "\n" . &file_contents ('footer');
763 # There are several targets which need to be merged. This is because
764 # their complete definition is compiled from many parts. Note that we
765 # avoid double colon rules, otherwise we'd use them instead.
766 sub handle_merge_targets
768 &do_one_merge_target ('all', @all);
769 &do_one_merge_target ('info', @info);
770 &do_one_merge_target ('dvi', @dvi);
771 &do_one_merge_target ('check', @check);
773 # Handle the various install targets specially. We do this so
774 # that (eg) "make install-exec" will run "install-exec-recursive"
775 # if required, but "make install" won't run it twice. Step one is
776 # to see if the user specified local versions of any of the
778 if (defined $contents{'install-exec-local'})
780 push (@install_exec, 'install-exec-local');
782 if (defined $contents{'install-data-local'})
784 push (@install_data, 'install-data-local');
786 if (defined $contents{'uninstall-local'})
788 push (@uninstall, 'uninstall-local');
791 if (defined $contents{'install-local'})
793 print STDERR "automake: use \`install-data' or \`install-exec', not \`install'\n";
796 # Step two: if we are doing recursive makes, write out the
799 if ($recursive_install)
801 push (@install, 'install-recursive');
802 push (@uninstall, 'uninstall-recursive');
804 if ($#install_exec >= 0)
806 $output_rules .= ('install-exec-am: '
807 . join (' ', @install_exec)
809 @install_exec = ('install-exec-recursive', 'install-exec-am');
810 push (@install, 'install-exec-am');
812 if ($#install_data >= 0)
814 $output_rules .= ('install-data-am: '
815 . join (' ', @install_data)
817 @install_data = ('install-data-recursive', 'install-data-am');
818 push (@install, 'install-data-am');
820 if ($#uninstall >= 0)
822 $output_rules .= ('uninstall-am: '
823 . join (' ', @uninstall)
825 @uninstall = ('uninstall-recursive', 'uninstall-am');
829 # Step three: print definitions users can use.
830 if ($#install_exec >= 0)
832 $output_rules .= ("install-exec: "
833 . join (' ', @install_exec)
835 push (@install, 'install-exec') if (!$recursive_install);
837 if ($#install_data >= 0)
839 $output_rules .= ("install-data: "
840 . join (' ', @install_data)
842 push (@install, 'install-data') if (!$recursive_install);
845 $output_rules .= ('install: '
846 . join (' ', @install)
849 . join (' ', @uninstall)
853 # Helper for handle_merge_targets.
854 sub do_one_merge_target
856 local ($name, @values) = @_;
858 if (defined $contents{$name . '-local'})
860 # User defined local form of target. So include it.
861 push (@values, $name . '-local');
864 $output_rules .= $name . ": " . join (' ', @values) . "\n\n";
867 # Handle all 'clean' targets.
870 push (@clean, 'generic');
871 $output_rules .= &file_contents ('clean');
873 local ($target) = $recursive_install ? 'clean-am' : 'clean';
874 &do_one_clean_target ($target, 'mostly', '', @clean);
875 &do_one_clean_target ($target, '', 'mostly', @clean);
876 &do_one_clean_target ($target, 'dist', '', @clean);
877 &do_one_clean_target ($target, 'maintainer-', 'dist', @clean);
880 if ($recursive_install)
882 @deps = ('am', 'recursive');
883 &do_one_clean_target ('', 'mostly', '', @deps);
884 &do_one_clean_target ('', '', '', @deps);
885 &do_one_clean_target ('', 'dist', '', @deps);
886 &do_one_clean_target ('', 'maintainer-', '', @deps);
890 # Helper for handle_clean.
891 sub do_one_clean_target
893 local ($target, $name, $last_name, @deps) = @_;
895 # Special case: if target not passed, then don't generate
896 # dependency on next "lower" clean target (eg no
897 # clean<-mostlyclean derivation). In this case the target is
898 # implicitly known to be 'clean'.
899 local ($flag) = $target;
905 $output_rules .= $name . $target . ": ";
908 if ($last_name || $name ne 'mostly')
910 $output_rules .= $last_name . $target . " ";
914 $output_rules .= ($name . 'clean-' . join (' ' . $name . 'clean-', @deps)
917 # FIXME shouldn't we really print these messages before running
919 if ($name . $target eq 'maintainer-clean')
921 # Print a special warning.
923 ("\t@echo \"This command is intended for maintainers to use;\"\n"
924 . "\t@echo \"it deletes files that may require special "
925 . "tools to rebuild.\"\n");
927 $output_rules .= "\n";
930 ################################################################
932 # Read Makefile.am and set up %contents. Simultaneously copy lines
933 # from Makefile.am into $output_trailer or $output_vars as
934 # appropriate. NOTE we put rules in the trailer section. We want
935 # user rules to come after our generated stuff.
938 local ($amfile) = @_;
940 if (! open (AMFILE, $amfile))
942 print STDERR "automake: couldn't open $amfile: $!\n";
947 local ($was_rule) = 0;
948 local ($last_var_name) = '';
958 $output_trailer .= $_ . "\n";
962 $output_vars .= $_ . "\n";
963 if (substr ($_, -1) eq "\\")
965 $contents{$last_var_name} .= substr ($_, 0,
970 $contents{$last_var_name} .= $_;
976 # Special case: this means we want automatic
977 # de-ANSI-fication. FIXME think of a better way.
978 $contents{'@kr@'} = 1;
980 elsif (m/^ *([a-zA-Z_.][a-zA-Z0-9_.]*) *:/)
984 # Value here doesn't matter; for targets we only note
987 $output_trailer .= $_ . "\n";
989 elsif (m/^ *([A-Za-z][A-Za-z0-9_]*)[ ]*=[ ]*(.*)$/)
991 # Found a variable reference.
994 if (substr ($2, -1) eq "\\")
996 $contents{$1} = substr ($2, 0, length ($2) - 1);
1002 $output_vars .= $_ . "\n";
1006 # Special rule: if looking at a blank line, append it to
1007 # whatever we saw last.
1010 $output_trailer .= "\n";
1014 $output_vars .= "\n";
1019 # This isn't an error; it is probably a continued rule.
1020 # In fact, this is what we assume.
1021 $output_trailer .= $_ . "\n";
1024 $saw_bk = (substr ($_, -1) eq "\\");
1027 # Include some space after user code.
1028 $output_vars .= "\n";
1029 $output_trailer .= "\n";
1033 ################################################################
1035 # Return contents of a file from $am_dir.
1038 local ($basename) = @_;
1039 local ($file) = $am_dir . '/' . $basename . '.am';
1041 if (! open (FC_FILE, $file))
1043 print STDERR "automake: installation error: cannot open \"$file\"\n";
1047 # Yes, we really want to slurp it.
1048 local ($results) = join ('', <FC_FILE>);
1055 ################################################################
1057 # Verify that the file must exist in the current directory.
1061 local ($fullfile) = $relative_dir . "/" . $file;
1065 print STDERR "automake: required file \"$fullfile\" not found\n";
1070 push (@dist_common, $file);
1075 ################################################################
1077 # Return directory name of file.
1083 ($sub = $file) =~ s,/+[^/]+,,g;
1092 ################################################################
1094 # Print usage information.
1097 print "Usage: automake [OPTION] ... [Makefile]...\n";
1099 print "\nFiles which are automatically distributed, if found:\n";
1100 $~ = "USAGE_FORMAT";
1101 local (@lcomm) = sort ((@common_files, @common_sometimes));
1103 while ($#lcomm >= 0)
1105 $one = shift (@lcomm);
1106 $two = shift (@lcomm);
1113 format USAGE_FORMAT =
1114 @<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<