1# Copyright (C) 1989-1999 Aladdin Enterprises. All rights reserved. 2# 3# This software is provided AS-IS with no warranty, either express or 4# implied. 5# 6# This software is distributed under license and may not be copied, 7# modified or distributed except as expressly authorized under the terms 8# of the license contained in the file LICENSE in this distribution. 9# 10# For more information about licensing, please refer to 11# http://www.ghostscript.com/licensing/. For information on 12# commercial licensing, go to http://www.artifex.com/licensing/ or 13# contact Artifex Software, Inc., 101 Lucas Valley Road #110, 14# San Rafael, CA 94903, U.S.A., +1(415)492-9861. 15 16# $Id: bcwin32.mak,v 1.38 2005/08/31 05:52:32 ray Exp $ 17# makefile for (MS-Windows 3.1/Win32s / Windows 95 / Windows NT) + 18# Borland C++ 4.5 platform. 19# Borland C++Builder 3 platform (need BC++ 4.5 for 16-bit code) 20 21# ------------------------------- Options ------------------------------- # 22 23###### This section is the only part of the file you should need to edit. 24 25# ------ Generic options ------ # 26 27# Define the directory for the final executable, and the 28# source, generated intermediate file, and object directories 29# for the graphics library (GL) and the PostScript/PDF interpreter (PS). 30 31BINDIR=bin 32GLSRCDIR=src 33GLGENDIR=obj 34GLOBJDIR=obj 35PSSRCDIR=src 36PSLIBDIR=lib 37PSGENDIR=obj 38PSOBJDIR=obj 39 40# Define the root directory for Ghostscript installation. 41 42!ifndef AROOTDIR 43AROOTDIR=c:/gs 44!endif 45 46!ifndef GSROOTDIR 47GSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION) 48!endif 49 50# Define the directory that will hold documentation at runtime. 51 52GS_DOCDIR=$(GSROOTDIR)/doc 53 54# Define the default directory/ies for the runtime 55# initialization, resource and font files. Separate multiple directories with \;. 56# Use / to indicate directories, not a single \. 57 58!ifndef GS_LIB_DEFAULT 59GS_LIB_DEFAULT=$(GSROOTDIR)/lib\;$(GSROOTDIR)/Resource\;$(AROOTDIR)/fonts 60!endif 61 62# Define whether or not searching for initialization files should always 63# look in the current directory first. This leads to well-known security 64# and confusion problems, but users insist on it. 65# NOTE: this also affects searching for files named on the command line: 66# see the "File searching" section of Use.htm for full details. 67# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. 68 69!ifndef SEARCH_HERE_FIRST 70SEARCH_HERE_FIRST=1 71!endif 72 73# Define the name of the interpreter initialization file. 74# (There is no reason to change this.) 75 76!ifndef GS_INIT 77GS_INIT=gs_init.ps 78!endif 79 80# Choose generic configuration options. 81 82# Setting DEBUG=1 includes debugging features (-Z switch) in the code. The 83# compiled code is substantially slower and larger. 84 85!ifndef DEBUG 86DEBUG=0 87!endif 88 89# Setting TDEBUG=1 includes symbol table information for the debugger, and 90# also enables stack checking. The compiled code is substantially slower 91# and larger. 92 93!ifndef TDEBUG 94TDEBUG=0 95!endif 96 97# Setting NOPRIVATE=1 makes private (static) procedures and variables 98# public, so they are visible to the debugger and profiler. There is no 99# execution time or space penalty, just larger .OBJ and .EXE files. 100 101!ifndef NOPRIVATE 102NOPRIVATE=0 103!endif 104 105# Define the names of the executable files. 106 107GS=gswin32 108GSCONSOLE=gswin32c 109GSDLL=gsdll32 110 111# Define the name of a pre-built executable that can be invoked at build 112# time. Currently, this is only needed for compiled fonts. The usual 113# alternatives are: 114# - the standard name of Ghostscript on your system (typically `gs'): 115BUILD_TIME_GS=gswin32c 116# - the name of the executable you are building now. If you choose this 117# option, then you must build the executable first without compiled fonts, 118# and then again with compiled fonts. 119#BUILD_TIME_GS=$(BINDIR)\$(GS) -I$(PSLIBDIR) 120 121# To build two small executables and a large DLL, use MAKEDLL=1. 122# To build two large executables, use MAKEDLL=0. 123 124!ifndef MAKEDLL 125MAKEDLL=1 126!endif 127 128# If you want multi-thread-safe compilation, set MULTITHREAD=1; if not, set 129# MULTITHREAD=0. MULTITHREAD=0 produces slightly smaller and faster code, 130# but MULTITHREAD=1 is required if you use any "asynchronous" output 131# drivers. 132 133!ifndef MULTITHREAD 134MULTITHREAD=1 135!endif 136 137# Define the directory where the IJG JPEG library sources are stored, 138# and the major version of the library that is stored there. 139# You may need to change this if the IJG library version changes. 140# See jpeg.mak for more information. 141 142!ifndef JSRCDIR 143JSRCDIR=jpeg 144JVERSION=6 145!endif 146 147# Define the directory where the PNG library sources are stored, 148# and the version of the library that is stored there. 149# You may need to change this if the libpng version changes. 150# See libpng.mak for more information. 151 152!ifndef PSRCDIR 153PSRCDIR=libpng 154PVERSION=10208 155!endif 156 157# Define the directory where the zlib sources are stored. 158# See zlib.mak for more information. 159 160!ifndef ZSRCDIR 161ZSRCDIR=zlib 162!endif 163 164# Define the directory where the icclib source are stored. 165# See icclib.mak for more information 166 167!ifndef ICCSRCDIR 168ICCSRCDIR=icclib 169!endif 170 171# Define the directory where the ijs source is stored, 172# and the process forking method to use for the server. 173# See ijs.mak for more information. 174 175!ifndef IJSSRCDIR 176IJSSRCDIR=ijs 177IJSEXECTYPE=win 178!endif 179 180# Define any other compilation flags. 181 182!ifndef CFLAGS 183CFLAGS= 184!endif 185 186# Do not edit the next group of lines. 187 188#!include $(COMMONDIR)\bcdefs.mak 189#!include $(COMMONDIR)\pcdefs.mak 190#!include $(COMMONDIR)\generic.mak 191!include $(GLSRCDIR)\version.mak 192# The following is a hack to get around the special treatment of \ at 193# the end of a line. 194NUL= 195DD=$(GLGENDIR)\$(NUL) 196GLD=$(GLGENDIR)\$(NUL) 197PSD=$(PSGENDIR)\$(NUL) 198 199# ------ Platform-specific options ------ # 200 201# Define the drive, directory, and compiler name for the Borland C files. 202# BUILDER_VERSION=0 for BC++4.5, 3 for C++Builder3, 4 for C++Builder4, 203# 5 for C++Builder5. 204# COMPDIR contains the compiler and linker (normally \bc\bin). 205# INCDIR contains the include files (normally \bc\include). 206# LIBDIR contains the library files (normally \bc\lib). 207# COMP is the full C compiler name (bcc32 for Borland C++). 208# COMPCPP is the full C++ compiler path name (bcc32 for Borland C++). 209# COMPAUX is the compiler name for DOS utilities (bcc for Borland C++). 210# RCOMP is the resource compiler name (brcc32 for Borland C++). 211# LINK is the full linker path name (normally \bc\bin\tlink32). 212# Note that these prefixes are always followed by a \, 213# so if you want to use the current directory, use an explicit '.'. 214 215# Rod Webster (rodw) 216# If C++Builder is later than 4 then you need to 217# define BUILDER_VERSION explicity uisng BUILDER_VERSION=5 because 218# C++Builder 4 and above all use Make Version 5.2 so point we can no 219# longer tell the Compiler version from the __MAKE__ version number. 220 221!ifndef BUILDER_VERSION 222BUILDER_VERSION=5 223!endif 224 225!ifndef BUILDER_VERSION 226!if $(__MAKE__) >= 0x520 227# C++Builder4 228BUILDER_VERSION=4 229!elif $(__MAKE__) >= 0x510 230# C++Builder3 231BUILDER_VERSION=3 232!else 233# BC++4.5 234BUILDER_VERSION=0 235!endif 236!endif 237 238!ifndef COMPBASE 239!if $(BUILDER_VERSION) == 0 240COMPBASE=c:\bc 241COMPBASE16=$(COMPBASE) 242!endif 243!if $(BUILDER_VERSION) == 3 244COMPBASE=c:\Progra~1\Borland\CBuilder3 245COMPBASE16=c:\bc 246!endif 247!if $(BUILDER_VERSION) == 4 248COMPBASE=c:\Progra~1\Borland\CBuilder4 249COMPBASE16=c:\bc 250!endif 251!if $(BUILDER_VERSION) == 5 252COMPBASE=c:\Borland\BCC55 253#COMPBASE16=$(COMPBASE) 254!endif 255!endif 256 257COMPDIR=$(COMPBASE)\bin 258INCDIR=$(COMPBASE)\include 259LIBDIR=$(COMPBASE)\lib 260COMP=$(COMPDIR)\bcc32 261COMPCPP=$(COMP) 262RCOMP=$(COMPDIR)\brcc32 263 264!if $(BUILDER_VERSION) == 0 265COMPAUX=$(COMPDIR)\bcc 266!else 267COMPAUX=$(COMPDIR)\bcc32 268!endif 269 270!if $(BUILDER_VERSION) == 4 271LINK=$(COMPDIR)\ilink32 272!endif 273!if $(BUILDER_VERSION) == 5 274LINK=$(COMPDIR)\ilink32 275!endif 276 277# If you don't have an assembler, set USE_ASM=0. Otherwise, set USE_ASM=1, 278# and set ASM to the name of the assembler you are using. This can be 279# a full path name if you want. Normally it will be masm or tasm. 280 281USE_ASM=0 282ASM=tasm 283 284# Define the processor architecture. (always i386) 285 286CPU_FAMILY=i386 287 288# Define the processor (CPU) type. (386, 486 or 586) 289 290CPU_TYPE=586 291 292# Define the math coprocessor (FPU) type. 293# Options are -1 (optimize for no FPU), 0 (optimize for FPU present, 294# but do not require a FPU), 87, 287, or 387. 295# If you have a 486 or Pentium CPU, you should normally set FPU_TYPE to 387, 296# since most of these CPUs include the equivalent of an 80387 on-chip; 297# however, the 486SX and the Cyrix 486SLC do not have an on-chip FPU, so if 298# you have one of these CPUs and no external FPU, set FPU_TYPE to -1 or 0. 299# An xx87 option means that the executable will run only if a FPU 300# of that type (or higher) is available: this is NOT currently checked 301# at runtime. 302 303FPU_TYPE=387 304 305# Define the .dev module that implements thread and synchronization 306# primitives for this platform. Don't change this unless you really know 307# what you're doing. 308 309SYNC=winsync 310 311# ------ Devices and features ------ # 312 313# Choose the language feature(s) to include. See gs.mak for details. 314 315FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)mshandle.dev $(PSD)mspoll.dev $(GLD)pipe.dev $(PSD)fapi.dev 316 317# Choose whether to compile the .ps initialization files into the executable. 318# See gs.mak for details. 319 320COMPILE_INITS=0 321 322# Choose whether to store band lists on files or in memory. 323# The choices are 'file' or 'memory'. 324 325BAND_LIST_STORAGE=file 326 327# Choose which compression method to use when storing band lists in memory. 328# The choices are 'lzw' or 'zlib'. 329 330BAND_LIST_COMPRESSOR=zlib 331 332# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. 333# See gs.mak and sfxfd.c for more details. 334 335FILE_IMPLEMENTATION=stdio 336 337# Choose the implementation of stdio: '' for file I/O and 'c' for callouts 338# See gs.mak and ziodevs.c/ziodevsc.c for more details. 339 340STDIO_IMPLEMENTATION=c 341 342# Choose the device(s) to include. See devs.mak for details, 343# devs.mak and contrib.mak for the list of available devices. 344 345DEVICE_DEVS=$(DD)display.dev $(DD)mswindll.dev $(DD)mswinpr2.dev 346DEVICE_DEVS2=$(DD)epson.dev $(DD)eps9high.dev $(DD)eps9mid.dev $(DD)epsonc.dev $(DD)ibmpro.dev 347DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev 348DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev 349DEVICE_DEVS5=$(DD)djet500c.dev $(DD)declj250.dev $(DD)lj250.dev 350DEVICE_DEVS6=$(DD)st800.dev $(DD)stcolor.dev $(DD)bj10e.dev $(DD)bj200.dev 351DEVICE_DEVS7=$(DD)t4693d2.dev $(DD)t4693d4.dev $(DD)t4693d8.dev $(DD)tek4696.dev 352DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev 353DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev 354DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev 355DEVICE_DEVS11=$(DD)bmpmono.dev $(DD)bmp16.dev $(DD)bmp256.dev $(DD)bmp16m.dev $(DD)tiff12nc.dev $(DD)tiff24nc.dev 356DEVICE_DEVS12=$(DD)psmono.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev 357DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev 358DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev $(DD)jpegcmyk.dev 359DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)ps2write.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev 360# Overflow for DEVS3,4,5,6,9 361DEVICE_DEVS16=$(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev 362DEVICE_DEVS17=$(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev 363DEVICE_DEVS18=$(DD)jetp3852.dev $(DD)r4081.dev $(DD)lbp8.dev $(DD)uniprint.dev 364DEVICE_DEVS19=$(DD)m8510.dev $(DD)necp6.dev $(DD)bjc600.dev $(DD)bjc800.dev 365DEVICE_DEVS20=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev 366 367# ---------------------------- End of options ---------------------------- # 368 369# Define the name of the makefile -- used in dependencies. 370 371MAKEFILE=$(PSSRCDIR)\bcwin32.mak 372TOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)\winlib.mak $(PSSRCDIR)\winint.mak 373 374# Define the current directory prefix and shell invocations. 375 376D=\\ 377 378EXP= 379SH= 380 381# Define the arguments for genconf. 382 383CONFILES=-p %s+ 384CONFLDTR=-ol 385 386# Define the generic compilation flags. 387 388PLATOPT= 389 390INTASM= 391PCFBASM= 392 393# Make sure we get the right default target for make. 394 395# Rod Webster (rodw) 396# CBuilder 5 does not support 16 bit compilation 397# so add conditional to skip attempts to build 16 bit version 398!if $(BUILDER_VERSION) !=5 399dosdefault: default $(BINDIR)\gs16spl.exe 400!endif 401# Define the switches for the compilers. 402 403C_=-c 404O_=-o 405RO_=-fo 406 407# Define the compilation flags. 408 409!if $(CPU_TYPE)>500 410ASMCPU=/DFOR80386 /DFOR80486 411CPFLAGS=-DFOR80486 -DFOR80386 412!else if $(CPU_TYPE)>400 413ASMCPU=/DFOR80386 /DFOR80486 414CPFLAGS=-DFOR80486 -DFOR80386 415!else 416ASMCPU=/DFOR80386 417CPFLAGS=-DFOR80386 418!endif 419 420!if $(CPU_TYPE) >= 486 || $(FPU_TYPE) > 0 421ASMFPU=/DFORFPU 422!else 423!if $(FPU_TYPE) < 0 424ASMFPU=/DNOFPU 425!else 426ASMFPU= 427!endif 428!endif 429FPFLAGS= 430FPLIB= 431 432!if $(NOPRIVATE)!=0 433CP=-DNOPRIVATE 434!else 435CP= 436!endif 437 438!if $(DEBUG)!=0 439CD=-DDEBUG 440!else 441CD= 442!endif 443 444!if $(TDEBUG)!=0 445CT=-v 446LCT=-v -m -s 447CO= # no optimization when debugging 448ASMDEBUG=/DDEBUG 449!else 450CT= 451LCT= 452CO=-Z -O2 453!endif 454 455!if $(DEBUG)!=0 || $(TDEBUG)!=0 456CS=-N 457!else 458CS= 459!endif 460 461!if $(MULTITHREAD)!=0 462CMT=-tWM 463CLIB=cw32mt.lib 464!else 465CMT= 466CLIB=cw32.lib 467!endif 468 469# Specify function prolog type 470COMPILE_FOR_DLL=-WDE 471COMPILE_FOR_EXE=-WE 472COMPILE_FOR_CONSOLE_EXE=-WC 473 474# The -tWM is for multi-thread-safe compilation. 475GENOPT=$(CP) $(CD) $(CT) $(CS) $(CMT) 476 477CCFLAGS0=$(GENOPT) $(PLATOPT) $(CPFLAGS) $(FPFLAGS) $(CFLAGS) $(XCFLAGS) 478CCFLAGS=$(CCFLAGS0) 479CC=$(COMP) @$(GLGENDIR)\ccf32.tr 480CPP=$(COMPCPP) @$(GLGENDIR)\ccf32.tr 481!if $(MAKEDLL) 482WX=$(COMPILE_FOR_DLL) 483!else 484WX=$(COMPILE_FOR_EXE) 485!endif 486CC_WX=$(CC) $(WX) 487CC_=$(CC_WX) $(CO) 488CC_D=$(CC_WX) 489CC_INT=$(CC_WX) 490CC_NO_WARN=$(CC_) 491 492# No additional flags are needed for Windows compilation. 493CCWINFLAGS= 494 495# Define the files to be removed by `make clean'. 496# nmake expands macros when encountered, not when used, 497# so this must precede the !include statements. 498 499# ****** HACK ****** *.tr is still created in the current directory. 500BEGINFILES2=$(BINDIR)\gs16spl.exe *.tr 501 502# Include the generic makefiles. 503 504!include $(GLSRCDIR)\winlib.mak 505!include $(PSSRCDIR)\winint.mak 506 507# -------------------------- Auxiliary programs --------------------------- # 508 509# Compiler for auxiliary programs 510 511!if $(BUILDER_VERSION) == 0 512CCAUX=$(COMPAUX) -ml -I$(GLSRCDIR) -I$(INCDIR) -L$(LIBDIR) -n$(AUXGENDIR) -O 513!else 514CCAUX=$(COMPAUX) -I$(GLSRCDIR) -I$(INCDIR) -L$(LIBDIR) -n$(AUXGENDIR) -O 515!endif 516CCAUX_TAIL= 517 518$(GLGENDIR)\ccf32.tr: $(TOP_MAKEFILES) 519 echo -a1 -d -r -w-par -w-stu -G -N -X -I$(INCDIR) > $(GLGENDIR)\ccf32.tr 520 echo $(CCFLAGS0) -DCHECK_INTERRUPTS >> $(GLGENDIR)\ccf32.tr 521 522$(ECHOGS_XE): $(GLSRCDIR)\echogs.c 523 $(CCAUX) $(GLSRCDIR)\echogs.c $(CCAUX_TAIL) 524 525# Since we are running in a Windows environment with a different compiler 526# for the DOS utilities, we have to invoke genarch by hand. 527# For unfathomable reasons, the 'win' program requires /, not \, 528# in the name of the program to be run, and apparently also in any 529# file names passed on the command line (?!). 530$(GENARCH_XE): $(GLSRCDIR)\genarch.c $(GENARCH_DEPS) $(GLGENDIR)\ccf32.tr 531 $(COMP) -I$(GLSRCDIR) -I$(INCDIR) -L$(LIBDIR) -n$(AUXGENDIR) -O $(GLSRCDIR)\genarch.c 532 echo win $(AUXGENDIR)/genarch $(GLGENDIR)/arch.h >_genarch.bat 533 echo ***** Run "_genarch.bat", then continue make. ***** 534 535$(GENCONF_XE): $(GLSRCDIR)\genconf.c $(GENCONF_DEPS) 536 $(CCAUX) $(GLSRCDIR)\genconf.c $(CCAUX_TAIL) 537 538$(GENDEV_XE): $(GLSRCDIR)\gendev.c $(GENDEV_DEPS) 539 $(CCAUX) $(GLSRCDIR)\gendev.c $(CCAUX_TAIL) 540 541$(GENHT_XE): $(PSSRCDIR)\genht.c $(GENHT_DEPS) 542 $(CCAUX) $(GENHT_CFLAGS) $(PSSRCDIR)\genht.c $(CCAUX_TAIL) 543 544$(GENINIT_XE): $(PSSRCDIR)\geninit.c $(GENINIT_DEPS) 545 $(CCAUX) $(PSSRCDIR)\geninit.c $(CCAUX_TAIL) 546 547# -------------------------------- Library -------------------------------- # 548 549# See winlib.mak 550 551# ----------------------------- Main program ------------------------------ # 552 553LIBCTR=$(PSGEN)libc32.tr 554GSCONSOLE_XE=$(BINDIR)\$(GSCONSOLE).exe 555GSDLL_DLL=$(BINDIR)\$(GSDLL).dll 556 557$(LIBCTR): $(TOP_MAKEFILES) $(ECHOGS_XE) 558 echo $(LIBDIR)\import32.lib $(LIBDIR)\$(CLIB) >$(LIBCTR) 559 560!if $(BUILDER_VERSION) == 0 561# Borland C++ 4.5 will not compile the setup program, 562# since a later Windows header file is required. 563SETUP_TARGETS= 564!else 565SETUP_TARGETS=$(SETUP_XE) $(UNINSTALL_XE) 566!endif 567 568!if $(MAKEDLL) 569# The graphical small EXE loader 570$(GS_XE): $(GSDLL_DLL) $(DWOBJ) $(GSCONSOLE_XE)\ 571 $(GS_OBJ).res $(PSSRCDIR)\dwmain32.def $(SETUP_TARGETS) 572 $(LINK) /L$(LIBDIR) /Tpe /aa $(LCT) @&&! 573$(LIBDIR)\c0w32 + 574$(DWOBJ) + 575,$(GS_XE),$(PSOBJ)$(GS), + 576$(LIBDIR)\import32 + 577$(LIBDIR)\cw32, + 578$(PSSRCDIR)\dwmain32.def, + 579$(GS_OBJ).res 580! 581 582# The console mode small EXE loader 583!if $(BUILDER_VERSION) == 5 584$(GSCONSOLE_XE): $(OBJC) $(GS_OBJ).res $(PSSRCDIR)\dw32c.def 585 $(LINK) /L$(LIBDIR) /Tpe /ap $(LCT) $(DEBUGLINK) @&&! 586$(LIBDIR)\c0x32 + 587$(OBJC) + 588,$(GSCONSOLE_XE),$(PSOBJ)$(GSCONSOLE), + 589$(LIBDIR)\import32 + 590$(LIBDIR)\cw32mt, + 591$(PSSRCDIR)\dw32c.def, + 592$(GS_OBJ).res 593! 594!else 595 596$(GSCONSOLE_XE): $(OBJC) $(GS_OBJ).res $(PSSRCDIR)\dw32c.def 597 $(LINK) /L$(LIBDIR) /Tpe /ap $(LCT) $(DEBUGLINK) @&&! 598$(LIBDIR)\c0w32 + 599$(OBJC) + 600,$(GSCONSOLE_XE),$(PSOBJ)$(GSCONSOLE), + 601$(LIBDIR)\import32 + 602$(LIBDIR)\cw32, + 603$(PSSRCDIR)\dw32c.def, + 604$(GS_OBJ).res 605! 606!endif 607 608# The big DLL 609$(GSDLL_DLL): $(GS_ALL) $(DEVS_ALL) $(PSOBJ)gsdll.$(OBJ)\ 610 $(GSDLL_OBJ).res $(PSSRCDIR)\gsdll32.def 611 -del $(PSGEN)gswin32.tr 612 copy $(ld_tr) $(PSGEN)gswin32.tr 613 echo $(LIBDIR)\c0d32 $(PSOBJ)gsdll + >> $(PSGEN)gswin32.tr 614 $(LINK) /L$(LIBDIR) $(LCT) /Tpd /aa @$(PSGEN)gswin32.tr $(INTASM) ,$(GSDLL_DLL),$(PSOBJ)$(GSDLL) @$(LIBCTR),$(PSSRCDIR)\gsdll32.def,$(GSDLL_OBJ).res 615 616!else 617# The big graphical EXE 618$(GS_XE): $(GSCONSOLE_XE) $(GS_ALL) $(DEVS_ALL)\ 619 $(PSOBJ)gsdll.$(OBJ) $(DWOBJNO) $(GS_OBJ).res $(PSSRCDIR)\dwmain32.def 620 -del $(PSGEN)gswin32.tr 621 copy $(ld_tr) $(PSGEN)gswin32.tr 622 echo $(LIBDIR)\c0w32 $(PSOBJ)gsdll + >> $(PSGEN)gswin32.tr 623 echo $(DWOBJNO) $(INTASM) >> $(PSGEN)gswin32.tr 624 $(LINK) /L$(LIBDIR) $(LCT) /Tpe /aa @$(PSGEN)gswin32.tr ,$(GS_XE),$(PSOBJ)$(GS) @$(LIBCTR),$(PSSRCDIR)\dwmain32.def,$(GS_OBJ).res 625 626# The big console mode EXE 627$(GSCONSOLE_XE): $(GS_ALL) $(DEVS_ALL)\ 628 $(PSOBJ)gsdll.$(OBJ) $(OBJCNO) $(GS_OBJ).res $(PSSRCDIR)\dw32c.def 629 -del $(PSGEN)gswin32.tr 630 copy $(ld_tr) $(PSGEN)gswin32.tr 631 echo $(LIBDIR)\c0w32 $(PSOBJ)gsdll + >> $(PSGEN)gswin32.tr 632 echo $(OBJCNO) $(INTASM) >> $(PSGEN)gswin32.tr 633 $(LINK) /L$(LIBDIR) $(LCT) /Tpe /ap @$(PSGEN)gswin32.tr ,$(GSCONSOLE_XE),$(PSOBJ)$(GSCONSOLE) @$(LIBCTR),$(PSSRCDIR)\dw32c.def,$(GS_OBJ).res 634!endif 635 636# Access to 16 spooler from Win32s 637# Rod Webster (rodw) 638# CBuilder 5 does not support 16 bit compilation 639# so add conditional to skip attempts to build 16 bit version 640!if $(BUILDER_VERSION !=5) 641 642GSSPL_XE=$(BINDIR)\gs16spl.exe 643 644$(GSSPL_XE): $(GLSRCDIR)\gs16spl.c $(GLSRCDIR)\gs16spl.rc $(GLGENDIR)/gswin.ico 645 $(ECHOGS_XE) -w $(GLGEN)_spl.rc -x 23 define -s gstext_ico $(GLGENDIR)/gswin.ico 646 $(ECHOGS_XE) -a $(GLGEN)_spl.rc -x 23 define -s gsgraph_ico $(GLGENDIR)/gswin.ico 647 $(ECHOGS_XE) -a $(GLGEN)_spl.rc -R $(GLSRC)gs16spl.rc 648 $(COMPBASE16)\bin\bcc -W -ms -v -I$(COMPBASE16)\include $(GLO_)gs16spl.obj -c $(GLSRCDIR)\gs16spl.c 649 $(COMPBASE16)\bin\brcc -i$(COMPBASE16)\include -r -fo$(GLOBJ)gs16spl.res $(GLGEN)_spl.rc 650 $(COMPBASE16)\bin\tlink /Twe /c /m /s /l @&&! 651$(COMPBASE16)\lib\c0ws + 652$(GLOBJ)gs16spl.obj, + 653$(GSSPL_XE),$(GLOBJ)gs16spl, + 654$(COMPBASE16)\lib\import + 655$(COMPBASE16)\lib\mathws + 656$(COMPBASE16)\lib\cws, + 657$(GLSRCDIR)\gs16spl.def 658! 659 $(COMPBASE16)\bin\rlink -t $(GLOBJ)gs16spl.res $(GSSPL_XE) 660!endif 661 662# ---------------------- Setup and uninstall programs ---------------------- # 663 664!if $(MAKEDLL) 665 666$(SETUP_XE): $(PSOBJ)dwsetup.obj $(PSOBJ)dwinst.obj $(PSOBJ)dwsetup.res $(PSSRC)dwsetup.def 667 $(LINK) /Tpe /aa $(LCT) $(DEBUGLINK) -L$(LIBDIR) @&&! 668$(LIBDIR)\c0w32 + 669$(PSOBJ)dwsetup.obj $(PSOBJ)dwinst.obj + 670,$(SETUP_XE),$(PSOBJ)dwsetup, + 671$(LIBDIR)\import32 + 672$(LIBDIR)\ole2w32 + 673$(LIBDIR)\cw32, + 674$(PSSRCDIR)\dwsetup.def, + 675$(PSOBJ)dwsetup.res 676! 677 678$(UNINSTALL_XE): $(PSOBJ)dwuninst.obj $(PSOBJ)dwuninst.res $(PSSRC)dwuninst.def 679 $(LINK) /Tpe /aa $(LCT) $(DEBUGLINK) -L$(LIBDIR) @&&! 680$(LIBDIR)\c0w32 + 681$(PSOBJ)dwuninst.obj + 682,$(UNINSTALL_XE),$(PSOBJ)dwuninst, + 683$(LIBDIR)\import32 + 684$(LIBDIR)\ole2w32 + 685$(LIBDIR)\cw32, + 686$(PSSRCDIR)\dwuninst.def, + 687$(PSOBJ)dwuninst.res 688! 689 690 691!endif 692 693 694# end of makefile 695 696