Subject: bug#13984: closed (Re: bug#13984: Automate the build of ja-dic.el)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 18 Mar 2013 04:48:03 +0000

Your bug report

#13984: Automate the build of ja-dic.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
13984: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13984
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#13984: Automate the build of ja-dic.el
From: Paul Eggert <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], Eli Zaretskii <[email-masked]>, Kenichi Handa <[email-masked]>
Date: Sun, 17 Mar 2013 21:46:01 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On 03/16/2013 07:36 PM, Stefan Monnier wrote:

> By "bootstrap builds" you mean "builds from the Bzr repository". 

Yes, thanks, I fixed that in the commentary.

> the problem I see with your patch (whose goal I agree with) is that
> it adds a dependency on Awk, which is probably going to be a problem for
> the Windows contributors.

That shouldn't be a showstopper, as Awk ports are widely available
for Windows, and the GNU coding standards have said for many years
that it's OK to assume Awk.  For this particular case, though,
it's easy to remove the dependency on Awk so I did that.

On 03/16/2013 08:55 PM, Eli Zaretskii wrote:

> Another problem is with the file name SKK-JISYO.L.unannotated,
> since it clashes with SKK-JISYO.L on 8+3 DOS filesystems.  Can we use
> a different name, please?

I altered things so that the file is not needed, which sidesteps
the problem.  I agree with Andreas that we should come up with a better
way of dealing with the 8+3 problem, though, so as to be less intrusive
to mainline development.

Installed as trunk bzr 112072 and marking this bug as done.

Subject: Automate the build of ja-dic.el
From: Paul Eggert <[email-masked]>
To: [email-masked]
Cc: Kenichi Handa <[email-masked]>
Date: Fri, 15 Mar 2013 23:13:50 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch
Severity: wishlist

Currently the procedure for building ja-dic.el is semiautomated
and it's installed by hand into the bzr repository.  Here's a patch
to automate the build, so that the bzr repository need not contain
this file.  The file is still part of the Emacs tarball, so ordinary
builds are unchanged; the patch should affect only bootstrap builds.

I'm CC'ing this to Mr. Handa to give him a heads-up.

The full patch (gzipped) is attached.  Most of the
patch consists of removing or updating catalogs and so it's
pretty boring.  The key part of the patch is copied below.

# Begin patch
=== modified file '.bzrignore'
--- .bzrignore	2013-02-21 22:42:56 +0000
+++ .bzrignore	2013-03-16 06:03:12 +0000
@@ -80,6 +80,7 @@
 build-aux/depcomp
 build-aux/install-sh
 build-aux/missing
