them unconditionally.
* automake.in (&generate_makefile): Provide default values for
EXEEXT and OBJEXT.
(&get_object_extension, &finish_languages)
(&handle_single_transform_list, &handle_programs, &add_depend2)
(&check_cygnus, &lang_c_finish, am_install_var): Don't bother with
them, they are defined.
* compile.am, depend2.am, program.am, progs.am: Likewise.
* remake-hdr.am: Fix a typo.
* tests/cxxo.test, tests/fo.test, tests/implicit.test,
* tests/interp.test, tests/subobj.test, tests/subobj2.test,
* tests/suffix2.test: Adjust.
+2001-03-05 Akim Demaille <akim@epita.fr>
+
+ If OBJEXT and EXEEXT are not set, provide a default value, and use
+ them unconditionally.
+
+ * automake.in (&generate_makefile): Provide default values for
+ EXEEXT and OBJEXT.
+ (&get_object_extension, &finish_languages)
+ (&handle_single_transform_list, &handle_programs, &add_depend2)
+ (&check_cygnus, &lang_c_finish, am_install_var): Don't bother with
+ them, they are defined.
+ * compile.am, depend2.am, program.am, progs.am: Likewise.
+ * remake-hdr.am: Fix a typo.
+ * tests/cxxo.test, tests/fo.test, tests/implicit.test,
+ * tests/interp.test, tests/subobj.test, tests/subobj2.test,
+ * tests/suffix2.test: Adjust.
+
2001-03-05 Akim Demaille <akim@epita.fr>
* automake.in (&file_contents): Map MAINTAINER-MODE to
return;
}
+ # If OBJEXT/EXEEXT were not set in configure.in, do it, it
+ # simplifies our task, and anyway starting with Autoconf 2.50, it
+ # will always be defined, and this code will be dead.
+ $output_vars .= "EXEEXT =\n"
+ unless $seen_exeext;
+ $output_vars .= "OBJEXT = o\n"
+ unless $seen_objext;
+
# Must do this after reading .am file. See read_main_am_file to
# understand weird tricks we play there with variables.
&define_variable ('subdir', $relative_dir);
my ($out) = @_;
# Maybe require libtool library object files.
- my $extension = '.o';
- $extension = '.$(OBJEXT)' if $seen_objext;
+ my $extension = '.$(OBJEXT)';
$extension = '.lo' if ($out =~ /\.la$/);
if (! $included_generic_compile)
&transform ('DEFAULT_INCLUDES' => $default_include));
$output_rules .=
- &file_contents ('compile',
- &transform ('OBJEXT' => $seen_objext));
+ &file_contents ('compile');
# If using X, include some extra variable definitions. NOTE
# we don't want to force these into CFLAGS or anything,
}
}
- push (@suffixes, '.c', '.o');
- push (@suffixes, '.obj') if $seen_objext;
+ push (@suffixes, '.c', '.o', '.obj');
$included_generic_compile = 1;
}
# Generate rules to build ansi2knr. If it is in some
# other directory, then generate dependencies but have the
# rule just run elsewhere.
- my $objext = $seen_objext ? ".\$(OBJEXT)" : ".o";
$output_rules .= ($options{'ansi2knr'} . ': '
- . $options{'ansi2knr'} . $objext . "\n");
+ . $options{'ansi2knr'} . '.$(OBJEXT)' . "\n");
if ($options{'ansi2knr'} eq 'ansi2knr')
{
- $output_rules .= ("\t\$(LINK) ansi2knr" . $objext
+ $output_rules .= ("\t\$(LINK) ansi2knr.\$(OBJEXT)"
. " \$(LIBS)\n"
- . "ansi2knr" . $objext
+ . 'ansi2knr.$(OBJEXT)'
. ": \$(CONFIG_HEADER)\n\n");
}
else
{
$output_rules .= ("\tcd " . dirname ($options{'ansi2knr'})
- . " && \$(MAKE) \$(AM_MAKEFLAGS) "
+ . ' && $(MAKE) $(AM_MAKEFLAGS) '
. "ansi2knr\n\n");
# This is required for non-GNU makes.
- $output_rules .= ($options{'ansi2knr'} . $objext . ":\n");
+ $output_rules .= ($options{'ansi2knr'} . '.$(OBJEXT)' . ":\n");
$output_rules .= ("\tcd " . dirname ($options{'ansi2knr'})
- . " && \$(MAKE) \$(AM_MAKEFLAGS)"
- . " ansi2knr" . $objext . "\n\n");
+ . ' && $(MAKE) $(AM_MAKEFLAGS)'
+ . ' ansi2knr.$(OBJEXT)' . "\n\n");
}
# Make sure ansi2knr can be found: if no path specified,
# FIXME: Using cygpath should be somehow conditional.
$output_rules .= (".$ext.obj:\n"
. $full
- . " \`cygpath -w \$<\`\n")
- if $seen_objext;
+ . " \`cygpath -w \$<\`\n");
$output_rules .= (".$ext.lo:\n"
. "\t\$(LT"
. $language_map{$lang . '-compiler-name'}
{
my $depfile = $object;
$depfile =~ s/\.([^.]*)$/.P$1/;
- $depfile =~ s/\$\(OBJEXT\)$/o/ if $seen_objext;
+ $depfile =~ s/\$\(OBJEXT\)$/o/;
$dep_files{'$(DEPDIR)/' . $depfile} = 1;
}
}
$xlink = $linker ? $linker : 'LINK';
}
- my $exeext = '';
- if ($seen_exeext && $one_file !~ /\./)
- {
- $exeext = '$(EXEEXT)';
- }
-
$output_rules .= &file_contents ('program',
- &transform ('EXEEXT' => $exeext,
- 'PROGRAM' => $one_file,
+ &transform ('PROGRAM' => $one_file,
'XPROGRAM' => $xname,
'XLINK' => $xlink));
}
# First include code for ordinary objects.
my $xform = &transform ('PFX' => $pfx,
'FPFX' => $fpfx,
- 'OBJEXT' => $seen_objext,
'LIBTOOL' => $seen_libtool,
'AMDEP' => $use_dependencies);
{
&am_conf_error ("\`AM_MAINTAINER_MODE' required when --cygnus specified");
}
-
- if (! $seen_exeext)
- {
- &am_conf_error ("\`AC_EXEEXT' required when --cygnus specified");
- }
}
# Do any extra checking for GNU standards.
. '; else echo ' . $base . '.c; fi` '
. "| sed 's/^# \\([0-9]\\)/#line \\1/' "
. '| $(ANSI2KNR) > ' . $base . "_.c\n");
- push (@objects, $base . '_'
- . ($seen_objext ? '.$(OBJEXT)' : '.o'));
- push (@objects, $base . '_.lo') if $seen_libtool;
+ push (@objects, $base . '_.$(OBJEXT)');
+ push (@objects, $base . '_.lo')
+ if $seen_libtool;
}
# Make all _.o (and _.lo) files depend on ansi2knr.
# A blatant hack: we rewrite each _PROGRAMS primary to
# include EXEEXT when in Cygwin32 mode.
- if ($seen_exeext && $primary eq 'PROGRAMS')
+ if ($primary eq 'PROGRAMS')
{
my @conds = &variable_conditions ($one_name);
mostlyclean-compile:
## Don't remove 'core.*' because some distributions have eg "core.c".
## 4.4BSD systems use `PROG.core'.
- -rm -f *.o core *.core
-?OBJEXT? -rm -f *.$(OBJEXT)
+ -rm -f *.$(OBJEXT) core *.core
distclean-am: distclean-compile
distclean-compile:
?AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
%COMPILE% -c -o %OBJ% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??LIBTOOL?%EXT%.lo:
-?!GENERIC??LIBTOOL?%LTOBJ%: %SOURCE%
+?LIBTOOL??GENERIC?%EXT%.lo:
+?LIBTOOL??!GENERIC?%LTOBJ%: %SOURCE%
?LIBTOOL??AMDEP?@AMDEP@ source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
?LIBTOOL??AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Plo' tmpdepfile='$(DEPDIR)/%BASE%.TPlo' @AMDEPBACKSLASH@
?LIBTOOL??AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
?LIBTOOL? %LTCOMPILE% -c -o %LTOBJ% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??OBJEXT?%EXT%.obj:
-?!GENERIC??OBJEXT?%OBJOBJ%: %SOURCE%
-?OBJEXT??AMDEP?@AMDEP@ source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
-?OBJEXT??AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' @AMDEPBACKSLASH@
-?OBJEXT??AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
-?OBJEXT? %COMPILE% -c -o %OBJOBJ% `cygpath -w %SOURCE%`
+?GENERIC?%EXT%.obj:
+?!GENERIC?%OBJOBJ%: %SOURCE%
+?AMDEP?@AMDEP@ source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
+?AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' @AMDEPBACKSLASH@
+?AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ %COMPILE% -c -o %OBJOBJ% `cygpath -w %SOURCE%`
mostlyclean-compile:
## Don't remove 'core.*' because some distributions have eg "core.c".
## 4.4BSD systems use `PROG.core'.
- -rm -f *.o core *.core
-?OBJEXT? -rm -f *.$(OBJEXT)
+ -rm -f *.$(OBJEXT) core *.core
distclean-am: distclean-compile
distclean-compile:
?AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
%COMPILE% -c -o %OBJ% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??LIBTOOL?%EXT%.lo:
-?!GENERIC??LIBTOOL?%LTOBJ%: %SOURCE%
+?LIBTOOL??GENERIC?%EXT%.lo:
+?LIBTOOL??!GENERIC?%LTOBJ%: %SOURCE%
?LIBTOOL??AMDEP?@AMDEP@ source='%SOURCE%' object='%LTOBJ%' libtool=yes @AMDEPBACKSLASH@
?LIBTOOL??AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Plo' tmpdepfile='$(DEPDIR)/%BASE%.TPlo' @AMDEPBACKSLASH@
?LIBTOOL??AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
?LIBTOOL? %LTCOMPILE% -c -o %LTOBJ% `test -f %SOURCE% || echo '$(srcdir)/'`%SOURCE%
-?GENERIC??OBJEXT?%EXT%.obj:
-?!GENERIC??OBJEXT?%OBJOBJ%: %SOURCE%
-?OBJEXT??AMDEP?@AMDEP@ source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
-?OBJEXT??AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' @AMDEPBACKSLASH@
-?OBJEXT??AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
-?OBJEXT? %COMPILE% -c -o %OBJOBJ% `cygpath -w %SOURCE%`
+?GENERIC?%EXT%.obj:
+?!GENERIC?%OBJOBJ%: %SOURCE%
+?AMDEP?@AMDEP@ source='%SOURCE%' object='%OBJOBJ%' libtool=no @AMDEPBACKSLASH@
+?AMDEP?@AMDEP@ depfile='$(DEPDIR)/%BASE%.Po' tmpdepfile='$(DEPDIR)/%BASE%.TPo' @AMDEPBACKSLASH@
+?AMDEP?@AMDEP@ $(%FPFX%DEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ %COMPILE% -c -o %OBJOBJ% `cygpath -w %SOURCE%`
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
-%PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES)
+%PROGRAM%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES)
## Remove program before linking. Otherwise the link will fail if the
## program is running somewhere. FIXME: this could be a loss if
## you're using an incremental linker. Maybe we should think twice?
## Or maybe not... sadly, incremental linkers are rarer than losing
## systems.
- @rm -f %PROGRAM%%EXEEXT%
+ @rm -f %PROGRAM%
$(%XLINK%) $(%XPROGRAM%_LDFLAGS) $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_LDADD) $(LIBS)
## automake - create Makefile.in from Makefile.am
-## Copyright 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## 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
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
+
+## ------------ ##
+## Installing. ##
+## ------------ ##
+
_am_installdirs += $(DESTDIR)$(%NDIR%dir)
?EXEC?.PHONY install-exec-am: install-%DIR%PROGRAMS
?!EXEC?.PHONY install-data-am: install-%DIR%PROGRAMS
## Note that we explicitly set the libtool mode. This avoids any
## lossage if the install program doesn't have a name that libtool
## expects.
- f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
?LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
?LIBTOOL? $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f; \
?!LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
else :; fi; \
done
+
+## -------------- ##
+## uninstalling. ##
+## -------------- ##
+
.PHONY uninstall-am: uninstall-%DIR%PROGRAMS
uninstall-%DIR%PROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(%DIR%_PROGRAMS)'; for p in $$list; do \
- f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f"; \
rm -f $(DESTDIR)$(%NDIR%dir)/$$f; \
done
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
-%PROGRAM%%EXEEXT%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES)
+%PROGRAM%: $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_DEPENDENCIES)
## Remove program before linking. Otherwise the link will fail if the
## program is running somewhere. FIXME: this could be a loss if
## you're using an incremental linker. Maybe we should think twice?
## Or maybe not... sadly, incremental linkers are rarer than losing
## systems.
- @rm -f %PROGRAM%%EXEEXT%
+ @rm -f %PROGRAM%
$(%XLINK%) $(%XPROGRAM%_LDFLAGS) $(%XPROGRAM%_OBJECTS) $(%XPROGRAM%_LDADD) $(LIBS)
## automake - create Makefile.in from Makefile.am
-## Copyright 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+## Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001
+## 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
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
+
+## ------------ ##
+## Installing. ##
+## ------------ ##
+
_am_installdirs += $(DESTDIR)$(%NDIR%dir)
?EXEC?.PHONY install-exec-am: install-%DIR%PROGRAMS
?!EXEC?.PHONY install-data-am: install-%DIR%PROGRAMS
## Note that we explicitly set the libtool mode. This avoids any
## lossage if the install program doesn't have a name that libtool
## expects.
- f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
?LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
?LIBTOOL? $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f; \
?!LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(%NDIR%dir)/$$f"; \
else :; fi; \
done
+
+## -------------- ##
+## uninstalling. ##
+## -------------- ##
+
.PHONY uninstall-am: uninstall-%DIR%PROGRAMS
uninstall-%DIR%PROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(%DIR%_PROGRAMS)'; for p in $$list; do \
- f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(%NDIR%dir)/$$f"; \
rm -f $(DESTDIR)$(%NDIR%dir)/$$f; \
done
$AUTOMAKE || exit 1
-fgrep doe.o Makefile.in
+fgrep 'doe.$(OBJEXT)' Makefile.in
$AUTOMAKE || exit 1
-fgrep doe.o Makefile.in
+fgrep 'doe.$(OBJEXT)' Makefile.in
$AUTOMAKE || exit 1
-grep '^libapp_1_OBJECTS' Makefile.in | grep '\.o'
+grep '^libapp_1_OBJECTS' Makefile.in | fgrep '.$(OBJEXT)'
$AUTOMAKE || exit 1
-grep 'z\.o' Makefile.in
+fgrep 'z.$(OBJEXT)' Makefile.in
$AUTOMAKE || exit 1
-fgrep 'generic/a.o' Makefile.in || exit 1
-grep '[^/]a\.o' Makefile.in && exit 1
+fgrep 'generic/a.$(OBJEXT)' Makefile.in || exit 1
+grep '[^/]a\.\$(OBJEXT)' Makefile.in && exit 1
# Opportunistically test for a different bug.
-grep '^generic/b.o:.*dirstamp' Makefile.in
+grep '^generic/b.\$(OBJEXT):.*dirstamp' Makefile.in
$AUTOMAKE || exit 1
-fgrep 'generic/a.o' Makefile.in || exit 1
-grep '[^/]a\.o' Makefile.in && exit 1
+fgrep 'generic/a.$(OBJEXT)' Makefile.in || exit 1
+grep '[^/]a\.\$(OBJEXT)' Makefile.in && exit 1
fgrep -e '-c -o' Makefile.in
: > config.guess
: > config.sub
-$AUTOMAKE -a || exit 1
+set -e
-test "`fgrep '.c.o' Makefile.in | wc -l`" -eq 1
+$AUTOMAKE -a
+
+grep -c '^\.c\.o:' Makefile.in | grep '^1$'
+grep -c '^\.c\.obj:' Makefile.in | grep '^1$'
+
+exit 0