# HG changeset patch # User Glenn Morris # Date 1275159256 25200 # Node ID 0e4f9a46ab2bf610dbb575d5d494a3feb3675912 # Parent fb9ef960b2a5abb5dccef8b7d67140f1781e4180 Add some comments related to how epaths.h gets built. diff -r fb9ef960b2a5 -r 0e4f9a46ab2b Makefile.in --- a/Makefile.in Sat May 29 14:25:00 2010 -0400 +++ b/Makefile.in Sat May 29 11:54:16 2010 -0700 @@ -279,6 +279,9 @@ removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g' # Generate epaths.h from epaths.in. This target is invoked by `configure'. +# See comments in configure.in for why it is done this way, as opposed +# to just letting configure generate epaths.h from epaths.in in a +# similar way to how Makefile is made from Makefile.in. epaths-force: FRC @(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \ buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \ diff -r fb9ef960b2a5 -r 0e4f9a46ab2b configure.in --- a/configure.in Sat May 29 14:25:00 2010 -0400 +++ b/configure.in Sat May 29 11:54:16 2010 -0700 @@ -32,6 +32,10 @@ dnl --program-transform-name options AC_ARG_PROGRAM +dnl It is important that variables on the RHS not be expanded here, +dnl hence the single quotes. This is per the GNU coding standards, see +dnl (autoconf) Installation Directory Variables +dnl See also epaths.h below. lispdir='${datadir}/emacs/${version}/lisp' locallisppath='${datadir}/emacs/${version}/site-lisp:'\ '${datadir}/emacs/site-lisp' @@ -3750,6 +3754,14 @@ test "${exec_prefix}" != NONE && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] +dnl You might wonder (I did) why epaths.h is generated by running make, +dnl rather than just letting configure generate it from epaths.in. +dnl One reason is that the various paths are not fully expanded (see above); +dnl eg gamedir=${prefix}/var/games/emacs. +dnl Secondly, the GNU Coding standards require that one should be able +dnl to run `make prefix=/some/where/else' and override the values set +dnl by configure. This also explains the `move-if-change' test and +dnl the use of force in the `epaths-force' rule in Makefile.in. AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \ doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ doc/lispref/Makefile src/Makefile \