(install): Synchronize rules for compiling with Unix version.
[bpt/emacs.git] / lisp / makefile.nt
1 # Hacked up Nmake makefile for GNU Emacs
2 # Geoff Voelker (voelker@cs.washington.edu)
3 # Copyright (c) 1994 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 2, or (at your option)
10 # 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; see the file COPYING. If not, write to the
19 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 # Boston, MA 02111-1307, USA.
21 #
22
23 !include ..\nt\makefile.def
24
25 all:
26
27 # You can specify a different executable on the make command line,
28 # e.g. "make EMACS=../src/emacs ...".
29
30 EMACS = ..\src\$(BLD)\emacs
31
32 # Command line flags for Emacs. This must include --multibyte,
33 # otherwise some files will not compile.
34
35 EMACSOPT = --no-init-file --no-site-file --multibyte -batch
36
37 # Files which should not be compiled. All file names must be relative
38 # to the `lisp' directory.
39 # - emacs-lisp/cl-specs.el: only contains `def-edebug-spec's so there's
40 # no point compiling it, although it doesn't hurt.
41
42 DONTCOMPILE = bindings.el mail/blessmail.el play/bruce.el cus-load.el \
43 cus-start.el forms-d2.el forms-pass.el \
44 international/latin-1.el international/latin-2.el \
45 international/latin-3.el international/latin-4.el \
46 international/latin-5.el \
47 loaddefs.el loadup.el international/mule-conf.el patcomp.el \
48 paths.el mail/sc.el subdirs.el version.el \
49 generic-x.el international/latin-8.el international/latin-9.el \
50 emacs-lisp/cl-specs.el finder-inf.el term/internal.el
51
52 # The actual Emacs command run in the targets below.
53
54 emacs = $(EMACS) $(EMACSOPT)
55
56 .el.elc:
57 -$(emacs) -f batch-byte-compile $<
58
59 $(DONTCOMPILE:.el=.elc):
60 -$(DEL) $@
61
62 # Recompile all Lisp files which are newer than their .elc files.
63 # Note that this doesn't create .elc files. It only recompiles if an
64 # .elc is present.
65
66 recompile:
67 $(emacs) -f batch-byte-recompile-directory .
68
69 #
70 # Assuming INSTALL_DIR is defined, copy the elisp files to it
71 # Windows 95 makes this harder than it should be.
72 #
73 install:
74 - mkdir $(INSTALL_DIR)\lisp
75 - $(DEL) .\same-dir.tst
76 - $(DEL) $(INSTALL_DIR)\lisp\same-dir.tst
77 echo SameDirTest > $(INSTALL_DIR)\lisp\same-dir.tst
78 !ifdef COPY_LISP_SOURCE
79 if not exist .\same-dir.tst $(CP_DIR) . $(INSTALL_DIR)\lisp
80 !else
81 if not exist .\same-dir.tst $(CP_DIR) *.elc $(INSTALL_DIR)\lisp
82 if not exist .\same-dir.tst $(CP) cus-load.el $(INSTALL_DIR)\lisp
83 if not exist .\same-dir.tst $(CP) forms*.el $(INSTALL_DIR)\lisp
84 if not exist .\same-dir.tst $(CP) patcomp.el $(INSTALL_DIR)\lisp
85 if not exist .\same-dir.tst $(CP) subdirs.el $(INSTALL_DIR)\lisp
86 if not exist .\same-dir.tst $(CP) version.el $(INSTALL_DIR)\lisp
87 if not exist .\same-dir.tst $(CP) mail\blessmail.el $(INSTALL_DIR)\lisp\mail
88 if not exist .\same-dir.tst $(CP) mail\sc.el $(INSTALL_DIR)\lisp\mail
89 if not exist .\same-dir.tst $(CP) play\bruce.el $(INSTALL_DIR)\lisp\play
90 if not exist .\same-dir.tst $(CP) international\latin-*.el $(INSTALL_DIR)\lisp\international
91 if not exist .\same-dir.tst $(CP) international\mule-conf.el $(INSTALL_DIR)\lisp\international
92 - $(DEL) $(INSTALL_DIR)\lisp\same-dir.tst
93 !endif
94
95 #
96 # Maintenance
97 #
98 clean:; - $(DEL) *~ term\*~
99 - $(DEL) *.orig *.rej *.crlf
100 - $(DEL) emacs-lisp\*.orig emacs-lisp\*.rej emacs-lisp\*.crlf
101 - $(DEL) emulation\*.orig emulation\*.rej emulation\*.crlf
102 - $(DEL) gnus\*.orig gnus\*.rej gnus\*.crlf
103 - $(DEL) international\*.orig international\*.rej international\*.crlf
104 - $(DEL) language\*.orig language\*.rej language\*.crlf
105 - $(DEL) mail\*.orig mail\*.rej mail\*.crlf
106 - $(DEL) play\*.orig play\*.rej play\*.crlf
107 - $(DEL) progmodes\*.orig progmodes\*.rej progmodes\*.crlf
108 - $(DEL) term\*.orig term\*.rej term\*.crlf
109 - $(DEL) textmodes\*.orig textmodes\*.rej textmodes\*.crlf
110 - $(DEL_TREE) deleted