Commit | Line | Data |
---|---|---|
efdeeb2b GV |
1 | # |
2 | # Top level makefile for building GNU Emacs on Windows NT | |
2821d967 | 3 | # Copyright (c) 1993-2000 Free Software Foundation, Inc. |
efdeeb2b GV |
4 | # |
5 | # This file is part of GNU Emacs. | |
177c0ea7 | 6 | # |
efdeeb2b GV |
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. | |
177c0ea7 | 11 | # |
efdeeb2b GV |
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. | |
177c0ea7 | 16 | # |
efdeeb2b GV |
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 | |
bf2b146b EN |
19 | # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
20 | # Boston, MA 02111-1307, USA. | |
efdeeb2b GV |
21 | # |
22 | # Geoff Voelker (voelker@cs.washington.edu) 11-20-93 | |
23 | # 9-6-94 | |
24 | !include makefile.def | |
25 | ||
1e935838 | 26 | ALL = addpm ddeclient runemacs cmdproxy addsection preprep |
b1dd4ab3 GV |
27 | !if $(MSVCNT11) |
28 | TRES = $(BLD)\emacs.res | |
29 | !else | |
30 | TRES = $(BLD)\emacs.rbj | |
31 | !endif | |
ac11713e GV |
32 | |
33 | addpm: $(BLD) $(BLD)\addpm.exe | |
ac11713e | 34 | $(BLD)\addpm.obj: addpm.c |
191f57e9 | 35 | $(BLD)\addpm.exe: $(BLD)\addpm.obj |
9478941d | 36 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ |
bcfb775c | 37 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib |
ac11713e | 38 | |
89e840e5 GV |
39 | ddeclient: $(BLD) $(BLD)\ddeclient.exe |
40 | $(BLD)\ddeclient.obj: ddeclient.c | |
41 | $(BLD)\ddeclient.exe: $(BLD)\ddeclient.obj | |
42 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
43 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib | |
44 | ||
c781a8e8 GV |
45 | cmdproxy: $(BLD) $(BLD)\cmdproxy.exe |
46 | $(BLD)\cmdproxy.obj: cmdproxy.c | |
47 | $(BLD)\cmdproxy.exe: $(BLD)\cmdproxy.obj | |
48 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
49 | $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib | |
50 | ||
32c0fe80 AI |
51 | addsection: $(BLD) $(BLD)\addsection.exe |
52 | $(BLD)\addsection.obj: addsection.c | |
53 | $(BLD)\addsection.exe: $(BLD)\addsection.obj | |
54 | $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
55 | $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib | |
56 | ||
1e935838 AI |
57 | preprep: $(BLD) $(BLD)\preprep.exe |
58 | $(BLD)\preprep.obj: preprep.c | |
59 | $(BLD)\preprep.exe: $(BLD)\preprep.obj | |
60 | $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
61 | $(SYS_LDFLAGS) $** $(BASE_LIBS) | |
62 | ||
b1dd4ab3 GV |
63 | # |
64 | # The resource file. NT 3.10 requires the use of cvtres; even though | |
65 | # it is not necessary on later versions, it is still ok to use it. | |
66 | # | |
67 | $(TRES): emacs.rc | |
68 | $(RC) -Fo$(BLD)\emacs.res $** | |
69 | !if !$(MSVCNT11) | |
70 | $(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res | |
71 | !endif | |
72 | ||
73 | runemacs: $(BLD) $(BLD)\runemacs.exe | |
74 | $(BLD)\runemacs.obj: runemacs.c | |
75 | $(BLD)\runemacs.exe: $(BLD)\runemacs.obj $(TRES) | |
76 | $(LINK) -out:$@ -subsystem:windows -entry:WinMainCRTStartup \ | |
77 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib | |
78 | ||
9097b6b2 GV |
79 | # Since Windows 95 does not support multiple commands on one command line |
80 | # (e.g., in for loops), we cannot use for loops any more. | |
81 | # SUBDIRS = lib-src src lisp | |
efdeeb2b GV |
82 | |
83 | # | |
84 | # Build emacs | |
85 | # | |
de32572e | 86 | BUILD_CMD = $(MAKE) $(MFLAGS) -f makefile.nt all |
ac11713e GV |
87 | all: $(BLD) $(ALL) |
88 | cd ..\lib-src | |
9097b6b2 GV |
89 | $(BUILD_CMD) |
90 | cd ..\src | |
91 | $(BUILD_CMD) | |
92 | cd ..\lisp | |
93 | $(BUILD_CMD) | |
45760b79 GM |
94 | cd ..\leim |
95 | if exist makefile.nt $(BUILD_CMD) | |
9097b6b2 GV |
96 | cd ..\nt |
97 | ||
de32572e AI |
98 | BOOTSTRAP_CMD = $(MAKE) $(MFLAGS) -f makefile.nt bootstrap |
99 | bootstrap: $(BLD) $(ALL) | |
100 | cd ..\src | |
101 | $(BOOTSTRAP_CMD) | |
102 | $(BOOTCLEAN_CMD) | |
103 | cd ..\lisp | |
104 | $(BOOTSTRAP_CMD) | |
105 | cd ..\nt | |
106 | ||
107 | BOOTCLEAN_CMD = $(MAKE) $(MFLAGS) -f makefile.nt bootstrap-clean | |
108 | bootstrap-clean: | |
109 | cd ..\src | |
110 | $(BOOTCLEAN_CMD) | |
111 | cd ..\lisp | |
112 | $(BOOTCLEAN_CMD) | |
113 | ||
afe298c8 GV |
114 | $(INSTALL_DIR): |
115 | - mkdir $(INSTALL_DIR) | |
116 | ||
05102411 GV |
117 | $(INSTALL_DIR)\bin: |
118 | - mkdir $(INSTALL_DIR)\bin | |
efdeeb2b GV |
119 | |
120 | # | |
121 | # Build and install emacs in INSTALL_DIR | |
122 | # | |
9097b6b2 | 123 | INSTALL_CMD = $(MAKE) -f makefile.nt install |
de32572e | 124 | install: all $(INSTALL_DIR) |
9097b6b2 GV |
125 | cd ..\lib-src |
126 | $(INSTALL_CMD) | |
127 | cd ..\src | |
128 | $(INSTALL_CMD) | |
129 | cd ..\lisp | |
130 | $(INSTALL_CMD) | |
45760b79 GM |
131 | cd ..\leim |
132 | if exist makefile.nt $(INSTALL_CMD) | |
177c0ea7 | 133 | cd ..\nt |
b1dd4ab3 | 134 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
89e840e5 | 135 | - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin |
c781a8e8 | 136 | - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin |
b1dd4ab3 | 137 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin |
32c0fe80 | 138 | - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin |
bcfb775c | 139 | - $(ADDPM) $(INSTALL_DIR) |
2e17c871 GV |
140 | - $(DEL) ..\same-dir.tst |
141 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
4398c7e3 GV |
142 | - mkdir $(INSTALL_DIR)\etc\icons |
143 | - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons | |
bcfb775c GV |
144 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
145 | if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install | |
2e17c871 GV |
146 | - $(DEL) ..\same-dir.tst |
147 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
148 | |
149 | # | |
150 | # This installs executables from ..\bin into the installation directory | |
151 | # without building anything. | |
152 | # | |
de32572e | 153 | fast_install: |
efdeeb2b GV |
154 | - mkdir $(INSTALL_DIR)\data |
155 | $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc | |
156 | - mkdir $(INSTALL_DIR)\bin | |
b1dd4ab3 | 157 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
7624a507 GM |
158 | - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin |
159 | - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin | |
b1dd4ab3 | 160 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin |
7624a507 | 161 | - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin |
2e17c871 GV |
162 | - $(DEL) ..\same-dir.tst |
163 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c GV |
164 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
165 | if not exist ..\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin | |
166 | if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin | |
167 | if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin | |
7624a507 | 168 | if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install |
2e17c871 GV |
169 | - $(DEL) ..\same-dir.tst |
170 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
171 | |
172 | real_install: | |
2e17c871 GV |
173 | - $(DEL) ..\same-dir.tst |
174 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c | 175 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
efdeeb2b GV |
176 | - mkdir $(INSTALL_DIR)\etc |
177 | - mkdir $(INSTALL_DIR)\info | |
178 | - mkdir $(INSTALL_DIR)\lock | |
179 | - mkdir $(INSTALL_DIR)\data | |
7d122d47 | 180 | - mkdir $(INSTALL_DIR)\site-lisp |
4398c7e3 GV |
181 | - mkdir $(INSTALL_DIR)\etc\icons |
182 | - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons | |
bcfb775c GV |
183 | if not exist ..\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc |
184 | if not exist ..\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info | |
2e17c871 GV |
185 | - $(DEL) ..\same-dir.tst |
186 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
187 | |
188 | # | |
189 | # Maintenance | |
177c0ea7 | 190 | # |
9097b6b2 | 191 | CLEAN_CMD = $(MAKE) -f makefile.nt clean |
de32572e AI |
192 | clean: |
193 | - $(DEL) *~ *.pdb | |
22270f17 GV |
194 | - $(DEL) *.orig |
195 | - $(DEL) *.rej | |
196 | - $(DEL) *.crlf | |
efdeeb2b | 197 | - $(DEL_TREE) deleted |
22270f17 GV |
198 | - $(DEL_TREE) obj |
199 | - $(DEL_TREE) obj-spd | |
2e17c871 | 200 | - $(DEL) ..\etc\DOC ..\etc\DOC-X |
9097b6b2 GV |
201 | cd ..\lib-src |
202 | $(CLEAN_CMD) | |
203 | cd ..\src | |
204 | $(CLEAN_CMD) | |
205 | cd ..\lisp | |
206 | $(CLEAN_CMD) | |
45760b79 GM |
207 | cd ..\leim |
208 | if exist makefile.nt $(CLEAN_CMD) | |
9097b6b2 | 209 | cd ..\nt |
de32572e AI |
210 | |
211 | realclean: clean | |
212 | - $(DEL_TREE) ..\bin | |
ab5796a9 MB |
213 | |
214 | # arch-tag: b01debf7-6859-439e-b08e-f041aa03c32f |