]> git.eshelyaron.com Git - emacs.git/commitdiff
Add some comments related to how epaths.h gets built.
authorGlenn Morris <rgm@gnu.org>
Sat, 29 May 2010 18:54:16 +0000 (11:54 -0700)
committerGlenn Morris <rgm@gnu.org>
Sat, 29 May 2010 18:54:16 +0000 (11:54 -0700)
Makefile.in
configure.in

index cd677d3295def56d0ec45e80054869311fdbc2b1..965fdd9c562f0ca3c208a3b6578f0535c86c6154 100644 (file)
@@ -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}` ;  \
index 5ceb2c3bd488b01ecbffaf5f1d0212fb0fee6d03..9694a91739f73c166efab23cdb7e4b5c642cb667 100644 (file)
@@ -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 \