# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
# Copyright (C) 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
AUTOGENEL = $(lisp)/loaddefs.el $(LOADDEFS) $(lisp)/cus-load.el \
$(lisp)/finder-inf.el $(lisp)/subdirs.el $(lisp)/eshell/esh-groups.el \
- $(lisp)/calc/calc-loaddefs.el
+ $(lisp)/calc/calc-loaddefs.el $(lisp)/nxml/subdirs.el
# Files to compile before others during a bootstrap. This is done to
# speed up the bootstrap process. The CC files are compiled first
doit:
+cus-load.el-SH:
+ echo ";;; cus-load.el --- automatically extracted custom dependencies" > $@
+ echo ";;" >> $@; echo ";;; Code:" >> $@
+ echo "\f" >> $@
+ echo ";; Local Variables:" >> $@
+ echo ";; version-control: never" >> $@
+ echo ";; no-byte-compile: t" >> $@
+ echo ";; no-update-autoloads: t" >> $@
+ echo ";; End:" >> $@
+
+cus-load.el-CMD:
+ echo ;;; cus-load.el --- automatically extracted custom dependencies> $@
+ echo ;;>> $@
+ echo ;;; Code:>> $@
+ echo.\f>> $@
+ echo ;; Local Variables:>> $@
+ echo ;; version-control: never>> $@
+ echo ;; no-byte-compile: t>> $@
+ echo ;; no-update-autoloads: t>> $@
+ echo ;; End:>> $@
+
$(lisp)/cus-load.el:
- touch $@
+ $(MAKE) $(MFLAGS) cus-load.el-$(SHELLTYPE)
+ mv cus-load.el-$(SHELLTYPE) $@
+
# WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
# this can break with GNU Make 3.81 and later if sh.exe is used.
custom-deps: $(lisp)/cus-load.el $(lisp)/loaddefs.el doit
compile-after-backup: backup-compiled-files compile-always
+compile-first: $(lisp)/emacs-lisp/bytecomp.elc $(lisp)/emacs-lisp/byte-opt.elc \
+ $(lisp)/emacs-lisp/autoload.elc
+
# Recompile all Lisp files which are newer than their .elc files.
# Note that this doesn't create .elc files. It only recompiles if an
# .elc is present.
# WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
# this can break with GNU Make 3.81 and later if sh.exe is used.
-recompile: mh-autoloads doit $(lisp)/progmodes/cc-mode.elc
+recompile: compile-first autoloads doit $(lisp)/progmodes/cc-mode.elc
$(emacs) --eval $(ARGQUOTE)(batch-byte-recompile-directory 0)$(ARGQUOTE) $(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) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $(lisp)/progmodes/cc-mode.el
-
$(lisp)/calendar/cal-loaddefs.el:
"$(EMACS)" $(EMACSOPT) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \
# precious files if it happens to match their short 8+3 aliases.
clean:
- $(DEL) *.el~
+ - $(DEL) calc/calc-loaddefs.el~
+ - $(DEL) eshell/esh-groups.el~
-distclean:
+distclean: clean
- $(DEL) $(lisp)/Makefile
maintainer-clean: bootstrap-clean distclean
- $(DEL) $(AUTOGENEL)
+
+# Dependencies
+
+# CC Mode uses a compile time macro system which causes a compile time
+# dependency in cc-*.elc files on the macros in other cc-*.el and the
+# version string in cc-defs.el.
+$(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-awk.elc\
+ $(lisp)/progmodes/cc-cmds.elc $(lisp)/progmodes/cc-compat.elc\
+ $(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-fonts.elc\
+ $(lisp)/progmodes/cc-langs.elc $(lisp)/progmodes/cc-menus.elc\
+ $(lisp)/progmodes/cc-mode.elc $(lisp)/progmodes/cc-styles.elc\
+ $(lisp)/progmodes/cc-subword.elc $(lisp)/progmodes/cc-vars.elc: \
+ $(lisp)/progmodes/cc-bytecomp.elc $(lisp)/progmodes/cc-defs.elc
+
+$(lisp)/progmodes/cc-align.elc: \
+ $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc
+
+$(lisp)/progmodes/cc-cmds.elc: \
+ $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc
+
+$(lisp)/progmodes/cc-compat.elc: \
+ $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-styles.elc \
+ $(lisp)/progmodes/cc-engine.elc
+
+$(lisp)/progmodes/cc-defs.elc: $(lisp)/progmodes/cc-bytecomp.elc \
+ $(lisp)/emacs-lisp/cl.elc $(lisp)/emacs-lisp/regexp-opt.elc
+
+$(lisp)/progmodes/cc-engine.elc: $(lisp)/progmodes/cc-langs.elc \
+ $(lisp)/progmodes/cc-vars.elc
+
+$(lisp)/progmodes/cc-fonts.elc: $(lisp)/progmodes/cc-langs.elc \
+ $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \
+ $(lisp)/font-lock.elc
+
+$(lisp)/progmodes/cc-langs.elc: $(lisp)/progmodes/cc-vars.elc \
+ $(lisp)/emacs-lisp/cl.elc
+
+$(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \
+ $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \
+ $(lisp)/progmodes/cc-styles.elc $(lisp)/progmodes/cc-cmds.elc \
+ $(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-menus.elc
+
+$(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \
+ $(lisp)/progmodes/cc-align.elc
+
+$(lisp)/progmodes/cc-subword.elc: $(lisp)/progmodes/cc-cmds.elc
+
+$(lisp)/progmodes/cc-vars.elc: $(lisp)/custom.elc $(lisp)/widget.elc
+
+# MH-E dependencies, mainly to prevent failures with parallel
+# compilation, due to race conditions between writing a given FOO.elc
+# file and another file being compiled that says "(require FOO)",
+# which causes Emacs to try to read FOO.elc.
+MH_E_DIR = ./mh-e
+$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc\
+ $(MH_E_DIR)/mh-funcs.elc $(MH_E_DIR)/mh-identity.elc $(MH_E_DIR)/mh-inc.elc\
+ $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-limit.elc\
+ $(MH_E_DIR)/mh-mime.elc $(MH_E_DIR)/mh-print.elc $(MH_E_DIR)/mh-scan.elc\
+ $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\
+ $(MH_E_DIR)/mh-speed.elc $(MH_E_DIR)/mh-thread.elc $(MH_E_DIR)/mh-tool-bar.elc\
+ $(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\
+ $(MH_E_DIR)/mh-e.elc
+
+$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-e.elc $(MH_E_DIR)/mh-folder.elc\
+ $(MH_E_DIR)/mh-inc.elc $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc\
+ $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-speed.elc\
+ $(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\
+ $(lisp)/emacs-lisp/cl.elc
+
+$(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-funcs.elc\
+ $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc $(MH_E_DIR)/mh-print.elc\
+ $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-thread.elc:\
+ $(MH_E_DIR)/mh-scan.elc
+
+$(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-mime.elc\
+ $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-speed.elc:\
+ $(lisp)/gnus/gnus-util.elc
+
+$(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-search.elc:\
+ $(lisp)/progmodes/which-func.elc
+
+$(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\
+ $(MH_E_DIR)/mh-utils.elc:\
+ $(lisp)/font-lock.elc
+
+$(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-show.elc: $(lisp)/net/goto-addr.elc
+
+$(MH_E_DIR)/mh-comp.elc: $(lisp)/mail/sendmail.elc
+
+$(MH_E_DIR)/mh-e.elc: $(MH_E_DIR)/mh-buffers.elc $(lisp)/gnus/gnus.elc \
+ $(lisp)/cus-face.elc
+
+$(MH_E_DIR)/mh-letter.elc: $(lisp)/gnus/mailcap.elc $(lisp)/gnus/mm-decode.elc \
+ $(lisp)/gnus/mm-view.elc $(lisp)/gnus/mml.elc $(lisp)/gnus/message.elc
+
+$(MH_E_DIR)/mh-print.elc: $(lisp)/ps-print.elc
+
+$(MH_E_DIR)/mh-search.elc: $(lisp)/imenu.elc
+
+$(MH_E_DIR)/mh-show.elc: $(lisp)/gnus/gnus-cite.elc
+
+$(MH_E_DIR)/mh-speed.elc: $(lisp)/speedbar.elc $(lisp)/emacs-lisp/timer.elc
+
+$(MH_E_DIR)/mh-tool-bar.elc: $(lisp)/tool-bar.elc