38 lines
1.4 KiB
Bash
38 lines
1.4 KiB
Bash
source $stdenv/setup
|
|
|
|
# This hook is supposed to be run on Linux. It patches the proper locations of
|
|
# the crt{1,i,n}.o files into the build to ensure that Emacs is linked with
|
|
# *our* versions, not the ones found in the system, as it would do by default.
|
|
# On other platforms, this appears to be unnecessary.
|
|
preConfigure() {
|
|
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
|
|
substituteInPlace $i --replace /bin/pwd pwd
|
|
done
|
|
|
|
case "${system}" in
|
|
x86_64-linux) glibclibdir=lib64 ;;
|
|
i686-linux) glibclibdir=lib ;;
|
|
*) return;
|
|
esac
|
|
|
|
libc=$(cat ${NIX_CC}/nix-support/orig-libc)
|
|
echo "libc: $libc"
|
|
|
|
for i in src/s/*.h src/m/*.h; do
|
|
substituteInPlace $i \
|
|
--replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
|
|
--replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
|
|
--replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \
|
|
--replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \
|
|
--replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \
|
|
--replace /usr/lib/crtn.o $libc/${glibclibdir}/crtn.o
|
|
done
|
|
}
|
|
|
|
preInstall () {
|
|
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
|
|
substituteInPlace $i --replace /bin/pwd pwd
|
|
done
|
|
}
|
|
|
|
genericBuild
|