1# NOTE: If you have no `make' program at all to process this makefile, run 2# `build_w32.bat' instead. 3# 4# Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc. 5# This file is part of GNU Make. 6# 7# GNU Make is free software; you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation; either version 2, or (at your option) 10# any later version. 11# 12# GNU Make is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with GNU Make; see the file COPYING. If not, write to 19# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20# Boston, MA 02111-1307, USA. 21 22# 23# NMakefile for GNU Make 24# 25 26LINK = link 27CC = cl 28 29OUTDIR=. 30MAKEFILE=NMakefile 31SUBPROC_MAKEFILE=NMakefile 32 33CFLAGS_any = /nologo /MT /W3 /GX /Zi /YX /I . /I glob /I w32/include /D WIN32 /D WINDOWS32 /D _CONSOLE /D HAVE_CONFIG_H 34CFLAGS_debug = $(CFLAGS_any) /Od /D DEBUG /D _DEBUG /FR.\WinDebug/ /Fp.\WinDebug/make.pch /Fo.\WinDebug/ /Fd.\WinDebug/make.pdb 35CFLAGS_release = $(CFLAGS_any) /O2 /D NDEBUG /FR.\WinRel/ /Fp.\WinRel/make.pch /Fo.\WinRel/ 36 37LDFLAGS_debug = w32\subproc\WinDebug\subproc.lib /NOLOGO /SUBSYSTEM:console\ 38 /INCREMENTAL:no /PDB:WinDebug/make.pdb /MACHINE:I386 \ 39 /OUT:WinDebug/make.exe /DEBUG 40LDFLAGS_release = w32\subproc\WinRel\subproc.lib /NOLOGO /SUBSYSTEM:console\ 41 /INCREMENTAL:no /MACHINE:I386 /OUT:WinRel/make.exe 42 43all: config.h subproc Release Debug 44 45# 46# Make sure we build the subproc library first. It has it's own 47# makefile. To be portable to Windows 95, we put the instructions 48# on how to build the library into a batch file. On NT, we could 49# simply have done foo && bar && dog, but this doesn't port. 50# 51subproc: w32/subproc/WinDebug/subproc.lib w32/subproc/WinRel/subproc.lib 52 53w32/subproc/WinDebug/subproc.lib w32/subproc/WinRel/subproc.lib: w32/subproc/misc.c w32/subproc/sub_proc.c w32/subproc/w32err.c 54 subproc.bat $(SUBPROC_MAKEFILE) $(MAKE) 55 if exist WinDebug\make.exe erase WinDebug\make.exe 56 if exist WinRel\make.exe erase WinRel\make.exe 57 58config.h: config.h.W32 59 copy $? $@ 60 61Release: 62 $(MAKE) /f $(MAKEFILE) LDFLAGS="$(LDFLAGS_release)" CFLAGS="$(CFLAGS_release)" OUTDIR=WinRel WinRel/make.exe 63Debug: 64 $(MAKE) /f $(MAKEFILE) LDFLAGS="$(LDFLAGS_debug)" CFLAGS="$(CFLAGS_debug)" OUTDIR=WinDebug WinDebug/make.exe 65 66clean: 67 if exist WinDebug\nul rmdir /s /q WinDebug 68 if exist WinRel\nul rmdir /s /q WinRel 69 if exist w32\subproc\WinDebug\nul rmdir /s /q w32\subproc\WinDebug 70 if exist w32\subproc\WinRel\nul rmdir /s /q w32\subproc\WinRel 71 if exist config.h erase config.h 72 erase *.pdb 73 74$(OUTDIR): 75 if not exist .\$@\nul mkdir .\$@ 76 77LIBS = kernel32.lib user32.lib advapi32.lib 78 79OBJS = \ 80 $(OUTDIR)/ar.obj \ 81 $(OUTDIR)/arscan.obj \ 82 $(OUTDIR)/commands.obj \ 83 $(OUTDIR)/default.obj \ 84 $(OUTDIR)/dir.obj \ 85 $(OUTDIR)/expand.obj \ 86 $(OUTDIR)/file.obj \ 87 $(OUTDIR)/function.obj \ 88 $(OUTDIR)/getloadavg.obj \ 89 $(OUTDIR)/getopt.obj \ 90 $(OUTDIR)/getopt1.obj \ 91 $(OUTDIR)/implicit.obj \ 92 $(OUTDIR)/job.obj \ 93 $(OUTDIR)/main.obj \ 94 $(OUTDIR)/misc.obj \ 95 $(OUTDIR)/read.obj \ 96 $(OUTDIR)/remake.obj \ 97 $(OUTDIR)/remote-stub.obj \ 98 $(OUTDIR)/rule.obj \ 99 $(OUTDIR)/signame.obj \ 100 $(OUTDIR)/variable.obj \ 101 $(OUTDIR)/version.obj \ 102 $(OUTDIR)/vpath.obj \ 103 $(OUTDIR)/glob.obj \ 104 $(OUTDIR)/fnmatch.obj \ 105 $(OUTDIR)/dirent.obj \ 106 $(OUTDIR)/pathstuff.obj 107 108$(OUTDIR)/make.exe: $(OUTDIR) $(OBJS) 109 $(LINK) @<< 110 $(LDFLAGS) $(LIBS) $(OBJS) 111<< 112 113.c{$(OUTDIR)}.obj: 114 $(CC) $(CFLAGS) /c $< 115 116$(OUTDIR)/glob.obj : glob/glob.c 117 $(CC) $(CFLAGS) /c $? 118$(OUTDIR)/fnmatch.obj : glob/fnmatch.c 119 $(CC) $(CFLAGS) /c $? 120$(OUTDIR)/dirent.obj : w32/compat/dirent.c 121 $(CC) $(CFLAGS) /c $? 122$(OUTDIR)/pathstuff.obj : w32/pathstuff.c 123 $(CC) $(CFLAGS) /c $? 124 125# --------------- DEPENDENCIES 126# 127# dummy 128# dummy 129ar.o : \ 130 ar.c make.h config.h \ 131 getopt.h \ 132 gettext.h filedef.h \ 133 hash.h dep.h 134arscan.o : \ 135 arscan.c make.h config.h \ 136 getopt.h \ 137 gettext.h \ 138 139commands.o : \ 140 commands.c make.h config.h \ 141 getopt.h \ 142 gettext.h dep.h \ 143 filedef.h hash.h variable.h job.h commands.h 144default.o : \ 145 default.c make.h config.h \ 146 getopt.h \ 147 gettext.h rule.h \ 148 dep.h filedef.h hash.h job.h commands.h variable.h 149dir.o : \ 150 dir.c make.h config.h \ 151 getopt.h \ 152 gettext.h hash.h \ 153 154expand.o : \ 155 expand.c make.h config.h \ 156 getopt.h \ 157 gettext.h \ 158 filedef.h hash.h job.h commands.h variable.h \ 159 rule.h 160file.o : \ 161 file.c make.h config.h \ 162 getopt.h \ 163 gettext.h \ 164 dep.h filedef.h hash.h job.h commands.h \ 165 variable.h debug.h 166function.o : \ 167 function.c make.h config.h \ 168 getopt.h \ 169 gettext.h filedef.h \ 170 hash.h variable.h dep.h job.h commands.h debug.h 171getopt.o : \ 172 getopt.c config.h \ 173 174getopt1.o : \ 175 getopt1.c config.h getopt.h \ 176 177hash.o : \ 178 hash.c make.h config.h \ 179 getopt.h \ 180 gettext.h hash.h 181implicit.o : \ 182 implicit.c make.h config.h \ 183 getopt.h \ 184 gettext.h rule.h \ 185 dep.h filedef.h hash.h debug.h 186job.o : \ 187 job.c make.h config.h \ 188 getopt.h \ 189 gettext.h \ 190 job.h debug.h filedef.h hash.h commands.h \ 191 variable.h \ 192 193loadavg-loadavg.o : \ 194 loadavg.c config.h \ 195 make.h \ 196 getopt.h \ 197 gettext.h \ 198 199main.o : \ 200 main.c make.h config.h \ 201 getopt.h \ 202 gettext.h dep.h \ 203 filedef.h hash.h variable.h job.h commands.h rule.h debug.h \ 204 205misc.o : \ 206 misc.c make.h config.h \ 207 getopt.h \ 208 gettext.h dep.h \ 209 debug.h 210read.o : \ 211 read.c make.h config.h \ 212 getopt.h \ 213 gettext.h \ 214 dep.h filedef.h hash.h \ 215 job.h commands.h variable.h rule.h debug.h 216remake.o : \ 217 remake.c make.h config.h \ 218 getopt.h \ 219 gettext.h filedef.h \ 220 hash.h job.h commands.h dep.h variable.h debug.h \ 221 222# dummy 223remote-stub.o : \ 224 remote-stub.c make.h config.h \ 225 getopt.h \ 226 gettext.h filedef.h \ 227 hash.h job.h commands.h 228rule.o : \ 229 rule.c make.h config.h \ 230 getopt.h \ 231 gettext.h dep.h \ 232 filedef.h hash.h job.h commands.h variable.h rule.h 233signame.o : \ 234 signame.c make.h config.h \ 235 getopt.h \ 236 gettext.h 237variable.o : \ 238 variable.c make.h config.h \ 239 getopt.h \ 240 gettext.h dep.h \ 241 filedef.h hash.h job.h commands.h variable.h rule.h 242version.o : \ 243 version.c config.h 244vpath.o : \ 245 vpath.c make.h config.h \ 246 getopt.h \ 247 gettext.h filedef.h \ 248 hash.h variable.h 249