Bug #28482 Intel Mac Build Still Fails
Submitted: 17 May 2007 1:14 Modified: 27 May 2007 16:27
Reporter: Calvin Sun Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.1 OS:MacOS (OSX 10 on Intel)
Assigned to: Kent Boortz CPU Architecture:Any

[17 May 2007 1:14] Calvin Sun
Description:
The mysql-5.1-falcon tree continues to fail to build on Intel Mac.  The symptoms (as reported many times) are:

   truck:~/mysql-5.1-falcon jas$ BUILD/compile-pentium-debug-max
   ...
   Including ndb shared memory transporter
   checking "for man pages to remove"... dropping
   configure: creating ./config.status
   config.status: creating extra/yassl/Makefile
   config.status: creating extra/yassl/taocrypt/Makefile
   config.status: creating extra/yassl/taocrypt/benchmark/Makefile
   config.status: creating extra/yassl/taocrypt/src/Makefile
   config.status: creating extra/yassl/taocrypt/test/Makefile
   config.status: creating extra/yassl/src/Makefile
   config.status: creating extra/yassl/testsuite/Makefile
   config.status: creating plugin/daemon_example/Makefile
   config.status: error: cannot find input file:
   plugin/daemon_example/Makefile.in

We have sync-ed to the 5.1 tree weekly for months.  The build never gets any better. 

How to repeat:
BUILD/compile-pentium-debug-max on Mac Intel.

Suggested fix:
Not failing.
[17 May 2007 9:04] Mikael Ronström
The following script works with telco clone on Mac OS X
DEBUG version:
BUILD/autorun.sh
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex \
--enable-thread-safe-client \
--with-readline --with-big-tables --with-debug --with-innodb \
--with-archive-storage-engine --with-blackhole-storage-engine \
--with-federated-storage-engine --with-csv-storage-engine \
--with-ssl --enable-local-infile \
--enable-assembler --with-zlib-dir=bundled --with-ndbcluster\
--with-atomic-ops=rwlocks --with-plugins=max
make -j 4

OPTIMISED VERSION

BUILD/autorun.sh
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex \
--enable-thread-safe-client \
--with-readline --with-big-tables --with-innodb \
--with-archive-storage-engine --with-blackhole-storage-engine \
--with-federated-storage-engine --with-csv-storage-engine \
--with-ssl --enable-local-infile \
--enable-assembler --with-zlib-dir=bundled --with-ndbcluster\
--with-atomic-ops=rwlocks --with-plugins=max
make -j 4
[17 May 2007 16:45] Kent Boortz
As the 5.1 documentation states, automake 1.8 or newer is required,
the automake 1.6.3 that comes with some XCode versions is not supported

  http://dev.mysql.com/doc/refman/5.1/en/installing-source-tree.html

Now, this page is not 100% correct, I tried to use the minimal
set of versions of GNU autotools, and seems to need at least
automake 1.8.1.

Unfortunately upgrading only automake and put it in /usr/local
will not work, the GNU autotools depend on each other in strange
ways and are not happy about installs using different prefixes

  http://www.nabble.com/aclocal-does-not-add-LIBTOOL-macros--t3696686.html

So I suggest installing autoconf, automake and libtool in that
order, all with prefix /usr/local, and with /usr/local/bin
first in PATH during install and later when using these tools.

While very simple to configure and compile from source, on
Mac OS X you can install these using Fink or other tool.

Note that our source is not compatible with automake 1.10,
I sugges using the known to work combination

  autoconf 2.59
  automake 1.9.6
  libtool  1.5.22

Note that you have to rerun BUILD/autorun.sh after upgrading
the GNU autotools on your build host.

Also note that it is not a goal to make our sources work with
every combination of GNU auto tools. The produced and distributed
source TAR should be portable, but building from this source TAR
will not run the GNU autotools, just the generated "configure"
and "libtool" scripts.

Running the GNU autotools is mainly done by MySQL developers,
and those are expected to be able to install a suitable
combination of GNU autotools, acording to the requirements
listed in the MySQL documentation.

Compiling on Mac OS X also complicates by a bad test in
BUILD/autorun.sh, it tests if "/usr/bin/glibtoolize" exists
and then will not use the one in "/usr/local/bin/libtoolize".
This is a long standing bug, you need to edit this file
to make sure LIBTOOLIZE=libtoolize.

Note that I have heard reports of others building from
BitKeeper on Mac OS X without any modifications or install
of GNU autotools. It is not clear why, newer XCode or maybe
users of Fink. I just know I had to do the modifications
desribed above.

After this build change, there are still portability problems
in the Falcon source preventing a compile on Mac OS X, but
the problem is not related to the problem described in this
bug report.
[27 May 2007 16:27] Paul DuBois
Changed 5.0/5.1 manuals to change the minimum version of automake from 1.8 to 1.8.1.