(I wonder why setting the $LD_LIBRARY_PATH and $PKG_CONFIG_PATH env vars did not help.)
#!/bin/tcsh -f
# emacs build script for non-root users (tested to work for RHEL 6)
# Usage: source mybuild.csh <VERSION or BRANCH>
# Example: source mybuild.csh emacs-24
# source mybuild.csh master
# For RHEL 6, do "setenv MY_OSREV 6"
# ${HOME}/usr_local/${MY_OSREV} is the directory that I use as --prefix for building libraries locally when the default library does not exist or is older than the requirements
# I already have the env vars PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH and INCLUDE_PATH to include the respective directories ${HOME}/usr_local/${MY_OSREV}
# Ensure that PKG_CONFIG_PATH has /usr/share/pkgconfig for xproto.pc and related files. This is necessary for XFT and related X11 features.. otherwise the fonts will look horrible.
set emacs_gdb_build = 0
git checkout master
git fetch --all
git reset --hard $argv[1]
# If $argv[1] is master, basename $argv[1] -> master
# If $argv[1] is origin/emacs-24.5, basename $argv[1] -> emacs-24.5
if ( ${emacs_gdb_build} ) then
setenv MY_EMACS_INSTALL_DIR "${HOME}/usr_local/apps/${MY_OSREV}/emacs/`basename $argv[1]`_debug"
else
setenv MY_EMACS_INSTALL_DIR "${HOME}/usr_local/apps/${MY_OSREV}/emacs/`basename $argv[1]`"
endif
# setenv MY_EMACS_INSTALL_DIR "${HOME}/usr_local/apps/${MY_OSREV}/emacs/test"
mkdir -p ${MY_EMACS_INSTALL_DIR}
# Basic configure command
setenv MY_EMACS_CONFIGURE "./configure --prefix=${MY_EMACS_INSTALL_DIR}"
# Initialize the configure flag vairables
set emacs_configure_CFLAGS = ''
set emacs_configure_CXXFLAGS = ''
set emacs_configure_CPPFLAGS = ''
set emacs_configure_LDFLAGS = ''
set emacs_configure_CPPFLAGS = 'CPPFLAGS="'"-fgnu89-inline -I${HOME}/usr_local/${MY_OSREV}/include -I/usr/include/freetype2 -I/usr/include"
# Below LDFLAGS setup is required for emacs to build with the GIF feature
set emacs_configure_LDFLAGS = 'LDFLAGS="'"-L${HOME}/usr_local/${MY_OSREV}/lib64 -lgif"
# For Debug
if ( ${emacs_gdb_build} ) then
set emacs_configure_CFLAGS = 'CFLAGS="'"-ggdb3 -O0"
set emacs_configure_CXXFLAGS = 'CXXFLAGS="'"-ggdb3 -O0"
set emacs_configure_LDFLAGS = "${emacs_configure_LDFLAGS} -ggdb3"
endif
# Close the double quotes
if ( ! ( "${emacs_configure_CFLAGS}" == "" ) ) then
set emacs_configure_CFLAGS = "${emacs_configure_CFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_CXXFLAGS}" == "" ) ) then
set emacs_configure_CXXFLAGS = "${emacs_configure_CXXFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_CPPFLAGS}" == "" ) ) then
set emacs_configure_CPPFLAGS = "${emacs_configure_CPPFLAGS}"'"'
endif
if ( ! ( "${emacs_configure_LDFLAGS}" == "" ) ) then
set emacs_configure_LDFLAGS = "${emacs_configure_LDFLAGS}"'"'
endif
setenv MY_EMACS_CONFIGURE "${MY_EMACS_CONFIGURE} ${emacs_configure_CPPFLAGS} ${emacs_configure_CFLAGS} ${emacs_configure_CXXFLAGS} ${emacs_configure_LDFLAGS}"
echo ""
echo " MY_EMACS_CONFIGURE = ${MY_EMACS_CONFIGURE}"
echo ""
echo "Waiting for 5 seconds .. Press Ctrl+C to cancel this installation."
sleep 5
\rm -f configure Makefile
make clean
if ( ! -e src/epaths.in.bkp ) then
endif
perl -p -i -e 's/\/usr\/local/$ENV{"MY_EMACS_INSTALL_DIR"}/g' src/
epaths.in
if ( ! -e GNUmakefile.bkp ) then
\cp GNUmakefile GNUmakefile.bkp
endif
\cp -f GNUmakefile.bkp GNUmakefile
perl -p -i -e 's/\.\/configure/$ENV{"MY_EMACS_CONFIGURE"}/g' GNUmakefile
# Do NOT call autoreconf. "make bookstrap" below will call autoreconf with
# proper arguments.
# The `make bootstrap' step is required for a clean fresh install
if ( -f Makefile ) then
make bootstrap
endif
make install
# I use the Exuberant ctags (now Universal ctags build from its github repo). So rename the ctags binary and man that ships with emacs so that I do not end up using the incorrect ctags.
if ( -e ${MY_EMACS_INSTALL_DIR}/bin/ctags ) then
\mv ${MY_EMACS_INSTALL_DIR}/bin/ctags ${MY_EMACS_INSTALL_DIR}/bin/ctags_emacs
endif
if ( -e ${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags.1.gz ) then
\mv ${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags.1.gz ${MY_EMACS_INSTALL_DIR}/share/man/man1/ctags_emacs.1.gz
endif
# unset all internal variables
unset {emacs_configure_CFLAGS}
unset {emacs_configure_CPPFLAGS}
unset {emacs_configure_CXXFLAGS}
unset {emacs_configure_LDFLAGS}