Top priorities:
Some known problems:
* clean targets not very well tested
Should 'distclean' remove $(SCRIPTS)?
Should 'maintainer-clean' do "rm -rf .deps"?
Should look for clean-local targets in Makefile.am.
Should redo how 'all' target is handled.
Consider a --install-missing option to install missing files such as
mdate-sh, texinfo.tex, etc.
Think about writing a small tool to guess what the local Makefile.am
should look like.
Prettyprint macro definitions, eg:
DIST_COMMON = Makefile.in Makefile.am \
foo bar baz
It might be cool to generate .texi dependencies by grepping for
@include. (If done, it should be done the same way C dependency is
done)
Rename --include-deps to --insert-deps?
Merge common parts of "dist" targets into dist-local.
It would be good to check some parts of GNU standards. Already check
for install-sh and mkinstalldirs. What else is required to be in
package by GNU standards or by automake?
Maybe it should be possible to disable all GNU-specific things with
--no-gnu? --ignore-standards? But what? And why?
Allow ".h" files to appear in blah_SOURCES; just write them out of
existence. [ This is nixed for now because of the auto-dependency
tracking stuff ]
automake.in: should ".cc" really -> ".${kr}o"? This doesn't really
seem right, but maybe it is so names can be rewritten uniformly? Must
check
look in configure.in's AC_OUTPUT command and include those files in
distribution.
consider auto-including any file that matches "*.in".
[ no: po/Makefile.in shouldn't be included ]
must look at mkid to see how it works (for subdir usage)
[ right now, it doesn't. i don't see a simple fix right now ]
Internationalize. [ gettext doesn't have the necessary machinery yet ]
================================================================
For CONFIG_HEADER,
automatically add its input file to the distribution.
Don't hardcode the name of the configuration header. Get it from
configure.in (AC_CONFIG_HEADER).
Get the list of Makefiles to create from configure.in AC_OUTPUT
if none are given.
[ right now we look for any Makefile.am's lying around
I think this is better, because it allows use of subdirs
which don't use automake -- eg, stuff from gettext ]
Should libexec programs have the name transform done on them?
Order the output rules sensibly, so FOO_SOURCES and FOO_OBJECTS are
together and rules are in the usual order.
Make the output minimal: only output definitions for variables that
are used.
Look at dist's jmake for ideas. [what is this?]
Should handle directory hierarchies deeper than 2. Right now there is
no support for this at all.
================================================================
Known Bugs:
version.texi handling is broken -- it assumes you only have one .texi
file per directory.
(*) In any case, the UPDATED information would be different for
each .texi file included in a package -- that is my problem.
Now, if no package will ever have more than one .texi file
(in a given directory), I can just stop worrying about it.
If there is ever more than one, we will need to change the name of
'version.texi' to be based on the name of the primary .texi file.
Will have to be careful here not to violate MS-DOS name limits. Also
will need more than one stamp-vti.
[ actually, we could just number them. version0.texi, version1.texi,
etc ]
================================================================
Document:
Defined variables, their meanings, and their effects:
DEFS cpp definitions
INCLUDES -I options to cpp
CPPFLAGS more cpp flags
CFLAGS flags to cc
COMPILE how to compile a C program
LINK how to link a C program
DIST_SUBDIRS directories which are copied verbatim into the
distribution. Used eg for directories holding
only example code (which don't have their own
makefile). This variable might be a bad idea.
CLEANFILES
DISTCLEANFILES
================================================================
Libraries:
* Need a way to specify library should be installed
* Should support standalone library along with subdir library in same
Makefile.am. Maybe: turn off "standalone" mode if library's Makefile.am
is not only one specd?
* Need a way to install library header files.
* Need a way to handle shared libraries.
It would be really interesting to be able to easily (as the end-user)
make many different versions of the library: shared, static, profiling,
debug, optimized...