more
[automake.git] / TODO
blobbf89f46b750eb29d794104f1c3abe42125e4472c
1 should have "all:: info" in texinfos.am?
3 automake.in should disallow setting of LC_ALL and LANG variables by
4 Makefile.am.
6 must write rules to handle data files.  They should be installed in
7 $(datadir)/$(PACKAGE).  What to do if file in list is actually a
8 directory?
10 consider auto-including any file that matches "*.in".
12 must look at mkid to see how it works (for subdir usage)
13   [ right now, it doesn't.  i don't see a simple fix right now ]
15 must fix install-info rule in texinfos.am.  First must find out how
16 the mythical "install-info" program actually works.
18 better error checking.  For instance this should cause an error:
19         LIBRARIES = zardoz
20 with no "zardoz_SOURCES =' line.
22 clean.am: clean: if all the macros are empty, the rule expands to:
23         rm -rf
24 which should be fixed
26 Consider automating stamp-vti stuff.  What does GNITS say about this?
28 Consider rewriting recursive rules to use static value of SUBDIRS:
29         SUBDIRS = x y z
30         all:: all-x all-y all-z
31         all-x: deps
32                 (cd x; $(MAKE) all)
33 Not sure if this is a win or not.  But it allows "make -k" to work
34 without hackery.
36 ================================================================
38 For CONFIG_HEADER,
39   generate automatic dependencies for the object files.
40   automatically add its input file to the distribution.
42 Don't hardcode the name of the configuration header.  Get it from
43 configure.in (AC_CONFIG_HEADER).  
45 Get the list of Makefiles to create from configure.in AC_OUTPUT
46 if none are given.
47         [ right now we look for any Makefile.am's lying around
48           I think this is better, because it allows use of subdirs
49           which don't use automake -- eg, stuff from gettext ]
51 Should libexec programs have the name transform done on them?
52         [ No, but it is currently done ]
54 Order the output rules sensibly, so FOO_SOURCES and FOO_OBJECTS are
55 together and rules are in the usual order.
57 Make the output minimal: only output definitions for variables that
58 are used.
60 Rewrite in Perl.  Look at dist's jmake for ideas.
62 Should handle directory hierarchies deeper than 2.  Right now there is
63 no support for this at all.
65 ================================================================
67 Document:
70 Defined variables, their meanings, and their effects:
72 DEFS           cpp definitions
73 INCLUDES       -I options to cpp
74 CPPFLAGS       more cpp flags
75 CFLAGS         flags to cc
76 SOURCES        any sources (do not use)
77 HEADERS        header files in this directory
78 CONFIG_HEADER  path to config.h
79 SUBDIRS        subdirectories to build in.  means this is a "top level"
80                directory.
81 PROGRAMS       list of programs to build.  sources for program `foo' are
82                in foo_SOURCES.  objects are auto-build.  (only put .c
83                files in foo_SOURCES)
84 LIBPROGRAMS    programs to build and install in libexec
85 SCRIPTS        programs which are actually scripts (architecture
86                independent)
87 LIBSCRIPTS     scripts to build and install in lib
88 LIBRARIES      libraries to build.  sources for library `foo' are
89                in foo_SOURCES.  Only put .c file name in that variable.
90 TEXINFOS       texinfo files to build.  must end in ".texi"
91 MANS           man pages to install
92 HEADERS        All .h files in program
93 AM_PROGRAMS    like PROGRAMS.  If it exists, it is used by automake to
94                determine which programs to generate Makefile parts for.
95                Use this if PROGRAMS is computed at configure time
96 ETAGS_ARGS     Extra arguments for etags.  If this exists then tags are
97                made.  Tags will also be made if either SOURCES or HEADERS
98                is not empty
100 If your Makefile.am includes "@kr@", then ansi->kr conversion is
101 assumed.
103 DIST_OTHER     whatever files you want to include in the distribution.
104                Note that most common files (eg "configure.in") are
105                automatically found by automake.
107 DIST_SUBDIRS   directories which are copied verbatim into the
108                distribution.  Used eg for directories holding
109                only example code (which don't have their own
110                makefile).  This variable might be a bad idea.
112 It is assumed that your configure script defines VERSION and PACKAGE.
113 These variables are used when making the distribution.  The
114 distribution file will be a gzip'd tar file named
115 PACKAGE-VERSION.tar.gz.