+leim/SKK-DIC/SKK-JISYO.L.unannotated
 leim/leim-list.el
 leim/quail/*.el
 leim/changed.misc

=== modified file 'ChangeLog'
--- ChangeLog	2013-03-13 18:42:22 +0000
+++ ChangeLog	2013-03-16 06:03:12 +0000
@@ -1,3 +1,10 @@
+2013-03-15  Paul Eggert  <[email-masked]>
+
+	Automate the build of ja-dic.el.
+	* .bzrignore: Add leim/SKK-DIC/SKK-JISYO.L.unannotated.
+	* configure.ac (AC_PROG_AWK): Mention in a comment.
+	* make-dist (files): Distribute new file leim/SKK-DIC/unannotation.awk.
+
 2013-03-13  Paul Eggert  <[email-masked]>

 	File synchronization fixes (Bug#13944).

=== modified file 'configure.ac'
--- configure.ac	2013-03-13 18:42:22 +0000
+++ configure.ac	2013-03-16 06:03:12 +0000
@@ -789,7 +789,8 @@

 dnl Some other nice autoconf tests.
-dnl These are commented out, since gl_EARLY and/or Autoconf already does them.
+dnl Commented out, since gl_EARLY, gl_INIT and/or Autoconf already does them.
+dnl AC_PROG_AWK
 dnl AC_PROG_INSTALL
 dnl AC_PROG_MKDIR_P
 dnl if test "x$RANLIB" = x; then

=== modified file 'leim/ChangeLog'
--- leim/ChangeLog	2013-03-11 16:31:55 +0000
+++ leim/ChangeLog	2013-03-16 06:03:12 +0000
@@ -1,3 +1,20 @@
+2013-03-15  Paul Eggert  <[email-masked]>
+
+	Automate the build of ja-dic.el.
+	ja-dic.el no longer needs to be in the repository: it's now
+	generated as part of the bootstrap.  Also, update SKK-JISYO.L to
+	match the upstream source exactly.
+	* ja-dic/ja-dic.el: Remove from repository.  It is still distributed
+	as part of the Emacs tarball.
+	* Makefile.in (AWK): New macro.
+	($(srcdir)/ja-dic/ja-dic.el): New rule.
+	(compile-main): Depend on it.
+	(clean): Remove SKK-DIC/SKK-JISYO.L.unannotated.
+	* SKK-DIC/README: Update to reflect new build procedure.
+	* SKK-DIC/SKK-JISYO.L: Update to match source exactly.
+	This is now the annotated version, to match the upstream file name;
+	the unannotated one is built from it automatically.
+
 2013-02-08  Stefan Monnier  <[email-masked]>

 	* quail/latin-ltx.el: Add greek superscripts.

=== modified file 'leim/Makefile.in'
--- leim/Makefile.in	2013-01-01 09:11:05 +0000
+++ leim/Makefile.in	2013-03-16 06:03:12 +0000
@@ -39,6 +39,7 @@
 RUN_EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
 	${EMACS} -batch --no-site-file --no-site-lisp

+AWK = @AWK@
 MKDIR_P = @MKDIR_P@

 # Files generated from TIT dictionaries for Chinese GB character set.
@@ -144,6 +145,15 @@
 	fi
 	sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@

+$(srcdir)/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L \
+  $(srcdir)/SKK-DIC/unannotation.awk
+	@$(MKDIR_P) $(srcdir)/ja-dic SKK-DIC
+	$(AWK) -f $(srcdir)/SKK-DIC/unannotation.awk \
+	  $(srcdir)/SKK-DIC/SKK-JISYO.L \
+	  > SKK-DIC/SKK-JISYO.L.unannotated
+	$(RUN_EMACS) -l $(buildlisppath)/international/ja-dic-cnv \
+	  --eval '(skkdic-convert "SKK-DIC/SKK-JISYO.L.unannotated" "$(srcdir)/ja-dic")'
+
 ## Following adapted from lisp/Makefile.in.
 setwins=wins="${srcdir}/ja-dic quail"; \
 	[ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && \
@@ -156,7 +166,7 @@
 # Compile all the Elisp files that need it.  Beware: it approximates
 # `no-byte-compile', so watch out for false-positives!
 .PHONY: compile-main
-compile-main: ${TIT_MISC}
+compile-main: ${TIT_MISC} $(srcdir)/ja-dic/ja-dic.el
 	@($(setwins); \
 	els=`echo "$$wins " | sed -e 's| |/*.el |g'`; \
 	for el in $$els; do \
@@ -172,6 +182,7 @@

 clean mostlyclean:
 	rm -f ${TIT_MISC} ${TIT_MISC:.el=.elc} \
+		SKK-DIC/SKK-JISYO.L.unannotated \
 		leim-list.el changed.tit changed.misc

 # The following target is needed because the `clean' target only removes

=== modified file 'leim/SKK-DIC/README'
--- leim/SKK-DIC/README	2010-02-16 06:58:32 +0000
+++ leim/SKK-DIC/README	2013-03-16 06:03:12 +0000
@@ -1,4 +1,7 @@
-The file SKK-JISYO.L is renamed from SKK-JISYO.L.unannotated which is
-distributed at http://openlab.ring.gr.jp/skk/skk/dic/.
-SKK-JISYO.L.unannotated is free software distributed under the terms
+This directory contains a copy of the following files:
+
+http://openlab.ring.gr.jp/skk/skk/dic/SKK-JISYO.L
+http://openlab.ring.gr.jp/skk/skk/tools/unannotation.awk
+
+These files are free software distributed under the terms
 of the GNU General Public License.

=== modified file 'leim/SKK-DIC/SKK-JISYO.L'
[see full patch]

=== added file 'leim/SKK-DIC/unannotation.awk'
[see full patch]

=== removed directory 'leim/ja-dic'
=== removed file 'leim/ja-dic/ja-dic.el'
[see full patch]

=== modified file 'make-dist'
--- make-dist	2013-03-03 02:43:30 +0000
+++ make-dist	2013-03-16 06:03:12 +0000
@@ -324,7 +324,8 @@
  ln makefile.w32-in ../${tempdir}/leim
  ln ChangeLog README ../${tempdir}/leim
  ln CXTERM-DIC/README CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC
- ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/leim/SKK-DIC
+ ln SKK-DIC/README SKK-DIC/SKK-JISYO.L SKK-DIC/unannotation.awk \
+   ../${tempdir}/leim/SKK-DIC
  ln MISC-DIC/README MISC-DIC/*.* ../${tempdir}/leim/MISC-DIC
  ln ja-dic/*.el ja-dic/*.elc ../${tempdir}/leim/ja-dic
  ln Makefile.in ../${tempdir}/leim/Makefile.in