On Thu, Aug 16, 2012 at 7:36 PM, Kaspar Brand <httpd-dev.2...@velox.ch> wrote: > On 12.8.12 20:01, Ben Laurie wrote: >> On Sun, Aug 12, 2012 at 5:23 PM, Kaspar Brand <httpd-dev.2...@velox.ch> >> wrote: >>> a workaround is to call configure with >>> suitable {CPP,LD}FLAGS, i.e. >>> >>> CPPFLAGS=-I${openssl_build_dir}/include \ >>> LDFLAGS=-L${openssl_build_dir} \ >>> ./configure ... >>> >>> (when using the shared libssl/libcrypto libraries, adding >>> "-Wl,-R${openssl_build_dir}" or similar to LDFLAGS might make sense) >> >> I haven't had time to retest it, but I think the problem with this >> approach is that the default version of OpenSSL gets included first if >> anything else uses /usr/local/{include,lib}. IIRC, this was the basis >> of all my problems. > > Ok, but then we're talking about a current limitation of the build > system, I think: the compile commands are put together in build/rules.mk > like this: > >> ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS) >> ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(EXTRA_CPPFLAGS) >> $(NOTEST_CPPFLAGS) $(CPPFLAGS) >> [...] >> ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) >> >> # Compile commands >> >> BASE_CC = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES) > > Both $EXTRA_CPPFLAGS and $EXTRA_INCLUDES are assembled by configure, > where each module can contribute its stuff (appended with APR_ADDTO, > usually). I.e., if you happen to configure mod_deflate with a zlib > in /usr/local, then you end up with $EXTRA_INCLUDES where mod_deflate's > -I/usr/local precedes -I/path/to/openssl/build/dir (since > modules/filter/config.m4 is run before modules/ssl/config.m4). > > Similarly, for linking we have: > >> ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS) >> [...] >> LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(LT_LDFLAGS) >> $(ALL_LDFLAGS) -o $@ > > I wonder if we should add support for module-specific CFLAGS etc., > which would always appear before the EXTRA_XXX stuff in the compile > and link commands, i.e. in rules.mk we would have: > > ALL_CFLAGS = $(MOD_CFLAGS) $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS) > ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(MOD_CPPFLAGS) $(EXTRA_CPPFLAGS) > $(NOTEST_CPPFLAGS) $(CPPFLAGS) > ALL_INCLUDES = $(INCLUDES) $(MOD_INCLUDES) $(EXTRA_INCLUDES) > > ALL_LDFLAGS = $(MOD_LDFLAGS) $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS) > > A particular module could then set its specific MOD_CFLAGS etc. in > modules.mk, and these would always have priority over those possibly > inserted by other modules.
This sounds like it would solve my problem - and seems like about as a good a solution as we can expect :-) > > Kaspar