From: Glenn Morris <rgm@gnu.org>
Date: Mon, 21 May 2012 20:13:49 +0000 (-0400)
Subject: Let the top-level Makefile install leim
X-Git-Tag: emacs-24.2.90~471^2~6^2~110^2~35
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d10cfddd07aec937599944575123d007d5981310;p=emacs.git

Let the top-level Makefile install leim

* Makefile.in (leimdir): New, set by configure.
(COPYDIR, COPYDESTS): Add leim directories.
(install-leim): Remove.
(install-arch-indep): Handle leim installation directly.

* leim/Makefile.in (install): Remove, let top-level do it.
(version, prefix, datarootdir, datadir, ns_appresdir, leimdir):
(MKDIR_P, GZIP_PROG): Remove, no longer used.
---

diff --git a/ChangeLog b/ChangeLog
index f72c73ad321..dcd8559d7b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-21  Glenn Morris  <rgm@gnu.org>
 
+	* Makefile.in (leimdir): New, set by configure.
+	(COPYDIR, COPYDESTS): Add leim directories.
+	(install-leim): Remove.
+	(install-arch-indep): Handle leim installation directly.
+
 	* vpath.sed: Remove unused file.
 	* make-dist: No more vpath.sed.
 
diff --git a/Makefile.in b/Makefile.in
index f978f19e974..2db87aef6ce 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -181,11 +181,12 @@ iconsrcdir=$(srcdir)/etc/images/icons
 # These variables hold the values Emacs will actually use.  They are
 # based on the values of the standard Make variables above.
 
-# Where to install the lisp files distributed with
+# Where to install the lisp, leim files distributed with
 # Emacs.  This includes the Emacs version, so that the
 # lisp files for different versions of Emacs will install
 # themselves in separate directories.
 lispdir=@lispdir@
+leimdir=@leimdir@
 
 # Directories Emacs should search for lisp files specific
 # to this site (i.e. customizations), before consulting
@@ -267,12 +268,11 @@ SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
 
 # Subdirectories to install, and where they'll go.
 # lib-src's makefile knows how to install it, so we don't do that here.
-# leim's makefile also knows how to install it, so we don't do that here.
-# When installing the info files, we need to do special things to
-# avoid nuking an existing dir file, so we don't do that here;
-# instead, we have written out explicit code in the `install' targets.
-COPYDIR = ${srcdir}/etc ${srcdir}/lisp
-COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir}
+# Directories that cannot simply be copied, eg info,
+# are treated separately.
+# quail appears twice because in out-of-tree builds, it exists twice.
+COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/leim/ja-dic ${srcdir}/leim/quail leim/quail
+COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/quail 
 
 all: ${SUBDIR}
 
@@ -482,7 +482,7 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
 ## work correctly, and therefore no idea when tar can be replaced.
 ## See also these comments from 2004 about cp -r working fine:
 ## http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00005.html
-install-arch-indep: install-leim install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
+install-arch-indep: install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
 	umask 022 ; \
 	  $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'`
 	-set ${COPYDESTS} ; \
