From: Glenn Morris Date: Sat, 29 May 2010 18:54:16 +0000 (-0700) Subject: Add some comments related to how epaths.h gets built. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~173 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8cce271eac68fef59d37c95b28784693c26e55e9;p=emacs.git Add some comments related to how epaths.h gets built. --- diff --git a/Makefile.in b/Makefile.in index cd677d3295d..965fdd9c562 100644 --- a/Makefile.in +++ b/Makefile.in @@ -279,6 +279,9 @@ all: ${SUBDIR} leim 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 --git a/configure.in b/configure.in index 5ceb2c3bd48..9694a91739f 100644 --- a/configure.in +++ b/configure.in @@ -32,6 +32,10 @@ dnl Support for --program-prefix, --program-suffix and 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 @@ fi 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 \