[BuildTools] Testing AC_COIN_CREATE_LIBTOOL (cygwin, mingw, msvc)

Lou Hafer lou at cs.sfu.ca
Thu Dec 14 20:38:37 EST 2006


	With a bit more fussing around, I have all three cygwin-derived build
environments (cygwin, mingw, msvc) working using COIN_CREATE_LIBTOOL. As
far as I can tell, my guess about CPPFLAGS was correct. Here's the status:

  * cygwin: configures, builds, tests, without complaint
  * mingw:  (faking mingw with -mno-cygwin) configures, builds, without
	    complaint; test dies because direct read of compressed (.gz)
	    files doesn't seem to work. Easy fix would be to uncompress
	    the .mps files, but I didn't get that far.
  * msvc:   configure produces the warnings about inconsistent header file
  	    detection in CoinUtils, but this is because the compile check
  	    fails due to the incorrect declaration of exit() for C++ and cl.
  	    Builds, tests without complaint.
Brought the changes back and checked on Core5/GCC; configures, builds, and tests
without complaint.

All the above use DyLP as the test project, which covers CoinUtils, Osi, and
DyLP. Will try to test on solaris tomorrow when I'm back up at SFU.

	Any volunteers to check this for real MinGW and/or Msys environments?

	The conceptual changes are reintegration of the enhanced
enable-doscompile option and addition of code to tweak CPPFLAGS. This
last allows the conversion of COIN_CHECK_HEADER to a simple wrapper for
AC_CHECK_HEADERS (no need to fiddle the 4th parameter) and no more need

Specific changes:

  * COIN_MINGW_LD_FIX: more comments, use ld with fake mingw build.
  * COIN_ENABLE_DOSCOMPILE: more comments, cosmetic rewrites
  * COIN_PROG_CXX: adjust compiler candidates for msvc, solaris; various case
	statements converted to look at enable_doscompile; tweak
	coin_opt_cxxflags and coin_dbg_cxxflags to avoid a flag conflict;
	code to add -mno-cygwin to CPPFLAGS if present in CXXFLAGS.
  * COIN_CHECK_HEADER: reduced to a noop wrapper for AC_CHECK_HEADERS.
  * COIN_PROG_CC: changes analogous to COIN_PROG_CXX.
  * COIN_PROG_F77: more friendly to case where no Fortran compiler is
	available; changes analogous to COIN_PROG_CXX.
  * COIN_PROG_LIBTOOL: remove AC_COIN_DLFCN_H; remove test for empty LIBTOOL.

A diff will also show a bunch of changed lines down in COIN_HAS_BLAS and
COIN_HAS_LAPACK, but these are just an artifact of merging coin.m4 files.
There should be no change in function. There are also a number of debug calls
to MSG_NOTICE, which can disappear as we gain confidence.

	Attached is a trivial tarball with BuildTools/coin.m4 and
CoinUtils/configure.ac. CoinUtils/configure.ac is my version which copes with
absence of Fortran. I'll push modified DyLP configuration files up to
DyLP/trunk. They support libtool reuse and work around the misdeclared exit()

	All of this works with autoconf 2.59. I'd really appreciate it if you
could either leave the enhanced enable-doscompile in place, or test an
alternative. It'll make my life much easier.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/octet-stream
Size: 112640 bytes
Desc: trivial.tar
Url : http://list.coin-or.org/pipermail/buildtools/attachments/20061214/db1a745c/attachment-0001.obj

More information about the BuildTools mailing list