Bug #7368 regex make error in 4.1.8
Submitted: 16 Dec 2004 22:46 Modified: 12 Jan 2005 20:02
Reporter: Steve Cleveland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:4.1.8 OS:All Unix/Linux
Assigned to: Joerg Bruehe CPU Architecture:Any

[16 Dec 2004 22:46] Steve Cleveland
Description:
Trying to compile the libraries for 4.1.8 (--without-server), I get a failure during compile:

make[2]: *** No rule to make target `../regex/libregex.a', needed by `mysqltest'.  Stop.

This happens on both a Redhat Enterprise Linux 3 and Solaris 8 box.

The same configure line and environment with 4.1.7 compiles withour error.

How to repeat:
./configure --without-server
make
[22 Dec 2004 10:30] Joerg Bruehe
This is most likely an effect of a cleanup in 'Makefile.am':
The two subdirectories 'regex' and 'strings' were each contained in both the 'sql_client_dirs' and the 'sql_server_dirs' macro, so they got listed in 'SUBDIRS' twice, and this caused recursive actions like'make clean' and 'make distclean' to fail. My cleanup to correct this most likely has caused this error.
I will look into the issue ASAP, but cannot guarantee it to happen before Christmas due to the current 5.0.3 activities.
[7 Jan 2005 16:21] Cian Hughes
I Have exactly the same problem on Mac OS X 10.3.5 and 10.4
[7 Jan 2005 17:27] Joerg Bruehe
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:

The fix is included in 4.1.9.

For those compiling from source:
1) The problem only occurred if '--without-server' was given.
2) The problem can be corrected by changing the top-level 'Makefile.am' and including the directory names 'regex' and 'strings' in the variable 'sql_client_dirs', so that the line reads:
sql_client_dirs="libmysql strings regex client"
However, then the action 'make distclean' will fail.
[11 Jan 2005 14:28] Timo A. Hummel
I think there's a bug in the bug solution ;)

The top-level Makefile.am doesn't contain an entry called "sql_client_dirs" - the only occurrence is in the file configure.in. I could not test that since I don't have the required autoconf version installed.

My solution was to change the entry "sql_client_dirs" directly in the configure script and re-running it.
[12 Jan 2005 13:41] Joerg Bruehe
Timo is right, of course:
It is 'configure.in' that needs to be changed, the autotools will propagate it into 'Makefile.in' and further into 'Makefile' as well as down the hierarchy.
Sorry about the typing error I made.
[12 Jan 2005 20:02] Paul Dubois
No documentation change needed.