[PATCH] setup.exe build instructions outdated; build doesn't bootstrap cleanly

Warren Young warren@etr-usa.com
Thu Sep 13 02:24:00 GMT 2012

It's that time of decade again...time for me to patch setup.exe again.

But oh noes!  The README instructions are wrong, and the program doesn't 
build correctly from a fresh checkout.  Hafta fix that first.

1. The README implies that you need automake 1.9 and libtool 1.5, 
exactly.  I didn't have any trouble building with current versions 
(1.12.3 and 2.4) instead.  Automake 1.9 is still available in the Cygwin 
package repo, but Libtool 1.5 is not.  I don't see that the build system 
actually forces Automake 1.9, and of course it can't force Libtool 1.5 
now.  I think these must be minimums, not exact version requirements.  I 
suggest removing these version numbers from the README.

2. The configure command the README gives as step 2 won't work now that 
-mno-cygwin is gone.  It should now be:

./configure -C --build=i686-pc-mingw32 --host=i686-pc-mingw32 \
     CC=i686-pc-mingw32-gcc CXX=i686-pc-mingw32-g++

3. Automake maintainer mode has been controversial since it was created, 
and improvements in the past few years in Automake seem to have made it 
obsolete, too.  I suggest removing all this stuff and using the standard 
Automake rebuild rules.

The attached patch addresses these three issues.

4. configure.in should be renamed configure.ac.  ("cvs diff" can't do 
that. :) )  Autoconf has been yelling about this for years.

5. Several build system files refer to iniparse.h, but on my system, 
iniparse.yy yields iniparse.hh, not .h.  In a fresh CVS checkout, this 

   $ ./bootstrap.sh
   ...noise noise noise...
   $ make
     GEN      setup_version.c
   make: *** No rule to make target `iniparse.h', needed by `all'.  Stop.

I was able to fix it with:

   $ ln -s iniparse.hh iniparse.h
   $ make iniparse.hh
   $ make

If you skip the second step, make(1) yells again, because iniparse.hh 
hasn't been created yet.  You have to force it to create it out of 
order, since the Makefile dependencies are satisfied by the 
newly-created iniparse.h symlink.

Having done those two things, you don't need to repeat the hack, even 
after "make distclean", since that doesn't remove either iniparse.hh or 
iniparse.h.  But, I think the correct fix is to just change all the 
iniparse.h references to iniparse.hh.

That makes me wonder how anyone else has been getting setup.exe to build 
OOTB for the past five years?  (cvs log -r1.1 iniparse.yy)

Do the current setup.exe maintainers have such hack symlinks on their 
systems already, and haven't needed to do any fresh checkouts in all 
that time?  Or is this a recent Bison change?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build-system.patch
Type: text/x-patch
Size: 1255 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20120913/5b749615/attachment.bin>

More information about the Cygwin-apps mailing list