@@ -494,8 +494,13 @@ install-arch-indep: install-leim install-info install-man ${INSTALL_ARCH_INDEP_E
 	  [ -d $${dest} ] && \
 	    [ `cd $${dest} && /bin/pwd` = `cd $${dir} && /bin/pwd` ] && \
 	    continue ; \
-	  rm -rf $${dest} ; \
-	  umask 022; ${MKDIR_P} $${dest} ; \
+	  if [ "$${dir}" = "leim/quail" ]; then \
+	    [ `cd $${dir} && /bin/pwd` = `cd ${srcdir}/leim/quail && /bin/pwd` ] && \
+	      continue ; \
+	  else \
+	    rm -rf $${dest} ; \
+	    umask 022; ${MKDIR_P} $${dest} ; \
+	  fi ; \
 	  echo "Copying $${dir} to $${dest}..." ; \
 	  (cd $${dir}; tar -chf - . ) \
 	    | (cd $${dest}; umask 022; \
@@ -515,6 +520,8 @@ install-arch-indep: install-leim install-info install-man ${INSTALL_ARCH_INDEP_E
 	  done ; \
 	  find $${dest} -exec chown $${installuser} {} ';' ;\
 	done
+	-rm -f $(DESTDIR)${leimdir}/leim-list.el
+	${INSTALL_DATA} leim/leim-list.el $(DESTDIR)${leimdir}/leim-list.el
 	-rm -f $(DESTDIR)${lispdir}/subdirs.el
 	umask 022; $(srcdir)/update-subdirs $(DESTDIR)${lispdir}
 	subdir=$(DESTDIR)${datadir}/emacs/${version}/site-lisp ; \
@@ -524,9 +531,13 @@ install-arch-indep: install-leim install-info install-man ${INSTALL_ARCH_INDEP_E
 	[ -z "${GZIP_PROG}" ] || \
 	  ( echo "Compressing *.el ..." ; \
 	    unset CDPATH; \
-	    cd $(DESTDIR)${lispdir}; \
-	    for f in `find . -name "*.elc" -print`; do \
-	      ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
+	    thisdir=`/bin/pwd`; \
+	    for dir in $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}; do \
+	      cd $${thisdir} ; \
+	      cd $${dir} || exit 1 ; \
+	      for f in `find . -name "*.elc" -print`; do \
+	        ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
+	      done ; \
 	    done )
 	-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
 
@@ -610,13 +621,6 @@ install-etc:
 	  done ; \
 	done
 
-### Install LEIM files.  Although they are machine-independent, we
-### have separate target here instead of including it in
-### `install-arch-indep'.  People who extracted LEIM files after they
-### installed Emacs itself can install only LEIM files by this target.
-install-leim: leim/Makefile
-	cd leim && $(MAKE) $(MFLAGS) install
-
 ### Build Emacs and install it, stripping binaries while installing them.
 install-strip:
 	$(MAKE) $(MFLAGS) INSTALL_STRIP=-s install
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 953e6f1acdd..099e69423c0 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-21  Glenn Morris  <rgm@gnu.org>
 
+	* Makefile.in (install): Remove, let top-level do it.
+	(version, prefix, datarootdir, datadir, ns_appresdir, leimdir):
+	(MKDIR_P, GZIP_PROG): Remove, no longer used.
+
 	* Makefile.in (install_prefix): Remove.
 	(LEIM_INSTALLDIR): Rename to leimdir.
 	(install): Update for this change.
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 73aa8328ed9..1cda73b3492 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -27,21 +27,7 @@
 SHELL = /bin/sh
 
 # Here are the things that we expect ../configure to edit.
-version=@version@
-prefix=@prefix@
-datarootdir=@datarootdir@
-datadir=@datadir@
 srcdir=@srcdir@
-ns_appresdir=@ns_appresdir@
-
-# Where to install LEIM files.
-# For most builds, this is ${datadir}/emacs/${version}/leim.
-# For self-contained ns builds, it is ${ns_appresdir}/leim.
-leimdir=@leimdir@
-
-MKDIR_P = @MKDIR_P@
-
-GZIP_PROG = @GZIP_PROG@
 
 # Which Emacs to use to convert TIT files to Emacs Lisp files,
 # byte-compile Emacs Lisp files, and generate the file leim-list.el.
@@ -187,44 +173,6 @@ compile-main: ${TIT_MISC}
 	  $(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
 	done
 
-install: all
-	umask 022; ${MKDIR_P} $(DESTDIR)${leimdir}
-	if [ x`cd $(DESTDIR)${leimdir} && /bin/pwd` != x`/bin/pwd` ] ; then \
-	  rm -f $(DESTDIR)${leimdir}/leim-list.el; \
-	  rm -rf $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/ja-dic ; \
-	  echo "Copying leim files to $(DESTDIR)${leimdir} ..." ; \
-	  if [ x`cd ${srcdir} && /bin/pwd` = x`/bin/pwd` ] ; then \
-	    tar -chf - leim-list.el quail ja-dic \
-		| (cd $(DESTDIR)${leimdir}; umask 0; tar -xvf - && cat > /dev/null) ;\
-	  else \
-	    tar -chf - leim-list.el quail \
-		| (cd $(DESTDIR)${leimdir}; umask 0; tar -xvf - && cat > /dev/null) ;\
-	    cd ${srcdir}; \
-	    tar -chf - quail/* ja-dic \
-		| (cd $(DESTDIR)${leimdir}; umask 0; tar -xvf - && cat > /dev/null) ;\
-	  fi; \
-	  rm -f  $(DESTDIR)${leimdir}/.gitignore $(DESTDIR)${leimdir}/*/.gitignore; \
-	  rm -f  $(DESTDIR)${leimdir}/.arch-inventory $(DESTDIR)${leimdir}/*/.arch-inventory; \
-	  rm -f  $(DESTDIR)${leimdir}/\#*        $(DESTDIR)${leimdir}/*/\#* ; \
-	  rm -f  $(DESTDIR)${leimdir}/.\#*       $(DESTDIR)${leimdir}/*/.\#* ; \
-	  rm -f  $(DESTDIR)${leimdir}/*~         $(DESTDIR)${leimdir}/*/*~ ; \
-	  rm -f  $(DESTDIR)${leimdir}/*.orig     $(DESTDIR)${leimdir}/*/*.orig ; \
-	else true; fi
-	-unset CDPATH; \
-	if [ -n "${GZIP_PROG}" ]; \
-	then \
-	   echo "Compressing *.el ..." ; \
-	   (cd $(DESTDIR)${leimdir}; for f in `find . -name "*.elc" -print`; do \
-		${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \
-	    done) \
-	else true; fi
-	-chmod -R a+r $(DESTDIR)${leimdir}
-	for installuser in $${LOGNAME} $${USERNAME} $${USER} \
-	  `id -un 2> /dev/null`; do \
-	  [ -n "$${installuser}" ] && break ; \
-	done ; \
-	find $(DESTDIR)${leimdir} -exec chown $${installuser} '{}' ';'
-
 clean mostlyclean:
 	rm -f ${TIT_MISC} ${TIT_MISC:.el=.elc} \
 		leim-list.el changed.tit changed.misc