1# Copyright (C) 1991-2002 artofcode LLC. All rights reserved. 2# 3# This program is free software; you can redistribute it and/or modify it 4# under the terms of the GNU General Public License as published by the 5# Free Software Foundation; either version 2 of the License, or (at your 6# option) any later version. 7# 8# This program is distributed in the hope that it will be useful, but 9# WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 11# Public License for more details. 12# 13# You should have received a copy of the GNU General Public License along 14# with this program; if not, write to the Free Software Foundation, Inc., 15# 59 Temple Place, Suite 330, Boston, MA, 02111-1307. 16 17 18# $Id: msvc32.mak,v 1.20.2.9.2.2 2003/03/11 11:59:10 ghostgum Exp $ 19# makefile for 32-bit Microsoft Visual C++, Windows NT or Windows 95 platform. 20# 21# All configurable options are surrounded by !ifndef/!endif to allow 22# preconfiguration from within another makefile. 23# 24# Optimization /O2 seems OK with MSVC++ 4.1, but not with 5.0. 25# Created 1997-01-24 by Russell Lang from MSVC++ 2.0 makefile. 26# Enhanced 97-05-15 by JD 27# Common code factored out 1997-05-22 by L. Peter Deutsch. 28# Made pre-configurable by JD 6/4/98 29# Revised to use subdirectories 1998-11-13 by lpd. 30 31# Note: If you are planning to make self-extracting executables, 32# see winint.mak to find out about third-party software you will need. 33 34# ------------------------------- Options ------------------------------- # 35 36###### This section is the only part of the file you should need to edit. 37 38# ------ Generic options ------ # 39 40# Define the directory for the final executable, and the 41# source, generated intermediate file, and object directories 42# for the graphics library (GL) and the PostScript/PDF interpreter (PS). 43 44!ifndef BINDIR 45BINDIR=.\bin 46!endif 47!ifndef GLSRCDIR 48GLSRCDIR=.\src 49!endif 50!ifndef GLGENDIR 51GLGENDIR=.\obj 52!endif 53!ifndef GLOBJDIR 54GLOBJDIR=.\obj 55!endif 56!ifndef PSSRCDIR 57PSSRCDIR=.\src 58!endif 59!ifndef PSLIBDIR 60PSLIBDIR=.\lib 61!endif 62!ifndef PSGENDIR 63PSGENDIR=.\obj 64!endif 65!ifndef PSOBJDIR 66PSOBJDIR=.\obj 67!endif 68 69# Define the root directory for Ghostscript installation. 70 71!ifndef AROOTDIR 72AROOTDIR=c:/gs 73!endif 74!ifndef GSROOTDIR 75GSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION) 76!endif 77 78# Define the directory that will hold documentation at runtime. 79 80!ifndef GS_DOCDIR 81GS_DOCDIR=$(GSROOTDIR)/doc 82!endif 83 84# Define the default directory/ies for the runtime initialization and 85# font files. Separate multiple directories with ';'. 86# Use / to indicate directories, not \. 87# MSVC will not allow \'s here because it sees '\;' CPP-style as an 88# illegal escape. 89 90!ifndef GS_LIB_DEFAULT 91GS_LIB_DEFAULT=$(GSROOTDIR)/lib;$(AROOTDIR)/fonts 92!endif 93 94# Define whether or not searching for initialization files should always 95# look in the current directory first. This leads to well-known security 96# and confusion problems, but users insist on it. 97# NOTE: this also affects searching for files named on the command line: 98# see the "File searching" section of Use.htm for full details. 99# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. 100 101!ifndef SEARCH_HERE_FIRST 102SEARCH_HERE_FIRST=1 103!endif 104 105# Define the name of the interpreter initialization file. 106# (There is no reason to change this.) 107 108!ifndef GS_INIT 109GS_INIT=gs_init.ps 110!endif 111 112# Choose generic configuration options. 113 114# Setting DEBUG=1 includes debugging features (-Z switch) in the code. 115# Code runs substantially slower even if no debugging switches are set, 116# and is also substantially larger. 117 118!ifndef DEBUG 119DEBUG=0 120!endif 121 122# Setting TDEBUG=1 includes symbol table information for the debugger, 123# and also enables stack checking. Code is substantially slower and larger. 124 125# NOTE: The MSVC++ 5.0 compiler produces incorrect output code with TDEBUG=0. 126# Leave TDEBUG set to 1. 127 128!ifndef TDEBUG 129TDEBUG=1 130!endif 131 132# Setting NOPRIVATE=1 makes private (static) procedures and variables public, 133# so they are visible to the debugger and profiler. 134# No execution time or space penalty, just larger .OBJ and .EXE files. 135 136!ifndef NOPRIVATE 137NOPRIVATE=0 138!endif 139 140# Define the name of the executable file. 141 142!ifndef GS 143GS=gswin32 144!endif 145!ifndef GSCONSOLE 146GSCONSOLE=gswin32c 147!endif 148!ifndef GSDLL 149GSDLL=gsdll32 150!endif 151 152!ifndef BUILD_TIME_GS 153# Define the name of a pre-built executable that can be invoked at build 154# time. Currently, this is only needed for compiled fonts. The usual 155# alternatives are: 156# - the standard name of Ghostscript on your system (typically `gs'): 157BUILD_TIME_GS=gswin32c 158# - the name of the executable you are building now. If you choose this 159# option, then you must build the executable first without compiled fonts, 160# and then again with compiled fonts. 161#BUILD_TIME_GS=$(BINDIR)\$(GS) -I$(PSLIBDIR) 162!endif 163 164# To build two small executables and a large DLL use MAKEDLL=1 165# To build two large executables use MAKEDLL=0 166 167!ifndef MAKEDLL 168MAKEDLL=1 169!endif 170 171# Define the directory where the IJG JPEG library sources are stored, 172# and the major version of the library that is stored there. 173# You may need to change this if the IJG library version changes. 174# See jpeg.mak for more information. 175 176!ifndef JSRCDIR 177JSRCDIR=jpeg 178JVERSION=6 179!endif 180 181# Define the directory where the PNG library sources are stored, 182# and the version of the library that is stored there. 183# You may need to change this if the libpng version changes. 184# See libpng.mak for more information. 185 186!ifndef PSRCDIR 187PSRCDIR=libpng 188PVERSION=10205 189!endif 190 191# Define the directory where the zlib sources are stored. 192# See zlib.mak for more information. 193 194!ifndef ZSRCDIR 195ZSRCDIR=zlib 196!endif 197 198# Define the directory where the icclib source are stored. 199# See icclib.mak for more information 200 201!ifndef ICCSRCDIR 202ICCSRCDIR=icclib 203!endif 204 205# Define the directory where the ijs source is stored, 206# and the process forking method to use for the server. 207# See ijs.mak for more information. 208 209!ifndef IJSSRCDIR 210IJSSRCDIR=ijs 211IJSEXECTYPE=win 212!endif 213 214# Define any other compilation flags. 215 216!ifndef CFLAGS 217CFLAGS= 218!endif 219 220# Do not edit the next group of lines. 221 222#!include $(COMMONDIR)\msvcdefs.mak 223#!include $(COMMONDIR)\pcdefs.mak 224#!include $(COMMONDIR)\generic.mak 225!include $(GLSRCDIR)\version.mak 226# The following is a hack to get around the special treatment of \ at 227# the end of a line. 228NUL= 229DD=$(GLGENDIR)\$(NUL) 230GLD=$(GLGENDIR)\$(NUL) 231PSD=$(PSGENDIR)\$(NUL) 232 233# ------ Platform-specific options ------ # 234 235# Define which major version of MSVC is being used 236# (currently, 4, 5, and 6 are supported). 237 238!ifndef MSVC_VERSION 239MSVC_VERSION=6 240!endif 241 242# Define the drive, directory, and compiler name for the Microsoft C files. 243# COMPDIR contains the compiler and linker (normally \msdev\bin). 244# MSINCDIR contains the include files (normally \msdev\include). 245# LIBDIR contains the library files (normally \msdev\lib). 246# COMP is the full C compiler path name (normally \msdev\bin\cl). 247# COMPCPP is the full C++ compiler path name (normally \msdev\bin\cl). 248# COMPAUX is the compiler name for DOS utilities (normally \msdev\bin\cl). 249# RCOMP is the resource compiler name (normallly \msdev\bin\rc). 250# LINK is the full linker path name (normally \msdev\bin\link). 251# Note that when MSINCDIR and LIBDIR are used, they always get a '\' appended, 252# so if you want to use the current directory, use an explicit '.'. 253 254!if $(MSVC_VERSION) == 4 255! ifndef DEVSTUDIO 256DEVSTUDIO=c:\msdev 257! endif 258COMPBASE=$(DEVSTUDIO) 259SHAREDBASE=$(DEVSTUDIO) 260!endif 261 262!if $(MSVC_VERSION) == 5 263! ifndef DEVSTUDIO 264DEVSTUDIO=C:\Program Files\Devstudio 265! endif 266!if "$(DEVSTUDIO)"=="" 267COMPBASE= 268SHAREDBASE= 269!else 270COMPBASE=$(DEVSTUDIO)\VC 271SHAREDBASE=$(DEVSTUDIO)\SharedIDE 272!endif 273!endif 274 275!if $(MSVC_VERSION) == 6 276! ifndef DEVSTUDIO 277DEVSTUDIO=C:\Program Files\Microsoft Visual Studio 278! endif 279!if "$(DEVSTUDIO)"=="" 280COMPBASE= 281SHAREDBASE= 282!else 283COMPBASE=$(DEVSTUDIO)\VC98 284SHAREDBASE=$(DEVSTUDIO)\Common\MSDev98 285!endif 286!endif 287 288!if $(MSVC_VERSION) == 7 289! ifndef DEVSTUDIO 290DEVSTUDIO=C:\Program Files\Microsoft Visual Studio .NET 291! endif 292!if "$(DEVSTUDIO)"=="" 293COMPBASE= 294SHAREDBASE= 295!else 296COMPBASE=$(DEVSTUDIO)\Vc7 297SHAREDBASE=$(DEVSTUDIO)\Vc7\ 298!endif 299!endif 300 301# Some environments don't want to specify the path names for the tools at all. 302# Typical definitions for such an environment would be: 303# MSINCDIR= LIBDIR= COMP=cl COMPAUX=cl RCOMP=rc LINK=link 304# COMPDIR, LINKDIR, and RCDIR are irrelevant, since they are only used to 305# define COMP, LINK, and RCOMP respectively, but we allow them to be 306# overridden anyway for completeness. 307!ifndef COMPDIR 308!if "$(COMPBASE)"=="" 309COMPDIR= 310!else 311COMPDIR=$(COMPBASE)\bin 312!endif 313!endif 314 315!ifndef LINKDIR 316!if "$(COMPBASE)"=="" 317LINKDIR= 318!else 319LINKDIR=$(COMPBASE)\bin 320!endif 321!endif 322 323!ifndef RCDIR 324!if "$(SHAREDBASE)"=="" 325RCDIR= 326!else 327RCDIR=$(SHAREDBASE)\bin 328!endif 329!endif 330 331!ifndef MSINCDIR 332!if "$(COMPBASE)"=="" 333MSINCDIR= 334!else 335MSINCDIR=$(COMPBASE)\include 336!endif 337!endif 338 339!ifndef LIBDIR 340!if "$(COMPBASE)"=="" 341LIBDIR= 342!else 343LIBDIR=$(COMPBASE)\lib 344!endif 345!endif 346 347!ifndef COMP 348!if "$(COMPDIR)"=="" 349COMP=cl 350!else 351COMP="$(COMPDIR)\cl" 352!endif 353!endif 354!ifndef COMPCPP 355COMPCPP=$(COMP) 356!endif 357!ifndef COMPAUX 358COMPAUX=$(COMP) 359!endif 360 361!ifndef RCOMP 362!if "$(RCDIR)"=="" 363RCOMP=rc 364!else 365RCOMP="$(RCDIR)\rc" 366!endif 367!endif 368 369!ifndef LINK 370!if "$(LINKDIR)"=="" 371LINK=link 372!else 373LINK="$(LINKDIR)\link" 374!endif 375!endif 376 377# nmake does not have a form of .BEFORE or .FIRST which can be used 378# to specify actions before anything else is done. If LIB and INCLUDE 379# are not defined then we want to define them before we link or 380# compile. Here is a kludge which allows us to to do what we want. 381# nmake does evaluate preprocessor directives when they are encountered. 382# So the desired set statements are put into dummy preprocessor 383# directives. 384!ifndef INCLUDE 385!if "$(MSINCDIR)"!="" 386!if [set INCLUDE=$(MSINCDIR)]==0 387!endif 388!endif 389!endif 390!ifndef LIB 391!if "$(LIBDIR)"!="" 392!if [set LIB=$(LIBDIR)]==0 393!endif 394!endif 395!endif 396 397# Define the processor architecture. (i386, ppc, alpha) 398 399!ifndef CPU_FAMILY 400CPU_FAMILY=i386 401#CPU_FAMILY=ppc 402#CPU_FAMILY=alpha # not supported yet - we need someone to tweak 403!endif 404 405# Define the processor (CPU) type. Allowable values depend on the family: 406# i386: 386, 486, 586 407# ppc: 601, 604, 620 408# alpha: not currently used. 409 410!ifndef CPU_TYPE 411CPU_TYPE=486 412#CPU_TYPE=601 413!endif 414 415!if "$(CPU_FAMILY)"=="i386" 416 417# Intel(-compatible) processors are the only ones for which the CPU type 418# doesn't indicate whether a math coprocessor is present. 419# For Intel processors only, define the math coprocessor (FPU) type. 420# Options are -1 (optimize for no FPU), 0 (optimize for FPU present, 421# but do not require a FPU), 87, 287, or 387. 422# If you have a 486 or Pentium CPU, you should normally set FPU_TYPE to 387, 423# since most of these CPUs include the equivalent of an 80387 on-chip; 424# however, the 486SX and the Cyrix 486SLC do not have an on-chip FPU, so if 425# you have one of these CPUs and no external FPU, set FPU_TYPE to -1 or 0. 426# An xx87 option means that the executable will run only if a FPU 427# of that type (or higher) is available: this is NOT currently checked 428# at runtime. 429 430! ifndef FPU_TYPE 431FPU_TYPE=387 432! endif 433 434!endif 435 436# Define the .dev module that implements thread and synchronization 437# primitives for this platform. Don't change this unless you really know 438# what you're doing. 439 440!ifndef SYNC 441SYNC=winsync 442!endif 443 444# ------ Devices and features ------ # 445 446# Choose the language feature(s) to include. See gs.mak for details. 447 448!ifndef FEATURE_DEVS 449FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)mshandle.dev $(PSD)msprinter.dev $(PSD)mspoll.dev $(GLD)pipe.dev 450!endif 451 452# Choose whether to compile the .ps initialization files into the executable. 453# See gs.mak for details. 454 455!ifndef COMPILE_INITS 456COMPILE_INITS=0 457!endif 458 459# Choose whether to store band lists on files or in memory. 460# The choices are 'file' or 'memory'. 461 462!ifndef BAND_LIST_STORAGE 463BAND_LIST_STORAGE=file 464!endif 465 466# Choose which compression method to use when storing band lists in memory. 467# The choices are 'lzw' or 'zlib'. lzw is not recommended, because the 468# LZW-compatible code in Ghostscript doesn't actually compress its input. 469 470!ifndef BAND_LIST_COMPRESSOR 471BAND_LIST_COMPRESSOR=zlib 472!endif 473 474# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. 475# See gs.mak and sfxfd.c for more details. 476 477!ifndef FILE_IMPLEMENTATION 478FILE_IMPLEMENTATION=stdio 479!endif 480 481# Choose the implementation of stdio: '' for file I/O and 'c' for callouts 482# See gs.mak and ziodevs.c/ziodevsc.c for more details. 483 484!ifndef STDIO_IMPLEMENTATION 485STDIO_IMPLEMENTATION=c 486!endif 487 488# Choose the device(s) to include. See devs.mak for details, 489# devs.mak and contrib.mak for the list of available devices. 490 491!ifndef DEVICE_DEVS 492DEVICE_DEVS=$(DD)display.dev $(DD)mswindll.dev $(DD)mswinprn.dev $(DD)mswinpr2.dev 493DEVICE_DEVS2=$(DD)epson.dev $(DD)eps9high.dev $(DD)eps9mid.dev $(DD)epsonc.dev $(DD)ibmpro.dev 494DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev 495DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev 496DEVICE_DEVS5=$(DD)uniprint.dev $(DD)ijs.dev $(DD)djet500c.dev $(DD)declj250.dev $(DD)lj250.dev 497DEVICE_DEVS6=$(DD)st800.dev $(DD)stcolor.dev $(DD)bj10e.dev $(DD)bj200.dev 498DEVICE_DEVS7=$(DD)t4693d2.dev $(DD)t4693d4.dev $(DD)t4693d8.dev $(DD)tek4696.dev 499DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev 500DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev 501DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev 502DEVICE_DEVS11=$(DD)bmpmono.dev $(DD)bmpgray.dev $(DD)bmp16.dev $(DD)bmp256.dev $(DD)bmp16m.dev $(DD)tiff12nc.dev $(DD)tiff24nc.dev 503DEVICE_DEVS12=$(DD)psmono.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev 504DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev 505DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev 506DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev 507DEVICE_DEVS16=$(DD)bbox.dev 508# Overflow for DEVS3,4,5,6,9 509DEVICE_DEVS17=$(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev 510DEVICE_DEVS18=$(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev $(DD)jetp3852.dev $(DD)r4081.dev 511DEVICE_DEVS19=$(DD)lbp8.dev $(DD)m8510.dev $(DD)necp6.dev $(DD)bjc600.dev $(DD)bjc800.dev 512DEVICE_DEVS20=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev 513!endif 514 515# ---------------------------- End of options ---------------------------- # 516 517# Derive values for FPU_TYPE for non-Intel processors. 518 519!if "$(CPU_FAMILY)"=="ppc" 520! if $(CPU_TYPE)>601 521FPU_TYPE=2 522! else 523FPU_TYPE=1 524! endif 525!endif 526 527!if "$(CPU_FAMILY)"=="alpha" 528# *** alpha *** This needs fixing 529FPU_TYPE=1 530!endif 531 532# Define the name of the makefile -- used in dependencies. 533 534MAKEFILE=$(GLSRCDIR)\msvc32.mak 535TOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)\msvccmd.mak $(GLSRCDIR)\msvctail.mak $(GLSRCDIR)\winlib.mak $(GLSRCDIR)\winint.mak 536 537# Define the files to be removed by `make clean'. 538# nmake expands macros when encountered, not when used, 539# so this must precede the !include statements. 540 541BEGINFILES2=$(GLGENDIR)\lib32.rsp\ 542 $(GLOBJDIR)\*.exp $(GLOBJDIR)\*.ilk $(GLOBJDIR)\*.pdb $(GLOBJDIR)\*.lib\ 543 $(BINDIR)\*.exp $(BINDIR)\*.ilk $(BINDIR)\*.pdb $(BINDIR)\*.lib obj.pdb 544 545!include $(GLSRCDIR)\msvccmd.mak 546!include $(GLSRCDIR)\winlib.mak 547!include $(GLSRCDIR)\msvctail.mak 548!include $(GLSRCDIR)\winint.mak 549 550# ----------------------------- Main program ------------------------------ # 551 552GSCONSOLE_XE=$(BINDIR)\$(GSCONSOLE).exe 553GSDLL_DLL=$(BINDIR)\$(GSDLL).dll 554GSDLL_OBJS=$(GLOBJ)gsdll.$(OBJ) $(GLOBJ)gp_msdll.$(OBJ) 555 556$(GLGEN)lib32.rsp: $(TOP_MAKEFILES) 557 echo /NODEFAULTLIB:LIBC.lib > $(GLGEN)lib32.rsp 558 echo libcmt.lib >> $(GLGEN)lib32.rsp 559 560!if $(MAKEDLL) 561# The graphical small EXE loader 562$(GS_XE): $(GSDLL_DLL) $(DWOBJ) $(GSCONSOLE_XE) $(SETUP_XE) $(UNINSTALL_XE) 563 echo /SUBSYSTEM:WINDOWS > $(GLGEN)gswin32.rsp 564 echo /DEF:$(GLSRCDIR)\dwmain32.def /OUT:$(GS_XE) >> $(GLGEN)gswin32.rsp 565 $(LINK) $(LCT) @$(GLGEN)gswin32.rsp $(DWOBJ) @$(LIBCTR) $(GS_OBJ).res 566 del $(GLGEN)gswin32.rsp 567 568# The console mode small EXE loader 569$(GSCONSOLE_XE): $(OBJC) $(GS_OBJ).res $(GLSRCDIR)\dw32c.def 570 echo /SUBSYSTEM:CONSOLE > $(GLGEN)gswin32.rsp 571 echo /DEF:$(GLSRCDIR)\dw32c.def /OUT:$(GSCONSOLE_XE) >> $(GLGEN)gswin32.rsp 572 $(LINK) $(LCT) @$(GLGEN)gswin32.rsp $(OBJC) @$(LIBCTR) $(GS_OBJ).res 573 del $(GLGEN)gswin32.rsp 574 575# The big DLL 576$(GSDLL_DLL): $(GS_ALL) $(DEVS_ALL) $(GSDLL_OBJS) $(GSDLL_OBJ).res $(GLGEN)lib32.rsp 577 echo /DLL /DEF:$(GLSRCDIR)\gsdll32.def /OUT:$(GSDLL_DLL) > $(GLGEN)gswin32.rsp 578 $(LINK) $(LCT) @$(GLGEN)gswin32.rsp $(GSDLL_OBJS) @$(ld_tr) $(INTASM) @$(GLGEN)lib.tr @$(GLGEN)lib32.rsp @$(LIBCTR) $(GSDLL_OBJ).res 579 del $(GLGEN)gswin32.rsp 580 581!else 582# The big graphical EXE 583$(GS_XE): $(GSCONSOLE_XE) $(GS_ALL) $(DEVS_ALL) $(GSDLL_OBJS) $(DWOBJNO) $(GSDLL_OBJ).res $(GLSRCDIR)\dwmain32.def $(GLGEN)lib32.rsp 584 copy $(ld_tr) $(GLGEN)gswin32.tr 585 echo $(GLOBJ)dwnodll.obj >> $(GLGEN)gswin32.tr 586 echo $(GLOBJ)dwimg.obj >> $(GLGEN)gswin32.tr 587 echo $(GLOBJ)dwmain.obj >> $(GLGEN)gswin32.tr 588 echo $(GLOBJ)dwtext.obj >> $(GLGEN)gswin32.tr 589 echo $(GLOBJ)dwreg.obj >> $(GLGEN)gswin32.tr 590 echo /DEF:$(GLSRCDIR)\dwmain32.def /OUT:$(GS_XE) > $(GLGEN)gswin32.rsp 591 $(LINK) $(LCT) @$(GLGEN)gswin32.rsp $(GLOBJ)gsdll @$(GLGEN)gswin32.tr @$(LIBCTR) $(INTASM) @$(GLGEN)lib.tr @$(GLGEN)lib32.rsp $(GSDLL_OBJ).res 592 del $(GLGEN)gswin32.tr 593 del $(GLGEN)gswin32.rsp 594 595# The big console mode EXE 596$(GSCONSOLE_XE): $(GS_ALL) $(DEVS_ALL) $(GSDLL_OBJS) $(OBJCNO) $(GS_OBJ).res $(GLSRCDIR)\dw32c.def $(GLGEN)lib32.rsp 597 copy $(ld_tr) $(GLGEN)gswin32c.tr 598 echo $(GLOBJ)dwnodllc.obj >> $(GLGEN)gswin32c.tr 599 echo $(GLOBJ)dwimg.obj >> $(GLGEN)gswin32c.tr 600 echo $(GLOBJ)dwmainc.obj >> $(GLGEN)gswin32c.tr 601 echo $(GLOBJ)dwreg.obj >> $(GLGEN)gswin32c.tr 602 echo /SUBSYSTEM:CONSOLE > $(GLGEN)gswin32.rsp 603 echo /DEF:$(GLSRCDIR)\dw32c.def /OUT:$(GSCONSOLE_XE) >> $(GLGEN)gswin32.rsp 604 $(LINK) $(LCT) @$(GLGEN)gswin32.rsp $(GLOBJ)gsdll @$(GLGEN)gswin32c.tr @$(LIBCTR) $(INTASM) @$(GLGEN)lib.tr @$(GLGEN)lib32.rsp $(GS_OBJ).res 605 del $(GLGEN)gswin32.rsp 606 del $(GLGEN)gswin32c.tr 607!endif 608 609# ---------------------- Setup and uninstall programs ---------------------- # 610 611!if $(MAKEDLL) 612 613$(SETUP_XE): $(GLOBJ)dwsetup.obj $(GLOBJ)dwinst.obj $(GLOBJ)dwsetup.res $(GLSRC)dwsetup.def 614 echo /DEF:$(GLSRC)dwsetup.def /OUT:$(SETUP_XE) > $(GLGEN)dwsetup.rsp 615 echo $(GLOBJ)dwsetup.obj $(GLOBJ)dwinst.obj >> $(GLGEN)dwsetup.rsp 616 copy $(LIBCTR) $(GLGEN)dwsetup.tr 617 echo ole32.lib >> $(GLGEN)dwsetup.tr 618 echo uuid.lib >> $(GLGEN)dwsetup.tr 619 $(LINK) $(LCT) @$(GLGEN)dwsetup.rsp @$(GLGEN)dwsetup.tr $(GLOBJ)dwsetup.res 620 del $(GLGEN)dwsetup.rsp 621 del $(GLGEN)dwsetup.tr 622 623$(UNINSTALL_XE): $(GLOBJ)dwuninst.obj $(GLOBJ)dwuninst.res $(GLSRC)dwuninst.def 624 echo /DEF:$(GLSRC)dwuninst.def /OUT:$(UNINSTALL_XE) > $(GLGEN)dwuninst.rsp 625 echo $(GLOBJ)dwuninst.obj >> $(GLGEN)dwuninst.rsp 626 copy $(LIBCTR) $(GLGEN)dwuninst.tr 627 echo ole32.lib >> $(GLGEN)dwuninst.tr 628 echo uuid.lib >> $(GLGEN)dwuninst.tr 629 $(LINK) $(LCT) @$(GLGEN)dwuninst.rsp @$(GLGEN)dwuninst.tr $(GLOBJ)dwuninst.res 630 del $(GLGEN)dwuninst.rsp 631 del $(GLGEN)dwuninst.tr 632 633!endif 634 635DEBUGDEFS=BINDIR=.\debugbin GLGENDIR=.\debugobj GLOBJDIR=.\debugobj PSLIBDIR=.\lib PSGENDIR=.\debugobj PSOBJDIR=.\debugobj DEBUG=1 TDEBUG=1 636debug: 637 nmake $(DEBUGDEFS) 638 639debugclean: 640 nmake $(DEBUGDEFS) clean 641 642# end of makefile 643