diff --git a/ChangeLog b/ChangeLog index 11cb707e1a3..af7d83a78d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-05-20 Glenn Morris + + * configure.in (lisp_frag): New output file. + 2011-05-19 Glenn Morris * configure.in (NS_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT) diff --git a/configure.in b/configure.in index 2255b9110d4..dd895f3f06f 100644 --- a/configure.in +++ b/configure.in @@ -1370,6 +1370,10 @@ AC_SUBST(DEPFLAGS) AC_SUBST_FILE(deps_frag) +lisp_frag=$srcdir/src/lisp.mk +AC_SUBST_FILE(lisp_frag) + + dnl checks for operating system services AC_SYS_LONG_FILE_NAMES diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 450199a33c5..28a949f81e2 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -28,7 +28,7 @@ srcdir=@srcdir@ # Note the other doc Makefiles do not use VPATH anymore, instead # they set infodir to an absolute path. Not doing that here in # case INFO_TARGETS gets too long for some feeble shells. -# (cf src/Makefile.in's shortlisp) +# (cf src/Makefile.in's passing of $lisp to make-docfile) VPATH=@srcdir@ ## Where the output files go. diff --git a/lisp/loadup.el b/lisp/loadup.el index d0dc92a1815..525b8d27b8d 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -29,9 +29,8 @@ ;; If you add/remove Lisp files to be loaded here, consider the ;; following issues: -;; i) Any file loaded on any platform should appear in $lisp and -;; $shortlisp in src/Makefile.in. Use the .el or .elc version as -;; appropriate. +;; i) Any file loaded on any platform should appear in $lisp in src/lisp.mk. +;; Use the .el or .elc version as appropriate. ;; This ensures both that the Lisp files are compiled (if necessary) ;; before the emacs executable is dumped, and that they are passed to diff --git a/src/ChangeLog b/src/ChangeLog index 1b54ae05c59..ba84d2d2700 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2011-05-20 Glenn Morris + + * lisp.mk: New file, split from Makefile.in. + * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@. + (shortlisp): Remove. + ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp. + 2011-05-19 Glenn Morris * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT) diff --git a/src/Makefile.in b/src/Makefile.in index 6476880a0fd..557a6f54748 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -358,249 +358,10 @@ POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ $(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS) -## This is the list of all Lisp files that might be loaded into the -## dumped Emacs. Some of them are not loaded on all platforms, but -## the DOC file on every platform uses them (because the DOC file is -## supposed to be platform-independent). -## It is arranged like this because it is easier to generate it -## semi-mechanically from loadup.el this way. -## Eg something like: -## sed -e 's/"[ )].*//' -n -e '/(load "/ s/.*load "//p' loadup.el | \ -## grep -vE 'site-|ldefs-boot' -## minus any duplicates. -## Note that you cannot just add a ".elc" extension to every file, -## since some of them are no-byte-compile (eg some language/ ones). -## -## Confusingly, term/internal is not in loadup, but is unconditionally -## loaded by pc-win, which is. -## -## Note that this list should not include lisp files which might not -## be present, like site-load.el and site-init.el; this makefile -## expects them all to be either present or buildable. -## -## Place loaddefs.el first, so it gets generated first, since it is on -## the critical path (relevant in parallel compilations). -lisp= \ - $(lispsource)/loaddefs.el \ - $(lispsource)/loadup.el \ - $(lispsource)/emacs-lisp/byte-run.elc \ - $(lispsource)/emacs-lisp/backquote.elc \ - $(lispsource)/subr.elc \ - $(lispsource)/version.el \ - $(lispsource)/widget.elc \ - $(lispsource)/custom.elc \ - $(lispsource)/emacs-lisp/map-ynp.elc \ - $(lispsource)/cus-start.elc \ - $(lispsource)/international/mule.elc \ - $(lispsource)/international/mule-conf.elc \ - $(lispsource)/env.elc \ - $(lispsource)/format.elc \ - $(lispsource)/bindings.elc \ - $(lispsource)/files.elc \ - $(lispsource)/cus-face.elc \ - $(lispsource)/faces.elc \ - $(lispsource)/button.elc \ - $(lispsource)/startup.elc \ - $(lispsource)/minibuffer.elc \ - $(lispsource)/abbrev.elc \ - $(lispsource)/simple.elc \ - $(lispsource)/help.elc \ - $(lispsource)/jka-cmpr-hook.elc \ - $(lispsource)/epa-hook.elc \ - $(lispsource)/international/mule-cmds.elc \ - $(lispsource)/case-table.elc \ - $(lispsource)/international/characters.elc \ - $(lispsource)/composite.elc \ - $(lispsource)/international/charprop.el \ - $(lispsource)/language/chinese.elc \ - $(lispsource)/language/cyrillic.elc \ - $(lispsource)/language/indian.elc \ - $(lispsource)/language/sinhala.el \ - $(lispsource)/language/english.el \ - $(lispsource)/language/ethiopic.elc \ - $(lispsource)/language/european.elc \ - $(lispsource)/language/czech.el \ - $(lispsource)/language/slovak.el \ - $(lispsource)/language/romanian.el \ - $(lispsource)/language/greek.el \ - $(lispsource)/language/hebrew.elc \ - $(lispsource)/language/japanese.el \ - $(lispsource)/language/korean.el \ - $(lispsource)/language/lao.el \ - $(lispsource)/language/tai-viet.el \ - $(lispsource)/language/thai.el \ - $(lispsource)/language/tibetan.elc \ - $(lispsource)/language/vietnamese.elc \ - $(lispsource)/language/misc-lang.el \ - $(lispsource)/language/utf-8-lang.el \ - $(lispsource)/language/georgian.el \ - $(lispsource)/language/khmer.el \ - $(lispsource)/language/burmese.el \ - $(lispsource)/language/cham.el \ - $(lispsource)/indent.elc \ - $(lispsource)/window.elc \ - $(lispsource)/frame.elc \ - $(lispsource)/term/tty-colors.elc \ - $(lispsource)/font-core.elc \ - $(lispsource)/facemenu.elc \ - $(lispsource)/emacs-lisp/syntax.elc \ - $(lispsource)/font-lock.elc \ - $(lispsource)/jit-lock.elc \ - $(lispsource)/mouse.elc \ - $(lispsource)/scroll-bar.elc \ - $(lispsource)/select.elc \ - $(lispsource)/emacs-lisp/timer.elc \ - $(lispsource)/isearch.elc \ - $(lispsource)/rfn-eshadow.elc \ - $(lispsource)/menu-bar.elc \ - $(lispsource)/paths.el \ - $(lispsource)/emacs-lisp/lisp.elc \ - $(lispsource)/textmodes/page.elc \ - $(lispsource)/register.elc \ - $(lispsource)/textmodes/paragraphs.elc \ - $(lispsource)/emacs-lisp/lisp-mode.elc \ - $(lispsource)/textmodes/text-mode.elc \ - $(lispsource)/textmodes/fill.elc \ - $(lispsource)/replace.elc \ - $(lispsource)/buff-menu.elc \ - $(lispsource)/fringe.elc \ - $(lispsource)/image.elc \ - $(lispsource)/international/fontset.elc \ - $(lispsource)/dnd.elc \ - $(lispsource)/tool-bar.elc \ - $(lispsource)/dynamic-setting.elc \ - $(lispsource)/x-dnd.elc \ - $(lispsource)/term/common-win.elc \ - $(lispsource)/term/x-win.elc \ - $(lispsource)/w32-vars.elc \ - $(lispsource)/term/w32-win.elc \ - $(lispsource)/ls-lisp.elc \ - $(lispsource)/disp-table.elc \ - $(lispsource)/dos-w32.elc \ - $(lispsource)/w32-fns.elc \ - $(lispsource)/dos-fns.elc \ - $(lispsource)/dos-vars.elc \ - $(lispsource)/term/pc-win.elc \ - $(lispsource)/term/internal.elc \ - $(lispsource)/term/ns-win.elc \ - $(lispsource)/mwheel.elc \ - $(lispsource)/emacs-lisp/float-sup.elc \ - $(lispsource)/vc/vc-hooks.elc \ - $(lispsource)/vc/ediff-hook.elc \ - $(lispsource)/tooltip.elc -## The same as $lisp, but using relative file names. The only reason -## this variable exists is to prevent the make-docfile command-line -## getting too long for some systems. Unfortunately, no-one has any -## idea how long "too long" is. -shortlisp= \ - ../lisp/loaddefs.el \ - ../lisp/loadup.el \ - ../lisp/emacs-lisp/byte-run.elc \ - ../lisp/emacs-lisp/backquote.elc \ - ../lisp/subr.elc \ - ../lisp/version.el \ - ../lisp/widget.elc \ - ../lisp/custom.elc \ - ../lisp/emacs-lisp/map-ynp.elc \ - ../lisp/cus-start.elc \ - ../lisp/international/mule.elc \ - ../lisp/international/mule-conf.elc \ - ../lisp/env.elc \ - ../lisp/format.elc \ - ../lisp/bindings.elc \ - ../lisp/files.elc \ - ../lisp/cus-face.elc \ - ../lisp/faces.elc \ - ../lisp/button.elc \ - ../lisp/startup.elc \ - ../lisp/minibuffer.elc \ - ../lisp/abbrev.elc \ - ../lisp/simple.elc \ - ../lisp/help.elc \ - ../lisp/jka-cmpr-hook.elc \ - ../lisp/epa-hook.elc \ - ../lisp/international/mule-cmds.elc \ - ../lisp/case-table.elc \ - ../lisp/international/characters.elc \ - ../lisp/composite.elc \ - ../lisp/international/charprop.el \ - ../lisp/language/chinese.elc \ - ../lisp/language/cyrillic.elc \ - ../lisp/language/indian.elc \ - ../lisp/language/sinhala.el \ - ../lisp/language/english.el \ - ../lisp/language/ethiopic.elc \ - ../lisp/language/european.elc \ - ../lisp/language/czech.el \ - ../lisp/language/slovak.el \ - ../lisp/language/romanian.el \ - ../lisp/language/greek.el \ - ../lisp/language/hebrew.elc \ - ../lisp/language/japanese.el \ - ../lisp/language/korean.el \ - ../lisp/language/lao.el \ - ../lisp/language/tai-viet.el \ - ../lisp/language/thai.el \ - ../lisp/language/tibetan.elc \ - ../lisp/language/vietnamese.elc \ - ../lisp/language/misc-lang.el \ - ../lisp/language/utf-8-lang.el \ - ../lisp/language/georgian.el \ - ../lisp/language/khmer.el \ - ../lisp/language/burmese.el \ - ../lisp/language/cham.el \ - ../lisp/indent.elc \ - ../lisp/window.elc \ - ../lisp/frame.elc \ - ../lisp/term/tty-colors.elc \ - ../lisp/font-core.elc \ - ../lisp/facemenu.elc \ - ../lisp/emacs-lisp/syntax.elc \ - ../lisp/font-lock.elc \ - ../lisp/jit-lock.elc \ - ../lisp/mouse.elc \ - ../lisp/scroll-bar.elc \ - ../lisp/select.elc \ - ../lisp/emacs-lisp/timer.elc \ - ../lisp/isearch.elc \ - ../lisp/rfn-eshadow.elc \ - ../lisp/menu-bar.elc \ - ../lisp/paths.el \ - ../lisp/emacs-lisp/lisp.elc \ - ../lisp/textmodes/page.elc \ - ../lisp/register.elc \ - ../lisp/textmodes/paragraphs.elc \ - ../lisp/emacs-lisp/lisp-mode.elc \ - ../lisp/textmodes/text-mode.elc \ - ../lisp/textmodes/fill.elc \ - ../lisp/replace.elc \ - ../lisp/buff-menu.elc \ - ../lisp/fringe.elc \ - ../lisp/image.elc \ - ../lisp/international/fontset.elc \ - ../lisp/dnd.elc \ - ../lisp/tool-bar.elc \ - ../lisp/dynamic-setting.elc \ - ../lisp/x-dnd.elc \ - ../lisp/term/common-win.elc \ - ../lisp/term/x-win.elc \ - ../lisp/w32-vars.elc \ - ../lisp/term/w32-win.elc \ - ../lisp/ls-lisp.elc \ - ../lisp/disp-table.elc \ - ../lisp/dos-w32.elc \ - ../lisp/w32-fns.elc \ - ../lisp/dos-fns.elc \ - ../lisp/dos-vars.elc \ - ../lisp/term/pc-win.elc \ - ../lisp/term/internal.elc \ - ../lisp/term/ns-win.elc \ - ../lisp/mwheel.elc \ - ../lisp/emacs-lisp/float-sup.elc \ - ../lisp/vc/vc-hooks.elc \ - ../lisp/vc/ediff-hook.elc \ - ../lisp/tooltip.elc +## Configure inserts the file lisp.mk at this point, defining $lisp. +@lisp_frag@ + ## Construct full set of libraries to be linked. ## Note that SunOS needs -lm to come before -lc; otherwise, you get @@ -634,21 +395,23 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) fi ## We run make-docfile twice because the command line may get too long -## on some systems. +## on some systems. The sed command operating on lisp.mk also reduces +## the length of the command line. Unfortunately, no-one has any idea +## exactly how long the maximum safe command line length is on all the +## various systems that Emacs supports. Obviously, the length depends +## on what your value of $srcdir is. If the length restriction goes +## away, lisp.mk can be merged back into this file. +## ## $(SOME_MACHINE_OBJECTS) comes before $(obj) because some files may ## or may not be included in $(obj), but they are always included in ## $(SOME_MACHINE_OBJECTS). Since a file is processed when it is mentioned ## for the first time, this prevents any variation between configurations ## in the contents of the DOC file. -## Most of this Makefile refers to Lisp files via $(lispsource), so -## we also use $(lisp) rather than $(shortlisp) for the dependency since -## the Makefile uses string equality to decide when we talk about identical -## files. Apparently we pass $(shortlisp) rather than $(lisp) to make-docfile -## only in order to reduce the command line length. --Stef +## $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) -rm -f $(etc)/DOC $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC - $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) $(shortlisp) + $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)|../lisp|p' $(srcdir)/lisp.mk` $(libsrc)/make-docfile$(EXEEXT): cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT) diff --git a/src/lisp.mk b/src/lisp.mk new file mode 100644 index 00000000000..68748b27f28 --- /dev/null +++ b/src/lisp.mk @@ -0,0 +1,160 @@ +### lisp.mk --- src/Makefile fragment for GNU Emacs + +## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2011 +## Free Software Foundation, Inc. + +## This file is part of GNU Emacs. + +## GNU Emacs is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. + +## GNU Emacs is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with GNU Emacs. If not, see . + +### Commentary: + +## This is the list of all Lisp files that might be loaded into the +## dumped Emacs. Some of them are not loaded on all platforms, but +## the DOC file on every platform uses them (because the DOC file is +## supposed to be platform-independent). +## It is arranged like this because it is easier to generate it +## semi-mechanically from loadup.el this way. +## Eg something like: +## sed -e 's/"[ )].*//' -n -e '/(load "/ s/.*load "//p' loadup.el | \ +## grep -vE 'site-|ldefs-boot' +## minus any duplicates. +## Note that you cannot just add a ".elc" extension to every file, +## since some of them are no-byte-compile (eg some language/ ones). + +## Confusingly, term/internal is not in loadup, but is unconditionally +## loaded by pc-win, which is. + +## Note that this list should not include lisp files which might not +## be present, like site-load.el and site-init.el; this makefile +## expects them all to be either present or buildable. + +## Place loaddefs.el first, so it gets generated first, since it is on +## the critical path (relevant in parallel compilations). + +### Code: + +## NB: This list is parsed by sed in the main src/Makefile. +## Do not change the formatting. +lisp = \ + $(lispsource)/loaddefs.el \ + $(lispsource)/loadup.el \ + $(lispsource)/emacs-lisp/byte-run.elc \ + $(lispsource)/emacs-lisp/backquote.elc \ + $(lispsource)/subr.elc \ + $(lispsource)/version.el \ + $(lispsource)/widget.elc \ + $(lispsource)/custom.elc \ + $(lispsource)/emacs-lisp/map-ynp.elc \ + $(lispsource)/cus-start.elc \ + $(lispsource)/international/mule.elc \ + $(lispsource)/international/mule-conf.elc \ + $(lispsource)/env.elc \ + $(lispsource)/format.elc \ + $(lispsource)/bindings.elc \ + $(lispsource)/files.elc \ + $(lispsource)/cus-face.elc \ + $(lispsource)/faces.elc \ + $(lispsource)/button.elc \ + $(lispsource)/startup.elc \ + $(lispsource)/minibuffer.elc \ + $(lispsource)/abbrev.elc \ + $(lispsource)/simple.elc \ + $(lispsource)/help.elc \ + $(lispsource)/jka-cmpr-hook.elc \ + $(lispsource)/epa-hook.elc \ + $(lispsource)/international/mule-cmds.elc \ + $(lispsource)/case-table.elc \ + $(lispsource)/international/characters.elc \ + $(lispsource)/composite.elc \ + $(lispsource)/international/charprop.el \ + $(lispsource)/language/chinese.elc \ + $(lispsource)/language/cyrillic.elc \ + $(lispsource)/language/indian.elc \ + $(lispsource)/language/sinhala.el \ + $(lispsource)/language/english.el \ + $(lispsource)/language/ethiopic.elc \ + $(lispsource)/language/european.elc \ + $(lispsource)/language/czech.el \ + $(lispsource)/language/slovak.el \ + $(lispsource)/language/romanian.el \ + $(lispsource)/language/greek.el \ + $(lispsource)/language/hebrew.elc \ + $(lispsource)/language/japanese.el \ + $(lispsource)/language/korean.el \ + $(lispsource)/language/lao.el \ + $(lispsource)/language/tai-viet.el \ + $(lispsource)/language/thai.el \ + $(lispsource)/language/tibetan.elc \ + $(lispsource)/language/vietnamese.elc \ + $(lispsource)/language/misc-lang.el \ + $(lispsource)/language/utf-8-lang.el \ + $(lispsource)/language/georgian.el \ + $(lispsource)/language/khmer.el \ + $(lispsource)/language/burmese.el \ + $(lispsource)/language/cham.el \ + $(lispsource)/indent.elc \ + $(lispsource)/window.elc \ + $(lispsource)/frame.elc \ + $(lispsource)/term/tty-colors.elc \ + $(lispsource)/font-core.elc \ + $(lispsource)/facemenu.elc \ + $(lispsource)/emacs-lisp/syntax.elc \ + $(lispsource)/font-lock.elc \ + $(lispsource)/jit-lock.elc \ + $(lispsource)/mouse.elc \ + $(lispsource)/scroll-bar.elc \ + $(lispsource)/select.elc \ + $(lispsource)/emacs-lisp/timer.elc \ + $(lispsource)/isearch.elc \ + $(lispsource)/rfn-eshadow.elc \ + $(lispsource)/menu-bar.elc \ + $(lispsource)/paths.el \ + $(lispsource)/emacs-lisp/lisp.elc \ + $(lispsource)/textmodes/page.elc \ + $(lispsource)/register.elc \ + $(lispsource)/textmodes/paragraphs.elc \ + $(lispsource)/emacs-lisp/lisp-mode.elc \ + $(lispsource)/textmodes/text-mode.elc \ + $(lispsource)/textmodes/fill.elc \ + $(lispsource)/replace.elc \ + $(lispsource)/buff-menu.elc \ + $(lispsource)/fringe.elc \ + $(lispsource)/image.elc \ + $(lispsource)/international/fontset.elc \ + $(lispsource)/dnd.elc \ + $(lispsource)/tool-bar.elc \ + $(lispsource)/dynamic-setting.elc \ + $(lispsource)/x-dnd.elc \ + $(lispsource)/term/common-win.elc \ + $(lispsource)/term/x-win.elc \ + $(lispsource)/w32-vars.elc \ + $(lispsource)/term/w32-win.elc \ + $(lispsource)/ls-lisp.elc \ + $(lispsource)/disp-table.elc \ + $(lispsource)/dos-w32.elc \ + $(lispsource)/w32-fns.elc \ + $(lispsource)/dos-fns.elc \ + $(lispsource)/dos-vars.elc \ + $(lispsource)/term/pc-win.elc \ + $(lispsource)/term/internal.elc \ + $(lispsource)/term/ns-win.elc \ + $(lispsource)/mwheel.elc \ + $(lispsource)/emacs-lisp/float-sup.elc \ + $(lispsource)/vc/vc-hooks.elc \ + $(lispsource)/vc/ediff-hook.elc \ + $(lispsource)/tooltip.elc + + +### lisp.mk ends here