Bug #11827 make fails when building in a different directory than the source
Submitted: 8 Jul 2005 23:24 Modified: 19 Jan 2006 21:32
Reporter: Paul Wagner Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:4.1, 5.0 OS:IBM AIX 5.1.0
Assigned to: Kent Boortz CPU Architecture:Any

[8 Jul 2005 23:24] Paul Wagner
Description:
When I attempt to build in a different directory than the source, make fails.

It appears that the source Docs/Support/generate-text-files.pl script is attempting to access the mysql.info file in the build Docs directory, but it doesn't exist.

I unpacked the source files into /scratch/msc/e189776/build/mysql-4.1.12 and created a build directory at /scratch/msc/e189776/build/mysql-4.1.12-build

I then changed to the build directory, called the source directory configure, and attempted to make as follows:

cd /scratch/msc/e189776/build/mysql-4.1.12-build

/scratch/msc/e189776/build/mysql-4.1.12/configure \
--prefix=/dcode/struct/bin/AIX5.1.0/mysql-4.1.12-ibm-aix5.1.0.0-powerpc \
--enable-local-infile \
--with-extra-charsets=complex \
--enable-thread-safe-client \
--with-named-z-libs=no \
--disable-shared \
--with-low-memory \
--enable-large-files

make

Here is the tail end of the make messages:
make[2]: Leaving directory `/scratch/msc/e189776/build/mysql-4.1.12-build/include'
Making all in Docs
make[2]: Entering directory `/scratch/msc/e189776/build/mysql-4.1.12-build/Docs'
perl -w /scratch/msc/e189776/build/mysql-4.1.12/Docs/Support/generate-text-files.pl mysql.info "Windows source build" "Post-installation" > ../INSTALL-WIN-SOURCE
Cannot open mysql.info: A file or directory in the path name does not exist. at /scratch/msc/e189776/build/mysql-4.1.12/Docs/Support/generate-text-files.pl line 8.
make[2]: *** [../INSTALL-WIN-SOURCE] Error 2
make[2]: Leaving directory `/scratch/msc/e189776/build/mysql-4.1.12-build/Docs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/scratch/msc/e189776/build/mysql-4.1.12-build'
make: *** [all] Error 2

I successfully compiled it by building directly in the source directory, but it should work using separate directories.

How to repeat:
unpack the source files into a directory such as
/scratch/mysql-4.1.12

create a build directory such as
/scratch/mysql-4.1.12-build

cd /scratch/mysql-4.1.12-build
/scratch/mysql-4.1.12/configure \
--prefix=/some/alternate/directory \
--enable-local-infile \
--with-extra-charsets=complex \
--enable-thread-safe-client \
--with-named-z-libs=no \
--disable-shared \
--with-low-memory \
--enable-large-files

make
[28 Nov 2005 1:02] Kent Boortz
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

In 4.1 and 5.0 it is now possible to configure and build from
a directory outside the source tree. This can be useful when
building for different platforms on a shared mount, or compile
different configurations using the same source tree.
[21 Dec 2005 18:08] Jon Stephens
Need 3-part version numbers in order to document the feature change properly in the changelogs. Thanks.
[21 Dec 2005 19:19] Kent Boortz
Change was introduced in 4.1.16 and 5.0.17.
This doesn't work in 5.1 yet.
[19 Jan 2006 21:32] Mike Hillyer
Note added to 4.1.16 and 5.0.17 changelogs:

  <listitem>
        <para>
          Make failed when attempting to build MySQL in different
          directory than source. (Bug #11827)
        </para>
      </listitem>