diff options
author | Alexandre Duret-Lutz <adl@gnu.org> | 2002-05-06 06:51:05 +0000 |
---|---|---|
committer | Alexandre Duret-Lutz <adl@gnu.org> | 2002-05-06 06:51:05 +0000 |
commit | e08fb7886abe97cb253b98d7d94b1d3db4095b4f (patch) | |
tree | c135cdee2152fcbea6203afb3cb303c378a17047 /TODO | |
parent | 38c39547980964afb6463dbcec3c286bee25b491 (diff) | |
download | automake-e08fb7886abe97cb253b98d7d94b1d3db4095b4f.tar.gz |
Fix for condd.test (conditional `+='):
* automake.in (%appendvar): New.
(initialize_per_input): Clear it.
(macro_define): Handle += for variable defined in another condition.
* automake.texi (Conditional Sources): Use conditional += in
the example.
(General Operation, Conditionals): Remove note about broken +=.
* tests/cond21.test: New file.
* tests/condd.test: Also test conditional append to a _SOURCE
variable. Create missing directories.
* tests/Makefile.am (TESTS): Add cond21.test.
(XFAILS): Remove condd.test.
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 91 |
1 files changed, 0 insertions, 91 deletions
@@ -173,97 +173,6 @@ Alex Hornby stamp-h.in must be in dir with h.in file stamp-h must be in dir with output file -* conditionals and macros - Our current scheme cause combinatoric explosion. - - In fact, to be honest, I no longer understand very well why we perform - such a closure. I mean, as is, Automake transforms (this is - cond3.test) - - | bin_PROGRAMS = targ - | - | if ONE - | SONE = one.c - | else - | SONE = - | endif - | - | if TWO - | STWO = two.c - | else - | STWO = - | endif - | - | if THREE - | STHREE = three.c - | else - | STHREE = - | endif - | - | targ_SOURCES = $(SONE) $(STWO) $(STHREE) - - into - - | @ONE_FALSE@@THREE_FALSE@@TWO_TRUE@am_targ_OBJECTS = two.$(OBJEXT) - | @ONE_FALSE@@THREE_FALSE@@TWO_FALSE@am_targ_OBJECTS = - | @ONE_FALSE@@THREE_TRUE@@TWO_TRUE@am_targ_OBJECTS = two.$(OBJEXT) \ - | @ONE_FALSE@@THREE_TRUE@@TWO_TRUE@ three.$(OBJEXT) - | @ONE_FALSE@@THREE_TRUE@@TWO_FALSE@am_targ_OBJECTS = three.$(OBJEXT) - | @ONE_TRUE@@THREE_FALSE@@TWO_TRUE@am_targ_OBJECTS = one.$(OBJEXT) \ - | @ONE_TRUE@@THREE_FALSE@@TWO_TRUE@ two.$(OBJEXT) - | @ONE_TRUE@@THREE_FALSE@@TWO_FALSE@am_targ_OBJECTS = one.$(OBJEXT) - | @ONE_TRUE@@THREE_TRUE@@TWO_TRUE@am_targ_OBJECTS = one.$(OBJEXT) \ - | @ONE_TRUE@@THREE_TRUE@@TWO_TRUE@ two.$(OBJEXT) three.$(OBJEXT) - | @ONE_TRUE@@THREE_TRUE@@TWO_FALSE@am_targ_OBJECTS = one.$(OBJEXT) \ - | @ONE_TRUE@@THREE_TRUE@@TWO_FALSE@ three.$(OBJEXT) - - why don't we just output - - | @ONE_TRUE@am_SONE_OBJECTS = one.$(OBJEXT) - | @ONE_FALSE@am_SONE_OBJECTS = - | - | @TWO_TRUE@am_STWO_OBJECTS = two.$(OBJEXT) - | @TWO_FALSE@am_STWO_OBJECTS = - | - | @THREE_TRUE@am_STHREE_OBJECTS = three.$(OBJEXT) - | @THREE_FALSE@am_STHREE_OBJECTS = - | - | am_targ_OBJECTS = $(am_SONE_OBJECTS) $(am_STWO_OBJECTS) $(am_STHREE_OBJECTS) - - which means also, why do we look for the closure of PROGRAMS, instead - of just adding $(EXEEXT) to all its components and sub components - (i.e., inside sub vars such as $(SONE) above being a sub var of - targ_SOURCES)? - - - Aaaaaaaaaaah! I think I know... Must be because of `+='. - - Hm... No. Indeed we transform - - | FOO = foo - | if BAR - | FOO += BAR - | endif - - into - - | @BAR_TRUE@FOO = foo bar - | @BAR_FALSE@FOO = foo - - but this seems good to me too? - - | FOO = foo $(BAR_FOO) - | @BAR_TRUE@BAR_FOO = bar - | @BAR_FALSE@BAR_FOO = - - -* foo=bar - if cond - foo += joe - endif - ... this ought to work. The fix is probably complicated, but might - come for free when we rewrite the handling of conditionals. - * `distcheck' and `dist' should depend on `all' * Add code to generate foo-config script like gnome, gtk |