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 | ||
c781a8e8 | 25 | ALL = $(BLD)\addpm.exe $(BLD)\runemacs.exe $(BLD)\cmdproxy.exe |
b1dd4ab3 GV |
26 | !if $(MSVCNT11) |
27 | TRES = $(BLD)\emacs.res | |
28 | !else | |
29 | TRES = $(BLD)\emacs.rbj | |
30 | !endif | |
ac11713e | 31 | |
191f57e9 RS |
32 | .c{$(BLD)}.obj: |
33 | $(CC) $(CFLAGS) -Fo$@ $< | |
34 | ||
ac11713e | 35 | addpm: $(BLD) $(BLD)\addpm.exe |
ac11713e | 36 | $(BLD)\addpm.obj: addpm.c |
191f57e9 | 37 | $(BLD)\addpm.exe: $(BLD)\addpm.obj |
9478941d | 38 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ |
bcfb775c | 39 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib |
ac11713e | 40 | |
c781a8e8 GV |
41 | cmdproxy: $(BLD) $(BLD)\cmdproxy.exe |
42 | $(BLD)\cmdproxy.obj: cmdproxy.c | |
43 | $(BLD)\cmdproxy.exe: $(BLD)\cmdproxy.obj | |
44 | $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ | |
45 | $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib | |
46 | ||
b1dd4ab3 GV |
47 | # |
48 | # The resource file. NT 3.10 requires the use of cvtres; even though | |
49 | # it is not necessary on later versions, it is still ok to use it. | |
50 | # | |
51 | $(TRES): emacs.rc | |
52 | $(RC) -Fo$(BLD)\emacs.res $** | |
53 | !if !$(MSVCNT11) | |
54 | $(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res | |
55 | !endif | |
56 | ||
57 | runemacs: $(BLD) $(BLD)\runemacs.exe | |
58 | $(BLD)\runemacs.obj: runemacs.c | |
59 | $(BLD)\runemacs.exe: $(BLD)\runemacs.obj $(TRES) | |
60 | $(LINK) -out:$@ -subsystem:windows -entry:WinMainCRTStartup \ | |
61 | $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib | |
62 | ||
9097b6b2 GV |
63 | # Since Windows 95 does not support multiple commands on one command line |
64 | # (e.g., in for loops), we cannot use for loops any more. | |
65 | # SUBDIRS = lib-src src lisp | |
efdeeb2b GV |
66 | |
67 | # | |
68 | # Build emacs | |
69 | # | |
9097b6b2 | 70 | BUILD_CMD = $(MAKE) -f makefile.nt all |
ac11713e GV |
71 | all: $(BLD) $(ALL) |
72 | cd ..\lib-src | |
9097b6b2 GV |
73 | $(BUILD_CMD) |
74 | cd ..\src | |
75 | $(BUILD_CMD) | |
76 | cd ..\lisp | |
77 | $(BUILD_CMD) | |
78 | cd ..\nt | |
79 | ||
efdeeb2b | 80 | |
ac11713e GV |
81 | emacs.bat: emacs.bat.in |
82 | echo @echo off > emacs.bat | |
83 | echo REM !!! Warning: This file automatically generated !!! >> emacs.bat | |
84 | echo set emacs_dir=$(INSTALL_DIR)>> emacs.bat | |
85 | type emacs.bat.in >> emacs.bat | |
86 | ||
07b0b264 GV |
87 | debug.bat: debug.bat.in |
88 | echo @echo off > debug.bat | |
89 | echo REM !!! Warning: This file automatically generated !!! >> debug.bat | |
90 | echo set emacs_dir=$(INSTALL_DIR)>> debug.bat | |
91 | type debug.bat.in >> debug.bat | |
92 | ||
efdeeb2b GV |
93 | # |
94 | # Build and install emacs in INSTALL_DIR | |
95 | # | |
9097b6b2 | 96 | INSTALL_CMD = $(MAKE) -f makefile.nt install |
07b0b264 | 97 | install: all emacs.bat debug.bat |
efdeeb2b | 98 | - mkdir $(INSTALL_DIR) |
9097b6b2 GV |
99 | cd ..\lib-src |
100 | $(INSTALL_CMD) | |
101 | cd ..\src | |
102 | $(INSTALL_CMD) | |
103 | cd ..\lisp | |
104 | $(INSTALL_CMD) | |
105 | cd ..\nt | |
efdeeb2b | 106 | - $(CP) emacs.bat $(INSTALL_DIR)\bin |
07b0b264 | 107 | - $(CP) debug.bat $(INSTALL_DIR)\bin |
b1dd4ab3 | 108 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
c781a8e8 | 109 | - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin |
b1dd4ab3 | 110 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin |
bcfb775c | 111 | - $(ADDPM) $(INSTALL_DIR) |
2e17c871 GV |
112 | - $(DEL) ..\same-dir.tst |
113 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c GV |
114 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
115 | if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install | |
2e17c871 GV |
116 | - $(DEL) ..\same-dir.tst |
117 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
118 | |
119 | # | |
120 | # This installs executables from ..\bin into the installation directory | |
121 | # without building anything. | |
122 | # | |
123 | fast_install: | |
124 | - mkdir $(INSTALL_DIR)\data | |
125 | $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc | |
126 | - mkdir $(INSTALL_DIR)\bin | |
127 | - $(CP) emacs.bat $(INSTALL_DIR)\bin | |
07b0b264 | 128 | - $(CP) debug.bat $(INSTALL_DIR)\bin |
b1dd4ab3 GV |
129 | - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin |
130 | - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin | |
2e17c871 GV |
131 | - $(DEL) ..\same-dir.tst |
132 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c GV |
133 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
134 | if not exist ..\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin | |
135 | if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin | |
136 | if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin | |
137 | if not exist ..\same-dir.tst nmake -f $(MAKE) real_install | |
2e17c871 GV |
138 | - $(DEL) ..\same-dir.tst |
139 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
140 | |
141 | real_install: | |
2e17c871 GV |
142 | - $(DEL) ..\same-dir.tst |
143 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
bcfb775c | 144 | echo SameDirTest > $(INSTALL_DIR)\same-dir.tst |
efdeeb2b GV |
145 | - mkdir $(INSTALL_DIR)\etc |
146 | - mkdir $(INSTALL_DIR)\info | |
147 | - mkdir $(INSTALL_DIR)\lock | |
148 | - mkdir $(INSTALL_DIR)\data | |
7d122d47 | 149 | - mkdir $(INSTALL_DIR)\site-lisp |
bcfb775c GV |
150 | if not exist ..\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc |
151 | if not exist ..\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info | |
2e17c871 GV |
152 | - $(DEL) ..\same-dir.tst |
153 | - $(DEL) $(INSTALL_DIR)\same-dir.tst | |
efdeeb2b GV |
154 | |
155 | # | |
156 | # Maintenance | |
157 | # | |
9097b6b2 | 158 | CLEAN_CMD = $(MAKE) -f makefile.nt clean |
2e17c871 | 159 | clean:; - $(DEL) *~ *.pdb |
efdeeb2b | 160 | - $(DEL_TREE) deleted |
d1e349d2 | 161 | - $(DEL_TREE) $(OBJDIR) |
efdeeb2b | 162 | - $(DEL_TREE) ..\bin |
2e17c871 GV |
163 | - $(DEL) ..\etc\DOC ..\etc\DOC-X |
164 | - $(DEL) emacs.bat | |
07b0b264 | 165 | - $(DEL) debug.bat |
9097b6b2 GV |
166 | cd ..\lib-src |
167 | $(CLEAN_CMD) | |
168 | cd ..\src | |
169 | $(CLEAN_CMD) | |
170 | cd ..\lisp | |
171 | $(CLEAN_CMD) | |
172 | cd ..\nt |