1 |
# Makefile for GNU Emacs on the Microsoft W32 API. |
# Makefile for GNU Emacs on the Microsoft W32 API. |
2 |
# Copyright (c) 2000-2001 Free Software Foundation, Inc. |
# Copyright (c) 2000-2001 Free Software Foundation, Inc. |
3 |
# |
# |
4 |
# Top level makefile for building GNU Emacs on Windows NT |
# Top level makefile for building GNU Emacs on Windows NT |
5 |
# |
# |
6 |
# This file is part of GNU Emacs. |
# This file is part of GNU Emacs. |
7 |
# |
# |
8 |
# GNU Emacs is free software; you can redistribute it and/or modify |
# GNU Emacs is free software; you can redistribute it and/or modify |
9 |
# it under the terms of the GNU General Public License as published by |
# it under the terms of the GNU General Public License as published by |
10 |
# the Free Software Foundation; either version 2, or (at your option) |
# the Free Software Foundation; either version 2, or (at your option) |
11 |
# any later version. |
# any later version. |
12 |
# |
# |
13 |
# GNU Emacs is distributed in the hope that it will be useful, |
# GNU Emacs is distributed in the hope that it will be useful, |
14 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 |
# GNU General Public License for more details. |
# GNU General Public License for more details. |
17 |
# |
# |
18 |
# You should have received a copy of the GNU General Public License |
# You should have received a copy of the GNU General Public License |
19 |
# along with GNU Emacs; see the file COPYING. If not, write to |
# along with GNU Emacs; see the file COPYING. If not, write to |
20 |
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
21 |
# Boston, MA 02111-1307, USA. |
# Boston, MA 02111-1307, USA. |
22 |
|
|
23 |
ALL = addpm ddeclient runemacs cmdproxy addsection preprep |
ALL = addpm ddeclient runemacs cmdproxy addsection preprep |
24 |
|
|
25 |
.PHONY: $(ALL) |
.PHONY: $(ALL) |
26 |
|
|
27 |
TRES = $(BLD)/emacs.res |
TRES = $(BLD)/emacs.res |
28 |
|
|
29 |
addpm: $(BLD) $(BLD)/addpm.exe |
addpm: $(BLD) $(BLD)/addpm.exe |
30 |
$(BLD)/addpm.exe: $(BLD)/addpm.$(O) |
$(BLD)/addpm.exe: $(BLD)/addpm.$(O) |
31 |
$(LINK) $(LINK_OUT)$@ \ |
$(LINK) $(LINK_OUT)$@ \ |
32 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
33 |
|
|
34 |
ddeclient: $(BLD) $(BLD)/ddeclient.exe |
ddeclient: $(BLD) $(BLD)/ddeclient.exe |
35 |
$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O) |
$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O) |
36 |
$(LINK) $(LINK_OUT)$@ \ |
$(LINK) $(LINK_OUT)$@ \ |
37 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
38 |
|
|
39 |
cmdproxy: $(BLD) $(BLD)/cmdproxy.exe |
cmdproxy: $(BLD) $(BLD)/cmdproxy.exe |
40 |
$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O) |
$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O) |
41 |
$(LINK) $(LINK_OUT)$@ \ |
$(LINK) $(LINK_OUT)$@ \ |
42 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) |
43 |
|
|
44 |
addsection: $(BLD) $(BLD)/addsection.exe |
addsection: $(BLD) $(BLD)/addsection.exe |
45 |
$(BLD)/addsection.exe: $(BLD)/addsection.$(O) |
$(BLD)/addsection.exe: $(BLD)/addsection.$(O) |
46 |
$(LINK) $(LINK_OUT)$@ \ |
$(LINK) $(LINK_OUT)$@ \ |
47 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32) |
48 |
|
|
49 |
preprep: $(BLD) $(BLD)/preprep.exe |
preprep: $(BLD) $(BLD)/preprep.exe |
50 |
$(BLD)/preprep.exe: $(BLD)/preprep.$(O) |
$(BLD)/preprep.exe: $(BLD)/preprep.$(O) |
51 |
$(LINK) $(LINK_OUT)$@ \ |
$(LINK) $(LINK_OUT)$@ \ |
52 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) |
53 |
|
|
54 |
# |
# |
55 |
# The resource file. NT 3.10 requires the use of cvtres; even though |
# The resource file. NT 3.10 requires the use of cvtres; even though |
56 |
# it is not necessary on later versions, it is still ok to use it. |
# it is not necessary on later versions, it is still ok to use it. |
57 |
# |
# |
58 |
$(TRES): emacs.rc |
$(TRES): emacs.rc |
59 |
$(RC) $(RC_OUT)$(BLD)/emacs.res $(ALL_DEPS) |
$(RC) $(RC_OUT)$(BLD)/emacs.res $(ALL_DEPS) |
60 |
|
|
61 |
runemacs: $(BLD) $(BLD)/runemacs.exe |
runemacs: $(BLD) $(BLD)/runemacs.exe |
62 |
$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES) |
$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES) |
63 |
$(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \ |
$(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \ |
64 |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
$(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32) |
65 |
|
|
66 |
which-sh: |
which-sh: |
67 |
@echo Using $(THE_SHELL) as shell. |
@echo Using $(THE_SHELL) as shell. |
68 |
|
|
69 |
# |
# |
70 |
# Build emacs |
# Build emacs |
71 |
# |
# |
72 |
all: which-sh $(BLD) $(ALL) all-other-dirs-$(MAKETYPE) |
all: which-sh $(BLD) $(ALL) all-other-dirs-$(MAKETYPE) |
73 |
|
|
74 |
all-other-dirs-nmake: |
all-other-dirs-nmake: |
75 |
cd ..\lib-src |
cd ..\lib-src |
76 |
$(MAKE) $(MFLAGS) all |
$(MAKE) $(MFLAGS) all |
77 |
cd ..\src |
cd ..\src |
78 |
$(MAKE) $(MFLAGS) all |
$(MAKE) $(MFLAGS) all |
79 |
cd ..\lisp |
cd ..\lisp |
80 |
$(MAKE) $(MFLAGS) all |
$(MAKE) $(MFLAGS) all |
81 |
cd ..\leim |
cd ..\leim |
82 |
$(MAKE) $(MFLAGS) all |
$(MAKE) $(MFLAGS) all |
83 |
cd ..\nt |
cd ..\nt |
84 |
|
|
85 |
all-other-dirs-gmake: |
all-other-dirs-gmake: |
86 |
$(MAKE) $(MFLAGS) -C ../lib-src all |
$(MAKE) $(MFLAGS) -C ../lib-src all |
87 |
$(MAKE) $(MFLAGS) -C ../src all |
$(MAKE) $(MFLAGS) -C ../src all |
88 |
$(MAKE) $(MFLAGS) -C ../lisp all |
$(MAKE) $(MFLAGS) -C ../lisp all |
89 |
$(MAKE) $(MFLAGS) -C ../leim all |
$(MAKE) $(MFLAGS) -C ../leim all |
90 |
|
|
91 |
recompile: recompile-$(MAKETYPE) |
recompile: recompile-$(MAKETYPE) |
92 |
|
|
93 |
recompile-nmake: |
recompile-nmake: |
94 |
cd ..\lisp |
cd ..\lisp |
95 |
$(MAKE) $(MFLAGS) recompile |
$(MAKE) $(MFLAGS) recompile |
96 |
cd ..\nt |
cd ..\nt |
97 |
|
|
98 |
recompile-gmake: |
recompile-gmake: |
99 |
$(MAKE) $(MFLAGS) -C ../lisp recompile |
$(MAKE) $(MFLAGS) -C ../lisp recompile |
100 |
|
|
101 |
bootstrap: $(BLD) $(ALL) bootstrap-$(MAKETYPE) |
#### Bootstrapping. |
102 |
|
|
103 |
bootstrap-nmake: |
### This is meant for Emacs maintainers only. It first cleans the |
104 |
cd ..\src |
### lisp subdirectory, removing all compiled Lisp files. Then a |
105 |
$(MAKE) $(MFLAGS) bootstrap |
### special emacs executable is built from Lisp sources, which is then |
106 |
$(MAKE) $(MFLAGS) bootstrap-clean |
### used to compile Lisp files. The last step is a "normal" make. |
107 |
cd ..\lisp |
|
108 |
$(MAKE) $(MFLAGS) bootstrap |
bootstrap: bootstrap-$(MAKETYPE) all |
109 |
cd ..\nt |
|
110 |
|
bootstrap-nmake: |
111 |
bootstrap-gmake: |
cd ..\lisp |
112 |
$(MAKE) $(MFLAGS) -C ../src bootstrap |
$(MAKE) $(MFLAGS) bootstrap-clean |
113 |
$(MAKE) $(MFLAGS) -C ../src bootstrap-clean |
cd ..\src |
114 |
$(MAKE) $(MFLAGS) -C ../lisp bootstrap |
$(MAKE) $(MFLAGS) clean |
115 |
|
cd ..\lib-src |
116 |
bootstrap-clean: bootstrap-clean-$(MAKETYPE) |
$(MAKE) $(MFLAGS) clean DOC |
117 |
|
cd ..\src |
118 |
bootstrap-clean-nmake: |
$(MAKE) $(MFLAGS) bootstrap |
119 |
cd ..\src |
$(MAKE) $(MFLAGS) bootstrap-clean |
120 |
$(MAKE) $(MFLAGS) bootstrap-clean |
cd ..\lisp |
121 |
cd ..\lisp |
$(MAKE) $(MFLAGS) bootstrap |
122 |
$(MAKE) $(MFLAGS) bootstrap-clean |
cd ..\nt |
123 |
|
|
124 |
bootstrap-clean-gmake: |
bootstrap-gmake: |
125 |
$(MAKE) $(MFLAGS) -C ../src bootstrap-clean |
$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean |
126 |
$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean |
$(MAKE) $(MFLAGS) -C ../src clean |
127 |
|
$(MAKE) $(MFLAGS) -C ../lib-src clean DOC |
128 |
$(INSTALL_DIR): |
$(MAKE) $(MFLAGS) -C ../src bootstrap |
129 |
- mkdir "$(INSTALL_DIR)" |
$(MAKE) $(MFLAGS) -C ../src bootstrap-clean |
130 |
|
$(MAKE) $(MFLAGS) -C ../lisp bootstrap |
131 |
$(INSTALL_DIR)/bin: $(INSTALL_DIR) |
|
132 |
- mkdir "$(INSTALL_DIR)/bin" |
bootstrap-clean: bootstrap-clean-$(MAKETYPE) |
133 |
|
|
134 |
# |
bootstrap-clean-nmake: |
135 |
# Build and install emacs in INSTALL_DIR |
cd ..\src |
136 |
# |
$(MAKE) $(MFLAGS) bootstrap-clean |
137 |
install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE) |
cd ..\lisp |
138 |
- $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin |
$(MAKE) $(MFLAGS) bootstrap-clean |
139 |
- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin |
|
140 |
- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin |
bootstrap-clean-gmake: |
141 |
- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin |
$(MAKE) $(MFLAGS) -C ../src bootstrap-clean |
142 |
- $(CP) ../lib-src/fns-*.el $(INSTALL_DIR)/bin |
$(MAKE) $(MFLAGS) -C ../lisp bootstrap-clean |
143 |
- "$(INSTALL_DIR)/bin/addpm" /q |
|
144 |
- $(DEL) ../same-dir.tst |
$(INSTALL_DIR): |
145 |
- $(DEL) $(INSTALL_DIR)/same-dir.tst |
- mkdir "$(INSTALL_DIR)" |
146 |
echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst" |
|
147 |
- mkdir "$(INSTALL_DIR)/etc" |
$(INSTALL_DIR)/bin: $(INSTALL_DIR) |
148 |
- mkdir "$(INSTALL_DIR)/info" |
- mkdir "$(INSTALL_DIR)/bin" |
149 |
- mkdir "$(INSTALL_DIR)/lock" |
|
150 |
- mkdir "$(INSTALL_DIR)/data" |
# |
151 |
- mkdir "$(INSTALL_DIR)/site-lisp" |
# Build and install emacs in INSTALL_DIR |
152 |
- mkdir "$(INSTALL_DIR)/etc/icons" |
# |
153 |
$(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF) |
install: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE) |
154 |
$(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF) |
- $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin |
155 |
- $(CP_DIR) icons $(INSTALL_DIR)/etc |
- $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin |
156 |
$(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF) |
- $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin |
157 |
- $(DEL) ../same-dir.tst |
- $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin |
158 |
- $(DEL) $(INSTALL_DIR)/same-dir.tst |
- $(CP) ../lib-src/fns-*.el $(INSTALL_DIR)/bin |
159 |
|
- "$(INSTALL_DIR)/bin/addpm" /q |
160 |
install-other-dirs-nmake: |
- $(DEL) ../same-dir.tst |
161 |
cd ..\lib-src |
- $(DEL) $(INSTALL_DIR)/same-dir.tst |
162 |
$(MAKE) $(MFLAGS) install |
echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst" |
163 |
cd ..\src |
- mkdir "$(INSTALL_DIR)/etc" |
164 |
$(MAKE) $(MFLAGS) install |
- mkdir "$(INSTALL_DIR)/info" |
165 |
cd ..\lisp |
- mkdir "$(INSTALL_DIR)/lock" |
166 |
$(MAKE) $(MFLAGS) install |
- mkdir "$(INSTALL_DIR)/data" |
167 |
cd ..\leim |
- mkdir "$(INSTALL_DIR)/site-lisp" |
168 |
$(MAKE) $(MFLAGS) install |
- mkdir "$(INSTALL_DIR)/etc/icons" |
169 |
cd ..\nt |
$(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF) |
170 |
|
$(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF) |
171 |
install-other-dirs-gmake: |
- $(CP_DIR) icons $(INSTALL_DIR)/etc |
172 |
$(MAKE) $(MFLAGS) -C ../lib-src install |
$(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF) |
173 |
$(MAKE) $(MFLAGS) -C ../src install |
- $(DEL) ../same-dir.tst |
174 |
$(MAKE) $(MFLAGS) -C ../lisp install |
- $(DEL) $(INSTALL_DIR)/same-dir.tst |
175 |
$(MAKE) $(MFLAGS) -C ../leim install |
|
176 |
|
install-other-dirs-nmake: |
177 |
# |
cd ..\lib-src |
178 |
# Maintenance |
$(MAKE) $(MFLAGS) install |
179 |
# |
cd ..\src |
180 |
clean: clean-other-dirs-$(MAKETYPE) |
$(MAKE) $(MFLAGS) install |
181 |
- $(DEL) *~ $(COMPILER_TEMP_FILES) |
cd ..\lisp |
182 |
- $(DEL_TREE) $(OBJDIR) |
$(MAKE) $(MFLAGS) install |
183 |
- $(DEL) ../etc/DOC ../etc/DOC-X |
cd ..\leim |
184 |
|
$(MAKE) $(MFLAGS) install |
185 |
clean-other-dirs-nmake: |
cd ..\nt |
186 |
cd ..\lib-src |
|
187 |
$(MAKE) $(MFLAGS) clean |
install-other-dirs-gmake: |
188 |
cd ..\src |
$(MAKE) $(MFLAGS) -C ../lib-src install |
189 |
$(MAKE) $(MFLAGS) clean |
$(MAKE) $(MFLAGS) -C ../src install |
190 |
cd ..\lisp |
$(MAKE) $(MFLAGS) -C ../lisp install |
191 |
$(MAKE) $(MFLAGS) clean |
$(MAKE) $(MFLAGS) -C ../leim install |
192 |
cd ..\leim |
|
193 |
$(MAKE) $(MFLAGS) clean |
# |
194 |
cd ..\nt |
# Maintenance |
195 |
|
# |
196 |
clean-other-dirs-gmake: |
clean: clean-other-dirs-$(MAKETYPE) |
197 |
$(MAKE) $(MFLAGS) -C ../lib-src clean |
- $(DEL) *~ $(COMPILER_TEMP_FILES) |
198 |
$(MAKE) $(MFLAGS) -C ../src clean |
- $(DEL_TREE) $(OBJDIR) |
199 |
$(MAKE) $(MFLAGS) -C ../lisp clean |
- $(DEL) ../etc/DOC ../etc/DOC-X |
200 |
$(MAKE) $(MFLAGS) -C ../leim clean |
|
201 |
|
clean-other-dirs-nmake: |
202 |
cleanall-other-dirs-nmake: |
cd ..\lib-src |
203 |
cd ..\lib-src |
$(MAKE) $(MFLAGS) clean |
204 |
$(MAKE) $(MFLAGS) cleanall |
cd ..\src |
205 |
cd ..\src |
$(MAKE) $(MFLAGS) clean |
206 |
$(MAKE) $(MFLAGS) cleanall |
cd ..\lisp |
207 |
cd ..\nt |
$(MAKE) $(MFLAGS) clean |
208 |
|
cd ..\leim |
209 |
cleanall-other-dirs-gmake: |
$(MAKE) $(MFLAGS) clean |
210 |
$(MAKE) $(MFLAGS) -C ../lib-src cleanall |
cd ..\nt |
211 |
$(MAKE) $(MFLAGS) -C ../src cleanall |
|
212 |
|
clean-other-dirs-gmake: |
213 |
cleanall: clean cleanall-other-dirs-$(MAKETYPE) |
$(MAKE) $(MFLAGS) -C ../lib-src clean |
214 |
- $(DEL_TREE) obj |
$(MAKE) $(MFLAGS) -C ../src clean |
215 |
- $(DEL_TREE) obj-spd |
$(MAKE) $(MFLAGS) -C ../lisp clean |
216 |
- $(DEL_TREE) oo |
$(MAKE) $(MFLAGS) -C ../leim clean |
217 |
- $(DEL_TREE) oo-spd |
|
218 |
|
cleanall-other-dirs-nmake: |
219 |
realclean: cleanall |
cd ..\lib-src |
220 |
- $(DEL_TREE) ../bin |
$(MAKE) $(MFLAGS) cleanall |
221 |
|
cd ..\src |
222 |
|
$(MAKE) $(MFLAGS) cleanall |
223 |
|
cd ..\nt |
224 |
|
|
225 |
|
cleanall-other-dirs-gmake: |
226 |
|
$(MAKE) $(MFLAGS) -C ../lib-src cleanall |
227 |
|
$(MAKE) $(MFLAGS) -C ../src cleanall |
228 |
|
|
229 |
|
cleanall: clean cleanall-other-dirs-$(MAKETYPE) |
230 |
|
- $(DEL_TREE) obj |
231 |
|
- $(DEL_TREE) obj-spd |
232 |
|
- $(DEL_TREE) oo |
233 |
|
- $(DEL_TREE) oo-spd |
234 |
|
|
235 |
|
realclean: cleanall |
236 |
|
- $(DEL_TREE) ../bin |