2 * Fix up how 'clean' interacts with new naming scheme.
4 uninstall and pkg-dirs should rm -rf the dir.
8 * Ensure every line has a purpose. Omit unused stuff
9 * Eliminate extraneous rules when possible (eg 'install-am' stuff)
10 * Make sure vertical spacing is correct
11 * pretty-print targets, rules, etc.
13 Need OTHER_SOURCES to hold sources whose objects end up in eg LIBOBJS.
14 Dependency tracking should work here.
16 "@kr@" is a hack that should be fixed. And it should be possible to
17 have ansi2knr in just one place in a package.
19 Consider automatic support for ".y" files. At the very least arrange
20 to have the corresponding ".c" file be distributed.
22 Implement better rule for copying through comments. Rule should be
23 that if comment immediately precedes rule or variable definition, then
24 comment should be put there. Else what happens now is ok.
26 install-info doesn't have to look in build directory for info files;
27 just don't support this mode.
29 Write autoconf macro to do all work necessary for automake. Eg define
30 PACKAGE, VERSION, etc.
32 Change glob pattern to look for to '*/Makefile*.am', so that gettext's
33 po directory can use a Makefile.in.am (and generate Makefile.in.in)
35 Should 'distclean' remove $(SCRIPTS)?
36 Should 'maintainer-clean' do "rm -rf .deps"?
37 Should look for clean-local targets in Makefile.am.
39 Consider a --install-missing option to install missing files such as
40 mdate-sh, texinfo.tex, etc.
42 Think about writing a small tool to guess what the local Makefile.am
45 Prettyprint macro definitions, eg:
46 DIST_COMMON = Makefile.in Makefile.am \
49 It might be cool to generate .texi dependencies by grepping for
50 @include. (If done, it should be done the same way C dependency is
53 Rename --include-deps to --insert-deps?
55 Merge common parts of "dist" targets into dist-local.
57 It would be good to check some parts of GNU standards. Already check
58 for install-sh and mkinstalldirs. What else is required to be in
59 package by GNU standards or by automake?
60 Some things for --strictness=gnits:
61 * "cd $(foo); something" is an error in a rule. Should be:
62 "cd $(foo) && something"
64 Maybe it should be possible to disable all GNU-specific things with
65 --no-gnu? --ignore-standards? But what? And why?
67 Allow ".h" files to appear in blah_SOURCES; just write them out of
68 existence. [ This is nixed for now because of the auto-dependency
71 automake.in: should ".cc" really -> ".${kr}o"? This doesn't really
72 seem right, but maybe it is so names can be rewritten uniformly? Must
75 look in configure.in's AC_OUTPUT command and include those files in
76 distribution. Or consider new CONFIGURED_FILES macro that lists files
77 generated by config.status.
79 Auto-distribute "ChangeLog.[0-9]+"?
81 consider auto-including any file that matches "*.in".
82 [ no: po/Makefile.in shouldn't be included ]
84 must look at mkid to see how it works (for subdir usage)
85 [ right now, it doesn't. i don't see a simple fix right now ]
87 Internationalize. [ gettext doesn't have the necessary machinery yet ]
89 ================================================================
92 automatically add its input file to the distribution.
94 Don't hardcode the name of the configuration header. Get it from
95 configure.in (AC_CONFIG_HEADER).
97 Get the list of Makefiles to create from configure.in AC_OUTPUT
99 [ right now we look for any Makefile.am's lying around
100 I think this is better, because it allows use of subdirs
101 which don't use automake -- eg, stuff from gettext ]
103 Should libexec programs have the name transform done on them?
105 Order the output rules sensibly, so FOO_SOURCES and FOO_OBJECTS are
106 together and rules are in the usual order.
108 Make the output minimal: only output definitions for variables that
111 Look at dist's jmake for ideas. [what is this?]
113 Should handle directory hierarchies deeper than 2. Right now there is
114 no support for this at all.
116 ================================================================
120 version.texi handling is broken -- it assumes you only have one .texi
122 (*) In any case, the UPDATED information would be different for
123 each .texi file included in a package -- that is my problem.
124 Now, if no package will ever have more than one .texi file
125 (in a given directory), I can just stop worrying about it.
127 If there is ever more than one, we will need to change the name of
128 'version.texi' to be based on the name of the primary .texi file.
129 Will have to be careful here not to violate MS-DOS name limits. Also
130 will need more than one stamp-vti.
132 [ actually, we could just number them. version0.texi, version1.texi,
133 etc ] [ actually, we can't, because the user could be reasonably
134 expected to want to make dependencies using the name of the .texi file
137 ================================================================
142 Defined variables, their meanings, and their effects:
145 INCLUDES -I options to cpp
146 CPPFLAGS more cpp flags
148 COMPILE how to compile a C program
149 LINK how to link a C program
151 DIST_SUBDIRS directories which are copied verbatim into the
152 distribution. Used eg for directories holding
153 only example code (which don't have their own
154 makefile). This variable might be a bad idea.
156 lib_LIBADD code conditionally included in a library
157 This probably needs to be redone anyway.
159 AM_TEXINFOS override form
160 SUFFIXES additional suffixes
162 Document customary ordering of Makefile.am. From Franc,ois.
164 Automake assumes SCRIPTS are built from something else. They are
165 removed during 'make clean'. Beware.
167 ================================================================
171 X Need a way to specify library should be installed
172 * Should support standalone library along with subdir library in same
173 Makefile.am. Maybe: turn off "standalone" mode if library's Makefile.am
174 is not only one specd?
175 X Need a way to install library header files.
176 * Need a way to handle shared libraries.
177 It would be really interesting to be able to easily (as the end-user)
178 make many different versions of the library: shared, static, profiling,
180 X Must ranlib libraries after installing
182 Some examples to keep in mind while doing this:
186 ================================================================
188 Have a program that generates a Makefile on stdout, passes it through
189 a "config.status" style filter, and thence into make. Why bother,
190 other than the gee-whiz factor?
192 Would it be useful to integrate in some way with the Debian package
193 building utility? Must check.