nixpkgs/pkgs/applications/editors/emacs-24/builder.sh
Peter Simons 5186e75c4f emacs: update to version 24.3
The builder.sh script used to call "make bootstrap" before running the build.
This build step, however, removes all kinds of generated files normally
included in the distributions -- such as the 'configure' script. If that target
is run, then new version of Emacs require Autoconf and Automake to compile.
Since the benefit of running "make bootstrap" is unclean to me, I chose to
remove that build step instead. As far as I can tell, the Emacs binary that
results from this build works fine.
2013-03-11 19:18:31 +01:00

33 lines
1.2 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() {
case "${system}" in
x86_64-linux) glibclibdir=lib64 ;;
i686-linux) glibclibdir=lib ;;
*) return;
esac
libc=$(cat ${NIX_GCC}/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
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
substituteInPlace $i --replace /bin/pwd pwd
done
}
genericBuild