*** empty log message ***
[automake.git] / TODO
blobef9b9eff55aa2dbf82c8a449e3a4a3072157f9b8
1 Top priorities:
2 * Handle version.texi automatically
3 * Fix up 'clean' rules
4 * Make sure auto-deANSIfication works
6 Rename --included-deps to --insert-deps?
8 Fix up how 'clean' targets are handled (they should be handled like
9 install, etc)
11 Make installdirs target.
13 Merge common parts of "dist" targets into dist-local.
15 It would be good to check some parts of GNU standards.  Already check
16 for install-sh and mkinstalldirs.  What else is required to be in
17 package by GNU standards or by automake?
19 Maybe it should be possible to disable all GNU-specific things with
20 --no-gnu? --ignore-standards?  But what?  And why?
22 Think about modifications so automake can work with a standalone
23 library, eg readline.  For instance we need a way to install a
24 library, and a way to install header files.  It would also be nice to
25 figure out some good way to deal with shared libs.
27 Allow ".h" files to appear in blah_SOURCES; just write them out of
28 existence.  [ This is nixed for now because of the auto-dependency
29 tracking stuff ]
31 should have "all:: info" in texinfos.am?
33 automake.in: should ".cc" really -> ".${kr}o"?  This doesn't really
34 seem right, but maybe it is so names can be rewritten uniformly?  Must
35 check
37 automake.in should disallow setting of LC_ALL and LANG variables by
38 Makefile.am.
40 consider auto-including any file that matches "*.in".
42 must look at mkid to see how it works (for subdir usage)
43   [ right now, it doesn't.  i don't see a simple fix right now ]
45 clean.am: clean: if all the macros are empty, the rule expands to:
46         rm -rf
47 which should be fixed
49 Internationalize. [ gettext doesn't have the necessary machinery yet ]
51 ================================================================
53 For CONFIG_HEADER,
54   automatically add its input file to the distribution.
56 Don't hardcode the name of the configuration header.  Get it from
57 configure.in (AC_CONFIG_HEADER).  
59 Get the list of Makefiles to create from configure.in AC_OUTPUT
60 if none are given.
61         [ right now we look for any Makefile.am's lying around
62           I think this is better, because it allows use of subdirs
63           which don't use automake -- eg, stuff from gettext ]
65 Should libexec programs have the name transform done on them?
67 Order the output rules sensibly, so FOO_SOURCES and FOO_OBJECTS are
68 together and rules are in the usual order.
70 Make the output minimal: only output definitions for variables that
71 are used.
73 Rewrite in Perl.  Look at dist's jmake for ideas.
75 Should handle directory hierarchies deeper than 2.  Right now there is
76 no support for this at all.
78 ================================================================
80 Known Bugs:
82 version.texi handling is broken -- it assumes you only have one .texi
83 file per directory.
84    (*) In any case, the UPDATED information would be different for
85    each .texi file included in a package -- that is my problem.
86    Now, if no package will ever have more than one .texi file
87    (in a given directory), I can just stop worrying about it.
89 If there is ever more than one, we will need to change the name of
90 'version.texi' to be based on the name of the primary .texi file.
91 Will have to be careful here not to violate MS-DOS name limits.  Also
92 will need more than one stamp-vti.
95 ================================================================
97 Document:
100 Defined variables, their meanings, and their effects:
102 DEFS           cpp definitions
103 INCLUDES       -I options to cpp
104 CPPFLAGS       more cpp flags
105 CFLAGS         flags to cc
106 SOURCES        any sources (do not use)
107 HEADERS        header files in this directory
108 CONFIG_HEADER  path to config.h
109 SUBDIRS        subdirectories to build in.  means this is a "top level"
110                directory.
111 PROGRAMS       list of programs to build.  sources for program `foo' are
112                in foo_SOURCES.  objects are auto-build.  (only put .c
113                files in foo_SOURCES)
114 LIBPROGRAMS    programs to build and install in libexec
115 SCRIPTS        programs which are actually scripts (architecture
116                independent)
117 LIBSCRIPTS     scripts to build and install in lib
118 LIBRARIES      libraries to build.  sources for library `foo' are
119                in foo_SOURCES.  Only put .c file name in that variable.
120 TEXINFOS       texinfo files to build.  must end in ".texi"
121 MANS           man pages to install
122 HEADERS        All .h files in program
123 AM_PROGRAMS    like PROGRAMS.  If it exists, it is used by automake to
124                determine which programs to generate Makefile parts for.
125                Use this if PROGRAMS is computed at configure time
126 ETAGS_ARGS     Extra arguments for etags.  If this exists then tags are
127                made.  Tags will also be made if either SOURCES or HEADERS
128                is not empty
130 If your Makefile.am includes "@kr@", then ansi->kr conversion is
131 assumed.
133 DIST_OTHER     whatever files you want to include in the distribution.
134                Note that most common files (eg "configure.in") are
135                automatically found by automake.
137 DIST_SUBDIRS   directories which are copied verbatim into the
138                distribution.  Used eg for directories holding
139                only example code (which don't have their own
140                makefile).  This variable might be a bad idea.
142 It is assumed that your configure script defines VERSION and PACKAGE.
143 These variables are used when making the distribution.  The
144 distribution file will be a gzip'd tar file named
145 PACKAGE-VERSION.tar.gz.