* automake.texi (Program variables): Document nostdinc.
(Options): Likewise.
* automake.in (get_object_extension): Respect nostdinc option.
(handle_options): Recognize nostdinc.
* comp-vars.am (DEFS): Use @DEFAULT_INCLUDES@ as sole
substitution.
* automake.in (read_am_file): Allow conditional includes. Fixes
test condincl.test.
1999-12-13 Tom Tromey <tromey@cygnus.com>
+ * depend2.am: Removed erroneous comment.
+
+ * automake.texi (Program variables): Document nostdinc.
+ (Options): Likewise.
+ * automake.in (get_object_extension): Respect nostdinc option.
+ (handle_options): Recognize nostdinc.
+ * comp-vars.am (DEFS): Use @DEFAULT_INCLUDES@ as sole
+ substitution.
+
+ * automake.in (read_am_file): Allow conditional includes. Fixes
+ test condincl.test.
+
* depcomp: Handle case on SGI when libtool is `yes'.
* depend2.am (@EXT@.o): Set libtool.
(@EXT@.lo): Likewise.
+* in depend2.am, in specialization case, what if @SOURCE@ is found
+ in srcdir? We can't depend on $<! We must search explicitly.
+ this is a very serious problem!
+ one solution would be to make built-source handling smarter and
+ a bit more strict. For instance require that built sources
+ have an associated target. In this case we must also handle suffix
+ rules and the like.
+
* Document why putting @FOO@ in _SOURCES doesn't work.
This must be done for 1.5
+* ylwrap should support flex's -P option
+ also it should be integrated into missing, probably
+
+* think about how per-object flags should work. in particular:
+ * how should they be specified?
+ using the object name is confusing when .lo/.obj in use
+ however, the object name provides a nice interaction with
+ per-exe flags
+ * how should they interact with per-executable flags?
+
+* cross-compilation support:
+ programs built and used by the build process need to be
+ built for CC_FOR_BUILD
+ introduce a new variable for this
+ [ we can do this in an automatic way I think.
+ unfortunately it isn't that useful until autoconf has support
+ for this sort of thing as well ]
+
* if automake -a, and dangling links exist, automake should
remove and reinstall
* add a way to require C++ support even when no apparent C++ code
exists. Likewise for other langs.
-
-* in depend2.am, in specialization case, what if @SOURCE@ is found
- in srcdir? We can't depend on $<! We must search explicitly.
+ eg, `extension-cxx' option
+ (is this really needed?)
* Add a way to say that foo/bar.h should be installed as
$(includedir)/foo/bar.h without introducing a new dir var
* support prog_LIBS as override for LIBS
-* serious bug. this doesn't work:
- .c.o: ; ...
- foo.o: sub/foo.c
- why did I think it did work?
-
* Sometimes we can warn about a missing `compile' script twice.
* A target named `INSTALL' will screw things up.
* CFLAGS only defined if C source seen
but really it should be a configure variable, shouldn't it?
There are other examples of this
+ [ moving to autoconf --trace ought to fix this ]
* in gnu/gnits mode, give error if Makefile.am overrides a user
variable like CFLAGS.
+ [ this is low priority because the package author can always
+ circumvent our check by redefining in configure.in
+ plus it is probably better to encourage good behavior than to
+ punish bad ]
* If we see `foo.o' in LIBOBJS, and we've seen AC_OBJEXT, then complain.
-
-* using "include" inside a conditional doesn't currently
- work properly.
+ [ how will we know that? it is better to handle this automatically
+ via an autoconf hook ]
* examine possibility of using any character in a macro name
and rewriting names automatically. this means we must rewrite
all references as well.
+ [ this is a 2.0-style feature ]
* AM_CONFIG_HEADER might generate the wrong stamp file names
when given multiple headers. Write a test.
* There are probably more bugs in variable_conditions_sub along
the lines of the one that caused cond4.test to fail.
-* give user more control over -I flags
- in particular document a way to override the defaults
-
* reintroduce AM_FUNC_FNMATCH which sets LIBOBJS
Then have automake know about fnmatch.h.
[ probably should wait for autoconf to get right functionality ]
-* Add a conditional for dependency tracking
- (what to name it is the biggest problem here)
- (because we want it to flag dist/no-dist -- not just deps)
- [ this might not really be correctly doable.
- instead we need a compile-time conditional for this
- yuck ]
-
* Allow per-object cflags:
bin_PROGRAMS = foo
foo_CFLAGS = -DFOO
look at gcc's Makefile.in to see what to do
or look at maint program
-* Karl wants to be able to set LIBS and LDFLAGS at build time, like CFLAGS
- maybe we need something more general?
-
-* add $(srcdir)/ before some dependencies?
-
* define LINK if a program is mentioned, even if no C sources appear
* BUILT_SOURCES should not be distributed, even when they appear in
$(FOO).$(BAR) ?
or some other arbitrary thing?
right now we try to cope, but not very well
-
-* if `interlock' exists, that should be an error (?)
- should also warn about using new ylwrap and not old one
- only do this when looking for ylwrap
+ [ this is only of theoretical interest for now ]
** make sure every variable that is used is also defined
+ [ we don't really look at variable uses in detail.
+ 2.0 thing ]
* make sure `missing' defines are generated
* if no AM_INIT_AUTOMAKE, then don't handle `missing' stuff.
* NORMAL_INSTALL / NORMAL_UNINSTALL -vs- recursive rules
[ requires changes to the standard ]
-* cross-compilation support:
- programs built and used by the build process need to be
- built for CC_FOR_BUILD
- introduce a new variable for this
-
* if foo.y is a source, foo.h isn't auto-distributed?
* copyrights on m4 files, aclocal output
* is there a way to add a directory and then have "make" do all the
updating? think.
-* put standards.texi into distribution
-
-
* should not put texiname_TEXINFOS into distribution
should rename this macro anyway, to foo_texi_DEPENDENCIES
|| $_ eq 'dist-tarZ' || $_ eq 'dist-bzip2'
|| $_ eq 'dejagnu' || $_ eq 'no-texinfo.tex'
|| $_ eq 'readme-alpha' || $_ eq 'check-news'
- || $_ eq 'subdir-objects')
+ || $_ eq 'subdir-objects' || $_ eq 'nostdinc')
{
# Explicitly recognize these.
}
{
# Boilerplate.
local ($xform) = '';
- if (&variable_defined ('CONFIG_HEADER'))
+ if (! defined $options{'nostdinc'})
{
- local ($one_hdr);
- foreach $one_hdr (split (' ', &variable_value ('CONFIG_HEADER')))
+ $xform = "-I. -I\$(srcdir)";
+
+ if (&variable_defined ('CONFIG_HEADER'))
{
- local ($var);
- ($var = &dirname ($one_hdr)) =~ s/(\W)/\\$1/g;
- $xform .= ' ' if $xform;
- $xform .= '-I' . $var;
+ local ($one_hdr);
+ foreach $one_hdr (split (' ',
+ &variable_value ('CONFIG_HEADER')))
+ {
+ local ($var);
+ ($var = &dirname ($one_hdr)) =~ s/(\W)/\\$1/g;
+ $xform .= ' -I' . $var;
+ }
}
}
- $xform = 's/\@CONFIG_INCLUDE_SPEC\@/' . $xform . '/go;';
+ $xform = 's/\@DEFAULT_INCLUDES\@/' . $xform . '/go;';
$output_vars .= &file_contents_with_transform ($xform,
'comp-vars');
$output_header .= ".SUFFIXES:\n";
if (@suffixes)
{
-
# Make sure suffixes has unique elements. Sort them to ensure
# the output remains consistent.
local (%suffixes);
local ($last_var_name) = '';
local ($blank) = 0;
+ # We save the conditional stack on entry, and then check to make
+ # sure it is the same on exit. This lets us conditonally include
+ # other files.
+ local (@saved_cond_stack) = @conditional_stack;
+
while (<AM_FILE>)
{
if (/$IGNORE_PATTERN/o)
$output_trailer .= $comment;
- &am_error ("unterminated conditionals: " . join (' ', @conditional_stack))
- if (@conditional_stack);
+ if (join (' ', @saved_cond_stack) ne join (' ', @conditional_stack))
+ {
+ if (@conditional_stack)
+ {
+ &am_error ("unterminated conditionals: " . join (' ', @conditional_stack));
+ }
+ else
+ {
+ # FIXME: better error message here.
+ &am_error ("conditionals not nested in include file");
+ }
+ }
}
# A helper for read_main_am_file which initializes configure variables
A list of @samp{-I} options. This can be set in your @file{Makefile.am}
if you have special directories you want to look in. Automake already
provides some @samp{-I} options automatically. In particular it
-generates @samp{-I$(srcdir)} and a @samp{-I} pointing to the directory
-holding @file{config.h} (if you've used @code{AC_CONFIG_HEADER} or
-@code{AM_CONFIG_HEADER}).
+generates @samp{-I$(srcdir)}, @samp{-I.}, and a @samp{-I} pointing to
+the directory holding @file{config.h} (if you've used
+@code{AC_CONFIG_HEADER} or @code{AM_CONFIG_HEADER}). You can disable
+the default @samp{-I} options using the @samp{nostdinc} option.
@code{INCLUDES} can actually be used for other @code{cpp} options
besides @samp{-I}. For instance, it is sometimes used to pass arbitrary
@samp{GNU} strictness and above.
@trindex install-man
+@item @code{nostdinc}
+@cindex Option, nostdinc
+This option can be used to disable the standard @samp{-I} options which
+are ordinarily automatically provided by Automake.
+
@item @code{no-texinfo.tex}
@cindex Option, no-texinfo
Don't require @file{texinfo.tex}, even if there are texinfo files in
## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright (C) 1994, 1995, 1996, 1998, 1999 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.
-DEFS = @DEFS@ -I. -I$(srcdir) @CONFIG_INCLUDE_SPEC@
+DEFS = @DEFS@@DEFAULT_INCLUDES@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
-## Note that this must all be on one line to avoid a problem with
-## automake's `.am' file reader. This is a convenience macro a user
-## can use to run a compilation. You should set the shell variables
-## `file' and `compile' first.
@AMDEP@@FPFX@DEPMODE = @@FPFX@DEPMODE@
@EXT@.o:
## automake - create Makefile.in from Makefile.am
-## Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+## Copyright (C) 1994, 1995, 1996, 1998, 1999 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.
-DEFS = @DEFS@ -I. -I$(srcdir) @CONFIG_INCLUDE_SPEC@
+DEFS = @DEFS@@DEFAULT_INCLUDES@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
-## Note that this must all be on one line to avoid a problem with
-## automake's `.am' file reader. This is a convenience macro a user
-## can use to run a compilation. You should set the shell variables
-## `file' and `compile' first.
@AMDEP@@FPFX@DEPMODE = @@FPFX@DEPMODE@
@EXT@.o:
-@set UPDATED 21 November 1999
+@set UPDATED 13 December 1999
@set EDITION 1.4a
@set VERSION 1.4a
-@set UPDATED 21 November 1999
+@set UPDATED 13 December 1999
@set EDITION 1.4a
@set VERSION 1.4a