Commit | Line | Data |
---|---|---|
efdeeb2b GV |
1 | # |
2 | # Top level makefile for building GNU Emacs on Windows NT | |
3 | # | |
4 | # This file is part of GNU Emacs. | |
5 | # | |
6 | # GNU Emacs is free software; you can redistribute it and/or modify | |
7 | # it under the terms of the GNU General Public License as published by | |
8 | # the Free Software Foundation; either version 2, or (at your option) | |
9 | # any later version. | |
10 | # | |
11 | # GNU Emacs is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | # | |
16 | # You should have received a copy of the GNU General Public License | |
17 | # along with GNU Emacs; see the file COPYING. If not, write to | |
bf2b146b EN |
18 | # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 | # Boston, MA 02111-1307, USA. | |
efdeeb2b GV |
20 | # |
21 | # Geoff Voelker (voelker@cs.washington.edu) 11-20-93 | |
22 | # 9-6-94 | |
23 | !include makefile.def | |
24 | ||
1e935838 | 25 | ALL = addpm ddeclient runemacs cmdproxy addsection preprep |
b1dd4ab3 GV |
26 | !if $(MSVCNT11) |
27 | TRES = $(BLD)\emacs.res | |
28 | !else | |
29 | TRES = $(BLD)\emacs.rbj | |
30 | !endif | |
ac11713e GV |
31 | |
32 | addpm: $(BLD) $(BLD)\addpm.exe | |
ac11713e | 33 | $(BLD)\addpm.obj: addpm.c |
191f57e9 | 34 | $(BLD)\addpm.exe: $(BLD)\addpm.obj |
9478941d | 35 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ |
bcfb775c | 36 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib |
ac11713e | 37 | |
89e840e5 GV |
38 | ddeclient: $(BLD) $(BLD)\ddeclient.exe |
39 | $(BLD)\ddeclient.obj: ddeclient.c | |
40 | $(BLD)\ddeclient.exe: $(BLD)\ddeclient.obj | |
41 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
42 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib | |
43 | ||
c781a8e8 GV |
44 | cmdproxy: $(BLD) $(BLD)\cmdproxy.exe |
45 | $(BLD)\cmdproxy.obj: cmdproxy.c | |
46 | $(BLD)\cmdproxy.exe: $(BLD)\cmdproxy.obj | |
47 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
48 | $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib | |
49 | ||
32c0fe80 AI |
50 | addsection: $(BLD) $(BLD)\addsection.exe |
51 | $(BLD)\addsection.obj: addsection.c | |
52 | $(BLD)\addsection.exe: $(BLD)\addsection.obj | |
53 | $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
54 | $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib | |
55 | ||
1e935838 AI |
56 | preprep: $(BLD) $(BLD)\preprep.exe |
57 | $(BLD)\preprep.obj: preprep.c | |
58 | $(BLD)\preprep.exe: $(BLD)\preprep.obj | |
59 | $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
60 | $(SYS_LDFLAGS) $** $(BASE_LIBS) | |
61 | ||
b1dd4ab3 GV |
62 | # |
63 | # The resource file. NT 3.10 requires the use of cvtres; even though | |
64 | # it is not necessary on later versions, it is still ok to use it. | |
65 | # | |
66 | $(TRES): emacs.rc | |
67 | $(RC) -Fo$(BLD)\emacs.res $** | |
68 | !if !$(MSVCNT11) | |
69 | $(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res | |
70 | !endif | |
71 | ||
72 | runemacs: $(BLD) $(BLD)\runemacs.exe | |
73 | $(BLD)\runemacs.obj: runemacs.c | |
74 | $(BLD)\runemacs.exe: $(BLD)\runemacs.obj $(TRES) | |
75 | $(LINK) -out:$@ -subsystem:windows -entry:WinMainCRTStartup \ | |
76 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib | |
77 | ||
9097b6b2 GV |
78 | # Since Windows 95 does not support multiple commands on one command line |
79 | # (e.g., in for loops), we cannot use for loops any more. | |
80 | # SUBDIRS = lib-src src lisp | |
efdeeb2b GV |
81 | |
82 | # | |
83 | # Build emacs | |
84 | # | |
9097b6b2 | 85 | BUILD_CMD = $(MAKE) -f makefile.nt all |
ac11713e GV |
86 | all: $(BLD) $(ALL) |
87 | cd ..\lib-src | |
9097b6b2 GV |
88 | $(BUILD_CMD) |
89 | cd ..\src | |
90 | $(BUILD_CMD) | |
91 | cd ..\lisp | |
92 | $(BUILD_CMD) | |
45760b79 GM |
93 | cd ..\leim |
94 | if exist makefile.nt $(BUILD_CMD) | |
9097b6b2 GV |
95 | cd ..\nt |
96 | ||
afe298c8 GV |
97 | $(INSTALL_DIR): |
98 | - mkdir $(INSTALL_DIR) | |
99 | ||
05102411 GV |
100 | $(INSTALL_DIR)\bin: |
101 | - mkdir $(INSTALL_DIR)\bin | |
efdeeb2b | 102 | |
ea444b40 GV |
103 | $(INSTALL_DIR)\bin\emacs.bat: emacs.bat.in |
104 | echo @echo off > $@ | |
ac11713e | 105 | echo REM !!! Warning: This file automatically generated !!! >> emacs.bat |
ea444b40 GV |
106 | echo set emacs_dir=$(INSTALL_DIR)>> $@ |
107 | type emacs.bat.in >> $@ | |
ac11713e | 108 | |
ea444b40 GV |
109 | $(INSTALL_DIR)\bin\debug.bat: debug.bat.in |
110 | echo @echo off > $@ | |
07b0b264 | 111 | echo REM !!! Warning: This file automatically generated !!! >> debug.bat |
ea444b40 GV |
112 | echo set emacs_dir=$(INSTALL_DIR)>> $@ |
113 | type debug.bat.in >> $@ | |
114 | ||
afe298c8 GV |
115 | batch_files: $(INSTALL_DIR) \ |
116 | $(INSTALL_DIR)\bin \ | |
05102411 GV |
117 | $(INSTALL_DIR)\bin\emacs.bat \ |
118 | $(INSTALL_DIR)\bin\debug.bat | |
07b0b264 | 119 | |
efdeeb2b GV |
120 | # |
121 | # Build and install emacs in INSTALL_DIR | |
122 | # | |
9097b6b2 | 123 | INSTALL_CMD = $(MAKE) -f makefile.nt install |
afe298c8 | 124 | install: all $(INSTALL_DIR) batch_files |
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) | |
9097b6b2 | 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 | # | |
ea444b40 | 153 | fast_install: batch_files |
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 | |
190 | # | |
9097b6b2 | 191 | CLEAN_CMD = $(MAKE) -f makefile.nt clean |
2e17c871 | 192 | clean:; - $(DEL) *~ *.pdb |
22270f17 GV |
193 | - $(DEL) *.orig |
194 | - $(DEL) *.rej | |
195 | - $(DEL) *.crlf | |
efdeeb2b | 196 | - $(DEL_TREE) deleted |
22270f17 GV |
197 | - $(DEL_TREE) obj |
198 | - $(DEL_TREE) obj-spd | |
efdeeb2b | 199 | - $(DEL_TREE) ..\bin |
2e17c871 GV |
200 | - $(DEL) ..\etc\DOC ..\etc\DOC-X |
201 | - $(DEL) emacs.bat | |
07b0b264 | 202 | - $(DEL) debug.bat |
9097b6b2 GV |
203 | cd ..\lib-src |
204 | $(CLEAN_CMD) | |
205 | cd ..\src | |
206 | $(CLEAN_CMD) | |
207 | cd ..\lisp | |
208 | $(CLEAN_CMD) | |
45760b79 GM |
209 | cd ..\leim |
210 | if exist makefile.nt $(CLEAN_CMD) | |
9097b6b2 | 211 | cd ..\nt |