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