summaryrefslogtreecommitdiff
path: root/old/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'old/TODO')
-rw-r--r--old/TODO504
1 files changed, 0 insertions, 504 deletions
diff --git a/old/TODO b/old/TODO
deleted file mode 100644
index 59335d8bb..000000000
--- a/old/TODO
+++ /dev/null
@@ -1,504 +0,0 @@
-the new YFLAGS code doesn't correctly handle srcdir
-
-allow foo_NAME to rename an object (library or program)
-at build/install time
-
-remove _LTLIBRARIES and just use _LIBRARIES
-then use this for zip/jar as well
-
-add an error if the user makefile.am violates our
- namespace rules
-
-we need a document describing automake from the end user's point of view
-eg describe INSTALL_HEADER there, among other things
-
-* maintainer-clean
-
-Akim:
-> @@ -31,5 +31,9 @@
-> DISTCLEAN -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
->
-> maintainer-clean-generic:
-> +## FIXME: shouldn't we really print these messages before running
-> +## the dependencies?
-> + @echo "This command is intended for maintainers to use"
-> + @echo "it deletes files that may require special tools to rebuild."
-> -rm -f Makefile.in
-
-Tom:
-> I'd like to eventually fix the FIXME comment by having
-> maintainer-clean look like:
->
-> maintainer-clean:
-> @echo ...
-> $(MAKE) whatever
->
-> We're left with the question of whether we should repeat them in every
-> subdir.
-
-*
-Alexandre Oliva:
-> Hmm... Interesting. It must have been a side effect of the enabling
-> of forced `relink' on GNU/Linux/x86. Anyway, on platforms that
-> actually require relinking, this problem remains, and I see no way to
-> overcome it other than arranging for automake to install libraries
-> before executables, as you suggest. This shouldn't be a big problem,
-> anyway.
->
-> A bigger problem could show up if two libraries in the same directory,
-> one dependent on the other, are installed concurrently. If relinking
-> is needed for the dependent library, we have a problem. It appears to
-> me that user will have to live without `make -j install', in this
-> case.
-
-Alex Hornby
-> Here's an Automake patch and changelog entry allow make -j install on
-> such degenerate systems (and Linux with buggy libtool <g>)
->
-> If you install to locations other that bin_ and lib_ then a larger fix
-> is necessary, but this should fix the 90% case.
-
-* think about how per-object flags should work. in particular:
- * how should they be specified?
- using the object name is confusing when .lo/.obj in use
- however, the object name provides a nice interaction with
- per-exe flags
- * how should they interact with per-executable flags?
- [ this is probably a feature in search of a problem ]
-
-* cross-compilation support:
- programs built and used by the build process need to be
- built for CC_FOR_BUILD
- introduce a new prefxi for this, e.g. `build_PROGRAMS'
- [ we can do this in an automatic way I think.
- unfortunately it isn't that useful until autoconf has support
- for this sort of thing as well ]
-
-* one performance enhancement would be to have autoconf write
- a single file containing all the macro assignments.
- then read this file via `include'
- unfortunately this can't be done because of conditionals
- -- but it could be made to work if we also changed:
- * automake to rewrite @FOO@ to $(FOO), and
- * the implementation of conditionals to rely on some new
- config.status magic
-
-* support prog_LIBS as override for LIBS
-
-* Test subdir-objects option with yacc, lex, ansi2knr
- Our locking scheme won't prevent a parallel make from losing
- if there are two `bar.o' files and the timing is just right
- This only happens with parallel make and no-`-c -o' compiler,
- so it probably isn't very important
- `-c -o' when doing libtool
- try to find a losing compiler and see if it really works.
- (actually: hack config.cache and do it)
-
-* per-exe flags
-** LIBOBJS shouldn't be used when there are per-exe flags (?)
-
-* Allow creation of Java .zip/.jar files in natural way
- If you are building a compiled Java library, then the .zip/.jar
- ought to be made automatically.
-
-* examine possibility of using any character in a macro name
- and rewriting names automatically. this means we must rewrite
- all references as well.
- [ this is a 2.0-style feature ]
-
-* `distcheck' and `dist' should depend on `all'
-
-* Add code to generate foo-config script like gnome, gtk
-
-* document user namespace for macro/target names
- adopt some conventions and use uniformly
- [ this is a good thing for the rewrite ]
-
-* distclean must remove config.status
- can't this cause problems for maintainer-clean?
- shouldn't maintainer-clean print the message before running
- any part of the make? (just to slow things down long enough
- for the user to stop it)
- (maybe doesn't matter since people who even know about
- maintainer-clean already have a clue)
-
-* reintroduce AM_FUNC_FNMATCH which sets LIBOBJS
- Then have automake know about fnmatch.h.
- [ probably should wait for autoconf to get right functionality ]
-
-* "make diff" capability
- look at gcc's Makefile.in to see what to do
- or look at maint program
-
-* in --cygnus, clean-info not generated at top level
-
-* what if an element of a scanned variable looks like
- $(FOO).$(BAR) ?
- or some other arbitrary thing?
- right now we try to cope, but not very well
- [ this is only of theoretical interest for now ]
- [ We now have an 'inner_expand' option to traverse_recursively,
- but it is not yet used. ]
-
-* make sure every variable that is used is also defined
- [ we don't really look at variable uses in detail.
- 2.0 thing ]
-
-* make sure `missing' defines are generated
-
-* missing should handle install -d and rmdir -p (for uninstall)
-
-* NORMAL_INSTALL / NORMAL_UNINSTALL -vs- recursive rules
- [ requires changes to the standard ]
-
-* should not put texiname_TEXINFOS into distribution
- should rename this macro anyway, to foo_texi_DEPENDENCIES
-
-* For now I guess I'll just have automake give an error if it encounters
-non-C source in a libtool library specification.
-
-* if program has the same name as a target, do something sensible:
- - if the target is internal, rename it
- - if the target is mandated (eg, "info"), tell the user
- consider auto-modifying the program name to work around this
-
-* should separate actual options from strictness levels
- strictness should only cover requirements
- You should be able to pick and choose options
-
-having just one Makefile for a project would give a big speed increase
-for a project with many directories, eg glibc. ideally (?) you'd
-still be able to have a Makefile.am in each directory somehow; this
-might make editing conceptually easier.
-
-* finish up TAGS work
-
-* only remove libtool at top level?
-
-* clean up source directory by moving stuff into subdirs
-
-* consider adding other variables similar to pkglibexecdir?
- requests for pkg-dirs with version included
-
-Avoid loops when installing; instead unroll them in automake
-[ Impossible when @AC_SUBST@ values are used. ]
-
-Some long-term projects:
-* if $(FOO) is used somewhere, ensure FOO is defined, either by
- user or by automake if possible
-
-[ include, += support ]
-* even better would be allowing targets in different included
- fragments to be merged. e.g., `install-local'.
-
-consider putting all check-* targets onto @check?
-
-take diff-n-query code from libit
-
-Per Bothner says:
-Per> 1) Being able to build a set of non-source programs
-Per> from source programs, without necessarily linking them together.
-Per> I.e. one should be able to say something like:
-Per> dummy_SOURCES=foo.c bar.c
-Per> and automake should realize that it needs to build foo.o and bar.o.
-Per> 2) Being intelligent about new kinds of suffixes.
-Per> If it sees:
-Per> SUFFIXES = .class .java
-Per> and a suffix rule of the form:
-Per> .java.class:
-Per> then it should be able to realize it can build .class files from
-Per> .java files, and thus be able to generate a list of
-Per> .class files from a list of .java source files.
-[What Per wanted here was a way to have automate automatically follow
-suffix rules. So for instance if you had a `.x.y:' rule, and automake
-saw a `.x' file, it would automatically build and install the
-corresponding `.y' file.]
-
-Jim's idea: should look for @setfilename and warn if filenames too long
-* guess split size
-
-from joerg-martin schwarz:
- -- If Makefile.am contains $(CC), $(COMPILE), $(YLWRAP), ....
- in an explicitly written rule, you should emit the corresponding
- Makefile variables automatically.
-
-From the GNU Standards. These things could be checked, and probably
-should be if --gnu.
-* Make sure that the directory into which the distribution unpacks (as
-well as any subdirectories) are all world-writable (octal mode 777).
-* Make sure that no file name in the distribution is more than 14
-characters long.
-* Don't include any symbolic links in the distribution itself.
- (ditto hard links)
-* Make sure that all the files in the distribution are world-readable.
-
-should be able to determine what is built by looking at rules (and
-configure.ac). Then built man pages (eg) could automatically be
-omitted from the distribution.
-
-Right now, targets generated internally (eg "install") are not
-overridable by user code. This should probably be possible, even
-though it isn't very important. This could be done by generating all
-internal rules via a function call instead of just appending to
-$output_rules.
- [ this will be harder to implement when scanning a rule like all-recursive
- from subdirs.am ]
-
-Other priorities:
-* Must rewrite am_install_var. Should break into multiple functions.
- This will allow the callers to be a little smarter.
-* Rewrite clean targets.
-* Fix up require_file junk.
-
-djm wants ``LINKS'' variable; list of things to link together after
-install. In BSD environment, use:
- LINKS = from1 to1 from2 to2 ...
-
-Need way to say there are no suffixes in a Makefile (Franc,ois'
-"override" idea suffices here)
-
-Check to make sure various scripts are executable (IE when looking for
-them in a directory)
-
-Add support for html via an option. Use texi2html. Use
-"html_TEXINFOS", and htmldir = .../html. Include html files in
-distribution. Also allow "html_DATA", for raw .html files.
- [ when will texinfo directly support html? ]
-See also Karl Berry's message on a roadmap for a "info -> html"
-transition:
-<http://lists.gnu.org/archive/html/texinfo-devel/2012-03/msg00018.html>
-
-uninstall and pkg-dirs should rm -rf the dir.
-
-In general most .am files should be merged into automake. For
-instance all the "clean" targets could be merged by keeping lists of
-things to be removed. This would be a lot nicer looking. Note that
-the install targets probably should not be merged; it is sometimes
-useful to only install a small part.
-
-* Lex, yacc support:
-** It would be nice to automatically support using bison's better features
- to rename the output files. This requires autoconf support
-** Consider supporting syntax from autoconf "derived:source", eg:
- y.tab.c:perly.y
- for yacc and lex source
-** what if you use flex and the option to avoid -lfl?
- should support this?
-
-* Multi-language support:
-** should have mapping of file extensions to languages
-** should automatically handle the linking issue (special-case C++)
-** must get compile rules for various languages; FORTRAN probably
- most important unimplemented language
-This should be integrated in some way with Per's idea.
-Eg .f.o rules should be recognized & auto-handled in _SOURCES
-That way any random language can be treated with C/C++ on a first-class
-basis (maybe)
-
-It might be cool to generate .texi dependencies by grepping for
-@include. (If done, it should be done the same way C dependencies are
-done)
-[ Ask Karl Berry for a -M option to makeinfo and texi2dvi? ]
-
-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?
-Some things for --strictness=gnits:
-* "cd $(foo); something" is an error in a rule. Should be:
- "cd $(foo) && something"
-* Look for 'ln -s' and warn about using $(LN_S) and AC_PROG_LN_S
-* Look for $(LN_S) and require AC_PROG_LN_S
-
-Auto-distribute "ChangeLog.[0-9]+"? "ChangeLog.[a-z]+"?
-
-Check all source files to make sure that FSF address is up-to-date.
---gnits or --gnu only.
-
-Merge each -vars.am file with corresponding ".am" file. Can do this
-because of changes to &file_contents.
-
-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.
-
-djm says:
-David> To avoid comments like the one about subdirs getting buried in
-David> the middle of a Makefile.in, how about pushing comments that
-David> start with ### to the top of the Makefile.in (in order)? Sort
-David> of like how Autoconf uses diversions to force initialization
-David> code to the top of configure.
-
-================================================================
-
-Stuff for aclocal:
-
-probably should put each group of m4 files into a subdir owned by the
-containing application.
-
-================================================================
-
-Document:
-
-AM_MISSING_PROG
-
-how to use the generated makefiles
- - standard targets
- - required targets
- - NORMAL_INSTALL junk
-
-rationale for avoiding
- make CFLAGS="$CFLAGS" ...
-in subdirs make rule
-
-write example of using automake with dejagnu
-follow calc example in dejagnu docs
-
-document which variables are actually scanned and which are not.
-
-Document customary ordering of Makefile.am. From François.
-
-Should include extended version of diagram from Autoconf (suggested by
-Greg Woods)
-
-Make a definition of the term "source"
-
-document how to use Automake with CVS. Idea from Mark Galassi. Also
-include Greg Woods' more sophisticated "cvs-dist" target.
-
--- must document all variables that are supposed
- to be public knowledge
-
-must document the targets required for integration with
-non-automake-using subdirs
-
-document the "make SHELL='/bin/sh -x'" trick for debugging
-
-section on relationship to GNU make. include notes on parallel makes
-
-add a concept index
-
-move discussion of cygwin32, etags, mkid under other gnu tools
-
-CCLD, CXXLD, FLD
-
-================================================================
-
-Libraries:
-
-* 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? [ add an option for this ]
-
-================================================================
-
-Longer term:
-
-Would it be useful to integrate in some way with the Debian package
-building utility? Must check. maybe it would be possible to deal
-with all the different package utilities somehow. Lately I've been
-hearing good things about the RedHat packaging utilities. Why are
-there so many of these? Are they fun to write or something?
-The RedHat package utility is called RPM; see
- ftp://ftp.redhat.com/pub/code/rpm
-It actually has problems, like no configure script and no documentation.
-
-For Cygnus it would probably be good to be able to handle the native
-package utility on each platform. There are probably 3 or 4 of these
-(sysv, solaris?, aix?)
-
-tcl/unix/Makefile.in has some code to generate a Solaris package.
-
-Automake probably can't do all of this on its own. A new tool might
-be a better idea
-
-I have some notes from a Debian developer on how the integration
-should work
-
-================================================================
-
-A tool to guess what the local Makefile.am should look like:
-(see Gord's Maint program!)
-
-* Probably integrate with autoscan
-* Use various simple rules to determine what to do:
- * get name of top directory, sans version info
- * search for .c files with 'main' in them
- * if in main.c, use directory name for program
- * if in more than one, generate multiple programs
- * if not found, generate a library named after directory
- * order subdir searches correctly: lib first, src last
- * assume 'testsuite' dir means we are using dejagnu
-* maybe be smart about reading existing Makefile.am, so tool
- can be run for incremental changes? You could imagine:
-
- Makefile.am:
- autoproject --incremental
-
-================================================================
-
-Stuff NOT to do, and why:
-
-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 ]
-
-if configure.ac not found, move up a directory and try again? This
-could eliminate a common source of problems.
- [ this is just a bad idea ]
-
-* scripts are installed in $exec_prefix/bin, not $prefix/bin
- Bug or feature?
- [ the consensus on Gnits is that this isn't required.
- doubters can work around it anyway ]
-
-Scan source directories and warn about missing files, eg .c/.h files
-that aren't mentioned?
- [ distcheck makes this less useful ]
-
-* quoting bugs
- - how to install file with a space in its name?
- [ don't bother with this -- make is just too losing ]
-
-* notice when a .c file is a target somewhere, and auto-add it to
- BUILT_SOURCES
- [ BUILT_SOURCES are for files that need to be built before anything
- else because of hidden dependencies (something .c files are
- unlikely to be) ]
-
-* Scan multiple input files when Makefile is generated?
- This would provide flexibility for large projects; subsumes
- the "Makefile.tmpl" idea
- [ can't do this. must explain why in manual.
- basically, solving all the problems is too hard
- like: how to remove redundancies between generated .in files
- instead should implement `include' directive for Makefile.am ]
-
-* Should be a way to have "nobuild_PROGRAMS" which aren't even built,
- but which could be by running the magic make command.
- [ We already have EXTRA_PROGRAMS for this. ]
-
-
-* copyright notice
-
-Copyright 1994-2014 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-Local Variables:
-mode: outline
-End: