xref: /plan9/sys/src/cmd/gs/src/msvclib.mak (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid du Colombier#    Copyright (C) 1991-2001 Aladdin Enterprises.  All rights reserved.
27dd7cddfSDavid du Colombier#
3*593dc095SDavid du Colombier# This software is provided AS-IS with no warranty, either express or
4*593dc095SDavid du Colombier# implied.
57dd7cddfSDavid du Colombier#
6*593dc095SDavid du Colombier# This software is distributed under license and may not be copied,
7*593dc095SDavid du Colombier# modified or distributed except as expressly authorized under the terms
8*593dc095SDavid du Colombier# of the license contained in the file LICENSE in this distribution.
97dd7cddfSDavid du Colombier#
10*593dc095SDavid du Colombier# For more information about licensing, please refer to
11*593dc095SDavid du Colombier# http://www.ghostscript.com/licensing/. For information on
12*593dc095SDavid du Colombier# commercial licensing, go to http://www.artifex.com/licensing/ or
13*593dc095SDavid du Colombier# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14*593dc095SDavid du Colombier# San Rafael, CA  94903, U.S.A., +1(415)492-9861.
157dd7cddfSDavid du Colombier
16*593dc095SDavid du Colombier# $Id: msvclib.mak,v 1.29 2004/12/20 22:17:39 igor Exp $
177dd7cddfSDavid du Colombier# makefile for Microsoft Visual C++ 4.1 or later, Windows NT or Windows 95 LIBRARY.
187dd7cddfSDavid du Colombier#
197dd7cddfSDavid du Colombier# All configurable options are surrounded by !ifndef/!endif to allow
207dd7cddfSDavid du Colombier# preconfiguration from within another makefile.
217dd7cddfSDavid du Colombier
227dd7cddfSDavid du Colombier# ------------------------------- Options ------------------------------- #
237dd7cddfSDavid du Colombier
247dd7cddfSDavid du Colombier###### This section is the only part of the file you should need to edit.
257dd7cddfSDavid du Colombier
267dd7cddfSDavid du Colombier# ------ Generic options ------ #
277dd7cddfSDavid du Colombier
287dd7cddfSDavid du Colombier# Define the root directory for Ghostscript installation.
297dd7cddfSDavid du Colombier
307dd7cddfSDavid du Colombier!ifndef AROOTDIR
313ff48bf5SDavid du ColombierAROOTDIR=c:/gs
327dd7cddfSDavid du Colombier!endif
337dd7cddfSDavid du Colombier!ifndef GSROOTDIR
347dd7cddfSDavid du ColombierGSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION)
357dd7cddfSDavid du Colombier!endif
367dd7cddfSDavid du Colombier
377dd7cddfSDavid du Colombier# Define the directory that will hold documentation at runtime.
387dd7cddfSDavid du Colombier
397dd7cddfSDavid du Colombier!ifndef GS_DOCDIR
407dd7cddfSDavid du ColombierGS_DOCDIR=$(GSROOTDIR)/doc
417dd7cddfSDavid du Colombier!endif
427dd7cddfSDavid du Colombier
43*593dc095SDavid du Colombier# Define the default directory/ies for the runtime initialization, resource and
447dd7cddfSDavid du Colombier# font files.  Separate multiple directories with ';'.
457dd7cddfSDavid du Colombier# Use / to indicate directories, not \.
467dd7cddfSDavid du Colombier# MSVC will not allow \'s here because it sees '\;' CPP-style as an
477dd7cddfSDavid du Colombier# illegal escape.
487dd7cddfSDavid du Colombier
497dd7cddfSDavid du Colombier!ifndef GS_LIB_DEFAULT
50*593dc095SDavid du ColombierGS_LIB_DEFAULT=$(GSROOTDIR)/lib;$(GSROOTDIR)/Resource;$(AROOTDIR)/fonts
517dd7cddfSDavid du Colombier!endif
527dd7cddfSDavid du Colombier
537dd7cddfSDavid du Colombier# Define whether or not searching for initialization files should always
547dd7cddfSDavid du Colombier# look in the current directory first.  This leads to well-known security
557dd7cddfSDavid du Colombier# and confusion problems, but users insist on it.
567dd7cddfSDavid du Colombier# NOTE: this also affects searching for files named on the command line:
577dd7cddfSDavid du Colombier# see the "File searching" section of Use.htm for full details.
587dd7cddfSDavid du Colombier# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
597dd7cddfSDavid du Colombier
607dd7cddfSDavid du Colombier!ifndef SEARCH_HERE_FIRST
617dd7cddfSDavid du ColombierSEARCH_HERE_FIRST=1
627dd7cddfSDavid du Colombier!endif
637dd7cddfSDavid du Colombier
647dd7cddfSDavid du Colombier# Define the name of the interpreter initialization file.
657dd7cddfSDavid du Colombier# (There is no reason to change this.)
667dd7cddfSDavid du Colombier
677dd7cddfSDavid du ColombierGS_INIT=gs_init.ps
687dd7cddfSDavid du Colombier
697dd7cddfSDavid du Colombier# Choose generic configuration options.
707dd7cddfSDavid du Colombier
717dd7cddfSDavid du Colombier# Setting DEBUG=1 includes debugging features (-Z switch) in the code.
727dd7cddfSDavid du Colombier# Code runs substantially slower even if no debugging switches are set,
737dd7cddfSDavid du Colombier# and also takes about another 25K of memory.
747dd7cddfSDavid du Colombier
757dd7cddfSDavid du Colombier!ifndef DEBUG
767dd7cddfSDavid du ColombierDEBUG=0
777dd7cddfSDavid du Colombier!endif
787dd7cddfSDavid du Colombier
797dd7cddfSDavid du Colombier# Setting TDEBUG=1 includes symbol table information for the debugger,
807dd7cddfSDavid du Colombier# and also enables stack checking.  Code is substantially slower and larger.
817dd7cddfSDavid du Colombier
827dd7cddfSDavid du Colombier# NOTE: The MSVC++ 5.0 compiler produces incorrect output code with TDEBUG=0.
837dd7cddfSDavid du Colombier# Leave TDEBUG set to 1.
847dd7cddfSDavid du Colombier
857dd7cddfSDavid du Colombier!ifndef TDEBUG
867dd7cddfSDavid du ColombierTDEBUG=1
877dd7cddfSDavid du Colombier!endif
887dd7cddfSDavid du Colombier
897dd7cddfSDavid du Colombier# Setting NOPRIVATE=1 makes private (static) procedures and variables public,
907dd7cddfSDavid du Colombier# so they are visible to the debugger and profiler.
917dd7cddfSDavid du Colombier# No execution time or space penalty, just larger .OBJ and .EXE files.
927dd7cddfSDavid du Colombier
937dd7cddfSDavid du Colombier!ifndef NOPRIVATE
947dd7cddfSDavid du ColombierNOPRIVATE=0
957dd7cddfSDavid du Colombier!endif
967dd7cddfSDavid du Colombier
977dd7cddfSDavid du Colombier# Define the name of the executable file.
987dd7cddfSDavid du Colombier
997dd7cddfSDavid du Colombier!ifndef GS
1007dd7cddfSDavid du ColombierGS=gslib
1017dd7cddfSDavid du Colombier!endif
1027dd7cddfSDavid du Colombier
1037dd7cddfSDavid du Colombier# Define the directory for the final executable, and the
1047dd7cddfSDavid du Colombier# source, generated intermediate file, and object directories
1057dd7cddfSDavid du Colombier# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
1067dd7cddfSDavid du Colombier
1077dd7cddfSDavid du Colombier!ifndef BINDIR
1087dd7cddfSDavid du ColombierBINDIR=.\bin
1097dd7cddfSDavid du Colombier!endif
1107dd7cddfSDavid du Colombier!ifndef GLSRCDIR
1117dd7cddfSDavid du ColombierGLSRCDIR=.\src
1127dd7cddfSDavid du Colombier!endif
1137dd7cddfSDavid du Colombier!ifndef GLGENDIR
1147dd7cddfSDavid du ColombierGLGENDIR=.\obj
1157dd7cddfSDavid du Colombier!endif
1167dd7cddfSDavid du Colombier!ifndef GLOBJDIR
1177dd7cddfSDavid du ColombierGLOBJDIR=.\obj
1187dd7cddfSDavid du Colombier!endif
1197dd7cddfSDavid du Colombier
1207dd7cddfSDavid du Colombier# Do not edit the next group of lines.
1217dd7cddfSDavid du ColombierNUL=
1227dd7cddfSDavid du ColombierDD=$(GLGENDIR)\$(NUL)
1237dd7cddfSDavid du ColombierGLD=$(GLGENDIR)\$(NUL)
1247dd7cddfSDavid du Colombier
1257dd7cddfSDavid du Colombier# Define the directory where the IJG JPEG library sources are stored,
1267dd7cddfSDavid du Colombier# and the major version of the library that is stored there.
1277dd7cddfSDavid du Colombier# You may need to change this if the IJG library version changes.
1287dd7cddfSDavid du Colombier# See jpeg.mak for more information.
1297dd7cddfSDavid du Colombier
1307dd7cddfSDavid du Colombier!ifndef JSRCDIR
1317dd7cddfSDavid du ColombierJSRCDIR=jpeg
1327dd7cddfSDavid du ColombierJVERSION=6
1337dd7cddfSDavid du Colombier!endif
1347dd7cddfSDavid du Colombier
1357dd7cddfSDavid du Colombier# Define the directory where the PNG library sources are stored,
1367dd7cddfSDavid du Colombier# and the version of the library that is stored there.
1377dd7cddfSDavid du Colombier# You may need to change this if the libpng version changes.
1387dd7cddfSDavid du Colombier# See libpng.mak for more information.
1397dd7cddfSDavid du Colombier
1407dd7cddfSDavid du Colombier!ifndef PSRCDIR
1417dd7cddfSDavid du ColombierPSRCDIR=libpng
142*593dc095SDavid du ColombierPVERSION=10208
1437dd7cddfSDavid du Colombier!endif
1447dd7cddfSDavid du Colombier
1457dd7cddfSDavid du Colombier# Define the directory where the zlib sources are stored.
1467dd7cddfSDavid du Colombier# See zlib.mak for more information.
1477dd7cddfSDavid du Colombier
1487dd7cddfSDavid du Colombier!ifndef ZSRCDIR
1497dd7cddfSDavid du ColombierZSRCDIR=zlib
1507dd7cddfSDavid du Colombier!endif
1517dd7cddfSDavid du Colombier
152*593dc095SDavid du Colombier# Define the jbig2dec library source location.
153*593dc095SDavid du Colombier# See jbig2.mak for more information.
154*593dc095SDavid du Colombier
155*593dc095SDavid du Colombier!ifndef JBIG2SRCDIR
156*593dc095SDavid du ColombierJBIG2SRCDIR=jbig2dec
157*593dc095SDavid du Colombier!endif
158*593dc095SDavid du Colombier
1593ff48bf5SDavid du Colombier# Define the directory where the icclib source are stored.
1603ff48bf5SDavid du Colombier# See icclib.mak for more information
1613ff48bf5SDavid du Colombier
1623ff48bf5SDavid du Colombier!ifndef ICCSRCDIR
1633ff48bf5SDavid du ColombierICCSRCDIR=icclib
1643ff48bf5SDavid du Colombier!endif
1653ff48bf5SDavid du Colombier
1667dd7cddfSDavid du Colombier# Define any other compilation flags.
1677dd7cddfSDavid du Colombier
1687dd7cddfSDavid du Colombier!ifndef CFLAGS
1697dd7cddfSDavid du ColombierCFLAGS=
1707dd7cddfSDavid du Colombier!endif
1717dd7cddfSDavid du Colombier
1727dd7cddfSDavid du Colombier# ------ Platform-specific options ------ #
1737dd7cddfSDavid du Colombier
174*593dc095SDavid du Colombier# Define which major version of MSVC is being used (currently, 4, 5 & 6 supported)
1757dd7cddfSDavid du Colombier
1767dd7cddfSDavid du Colombier!ifndef MSVC_VERSION
177*593dc095SDavid du ColombierMSVC_VERSION = 6
1787dd7cddfSDavid du Colombier!endif
1797dd7cddfSDavid du Colombier
1807dd7cddfSDavid du Colombier# Define the drive, directory, and compiler name for the Microsoft C files.
1817dd7cddfSDavid du Colombier# COMPDIR contains the compiler and linker (normally \msdev\bin).
1823ff48bf5SDavid du Colombier# MSINCDIR contains the include files (normally \msdev\include).
1837dd7cddfSDavid du Colombier# LIBDIR contains the library files (normally \msdev\lib).
1847dd7cddfSDavid du Colombier# COMP is the full C compiler path name (normally \msdev\bin\cl).
1857dd7cddfSDavid du Colombier# COMPCPP is the full C++ compiler path name (normally \msdev\bin\cl).
1867dd7cddfSDavid du Colombier# COMPAUX is the compiler name for DOS utilities (normally \msdev\bin\cl).
1877dd7cddfSDavid du Colombier# RCOMP is the resource compiler name (normallly \msdev\bin\rc).
1887dd7cddfSDavid du Colombier# LINK is the full linker path name (normally \msdev\bin\link).
1893ff48bf5SDavid du Colombier# Note that when MSINCDIR and LIBDIR are used, they always get a '\' appended,
1907dd7cddfSDavid du Colombier#   so if you want to use the current directory, use an explicit '.'.
1917dd7cddfSDavid du Colombier
1927dd7cddfSDavid du Colombier!if $(MSVC_VERSION) == 4
1937dd7cddfSDavid du Colombier! ifndef DEVSTUDIO
1947dd7cddfSDavid du ColombierDEVSTUDIO=c:\msdev
1957dd7cddfSDavid du Colombier! endif
1967dd7cddfSDavid du ColombierCOMPBASE=$(DEVSTUDIO)
1977dd7cddfSDavid du ColombierSHAREDBASE=$(DEVSTUDIO)
1987dd7cddfSDavid du Colombier!endif
1997dd7cddfSDavid du Colombier
2007dd7cddfSDavid du Colombier!if $(MSVC_VERSION) == 5
2017dd7cddfSDavid du Colombier! ifndef DEVSTUDIO
2023ff48bf5SDavid du ColombierDEVSTUDIO=C:\Program Files\Devstudio
2037dd7cddfSDavid du Colombier! endif
2043ff48bf5SDavid du Colombier!if "$(DEVSTUDIO)"==""
2053ff48bf5SDavid du ColombierCOMPBASE=
2063ff48bf5SDavid du ColombierSHAREDBASE=
2073ff48bf5SDavid du Colombier!else
2087dd7cddfSDavid du ColombierCOMPBASE=$(DEVSTUDIO)\VC
2097dd7cddfSDavid du ColombierSHAREDBASE=$(DEVSTUDIO)\SharedIDE
2107dd7cddfSDavid du Colombier!endif
2113ff48bf5SDavid du Colombier!endif
2127dd7cddfSDavid du Colombier
2137dd7cddfSDavid du Colombier!if $(MSVC_VERSION) == 6
2147dd7cddfSDavid du Colombier! ifndef DEVSTUDIO
2153ff48bf5SDavid du ColombierDEVSTUDIO=C:\Program Files\Microsoft Visual Studio
2167dd7cddfSDavid du Colombier! endif
2173ff48bf5SDavid du Colombier!if "$(DEVSTUDIO)"==""
2183ff48bf5SDavid du ColombierCOMPBASE=
2193ff48bf5SDavid du ColombierSHAREDBASE=
2203ff48bf5SDavid du Colombier!else
2217dd7cddfSDavid du ColombierCOMPBASE=$(DEVSTUDIO)\VC98
2227dd7cddfSDavid du ColombierSHAREDBASE=$(DEVSTUDIO)\Common\MSDev98
2237dd7cddfSDavid du Colombier!endif
2243ff48bf5SDavid du Colombier!endif
2257dd7cddfSDavid du Colombier
2263ff48bf5SDavid du Colombier# Some environments don't want to specify the path names for the tools at all.
2273ff48bf5SDavid du Colombier# Typical definitions for such an environment would be:
2283ff48bf5SDavid du Colombier#   MSINCDIR= LIBDIR= COMP=cl COMPAUX=cl RCOMP=rc LINK=link
2293ff48bf5SDavid du Colombier# COMPDIR, LINKDIR, and RCDIR are irrelevant, since they are only used to
2303ff48bf5SDavid du Colombier# define COMP, LINK, and RCOMP respectively, but we allow them to be
2313ff48bf5SDavid du Colombier# overridden anyway for completeness.
2323ff48bf5SDavid du Colombier!ifndef COMPDIR
2333ff48bf5SDavid du Colombier!if "$(COMPBASE)"==""
2343ff48bf5SDavid du ColombierCOMPDIR=
2353ff48bf5SDavid du Colombier!else
2367dd7cddfSDavid du ColombierCOMPDIR=$(COMPBASE)\bin
2373ff48bf5SDavid du Colombier!endif
2383ff48bf5SDavid du Colombier!endif
2393ff48bf5SDavid du Colombier
2403ff48bf5SDavid du Colombier!ifndef LINKDIR
2413ff48bf5SDavid du Colombier!if "$(COMPBASE)"==""
2423ff48bf5SDavid du ColombierLINKDIR=
2433ff48bf5SDavid du Colombier!else
2447dd7cddfSDavid du ColombierLINKDIR=$(COMPBASE)\bin
2453ff48bf5SDavid du Colombier!endif
2463ff48bf5SDavid du Colombier!endif
2473ff48bf5SDavid du Colombier
2483ff48bf5SDavid du Colombier!ifndef RCDIR
2493ff48bf5SDavid du Colombier!if "$(SHAREDBASE)"==""
2503ff48bf5SDavid du ColombierRCDIR=
2513ff48bf5SDavid du Colombier!else
2527dd7cddfSDavid du ColombierRCDIR=$(SHAREDBASE)\bin
2533ff48bf5SDavid du Colombier!endif
2543ff48bf5SDavid du Colombier!endif
2553ff48bf5SDavid du Colombier
2563ff48bf5SDavid du Colombier!ifndef MSINCDIR
2573ff48bf5SDavid du Colombier!if "$(COMPBASE)"==""
2583ff48bf5SDavid du ColombierMSINCDIR=
2593ff48bf5SDavid du Colombier!else
2603ff48bf5SDavid du ColombierMSINCDIR=$(COMPBASE)\include
2613ff48bf5SDavid du Colombier!endif
2623ff48bf5SDavid du Colombier!endif
2633ff48bf5SDavid du Colombier
2643ff48bf5SDavid du Colombier!ifndef LIBDIR
2653ff48bf5SDavid du Colombier!if "$(COMPBASE)"==""
2663ff48bf5SDavid du ColombierLIBDIR=
2673ff48bf5SDavid du Colombier!else
2687dd7cddfSDavid du ColombierLIBDIR=$(COMPBASE)\lib
2693ff48bf5SDavid du Colombier!endif
2703ff48bf5SDavid du Colombier!endif
2713ff48bf5SDavid du Colombier
2723ff48bf5SDavid du Colombier!ifndef COMP
2733ff48bf5SDavid du Colombier!if "$(COMPDIR)"==""
2743ff48bf5SDavid du ColombierCOMP=cl
2753ff48bf5SDavid du Colombier!else
2763ff48bf5SDavid du ColombierCOMP="$(COMPDIR)\cl"
2773ff48bf5SDavid du Colombier!endif
2783ff48bf5SDavid du Colombier!endif
2793ff48bf5SDavid du Colombier!ifndef COMPCPP
2807dd7cddfSDavid du ColombierCOMPCPP=$(COMP)
2813ff48bf5SDavid du Colombier!endif
2823ff48bf5SDavid du Colombier!ifndef COMPAUX
2833ff48bf5SDavid du ColombierCOMPAUX=$(COMP)
2843ff48bf5SDavid du Colombier!endif
2853ff48bf5SDavid du Colombier
2863ff48bf5SDavid du Colombier!ifndef RCOMP
2873ff48bf5SDavid du Colombier!if "$(RCDIR)"==""
2883ff48bf5SDavid du ColombierRCOMP=rc
2893ff48bf5SDavid du Colombier!else
2903ff48bf5SDavid du ColombierRCOMP="$(RCDIR)\rc"
2913ff48bf5SDavid du Colombier!endif
2923ff48bf5SDavid du Colombier!endif
2933ff48bf5SDavid du Colombier
2943ff48bf5SDavid du Colombier!ifndef LINK
2953ff48bf5SDavid du Colombier!if "$(LINKDIR)"==""
2963ff48bf5SDavid du ColombierLINK=link
2973ff48bf5SDavid du Colombier!else
2983ff48bf5SDavid du ColombierLINK="$(LINKDIR)\link"
2993ff48bf5SDavid du Colombier!endif
3003ff48bf5SDavid du Colombier!endif
3013ff48bf5SDavid du Colombier
3023ff48bf5SDavid du Colombier# nmake does not have a form of .BEFORE or .FIRST which can be used
3033ff48bf5SDavid du Colombier# to specify actions before anything else is done.  If LIB and INCLUDE
3043ff48bf5SDavid du Colombier# are not defined then we want to define them before we link or
3053ff48bf5SDavid du Colombier# compile.  Here is a kludge which allows us to to do what we want.
3063ff48bf5SDavid du Colombier# nmake does evaluate preprocessor directives when they are encountered.
3073ff48bf5SDavid du Colombier# So the desired set statements are put into dummy preprocessor
3083ff48bf5SDavid du Colombier# directives.
3093ff48bf5SDavid du Colombier!ifndef INCLUDE
3103ff48bf5SDavid du Colombier!if "$(MSINCDIR)"!=""
3113ff48bf5SDavid du Colombier!if [set INCLUDE=$(MSINCDIR)]==0
3123ff48bf5SDavid du Colombier!endif
3133ff48bf5SDavid du Colombier!endif
3143ff48bf5SDavid du Colombier!endif
3153ff48bf5SDavid du Colombier!ifndef LIB
3163ff48bf5SDavid du Colombier!if "$(LIBDIR)"!=""
3173ff48bf5SDavid du Colombier!if [set LIB=$(LIBDIR)]==0
3183ff48bf5SDavid du Colombier!endif
3193ff48bf5SDavid du Colombier!endif
3203ff48bf5SDavid du Colombier!endif
3217dd7cddfSDavid du Colombier
3227dd7cddfSDavid du Colombier# Define the processor architecture. (i386, ppc, alpha)
3237dd7cddfSDavid du Colombier
3247dd7cddfSDavid du Colombier!ifndef CPU_FAMILY
3257dd7cddfSDavid du ColombierCPU_FAMILY=i386
3267dd7cddfSDavid du Colombier#CPU_FAMILY=ppc
3277dd7cddfSDavid du Colombier#CPU_FAMILY=alpha  # not supported yet - we need someone to tweak
3287dd7cddfSDavid du Colombier!endif
3297dd7cddfSDavid du Colombier
3307dd7cddfSDavid du Colombier# Define the processor (CPU) type. Allowable values depend on the family:
3317dd7cddfSDavid du Colombier#   i386: 386, 486, 586
3327dd7cddfSDavid du Colombier#   ppc: 601, 604, 620
3337dd7cddfSDavid du Colombier#   alpha: not currently used.
3347dd7cddfSDavid du Colombier
3357dd7cddfSDavid du Colombier!ifndef CPU_TYPE
3367dd7cddfSDavid du ColombierCPU_TYPE=486
3377dd7cddfSDavid du Colombier#CPU_TYPE=601
3387dd7cddfSDavid du Colombier!endif
3397dd7cddfSDavid du Colombier
3407dd7cddfSDavid du Colombier!if "$(CPU_FAMILY)"=="i386"
3417dd7cddfSDavid du Colombier
3427dd7cddfSDavid du Colombier# Intel(-compatible) processors are the only ones for which the CPU type
3437dd7cddfSDavid du Colombier# doesn't indicate whether a math coprocessor is present.
3447dd7cddfSDavid du Colombier# For Intel processors only, define the math coprocessor (FPU) type.
3457dd7cddfSDavid du Colombier# Options are -1 (optimize for no FPU), 0 (optimize for FPU present,
3467dd7cddfSDavid du Colombier# but do not require a FPU), 87, 287, or 387.
3477dd7cddfSDavid du Colombier# If you have a 486 or Pentium CPU, you should normally set FPU_TYPE to 387,
3487dd7cddfSDavid du Colombier# since most of these CPUs include the equivalent of an 80387 on-chip;
3497dd7cddfSDavid du Colombier# however, the 486SX and the Cyrix 486SLC do not have an on-chip FPU, so if
3507dd7cddfSDavid du Colombier# you have one of these CPUs and no external FPU, set FPU_TYPE to -1 or 0.
3517dd7cddfSDavid du Colombier# An xx87 option means that the executable will run only if a FPU
3527dd7cddfSDavid du Colombier# of that type (or higher) is available: this is NOT currently checked
3537dd7cddfSDavid du Colombier# at runtime.
3547dd7cddfSDavid du Colombier
3557dd7cddfSDavid du Colombier! ifndef FPU_TYPE
3563ff48bf5SDavid du ColombierFPU_TYPE=387
3577dd7cddfSDavid du Colombier! endif
3587dd7cddfSDavid du Colombier
3597dd7cddfSDavid du Colombier!endif
3607dd7cddfSDavid du Colombier
3617dd7cddfSDavid du Colombier# Define the .dev module that implements thread and synchronization
3627dd7cddfSDavid du Colombier# primitives for this platform.  Don't change this unless you really know
3637dd7cddfSDavid du Colombier# what you're doing.
3647dd7cddfSDavid du Colombier
3657dd7cddfSDavid du Colombier!ifndef SYNC
3667dd7cddfSDavid du ColombierSYNC=winsync
3677dd7cddfSDavid du Colombier!endif
3687dd7cddfSDavid du Colombier
3697dd7cddfSDavid du Colombier# ------ Devices and features ------ #
3707dd7cddfSDavid du Colombier
3717dd7cddfSDavid du Colombier# Choose the language feature(s) to include.  See gs.mak for details.
3727dd7cddfSDavid du Colombier
3737dd7cddfSDavid du Colombier!ifndef FEATURE_DEVS
3743ff48bf5SDavid du ColombierFEATURE_DEVS=$(GLD)psl3lib.dev $(GLD)path1lib.dev $(GLD)dps2lib.dev $(GLD)psl2cs.dev $(GLD)cielib.dev $(GLD)imasklib.dev $(GLD)patlib.dev $(GLD)htxlib.dev $(GLD)roplib.dev $(GLD)devcmap.dev $(GLD)bbox.dev $(GLD)pipe.dev
3757dd7cddfSDavid du Colombier!endif
3767dd7cddfSDavid du Colombier
3777dd7cddfSDavid du Colombier# Choose whether to compile the .ps initialization files into the executable.
3787dd7cddfSDavid du Colombier# See gs.mak for details.
3797dd7cddfSDavid du Colombier
3803ff48bf5SDavid du Colombier!ifndef COMPILE_INITS
3817dd7cddfSDavid du ColombierCOMPILE_INITS=0
3827dd7cddfSDavid du Colombier!endif
3837dd7cddfSDavid du Colombier
3847dd7cddfSDavid du Colombier# Choose whether to store band lists on files or in memory.
3857dd7cddfSDavid du Colombier# The choices are 'file' or 'memory'.
3867dd7cddfSDavid du Colombier
3877dd7cddfSDavid du Colombier!ifndef BAND_LIST_STORAGE
3887dd7cddfSDavid du ColombierBAND_LIST_STORAGE=file
3897dd7cddfSDavid du Colombier!endif
3907dd7cddfSDavid du Colombier
3917dd7cddfSDavid du Colombier# Choose which compression method to use when storing band lists in memory.
392*593dc095SDavid du Colombier# The choices are 'lzw' or 'zlib'.
3937dd7cddfSDavid du Colombier
3947dd7cddfSDavid du Colombier!ifndef BAND_LIST_COMPRESSOR
3957dd7cddfSDavid du ColombierBAND_LIST_COMPRESSOR=zlib
3967dd7cddfSDavid du Colombier!endif
3977dd7cddfSDavid du Colombier
3987dd7cddfSDavid du Colombier# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
3997dd7cddfSDavid du Colombier# See gs.mak and sfilefd.c for more details.
4007dd7cddfSDavid du Colombier
4017dd7cddfSDavid du Colombier!ifndef FILE_IMPLEMENTATION
4027dd7cddfSDavid du ColombierFILE_IMPLEMENTATION=stdio
4037dd7cddfSDavid du Colombier!endif
4047dd7cddfSDavid du Colombier
4053ff48bf5SDavid du Colombier# Choose the implementation of stdio: Only '' is allowed for library.
4063ff48bf5SDavid du Colombier# See gs.mak and ziodevs.c/ziodevsc.c for more details.
4073ff48bf5SDavid du Colombier
4083ff48bf5SDavid du ColombierSTDIO_IMPLEMENTATION=
4093ff48bf5SDavid du Colombier
4107dd7cddfSDavid du Colombier# Choose the device(s) to include.  See devs.mak for details,
4117dd7cddfSDavid du Colombier# devs.mak and contrib.mak for the list of available devices.
4127dd7cddfSDavid du Colombier!ifndef DEVICE_DEVS
4133ff48bf5SDavid du ColombierDEVICE_DEVS=$(DD)ljet2p.dev $(DD)bbox.dev
4147dd7cddfSDavid du ColombierDEVICE_DEVS1=
4157dd7cddfSDavid du ColombierDEVICE_DEVS2=
4167dd7cddfSDavid du ColombierDEVICE_DEVS3=
4177dd7cddfSDavid du ColombierDEVICE_DEVS4=
4187dd7cddfSDavid du ColombierDEVICE_DEVS5=
4197dd7cddfSDavid du ColombierDEVICE_DEVS6=
4207dd7cddfSDavid du ColombierDEVICE_DEVS7=
4217dd7cddfSDavid du ColombierDEVICE_DEVS8=
4227dd7cddfSDavid du ColombierDEVICE_DEVS9=
4237dd7cddfSDavid du ColombierDEVICE_DEVS10=
4247dd7cddfSDavid du ColombierDEVICE_DEVS11=
4257dd7cddfSDavid du ColombierDEVICE_DEVS12=
4267dd7cddfSDavid du ColombierDEVICE_DEVS13=
4277dd7cddfSDavid du ColombierDEVICE_DEVS14=
4287dd7cddfSDavid du ColombierDEVICE_DEVS15=
4297dd7cddfSDavid du ColombierDEVICE_DEVS16=
4307dd7cddfSDavid du ColombierDEVICE_DEVS17=
4317dd7cddfSDavid du ColombierDEVICE_DEVS18=
4327dd7cddfSDavid du ColombierDEVICE_DEVS19=
4337dd7cddfSDavid du ColombierDEVICE_DEVS20=
4347dd7cddfSDavid du Colombier!endif
4357dd7cddfSDavid du Colombier
4367dd7cddfSDavid du Colombier# ---------------------------- End of options ---------------------------- #
4377dd7cddfSDavid du Colombier
4387dd7cddfSDavid du Colombier# Derive values for FPU_TYPE for non-Intel processors.
4397dd7cddfSDavid du Colombier
4407dd7cddfSDavid du Colombier!if "$(CPU_FAMILY)"=="ppc"
4417dd7cddfSDavid du Colombier! if $(CPU_TYPE)>601
4427dd7cddfSDavid du ColombierFPU_TYPE=2
4437dd7cddfSDavid du Colombier! else
4447dd7cddfSDavid du ColombierFPU_TYPE=1
4457dd7cddfSDavid du Colombier! endif
4467dd7cddfSDavid du Colombier!endif
4477dd7cddfSDavid du Colombier
4487dd7cddfSDavid du Colombier!if "$(CPU_FAMILY)"=="alpha"
4497dd7cddfSDavid du Colombier# *** alpha *** This needs fixing
4507dd7cddfSDavid du ColombierFPU_TYPE=1
4517dd7cddfSDavid du Colombier!endif
4527dd7cddfSDavid du Colombier
4537dd7cddfSDavid du Colombier# Define the name of the makefile -- used in dependencies.
4547dd7cddfSDavid du Colombier
4557dd7cddfSDavid du ColombierMAKEFILE=$(GLSRCDIR)\msvclib.mak
4567dd7cddfSDavid du ColombierTOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)\msvccmd.mak $(GLSRCDIR)\msvctail.mak $(GLSRCDIR)\winlib.mak
4577dd7cddfSDavid du Colombier
4587dd7cddfSDavid du Colombier# Define the files to be removed by `make clean'.
4597dd7cddfSDavid du Colombier# nmake expands macros when encountered, not when used,
4607dd7cddfSDavid du Colombier# so this must precede the !include statements.
4617dd7cddfSDavid du Colombier
4623ff48bf5SDavid du ColombierBEGINFILES2=$(GLOBJDIR)\$(GS).ilk $(GLOBJDIR)\$(GS).pdb $(GLOBJDIR)\genarch.ilk $(GLOBJDIR)\genarch.pdb
4637dd7cddfSDavid du Colombier
4647dd7cddfSDavid du Colombier# Define these right away because they modify the behavior of
4657dd7cddfSDavid du Colombier# msvccmd.mak, msvctail.mak & winlib.mak.
4667dd7cddfSDavid du Colombier
4677dd7cddfSDavid du ColombierLIB_ONLY=$(GLOBJDIR)\gslib.obj $(GLOBJDIR)\gsnogc.obj $(GLOBJDIR)\gconfig.obj $(GLOBJDIR)\gscdefs.obj
4687dd7cddfSDavid du ColombierMAKEDLL=0
4697dd7cddfSDavid du ColombierPLATFORM=mslib32_
4707dd7cddfSDavid du Colombier
4717dd7cddfSDavid du Colombier!include $(GLSRCDIR)\version.mak
4727dd7cddfSDavid du Colombier!include $(GLSRCDIR)\msvccmd.mak
4737dd7cddfSDavid du Colombier!include $(GLSRCDIR)\winlib.mak
4747dd7cddfSDavid du Colombier!include $(GLSRCDIR)\msvctail.mak
4757dd7cddfSDavid du Colombier
4767dd7cddfSDavid du Colombier# -------------------------------- Library -------------------------------- #
4777dd7cddfSDavid du Colombier
4787dd7cddfSDavid du Colombier# The Windows Win32 platform for library
4797dd7cddfSDavid du Colombier
4807dd7cddfSDavid du Colombier# For some reason, C-file dependencies have to come before mslib32__.dev
4817dd7cddfSDavid du Colombier
4827dd7cddfSDavid du Colombier$(GLOBJ)gp_mslib.$(OBJ): $(GLSRC)gp_mslib.c $(AK)
4837dd7cddfSDavid du Colombier	$(GLCCWIN) $(GLO_)gp_mslib.$(OBJ) $(C_) $(GLSRC)gp_mslib.c
4847dd7cddfSDavid du Colombier
4857dd7cddfSDavid du Colombiermslib32__=$(GLOBJ)gp_mslib.$(OBJ)
4867dd7cddfSDavid du Colombier
4873ff48bf5SDavid du Colombier$(GLGEN)mslib32_.dev: $(mslib32__) $(ECHOGS_XE) $(GLGEN)mswin32_.dev
4887dd7cddfSDavid du Colombier	$(SETMOD) $(GLGEN)mslib32_ $(mslib32__)
4893ff48bf5SDavid du Colombier	$(ADDMOD) $(GLGEN)mslib32_ -include $(GLGEN)mswin32_.dev
4907dd7cddfSDavid du Colombier
4917dd7cddfSDavid du Colombier# ----------------------------- Main program ------------------------------ #
4927dd7cddfSDavid du Colombier
4937dd7cddfSDavid du Colombier# The library tester EXE
4947dd7cddfSDavid du Colombier$(GS_XE):  $(GS_ALL) $(DEVS_ALL) $(LIB_ONLY) $(LIBCTR)
4957dd7cddfSDavid du Colombier	copy $(ld_tr) $(GLGENDIR)\gslib32.tr
4967dd7cddfSDavid du Colombier	echo $(GLOBJ)gsnogc.obj >> $(GLGENDIR)\gslib32.tr
4977dd7cddfSDavid du Colombier	echo $(GLOBJ)gconfig.obj >> $(GLGENDIR)\gslib32.tr
4987dd7cddfSDavid du Colombier	echo $(GLOBJ)gscdefs.obj >> $(GLGENDIR)\gslib32.tr
4997dd7cddfSDavid du Colombier	echo  /SUBSYSTEM:CONSOLE > $(GLGENDIR)\gslib32.rsp
5007dd7cddfSDavid du Colombier	echo  /OUT:$(GS_XE) >> $(GLGENDIR)\gslib32.rsp
501*593dc095SDavid du Colombier	$(LINK) $(LCT) @$(GLGENDIR)\gslib32.rsp $(GLOBJ)gslib @$(GLGENDIR)\gslib32.tr @$(LIBCTR) $(INTASM)
5027dd7cddfSDavid du Colombier	-del $(GLGENDIR)\gslib32.rsp
5037dd7cddfSDavid du Colombier	-del $(GLGENDIR)\gslib32.tr
504