Re: New from emacs-snapshot
Daniel Brockman <daniel@brockman.se> writes:
> Daniel Brockman <daniel@brockman.se> writes:
Thank you Daniel, for your investigation and help!
>> I write:
>>
>>> # This shouldn't be needed as of 20.3
>>> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/share/emacs/${runtime_ver}/leim
>>> +#local_lpath := ${local_lpath}:/usr/share/emacs/${runtime_ver}/leim
>>
>> Actually, make that
>>
>> # This shouldn't be needed as of 20.3
>> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/share/emacs/${runtime_ver}/leim
>> +local_lpath := ${local_lpath}:/usr/share/emacs/${runtime_ver}/leim
>
> Okay, so removing the $(EMACS_COMMON) bits created some problems of
> its own. Actually, I have no idea how I was able to compile with that
> patch applied.
>
> Anyway, I've looked at how the emacs21 package does things and here's
> what I've got. You need to change both Makefile.in, like this,
>
>
> Index: Makefile.in
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/Makefile.in,v
> retrieving revision 1.301
> diff -u -r1.301 Makefile.in
> --- Makefile.in 11 Dec 2004 00:03:11 -0000 1.301
> +++ Makefile.in 9 May 2005 20:52:44 -0000
> @@ -523,6 +523,8 @@
> ### we may be creating several layers of directories (for example,
> ### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
> ### instead of mkdir. Not all systems' mkdir programs have the `-p' flag.
> +###
> +### ${debepkgdir} is set in debian/rules.
> mkdir: FRC
> if [ -d ${datadir} ]; then true; else \
> $(srcdir)/mkinstalldirs ${datadir}; \
> @@ -532,7 +534,7 @@
> ${bindir} ${docdir} ${libexecdir} \
> ${datadir}/emacs/site-lisp \
> ${datadir}/emacs/${version}/site-lisp \
> - `echo ${locallisppath} | sed 's/:/ /g'`
> + `echo ${debepkgdir}${locallisppath} | sed 's|:| ${debepkgdir}|g'`
>
> ### Delete all the installed files that the `install' target would
> ### create (but not the noninstalled files such as `make all' would
>
> and debian/rules, like this,
>
>
> --- orig/rules
> +++ mod/rules
> @@ -180,14 +180,14 @@
> EMACS_GTK = $(CURDIR)/debian/${bin_name}-gtk
> EMACS_EL = $(CURDIR)/debian/${bin_name}-el
>
> -local_lpath := $(EMACS_COMMON)/etc/${bin_name}:$(EMACS_COMMON)/etc/emacs
> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/local/share/emacs/${runtime_ver}/site-lisp
> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/local/share/emacs/site-lisp
> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/share/emacs/${runtime_ver}/site-lisp
> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/share/emacs/site-lisp
> +local_lpath := /etc/${bin_name}:/etc/emacs
> +local_lpath := ${local_lpath}:/usr/local/share/emacs/${runtime_ver}/site-lisp
> +local_lpath := ${local_lpath}:/usr/local/share/emacs/site-lisp
> +local_lpath := ${local_lpath}:/usr/share/emacs/${runtime_ver}/site-lisp
> +local_lpath := ${local_lpath}:/usr/share/emacs/site-lisp
>
> # This shouldn't be needed as of 20.3
> -local_lpath := ${local_lpath}:$(EMACS_COMMON)/usr/share/emacs/${runtime_ver}/leim
> +local_lpath := ${local_lpath}:/usr/share/emacs/${runtime_ver}/leim
OK. I got it now.
> # These files must always exist, i.e. can't ever be cleaned.
> PERSISTENT_AUTOGEN_FILES := debian/control debian/copyright
> @@ -418,11 +418,13 @@
> ${expand_file_subst_vars}
>
> define build_cmd
> - ${MAKE} CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
> + ${MAKE} CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
> + locallisppath=${local_lpath}
> endef
Thanks. I forgot about this one.
> emacs_inst = (${MAKE} install \
> INSTALL_STRIP="-s" \
> + debepkgdir=${1} \
> prefix=${1}/usr \
> sharedstatedir=${1}/var/lib \
> localstatedir=${1}/var \
OK, I realized I had not taking too much care of this change.
However, I think we could avoid patching Makefile.in and adding and
extra 'debepkgdir' parameter, that way:
emacs_inst = (${MAKE} install \
INSTALL_STRIP="-s" \
prefix=${1}/usr \
sharedstatedir=${1}/var/lib \
localstatedir=${1}/var \
libexecdir=${1}/usr/lib \
infodir=${1}/usr/share/info/${info_emacsdir} \
mandir=${1}/usr/share/man \
manext=.1${bin_name} \
locallisppath=$(EMACS_COMMON)/$(subst :,:$(EMACS_COMMON)/,${local_lpath}))
What do you think? (I haven't tested)
> @@ -467,11 +469,13 @@
> # Emacs must be boostraped at least once in order to
> # generate .elc files
> CFLAGS="${CFLAGS}" ./configure ${emacs_confflags}
> + ${build_cmd} epaths-force
> ${build_cmd} bootstrap
> ${build_cmd} distclean
>
> # Build emacs
> CFLAGS="${CFLAGS}" ./configure ${emacs_confflags}
> + ${build_cmd} epaths-force
> ${build_cmd}
> # save binary from deletion
> mv src/emacs src/x-emacs
> @@ -479,6 +483,7 @@
>
> # Build emacs-gtk
> CFLAGS="${CFLAGS}" ./configure ${emacs_gtk_confflags}
> + ${build_cmd} epaths-force
> time ${build_cmd}
> # save binary from deletion
> mv src/emacs src/gtk-emacs
> @@ -486,6 +491,7 @@
>
> # Build emacs-nox
> CFLAGS="${CFLAGS}" ./configure ${emacs_nox_confflags}
> + ${build_cmd} epaths-force
> time ${build_cmd}
> # save binary from deletion
> mv src/emacs src/nox-emacs
Oh right, I understand now why it is necessary to run it out of configure
now.
> That'll let you get rid of the `load-path' hack ---
> /etc/emacs/site-start.d/00ensure-policy-conforming-load-path.el.
>
> Yes, it actually seems to work this time. :-)
Thank you very much!
--
Jérôme Marant
Reply to: