From: Keith M. <kei...@us...> - 2007-04-22 13:13:41
|
On Sunday 22 April 2007 07:21, Julien Lecomte wrote: > > Based on your comments, it looks like you could set an LDFLAGS > > variable to include -lregex, and then you wouldn't have to re-run > > the link command when building flex. Is that correct? > > That was my first reaction to link libregex. Awkwardly, it doesn't > work: $ ./configure --prefix=3D/usr > $ make LDFLAGS=3D'-lregex' flex.exe > gcc -g -O2 -lregex -o flex.exe =C2=A0ccl.o dfa.o ecs.o gen.o main.o misc.o > nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o > scanopt.o buf.o tables.o tables_shared.o filter.o regex.o -lm > > Note where the LDFLAGS where inserted! Which is correct; AIUI, you are not supposed to add actual *libraries* to LDFLAGS; it is intended for *flags* affecting the behaviour of the linker, or specifying supplementary linker search paths. > It would 'work' with the LIBS flag though, but I'm pretty sure it's > not standard procedure to mess with LIBS: On the contrary, that's exactly where you should specify libraries that=20 you know will be required. If the configure script is generated by=20 autoconf >=3D 2.50, the best way to do it is ./configure --prefix=3D/usr LDFLAGS=3D-L/lib/search/path LIBS=3D-lregex so that configure can *add* any extra libraries it needs to. As you=20 point out, it is not wise to mess with LIBS, nor even with LDFLAGS, in=20 the make command line, as that will override any other requirements=20 discovered by the configure script. If the configure script is generated by an older autoconf, then you=20 can't add these definitions as configure arguments; you should pass=20 them to configure via the environment instead: LDFLAGS=3D-L/lib/search/path LIBS=3D-lregex ./configure --prefix=3D/usr (and respectfully suggest to the package maintainers, that it's time they upgraded their build tools). Oh, and if the package maintainers think they can write the configure=20 script without using a tool like autoconf, then you really are in=20 trouble, for I've yet to see one of those that actually works properly,=20 on any platform the maintainer himself hasn't encountered. Regards, Keith. |