Edit

kc3-lang/automake/TODO

Branch :

  • Show log

    Commit

  • Author : Tom Tromey
    Date : 1995-11-22 09:10:12
    Hash : a82d23ac
    Message : *** empty log message ***

  • TODO
  • Merge common parts of "dist" targets into dist-local.
    
    It would be good to check some parts of GNU standards:
    	install-sh must exist somewhere (maybe need way to find top srcdir?)
    	mkinstalldirs must exist somewhere
    
    Maybe it should be possible to disable all GNU-specific things with
    --no-gnu? --ignore-standards?  But what?  And why?
    
    Think about modifications so automake can work with a standalone
    library, eg readline.  For instance we need a way to install a
    library, and a way to install header files.  It would also be nice to
    figure out some good way to deal with shared libs.
    
    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 ]
    
    separate install-data and install-exec.  "install" doesn't need to be
    "::" rule any more
    
    should have "all:: info" in texinfos.am?
    
    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
    
    automake.in should disallow setting of LC_ALL and LANG variables by
    Makefile.am.
    
    must write rules to handle data files.  They should be installed in
    $(datadir)/$(PACKAGE).  What to do if file in list is actually a
    directory?
    
    consider auto-including any file that matches "*.in".
    
    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 ]
    
    clean.am: clean: if all the macros are empty, the rule expands to:
    	rm -rf
    which should be fixed
    
    Consider automating stamp-vti stuff.  What does GNITS say about this?
    What about this case: multiple .texi files (and thus multiple
    version.texi's), and a filesystem with short names?  What to do?
    
    Consider rewriting recursive rules to use static value of SUBDIRS:
    	SUBDIRS = x y z
    	all:: all-x all-y all-z
    	all-x: deps
    		(cd x; $(MAKE) all)
    Not sure if this is a win or not.  But it allows "make -k" to work
    without hackery.
    
    Internationalize.
    
    ================================================================
    
    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?
    	[ No, but it is currently done ]
    
    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.
    
    Rewrite in Perl.  Look at dist's jmake for ideas.
    
    Should handle directory hierarchies deeper than 2.  Right now there is
    no support for this at all.
    
    ================================================================
    
    Document:
    
    
    Defined variables, their meanings, and their effects:
    
    DEFS           cpp definitions
    INCLUDES       -I options to cpp
    CPPFLAGS       more cpp flags
    CFLAGS         flags to cc
    SOURCES        any sources (do not use)
    HEADERS        header files in this directory
    CONFIG_HEADER  path to config.h
    SUBDIRS        subdirectories to build in.  means this is a "top level"
                   directory.
    PROGRAMS       list of programs to build.  sources for program `foo' are
                   in foo_SOURCES.  objects are auto-build.  (only put .c
                   files in foo_SOURCES)
    LIBPROGRAMS    programs to build and install in libexec
    SCRIPTS        programs which are actually scripts (architecture
                   independent)
    LIBSCRIPTS     scripts to build and install in lib
    LIBRARIES      libraries to build.  sources for library `foo' are
                   in foo_SOURCES.  Only put .c file name in that variable.
    TEXINFOS       texinfo files to build.  must end in ".texi"
    MANS           man pages to install
    HEADERS        All .h files in program
    AM_PROGRAMS    like PROGRAMS.  If it exists, it is used by automake to
                   determine which programs to generate Makefile parts for.
                   Use this if PROGRAMS is computed at configure time
    ETAGS_ARGS     Extra arguments for etags.  If this exists then tags are
                   made.  Tags will also be made if either SOURCES or HEADERS
                   is not empty
    
    If your Makefile.am includes "@kr@", then ansi->kr conversion is
    assumed.
    
    DIST_OTHER     whatever files you want to include in the distribution.
                   Note that most common files (eg "configure.in") are
                   automatically found by automake.
    
    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.
    
    It is assumed that your configure script defines VERSION and PACKAGE.
    These variables are used when making the distribution.  The
    distribution file will be a gzip'd tar file named
    PACKAGE-VERSION.tar.gz.
    
    ================================================================
    
    Automatic dependency generation:
    
    * If a special flag is given to automake, and SOURCES exists, include
      some auto-dep generating code.  This code can depend on gcc and GNU
      make.  (Use gcc's -MMD or -MM option).  (--use-deps)
    
    * When making distribution, first ensure all dependency files are up
      to date.  Then re-run automake, with flag to include deps in
      generated Makefile.in (--include-deps)
    
    Maybe it would be nice to support dependency computation with tools
    other than gcc.
    
    Maybe make --use-deps the default, and have --included-deps suppress
    it?
    
    Rename --included-deps to --insert-deps?