[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compilation order. Tentative patch.
From: |
Mathias Megyei |
Subject: |
Re: Compilation order. Tentative patch. |
Date: |
Sat, 6 Oct 2007 07:38:18 +0200 |
Hi Alan,
Alan Mackenzie writes:
> Suggestions for increasing the elegance would be welcome.
>
>
> 2007-10-05 Alan Mackenzie <address@hidden>
>
> * Makefile.in: Rigorously specify the dependencies between the CC
> Mode files.elc.
> (CC-MODE): New target.
>
>
> Index: Makefile.in
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/lisp/Makefile.in,v
> retrieving revision 1.85.2.3
> diff -c -r1.85.2.3 Makefile.in
> *** Makefile.in 19 Aug 2007 00:24:55 -0000 1.85.2.3
> --- Makefile.in 5 Oct 2007 21:12:56 -0000
> ***************
> *** 213,225 ****
> $(emacs) --eval "(batch-byte-recompile-directory 0)" $(lisp)
>
> # CC Mode uses a compile time macro system which causes a compile time
> ! # dependency in cc-mode.elc on the macros in cc-langs.el and the
> ! # version string in cc-defs.el.
> ! $(lisp)/progmodes/cc-mode.elc: \
> ! $(lisp)/progmodes/cc-mode.el \
> ! $(lisp)/progmodes/cc-langs.el \
> ! $(lisp)/progmodes/cc-defs.el
> ! $(emacs) -f batch-byte-compile $(lisp)/progmodes/cc-mode.el
>
> # Update MH-E internal autoloads. These are not to be confused with
> # the autoloads for the MH-E entry points, which are already in
> --- 213,246 ----
> $(emacs) --eval "(batch-byte-recompile-directory 0)" $(lisp)
>
> # CC Mode uses a compile time macro system which causes a compile time
> ! # dependency in cc-mode.elc, cc-engine.elc, and cc-fonts.elc on the
> "language
> ! # variables" in cc-langs.el. A(lmost) all CC files depend on the macros in
> ! # cc-defs.elc and the bytecomp stuff in cc-bytecomp.el.
> ! pr=$(lisp)/progmodes
> ! .PHONY: CC-MODE
> ! CC-MODE: $(pr)/cc-align.elc $(pr)/cc-awk.elc $(pr)/cc-bytecomp.elc
> $(pr)/cc-cmds.elc $(pr)/cc-compat.elc $(pr)/cc-defs.elc $(pr)/cc-engine.elc
> $(pr)/cc-fonts.elc $(pr)/cc-langs.elc $(pr)/cc-mode.elc $(pr)/cc-menus.elc
> $(pr)/cc-styles.elc $(pr)/cc-subword.elc $(pr)/cc-vars.elc
You can omit to list the files cc-bytecomp.elc, cc-defs.elc,
cc-langs.el, because they appear in the dependency lists of the
rules below.
> !
> ! # "Top level" CC Mode files:
> ! $(pr)/cc-align.elc \
> ! $(pr)/cc-awk.elc \
> ! $(pr)/cc-cmds.elc \
> ! $(pr)/cc-compat.elc \
> ! $(pr)/cc-menus.elc \
> ! $(pr)/cc-styles.elc \
> ! $(pr)/cc-subword.elc \
> ! $(pr)/cc-vars.elc: \
> ! $(pr)/cc-defs.elc $(pr)/cc-bytecomp.elc
Since $(pr)/cc-defs.elc already depends on $(pr)/cc-bytecomp.elc
there's no need to add the latter to this list.
> !
> ! # CC Mode files which defvar, initialise, or use the "language variables":
> ! $(pr)/cc-mode.elc \
> ! $(pr)/cc-engine.elc \
> ! $(pr)/cc-fonts.elc: \
> ! $(pr)/cc-langs.elc $(pr)/cc-defs.elc $(pr)/cc-bytecomp.elc
the same here, $(pr)/cc-langs.elc depends on both
cc-defs.elc and cc-bytecomp.elc.
> !
> ! # CC Mode file which defines the language variables and their values:
> ! $(pr)/cc-langs.elc: $(pr)/cc-defs.elc $(pr)/cc-bytecomp.elc
the same here
Mathias