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 | # | |
de32572e | 85 | BUILD_CMD = $(MAKE) $(MFLAGS) -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 | ||
de32572e AI |
97 | BOOTSTRAP_CMD = $(MAKE) $(MFLAGS) -f makefile.nt bootstrap |
98 | bootstrap: $(BLD) $(ALL) | |
99 | cd ..\src | |
100 | $(BOOTSTRAP_CMD) | |
101 | $(BOOTCLEAN_CMD) | |
102 | cd ..\lisp | |
103 | $(BOOTSTRAP_CMD) | |
104 | cd ..\nt | |
105 | ||
106 | BOOTCLEAN_CMD = $(MAKE) $(MFLAGS) -f makefile.nt bootstrap-clean | |
107 | bootstrap-clean: | |
108 | cd ..\src | |
109 | $(BOOTCLEAN_CMD) | |
110 | cd ..\lisp | |
111 | $(BOOTCLEAN_CMD) | |
112 | ||
afe298c8 GV |
113 | $(INSTALL_DIR): |
114 | - mkdir $(INSTALL_DIR) | |
115 | ||
05102411 GV |
116 | $(INSTALL_DIR)\bin: |
117 | - mkdir $(INSTALL_DIR)\bin | |
efdeeb2b GV |
118 | |
119 | # | |
120 | # Build and install emacs in INSTALL_DIR | |
121 | # | |
9097b6b2 | 122 | INSTALL_CMD = $(MAKE) -f makefile.nt install |
de32572e | 123 | install: all $(INSTALL_DIR) |
9097b6b2 GV |
124 | cd ..\lib-src |
125 | $(INSTALL_CMD) | |
126 | cd ..\src | |
127 | $(INSTALL_CMD) | |
128 | cd ..\lisp | |
129 | $(INSTALL_CMD) | |
45760b79 GM |
130 | cd ..\leim |
131 | if exist makefile.nt $(INSTALL_CMD) | |
9097b6b2 | 132 | cd ..\nt |
b1dd4ab3 | 133 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
89e840e5 | 134 | - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin |
c781a8e8 | 135 | - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin |
b1dd4ab3 | 136 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin |
32c0fe80 | 137 | - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin |
bcfb775c | 138 | - $(ADDPM) $(INSTALL_DIR) |
2e17c871 GV |
139 | - $(DEL) ..\same-dir.tst |
140 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
4398c7e3 GV |
141 | - mkdir $(INSTALL_DIR)\etc\icons |
142 | - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons | |
bcfb775c GV |
143 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
144 | if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install | |
2e17c871 GV |
145 | - $(DEL) ..\same-dir.tst |
146 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
147 | |
148 | # | |
149 | # This installs executables from ..\bin into the installation directory | |
150 | # without building anything. | |
151 | # | |
de32572e | 152 | fast_install: |
efdeeb2b GV |
153 | - mkdir $(INSTALL_DIR)\data |
154 | $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc | |
155 | - mkdir $(INSTALL_DIR)\bin | |
b1dd4ab3 | 156 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
7624a507 GM |
157 | - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin |
158 | - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin | |
b1dd4ab3 | 159 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin |
7624a507 | 160 | - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin |
2e17c871 GV |
161 | - $(DEL) ..\same-dir.tst |
162 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c GV |
163 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
164 | if not exist ..\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin | |
165 | if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin | |
166 | if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin | |
7624a507 | 167 | if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install |
2e17c871 GV |
168 | - $(DEL) ..\same-dir.tst |
169 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
170 | |
171 | real_install: | |
2e17c871 GV |
172 | - $(DEL) ..\same-dir.tst |
173 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c | 174 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
efdeeb2b GV |
175 | - mkdir $(INSTALL_DIR)\etc |
176 | - mkdir $(INSTALL_DIR)\info | |
177 | - mkdir $(INSTALL_DIR)\lock | |
178 | - mkdir $(INSTALL_DIR)\data | |
7d122d47 | 179 | - mkdir $(INSTALL_DIR)\site-lisp |
4398c7e3 GV |
180 | - mkdir $(INSTALL_DIR)\etc\icons |
181 | - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons | |
bcfb775c GV |
182 | if not exist ..\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc |
183 | if not exist ..\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info | |
2e17c871 GV |
184 | - $(DEL) ..\same-dir.tst |
185 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
186 | |
187 | # | |
188 | # Maintenance | |
189 | # | |
9097b6b2 | 190 | CLEAN_CMD = $(MAKE) -f makefile.nt clean |
de32572e AI |
191 | clean: |
192 | - $(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 | |
2e17c871 | 199 | - $(DEL) ..\etc\DOC ..\etc\DOC-X |
9097b6b2 GV |
200 | cd ..\lib-src |
201 | $(CLEAN_CMD) | |
202 | cd ..\src | |
203 | $(CLEAN_CMD) | |
204 | cd ..\lisp | |
205 | $(CLEAN_CMD) | |
45760b79 GM |
206 | cd ..\leim |
207 | if exist makefile.nt $(CLEAN_CMD) | |
9097b6b2 | 208 | cd ..\nt |
de32572e AI |
209 | |
210 | realclean: clean | |
211 | - $(DEL_TREE) ..\bin |