| 1 | ### @configure_input@ |
| 2 | |
| 3 | # Copyright (C) 2000-2013 Free Software Foundation, Inc. |
| 4 | |
| 5 | # This file is part of GNU Emacs. |
| 6 | |
| 7 | # GNU Emacs is free software: you can redistribute it and/or modify |
| 8 | # it under the terms of the GNU General Public License as published by |
| 9 | # the Free Software Foundation, either version 3 of the License, or |
| 10 | # (at your option) any later version. |
| 11 | |
| 12 | # GNU Emacs is distributed in the hope that it will be useful, |
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 | # GNU General Public License for more details. |
| 16 | |
| 17 | # You should have received a copy of the GNU General Public License |
| 18 | # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 19 | |
| 20 | SHELL = @SHELL@ |
| 21 | |
| 22 | srcdir = @srcdir@ |
| 23 | abs_srcdir = @abs_srcdir@ |
| 24 | top_srcdir = @top_srcdir@ |
| 25 | abs_top_srcdir = @abs_top_srcdir@ |
| 26 | abs_top_builddir = @abs_top_builddir@ |
| 27 | abs_lisp = $(abs_srcdir) |
| 28 | lisp = $(srcdir) |
| 29 | VPATH = $(srcdir) |
| 30 | |
| 31 | # Empty for all systems except MinGW, where xargs needs an explicit |
| 32 | # limitation. |
| 33 | XARGS_LIMIT = @XARGS_LIMIT@ |
| 34 | |
| 35 | # You can specify a different executable on the make command line, |
| 36 | # e.g. "make EMACS=../src/emacs ...". |
| 37 | |
| 38 | # We sometimes change directory before running Emacs (typically when |
| 39 | # building out-of-tree, we chdir to the source directory), so we need |
| 40 | # to use an absolute file name. |
| 41 | EMACS = ${abs_top_builddir}/src/emacs |
| 42 | |
| 43 | # Command line flags for Emacs. |
| 44 | |
| 45 | EMACSOPT = -batch --no-site-file --no-site-lisp |
| 46 | |
| 47 | # Extra flags to pass to the byte compiler |
| 48 | BYTE_COMPILE_EXTRA_FLAGS = |
| 49 | # For example to not display the undefined function warnings you can use this: |
| 50 | # BYTE_COMPILE_EXTRA_FLAGS = --eval '(setq byte-compile-warnings (quote (not unresolved)))' |
| 51 | # The example above is just for developers, it should not be used by default. |
| 52 | |
| 53 | lisptagsfiles1 = $(lisp)/*.el |
| 54 | lisptagsfiles2 = $(lisp)/*/*.el |
| 55 | lisptagsfiles3 = $(lisp)/*/*/*.el |
| 56 | lisptagsfiles4 = $(lisp)/*/*/*/*.el |
| 57 | ETAGS = ../lib-src/etags |
| 58 | |
| 59 | # Automatically generated autoload files, apart from lisp/loaddefs.el. |
| 60 | # Note this includes only those files that need special rules to |
| 61 | # build; ie it does not need to include things created via |
| 62 | # generated-autoload-file (eg calc/calc-loaddefs.el). |
| 63 | LOADDEFS = $(lisp)/calendar/cal-loaddefs.el \ |
| 64 | $(lisp)/calendar/diary-loaddefs.el \ |
| 65 | $(lisp)/calendar/hol-loaddefs.el \ |
| 66 | $(lisp)/mh-e/mh-loaddefs.el \ |
| 67 | $(lisp)/net/tramp-loaddefs.el |
| 68 | |
| 69 | # Elisp files auto-generated. |
| 70 | AUTOGENEL = loaddefs.el \ |
| 71 | $(LOADDEFS) \ |
| 72 | cus-load.el \ |
| 73 | finder-inf.el \ |
| 74 | subdirs.el \ |
| 75 | emacs-lisp/cl-loaddefs.el \ |
| 76 | calc/calc-loaddefs.el \ |
| 77 | eshell/esh-groups.el \ |
| 78 | cedet/semantic/loaddefs.el \ |
| 79 | cedet/ede/loaddefs.el \ |
| 80 | cedet/srecode/loaddefs.el |
| 81 | |
| 82 | # Versioned files that are the value of someone's `generated-autoload-file'. |
| 83 | # Note that update_loaddefs parses this. |
| 84 | AUTOGEN_VCS = \ |
| 85 | ps-print.el \ |
| 86 | emulation/tpu-edt.el \ |
| 87 | mail/rmail.el \ |
| 88 | dired.el \ |
| 89 | ibuffer.el \ |
| 90 | htmlfontify.el \ |
| 91 | emacs-lisp/eieio.el |
| 92 | |
| 93 | # Value of max-lisp-eval-depth when compiling initially. |
| 94 | # During bootstrapping the byte-compiler is run interpreted when compiling |
| 95 | # itself, and uses more stack than usual. |
| 96 | # |
| 97 | BIG_STACK_DEPTH = 2200 |
| 98 | BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))" |
| 99 | |
| 100 | BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS) |
| 101 | |
| 102 | # Files to compile before others during a bootstrap. This is done to |
| 103 | # speed up the bootstrap process. They're ordered by size, so we use |
| 104 | # the slowest-compiler on the smallest file and move to larger files as the |
| 105 | # compiler gets faster. `autoload.elc' comes last because it is not used by |
| 106 | # the compiler (so its compilation does not speed up subsequent compilations), |
| 107 | # it's only placed here so as to speed up generation of the loaddefs.el file. |
| 108 | |
| 109 | COMPILE_FIRST = \ |
| 110 | $(lisp)/emacs-lisp/macroexp.elc \ |
| 111 | $(lisp)/emacs-lisp/cconv.elc \ |
| 112 | $(lisp)/emacs-lisp/byte-opt.elc \ |
| 113 | $(lisp)/emacs-lisp/bytecomp.elc \ |
| 114 | $(lisp)/emacs-lisp/autoload.elc |
| 115 | |
| 116 | # The actual Emacs command run in the targets below. |
| 117 | |
| 118 | emacs = EMACSLOADPATH="$(abs_lisp)" LC_ALL=C "$(EMACS)" $(EMACSOPT) |
| 119 | |
| 120 | # Common command to find subdirectories |
| 121 | setwins=subdirs=`find . -type d -print`; \ |
| 122 | for file in $$subdirs; do \ |
| 123 | case $$file in */.* | */.*/* | */=* ) ;; \ |
| 124 | *) wins="$$wins$${wins:+ }$$file" ;; \ |
| 125 | esac; \ |
| 126 | done |
| 127 | |
| 128 | # Find all subdirectories except `obsolete' and `term'. |
| 129 | setwins_almost=subdirs=`find . -type d -print`; \ |
| 130 | for file in $$subdirs; do \ |
| 131 | case $$file in */.* | */.*/* | */=* | */obsolete | */term ) ;; \ |
| 132 | *) wins="$$wins$${wins:+ }$$file" ;; \ |
| 133 | esac; \ |
| 134 | done |
| 135 | |
| 136 | # Find all subdirectories in which we might want to create subdirs.el |
| 137 | setwins_for_subdirs=subdirs=`find . -type d -print`; \ |
| 138 | for file in $$subdirs; do \ |
| 139 | case $$file in */.* | */.*/* | */=* | */cedet* ) ;; \ |
| 140 | *) wins="$$wins$${wins:+ }$$file" ;; \ |
| 141 | esac; \ |
| 142 | done |
| 143 | |
| 144 | # cus-load and finder-inf are not explicitly requested by anything, so |
| 145 | # we add them here to make sure they get built. |
| 146 | all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el |
| 147 | |
| 148 | doit: |
| 149 | |
| 150 | .PHONY: all doit custom-deps finder-data autoloads update-subdirs |
| 151 | |
| 152 | # custom-deps and finder-data both used to scan _all_ the *.el files. |
| 153 | # This could lead to problems in parallel builds if automatically |
| 154 | # generated *.el files (eg loaddefs etc) were being changed at the same time. |
| 155 | # One solution was to add autoloads as a prerequisite: |
| 156 | # http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-01/msg00469.html |
| 157 | # http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-12/msg00171.html |
| 158 | # However, this meant that running these targets modified loaddefs.el, |
| 159 | # every time (due to time-stamping). Calling these rules from |
| 160 | # bootstrap-after would modify loaddefs after src/emacs, resulting |
| 161 | # in make install remaking src/emacs for no real reason: |
| 162 | # http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg00311.html |
| 163 | # Nowadays these commands don't scan automatically generated files, |
| 164 | # since they will never contain any useful information |
| 165 | # (see finder-no-scan-regexp and custom-dependencies-no-scan-regexp). |
| 166 | $(lisp)/cus-load.el: |
| 167 | $(MAKE) $(MFLAGS) custom-deps |
| 168 | custom-deps: doit |
| 169 | cd $(lisp); $(setwins_almost); \ |
| 170 | echo Directories: $$wins; \ |
| 171 | $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file (unmsys--file-name "$(abs_lisp)/cus-load.el"))' -f custom-make-dependencies $$wins |
| 172 | |
| 173 | $(lisp)/finder-inf.el: |
| 174 | $(MAKE) $(MFLAGS) finder-data |
| 175 | finder-data: doit |
| 176 | cd $(lisp); $(setwins_almost); \ |
| 177 | echo Directories: $$wins; \ |
| 178 | $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(abs_lisp)/finder-inf.el"))' -f finder-compile-keywords-make-dist $$wins |
| 179 | |
| 180 | # The chmod +w is to handle env var CVSREAD=1. |
| 181 | autoloads: $(LOADDEFS) doit |
| 182 | cd $(lisp) && chmod +w $(AUTOGEN_VCS) |
| 183 | cd $(lisp); $(setwins_almost); \ |
| 184 | echo Directories: $$wins; \ |
| 185 | $(emacs) -l autoload \ |
| 186 | --eval '(setq autoload-builtin-package-versions t)' \ |
| 187 | --eval '(setq generated-autoload-file (unmsys--file-name "$(abs_lisp)/loaddefs.el"))' \ |
| 188 | -f batch-update-autoloads $$wins |
| 189 | |
| 190 | # This is required by the bootstrap-emacs target in ../src/Makefile, so |
| 191 | # we know that if we have an emacs executable, we also have a subdirs.el. |
| 192 | $(lisp)/subdirs.el: |
| 193 | $(MAKE) $(MFLAGS) update-subdirs |
| 194 | update-subdirs: doit |
| 195 | cd $(lisp); $(setwins_for_subdirs); \ |
| 196 | for file in $$wins; do \ |
| 197 | $(abs_top_srcdir)/build-aux/update-subdirs $$file; \ |
| 198 | done; |
| 199 | |
| 200 | .PHONY: updates bzr-update update-authors |
| 201 | |
| 202 | # Some modes of make-dist use this. |
| 203 | updates: update-subdirs autoloads finder-data custom-deps |
| 204 | |
| 205 | # This is useful after "bzr up"; but it doesn't do anything that a |
| 206 | # plain "make" at top-level doesn't. |
| 207 | # The only difference between this and this directory's "all" rule |
| 208 | # is that this runs "autoloads" as well (because it uses "compile" |
| 209 | # rather than "compile-main"). In a bootstrap, $(lisp) in src/Makefile |
| 210 | # triggers this directory's autoloads rule. |
| 211 | bzr-update: compile finder-data custom-deps |
| 212 | |
| 213 | # Update the AUTHORS file. |
| 214 | |
| 215 | update-authors: |
| 216 | $(emacs) -l authors -f batch-update-authors $(top_srcdir)/etc/AUTHORS $(top_srcdir) |
| 217 | |
| 218 | TAGS TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) |
| 219 | rm -f $@; touch $@; \ |
| 220 | echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | sed -e "s,$(lisp)/[^ ]*loaddefs[^ ]*,," -e "s,$(lisp)/ldefs-boot[^ ]*,," | \ |
| 221 | xargs $(XARGS_LIMIT) ${ETAGS} -a -o $@ |
| 222 | |
| 223 | # The src/Makefile.in has its own set of dependencies and when they decide |
| 224 | # that one Lisp file needs to be re-compiled, we had better recompile it as |
| 225 | # well, otherwise every subsequent make will again call us, until we finally |
| 226 | # end up deciding that yes, the file deserves recompilation. |
| 227 | # One option is to try and reproduce exactly the same dependencies here as |
| 228 | # we have in src/Makefile.in, but it turns out to be painful |
| 229 | # (e.g. src/Makefile.in may have a dependency for ../lisp/foo.elc where we |
| 230 | # only know of $(lisp)/foo.elc). So instead we provide a direct way for |
| 231 | # src/Makefile.in to rebuild a particular Lisp file, no questions asked. |
| 232 | # Use byte-compile-refresh-preloaded to try and work around some of |
| 233 | # the most common problems of not bootstrapping from a clean state. |
| 234 | .PHONY: compile-onefile |
| 235 | compile-onefile: |
| 236 | @echo Compiling $(THEFILE) |
| 237 | @# Use byte-compile-refresh-preloaded to try and work around some of |
| 238 | @# the most common bootstrapping problems. |
| 239 | @$(emacs) $(BYTE_COMPILE_FLAGS) \ |
| 240 | -l bytecomp -f byte-compile-refresh-preloaded \ |
| 241 | -f batch-byte-compile $(THEFILE) |
| 242 | |
| 243 | # Files MUST be compiled one by one. If we compile several files in a |
| 244 | # row (i.e., in the same instance of Emacs) we can't make sure that |
| 245 | # the compilation environment is clean. We also set the load-path of |
| 246 | # the Emacs used for compilation to the current directory and its |
| 247 | # subdirectories, to make sure require's and load's in the files being |
| 248 | # compiled find the right files. |
| 249 | |
| 250 | .SUFFIXES: .elc .el |
| 251 | |
| 252 | # An old-fashioned suffix rule, which, according to the GNU Make manual, |
| 253 | # cannot have prerequisites. |
| 254 | .el.elc: |
| 255 | @echo Compiling $< |
| 256 | @# The BIG_STACK_OPTS are only needed to byte-compile the byte-compiler |
| 257 | @# files, which is normally done in compile-first, but may also be |
| 258 | @# recompiled via this rule. |
| 259 | @$(emacs) $(BYTE_COMPILE_FLAGS) \ |
| 260 | -f batch-byte-compile $< |
| 261 | |
| 262 | .PHONY: compile-first compile-main compile compile-always |
| 263 | |
| 264 | compile-first: $(COMPILE_FIRST) |
| 265 | |
| 266 | # In `compile-main' we could directly do |
| 267 | # ... | xargs $(MAKE) $(MFLAGS) EMACS="$(EMACS)" |
| 268 | # and it works, but it generates a lot of messages like |
| 269 | # make[2]: « gnus/gnus-mlspl.elc » is up to date. |
| 270 | # so instead, we use "xargs echo" to split the list of file into manageable |
| 271 | # chunks and then use an intermediate `compile-targets' target so the |
| 272 | # actual targets (the .elc files) are not mentioned as targets on the |
| 273 | # make command line. |
| 274 | |
| 275 | |
| 276 | .PHONY: compile-targets |
| 277 | # TARGETS is set dynamically in the recursive call from `compile-main'. |
| 278 | compile-targets: $(TARGETS) |
| 279 | |
| 280 | # Compile all the Elisp files that need it. Beware: it approximates |
| 281 | # `no-byte-compile', so watch out for false-positives! |
| 282 | compile-main: compile-clean |
| 283 | @(cd $(lisp); $(setwins); \ |
| 284 | els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ |
| 285 | for el in $$els; do \ |
| 286 | test -f $$el || continue; \ |
| 287 | test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \ |
| 288 | echo "$${el}c"; \ |
| 289 | done | xargs $(XARGS_LIMIT) echo) | \ |
| 290 | while read chunk; do \ |
| 291 | $(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \ |
| 292 | done |
| 293 | |
| 294 | .PHONY: compile-clean |
| 295 | # Erase left-over .elc files that do not have a corresponding .el file. |
| 296 | compile-clean: |
| 297 | @cd $(lisp); $(setwins); \ |
| 298 | elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \ |
| 299 | for el in `echo $$elcs | sed -e 's/\.elc/\.el/g'`; do \ |
| 300 | if test -f "$$el" -o \! -f "$${el}c"; then :; else \ |
| 301 | echo rm "$${el}c"; \ |
| 302 | rm "$${el}c"; \ |
| 303 | fi \ |
| 304 | done |
| 305 | |
| 306 | # Compile all Lisp files, but don't recompile those that are up to |
| 307 | # date. Some .el files don't get compiled because they set the |
| 308 | # local variable no-byte-compile. |
| 309 | # Calling make recursively because suffix rule cannot have prerequisites. |
| 310 | # Explicitly pass EMACS (sometimes ../src/bootstrap-emacs) to those |
| 311 | # sub-makes that run rules that use it, for the sake of some non-GNU makes. |
| 312 | compile: $(LOADDEFS) autoloads compile-first |
| 313 | $(MAKE) $(MFLAGS) compile-main EMACS="$(EMACS)" |
| 314 | |
| 315 | # Compile all Lisp files. This is like `compile' but compiles files |
| 316 | # unconditionally. Some files don't actually get compiled because they |
| 317 | # set the local variable no-byte-compile. |
| 318 | compile-always: doit |
| 319 | cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc |
| 320 | $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" |
| 321 | |
| 322 | .PHONY: compile-calc backup-compiled-files compile-after-backup |
| 323 | |
| 324 | compile-calc: |
| 325 | for el in $(lisp)/calc/*.el; do \ |
| 326 | echo Compiling $$el; \ |
| 327 | $(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $$el || exit 1;\ |
| 328 | done |
| 329 | |
| 330 | # Backup compiled Lisp files in elc.tar.gz. If that file already |
| 331 | # exists, make a backup of it. |
| 332 | |
| 333 | backup-compiled-files: |
| 334 | -mv $(lisp)/elc.tar.gz $(lisp)/elc.tar.gz~ |
| 335 | -tar czf $(lisp)/elc.tar.gz $(lisp)/*.elc $(lisp)/*/*.elc $(lisp)/*/*/*.elc $(lisp)/*/*/*/*.elc |
| 336 | |
| 337 | # Compile Lisp files, but save old compiled files first. |
| 338 | |
| 339 | compile-after-backup: backup-compiled-files compile-always |
| 340 | |
| 341 | # This does the same job as the "compile" rule, but in a different way. |
| 342 | # Rather than spawning a separate Emacs instance to compile each file, |
| 343 | # it uses the same Emacs instance to compile everything. |
| 344 | # This is faster on a single core, since it avoids the overhead of |
| 345 | # starting Emacs many times (it was 33% faster on a test with a |
| 346 | # random 10% of the .el files needing recompilation). |
| 347 | # Unlike compile, this is not parallelizable; so if you have more than |
| 348 | # one core and use make -j#, compile will be (much) faster. |
| 349 | # This rule also produces less accurate compilation warnings. |
| 350 | # The environment of later files is affected by definitions in |
| 351 | # earlier ones, so it does not produce some warnings that it should. |
| 352 | # It can also produces spurious warnings about "invalid byte code" if |
| 353 | # files that use byte-compile-dynamic are updated. |
| 354 | # There is no reason to use this rule unless you only have a single |
| 355 | # core and CPU time is an issue. |
| 356 | .PHONY: compile-one-process |
| 357 | compile-one-process: doit $(LOADDEFS) compile-first $(lisp)/progmodes/cc-mode.elc |
| 358 | $(emacs) $(BYTE_COMPILE_FLAGS) \ |
| 359 | --eval "(batch-byte-recompile-directory 0)" $(lisp) |
| 360 | |
| 361 | # Update MH-E internal autoloads. These are not to be confused with |
| 362 | # the autoloads for the MH-E entry points, which are already in loaddefs.el. |
| 363 | MH_E_DIR = $(lisp)/mh-e |
| 364 | ## MH_E_SRC avoids a circular dependency warning for mh-loaddefs.el. |
| 365 | MH_E_SRC = $(MH_E_DIR)/mh-acros.el $(MH_E_DIR)/mh-alias.el \ |
| 366 | $(MH_E_DIR)/mh-buffers.el $(MH_E_DIR)/mh-compat.el \ |
| 367 | $(MH_E_DIR)/mh-comp.el $(MH_E_DIR)/mh-e.el \ |
| 368 | $(MH_E_DIR)/mh-folder.el $(MH_E_DIR)/mh-funcs.el \ |
| 369 | $(MH_E_DIR)/mh-gnus.el $(MH_E_DIR)/mh-identity.el \ |
| 370 | $(MH_E_DIR)/mh-inc.el $(MH_E_DIR)/mh-junk.el \ |
| 371 | $(MH_E_DIR)/mh-letter.el $(MH_E_DIR)/mh-limit.el \ |
| 372 | $(MH_E_DIR)/mh-mime.el $(MH_E_DIR)/mh-print.el \ |
| 373 | $(MH_E_DIR)/mh-scan.el $(MH_E_DIR)/mh-search.el \ |
| 374 | $(MH_E_DIR)/mh-seq.el $(MH_E_DIR)/mh-show.el \ |
| 375 | $(MH_E_DIR)/mh-speed.el $(MH_E_DIR)/mh-thread.el \ |
| 376 | $(MH_E_DIR)/mh-tool-bar.el $(MH_E_DIR)/mh-utils.el \ |
| 377 | $(MH_E_DIR)/mh-xface.el |
| 378 | |
| 379 | .PHONY: mh-autoloads |
| 380 | mh-autoloads: $(MH_E_DIR)/mh-loaddefs.el |
| 381 | $(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC) |
| 382 | $(emacs) -l autoload \ |
| 383 | --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ |
| 384 | --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ |
| 385 | --eval "(setq make-backup-files nil)" \ |
| 386 | -f batch-update-autoloads $(MH_E_DIR) |
| 387 | |
| 388 | # Update TRAMP internal autoloads. Maybe we could move tramp*.el into |
| 389 | # an own subdirectory. OTOH, it does not hurt to keep them in |
| 390 | # lisp/net. |
| 391 | TRAMP_DIR = $(lisp)/net |
| 392 | TRAMP_SRC = $(TRAMP_DIR)/tramp.el $(TRAMP_DIR)/tramp-adb.el \ |
| 393 | $(TRAMP_DIR)/tramp-cache.el $(TRAMP_DIR)/tramp-cmds.el \ |
| 394 | $(TRAMP_DIR)/tramp-compat.el $(TRAMP_DIR)/tramp-ftp.el \ |
| 395 | $(TRAMP_DIR)/tramp-gvfs.el $(TRAMP_DIR)/tramp-gw.el \ |
| 396 | $(TRAMP_DIR)/tramp-sh.el $(TRAMP_DIR)/tramp-smb.el \ |
| 397 | $(TRAMP_DIR)/tramp-uu.el $(TRAMP_DIR)/trampver.el |
| 398 | |
| 399 | $(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) |
| 400 | $(emacs) -l autoload \ |
| 401 | --eval "(setq generate-autoload-cookie \";;;###tramp-autoload\")" \ |
| 402 | --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ |
| 403 | --eval "(setq make-backup-files nil)" \ |
| 404 | -f batch-update-autoloads $(TRAMP_DIR) |
| 405 | |
| 406 | CAL_DIR = $(lisp)/calendar |
| 407 | ## Those files that may contain internal calendar autoload cookies. |
| 408 | ## Avoids circular dependency warning for *-loaddefs.el. |
| 409 | CAL_SRC = $(CAL_DIR)/cal-bahai.el $(CAL_DIR)/cal-china.el \ |
| 410 | $(CAL_DIR)/cal-coptic.el $(CAL_DIR)/cal-dst.el \ |
| 411 | $(CAL_DIR)/cal-french.el $(CAL_DIR)/cal-hebrew.el \ |
| 412 | $(CAL_DIR)/cal-html.el $(CAL_DIR)/cal-islam.el \ |
| 413 | $(CAL_DIR)/cal-iso.el $(CAL_DIR)/cal-julian.el \ |
| 414 | $(CAL_DIR)/cal-mayan.el $(CAL_DIR)/cal-menu.el \ |
| 415 | $(CAL_DIR)/cal-move.el $(CAL_DIR)/cal-persia.el \ |
| 416 | $(CAL_DIR)/cal-tex.el $(CAL_DIR)/cal-x.el \ |
| 417 | $(CAL_DIR)/calendar.el $(CAL_DIR)/diary-lib.el \ |
| 418 | $(CAL_DIR)/holidays.el $(CAL_DIR)/lunar.el \ |
| 419 | $(CAL_DIR)/solar.el |
| 420 | |
| 421 | $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC) |
| 422 | $(emacs) -l autoload \ |
| 423 | --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \ |
| 424 | --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ |
| 425 | --eval "(setq make-backup-files nil)" \ |
| 426 | -f batch-update-autoloads $(CAL_DIR) |
| 427 | |
| 428 | $(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) |
| 429 | $(emacs) -l autoload \ |
| 430 | --eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \ |
| 431 | --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ |
| 432 | --eval "(setq make-backup-files nil)" \ |
| 433 | -f batch-update-autoloads $(CAL_DIR) |
| 434 | |
| 435 | $(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) |
| 436 | $(emacs) -l autoload \ |
| 437 | --eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \ |
| 438 | --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ |
| 439 | --eval "(setq make-backup-files nil)" \ |
| 440 | -f batch-update-autoloads $(CAL_DIR) |
| 441 | |
| 442 | .PHONY: bootstrap-clean distclean maintainer-clean |
| 443 | |
| 444 | bootstrap-clean: |
| 445 | cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc $(AUTOGENEL) |
| 446 | |
| 447 | distclean: |
| 448 | -rm -f ./Makefile $(lisp)/loaddefs.el~ |
| 449 | |
| 450 | maintainer-clean: distclean bootstrap-clean |
| 451 | |
| 452 | .PHONY: check-declare |
| 453 | |
| 454 | check-declare: |
| 455 | $(emacs) -l $(lisp)/emacs-lisp/check-declare \ |
| 456 | --eval '(check-declare-directory "$(lisp)")' |
| 457 | |
| 458 | # Dependencies |
| 459 | |
| 460 | # CC Mode uses a compile time macro system which causes a compile time |
| 461 | # dependency in cc-*.elc files on the macros in other cc-*.el and the |
| 462 | # version string in cc-defs.el. |
| 463 | $(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-awk.elc\ |
| 464 | $(lisp)/progmodes/cc-cmds.elc $(lisp)/progmodes/cc-compat.elc\ |
| 465 | $(lisp)/progmodes/cc-engine.elc $(lisp)/progmodes/cc-fonts.elc\ |
| 466 | $(lisp)/progmodes/cc-langs.elc $(lisp)/progmodes/cc-menus.elc\ |
| 467 | $(lisp)/progmodes/cc-mode.elc $(lisp)/progmodes/cc-styles.elc\ |
| 468 | $(lisp)/progmodes/cc-vars.elc: \ |
| 469 | $(lisp)/progmodes/cc-bytecomp.elc $(lisp)/progmodes/cc-defs.elc |
| 470 | |
| 471 | $(lisp)/progmodes/cc-align.elc: \ |
| 472 | $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc |
| 473 | |
| 474 | $(lisp)/progmodes/cc-cmds.elc: \ |
| 475 | $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc |
| 476 | |
| 477 | $(lisp)/progmodes/cc-compat.elc: \ |
| 478 | $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-styles.elc \ |
| 479 | $(lisp)/progmodes/cc-engine.elc |
| 480 | |
| 481 | $(lisp)/progmodes/cc-defs.elc: $(lisp)/progmodes/cc-bytecomp.elc \ |
| 482 | $(lisp)/emacs-lisp/cl.elc $(lisp)/emacs-lisp/regexp-opt.elc |
| 483 | |
| 484 | $(lisp)/progmodes/cc-engine.elc: $(lisp)/progmodes/cc-langs.elc \ |
| 485 | $(lisp)/progmodes/cc-vars.elc |
| 486 | |
| 487 | $(lisp)/progmodes/cc-fonts.elc: $(lisp)/progmodes/cc-langs.elc \ |
| 488 | $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \ |
| 489 | $(lisp)/font-lock.elc |
| 490 | |
| 491 | $(lisp)/progmodes/cc-langs.elc: $(lisp)/progmodes/cc-vars.elc \ |
| 492 | $(lisp)/emacs-lisp/cl.elc |
| 493 | |
| 494 | $(lisp)/progmodes/cc-mode.elc: $(lisp)/progmodes/cc-langs.elc \ |
| 495 | $(lisp)/progmodes/cc-vars.elc $(lisp)/progmodes/cc-engine.elc \ |
| 496 | $(lisp)/progmodes/cc-styles.elc $(lisp)/progmodes/cc-cmds.elc \ |
| 497 | $(lisp)/progmodes/cc-align.elc $(lisp)/progmodes/cc-menus.elc |
| 498 | |
| 499 | $(lisp)/progmodes/cc-styles.elc: $(lisp)/progmodes/cc-vars.elc \ |
| 500 | $(lisp)/progmodes/cc-align.elc |
| 501 | |
| 502 | $(lisp)/progmodes/cc-vars.elc: $(lisp)/custom.elc $(lisp)/widget.elc |
| 503 | |
| 504 | # MH-E dependencies, mainly to prevent failures with parallel |
| 505 | # compilation, due to race conditions between writing a given FOO.elc |
| 506 | # file and another file being compiled that says "(require FOO)", |
| 507 | # which causes Emacs to try to read FOO.elc. |
| 508 | $(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc\ |
| 509 | $(MH_E_DIR)/mh-funcs.elc $(MH_E_DIR)/mh-identity.elc $(MH_E_DIR)/mh-inc.elc\ |
| 510 | $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-limit.elc\ |
| 511 | $(MH_E_DIR)/mh-mime.elc $(MH_E_DIR)/mh-print.elc $(MH_E_DIR)/mh-scan.elc\ |
| 512 | $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\ |
| 513 | $(MH_E_DIR)/mh-speed.elc $(MH_E_DIR)/mh-thread.elc $(MH_E_DIR)/mh-tool-bar.elc\ |
| 514 | $(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\ |
| 515 | $(MH_E_DIR)/mh-e.elc |
| 516 | |
| 517 | $(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-e.elc $(MH_E_DIR)/mh-folder.elc\ |
| 518 | $(MH_E_DIR)/mh-inc.elc $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc\ |
| 519 | $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-speed.elc\ |
| 520 | $(MH_E_DIR)/mh-utils.elc $(MH_E_DIR)/mh-xface.elc:\ |
| 521 | $(lisp)/emacs-lisp/cl.elc |
| 522 | |
| 523 | $(MH_E_DIR)/mh-comp.elc $(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-funcs.elc\ |
| 524 | $(MH_E_DIR)/mh-junk.elc $(MH_E_DIR)/mh-limit.elc $(MH_E_DIR)/mh-print.elc\ |
| 525 | $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-thread.elc:\ |
| 526 | $(MH_E_DIR)/mh-scan.elc |
| 527 | |
| 528 | $(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-mime.elc\ |
| 529 | $(MH_E_DIR)/mh-search.elc $(MH_E_DIR)/mh-show.elc $(MH_E_DIR)/mh-speed.elc:\ |
| 530 | $(lisp)/gnus/gnus-util.elc |
| 531 | |
| 532 | $(MH_E_DIR)/mh-folder.elc $(MH_E_DIR)/mh-search.elc:\ |
| 533 | $(lisp)/progmodes/which-func.elc |
| 534 | |
| 535 | $(MH_E_DIR)/mh-letter.elc $(MH_E_DIR)/mh-seq.elc $(MH_E_DIR)/mh-show.elc\ |
| 536 | $(MH_E_DIR)/mh-utils.elc:\ |
| 537 | $(lisp)/font-lock.elc |
| 538 | |
| 539 | $(MH_E_DIR)/mh-alias.elc $(MH_E_DIR)/mh-show.elc: $(lisp)/net/goto-addr.elc |
| 540 | |
| 541 | $(MH_E_DIR)/mh-comp.elc: $(lisp)/mail/sendmail.elc |
| 542 | |
| 543 | $(MH_E_DIR)/mh-e.elc: $(MH_E_DIR)/mh-buffers.elc $(lisp)/gnus/gnus.elc \ |
| 544 | $(lisp)/cus-face.elc |
| 545 | |
| 546 | $(MH_E_DIR)/mh-letter.elc: $(lisp)/gnus/mailcap.elc $(lisp)/gnus/mm-decode.elc \ |
| 547 | $(lisp)/gnus/mm-view.elc $(lisp)/gnus/mml.elc $(lisp)/gnus/message.elc |
| 548 | |
| 549 | $(MH_E_DIR)/mh-print.elc: $(lisp)/ps-print.elc |
| 550 | |
| 551 | $(MH_E_DIR)/mh-search.elc: $(lisp)/imenu.elc |
| 552 | |
| 553 | $(MH_E_DIR)/mh-show.elc: $(lisp)/gnus/gnus-cite.elc |
| 554 | |
| 555 | $(MH_E_DIR)/mh-speed.elc: $(lisp)/speedbar.elc $(lisp)/emacs-lisp/timer.elc |
| 556 | |
| 557 | $(MH_E_DIR)/mh-tool-bar.elc: $(lisp)/tool-bar.elc |
| 558 | |
| 559 | # Makefile ends here. |