I've realised that a number of unslung package binaries contain
hardcoded paths to the build-time staging area. Though this is in most
cases harmless, it would be best to remove the problem...
It seems that this is another effect of the longstanding problem with
libtool-based sources packages having strange, hardcoded views about
where system libraries are to be found at run-time, which resulted in
users with .la files present in their /lib or /usr/lib directories being
unable to build unslung packages.
Though a few packages have taken their own solutions to the problem, I
think it would be good to have a consistent approach. Accordingly, I've
defined PATCH_LIBTOOL in the root makefile to invoke sed -i with an
expression that will modify a libtool script to behave correctly in the
unslung build environment.
The way to use it is, just after your libtool-based package has run
configure, run this: "$(PATCH_LIBTOOL) <path_to_libtool_script>"
Note that this is only necessary for packages that use gnu libtool.
Comments would be welcome.
An example can be found in apr.mk:
$(APR_BUILD_DIR)/.configured: $(DL_DIR)/$(APR_SOURCE) \
rm -rf $(BUILD_DIR)/$(APR_DIR) $(APR_BUILD_DIR)
$(APR_UNZIP) $(DL_DIR)/$(APR_SOURCE) | tar -C $(BUILD_DIR) -xvf -
mv $(BUILD_DIR)/$(APR_DIR) $(APR_BUILD_DIR)
(cd $(APR_BUILD_DIR); \
CPPFLAGS="$(STAGING_CPPFLAGS) $(APR_CPPFLAGS)" \
LDFLAGS="$(STAGING_LDFLAGS) $(APR_LDFLAGS)" \
1238 Social Sciences and Humanities Bldg.
University of California
Davis, CA 95616-8673
Please avoid sending me Word or PowerPoint attachments.