From d10cfddd07aec937599944575123d007d5981310 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 21 May 2012 16:13:49 -0400 Subject: [PATCH] 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. --- ChangeLog | 5 +++++ Makefile.in | 44 +++++++++++++++++++++------------------- leim/ChangeLog | 4 ++++ leim/Makefile.in | 52 ------------------------------------------------ 4 files changed, 33 insertions(+), 72 deletions(-) diff --git a/ChangeLog b/ChangeLog index f72c73ad321..dcd8559d7b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2012-05-21 Glenn Morris + * 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 + * 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 -- 2.39.2