diff options
Diffstat (limited to 'base/winlib.mak')
-rw-r--r-- | base/winlib.mak | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/base/winlib.mak b/base/winlib.mak new file mode 100644 index 00000000..7767b633 --- /dev/null +++ b/base/winlib.mak @@ -0,0 +1,289 @@ +# Copyright (C) 2001-2019 Artifex Software, Inc. +# All Rights Reserved. +# +# This software is provided AS-IS with no warranty, either express or +# implied. +# +# This software is distributed under license and may not be copied, +# modified or distributed except as expressly authorized under the terms +# of the license contained in the file LICENSE in this distribution. +# +# Refer to licensing information at http://www.artifex.com or contact +# Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +# CA 94945, U.S.A., +1(415)492-9861, for further information. +# +# Common makefile section for 32-bit MS Windows. + +# This makefile must be acceptable to Microsoft Visual C++, Watcom C++, +# and Borland C++. For this reason, the only conditional directives +# allowed are !if[n]def, !else, and !endif. +WINLIB_MAK=$(GLSRC)winlib.mak $(TOP_MAKEFILES) + +# Note that built-in third-party libraries aren't available. + +SHARE_FT=0 +SHARE_JPEG=0 +SHARE_LIBPNG=0 +SHARE_LIBTIFF=0 +SHARE_ZLIB=0 +SHARE_JBIG2=0 +SHARE_JPX=0 +SHARE_LCMS=0 +SHARE_LCUPS=0 +SHARE_LCUPSI=0 + +SHARE_IJS=0 +IJS_NAME= +IJSSRCDIR=ijs +IJSEXECTYPE=win + +# Define the directory where the CUPS library sources are stored, + +!ifndef LCUPSSRCDIR +SHARE_LCUPS=0 +LCUPS_NAME= +LCUPSSRCDIR=cups +LCUPSBUILDTYPE=win +CUPS_CC=$(CC) $(CFLAGS) -DWIN32 +!endif + +!ifndef LCUPSISRCDIR +SHARE_LCUPSI=0 +LCUPSI_NAME= +LCUPSISRCDIR=cups +CUPS_CC=$(CC) $(CFLAGS) -DWIN32 +!endif + +# Define the platform name. + +!ifndef GSPLATFORM +!ifdef METRO +GSPLATFORM=metro_ +!else +GSPLATFORM=mswin32_ +!endif +!endif + +# Define the auxiliary program dependency. We use this to +# preconstruct ccf32.tr to get around the limit on the maximum +# length of a command line. + +AK=$(GLGENDIR)\ccf32.tr + +# Define the syntax for command, object, and executable files. + +NULL= + +CMD=.bat +D_=-D +_D_=$(NULL)= +_D= +I_=-I +II=-I +_I= +NO_OP=@rem +# O_ and XE_ are defined separately for each compiler. +OBJ=obj +Q= +XE=.exe +XEAUX=.exe +PERCENTESCAPE=% +GENCONFLINECONT= + +# Define generic commands. + +# We have to use a batch file for the equivalent of cp, +# because the DOS COPY command copies the file write time, like cp -p. +# We also have to use a batch file for for the equivalent of rm -f, +# because the DOS ERASE command returns an error status if the file +# doesn't exist. +CP_=call $(GLSRCDIR)\cp.bat +RM_=call $(GLSRCDIR)\rm.bat +RMN_=call $(GLSRCDIR)\rm.bat + +# Define the generic compilation flags. + +PLATOPT= + +# Define conditinal name for UFST bridge : +!ifdef UFST_ROOT +UFST_LIB_EXT=.lib +!endif + +# Define conditinal for FreeType bridge : +!ifndef FT_BRIDGE +FT_BRIDGE = 0 +!endif + +# Which CMS are we using? +!ifndef WHICH_CMS +WHICH_CMS=lcms2mt +!endif + +# Define the files to be removed by `make clean'. +# nmake expands macros when encountered, not when used, +# so this must precede the !include statements. + +BEGINFILES=$(GLGENDIR)\ccf32.tr\ + $(GLOBJDIR)\*.res $(GLOBJDIR)\*.ico\ + $(BINDIR)\$(GSDLL).dll $(BINDIR)\$(GSCONSOLE).exe\ + $(BINDIR)\setupgs.exe $(BINDIR)\uninstgs.exe\ + $(GLOBJDIR)\cups\*.h $(AUXDIR)\*.sbr $(AUXDIR)\*.pdb \ + $(BEGINFILES2) + +# Include the generic makefiles. +#!include $(COMMONDIR)/pcdefs.mak +#!include $(COMMONDIR)/generic.mak +!include $(GLSRCDIR)\gs.mak +!include $(GLSRCDIR)\lib.mak +!include $(GLSRCDIR)\freetype.mak +!if "$(UFST_BRIDGE)"=="1" +!include $(UFST_ROOT)\fapiufst.mak +!endif +!include $(GLSRCDIR)\jpeg.mak +# zlib.mak must precede png.mak +!include $(GLSRCDIR)\zlib.mak +!include $(GLSRCDIR)\png.mak +!include $(GLSRCDIR)\tiff.mak +!include $(GLSRCDIR)\jbig2.mak +!include $(GLSRCDIR)\ldf_jb2.mak +!include $(GLSRCDIR)\lwf_jp2.mak +!include $(GLSRCDIR)\openjpeg.mak +!include $(GLSRCDIR)\cal.mak + +!include $(GLSRCDIR)\expat.mak +!include $(GLSRCDIR)\jpegxr.mak + +!include $(GLSRCDIR)\$(WHICH_CMS).mak +!include $(GLSRCDIR)\ijs.mak +!include $(GLSRCDIR)\lcups.mak +!include $(GLSRCDIR)\lcupsi.mak +!include $(DEVSRCDIR)\devs.mak +!include $(DEVSRCDIR)\contrib.mak +!include $(CONTRIBDIR)\contrib.mak + +# Define the compilation rule for Windows devices. +# This requires GL*_ to be defined, so it has to come after lib.mak. +GLCCWIN=$(CC_WX) $(CCWINFLAGS) $(I_)$(GLI_)$(_I) $(GLF_) + +!include $(GLSRCDIR)\winplat.mak +!include $(GLSRCDIR)\pcwin.mak + +# Define abbreviations for the executable and DLL files. +GS_OBJ=$(GLOBJ)$(GS) +GSDLL_SRC=$(GLSRC)$(GSDLL) +GSDLL_OBJ=$(GLOBJ)$(GSDLL) + +# -------------------------- Auxiliary files --------------------------- # + +# No special gconfig_.h is needed. /* This file deliberately left blank. */ +$(gconfig__h): $(TOP_MAKEFILES) + $(ECHOGS_XE) -w $(gconfig__h) -x 2f2a20 This file deliberately left blank. -x 2a2f + +# -------------------------------- Library -------------------------------- # + +# The Windows Win32 platform + +mswin32__=$(GLOBJ)gp_mswin.$(OBJ) $(GLOBJ)gp_wgetv.$(OBJ) $(GLOBJ)gp_wpapr.$(OBJ) \ + $(GLOBJ)gp_stdia.$(OBJ) $(GLOBJ)gp_wutf8.$(OBJ) $(GLOBJ)gp_winfs.$(OBJ) +mswin32_inc=$(GLD)nosync.dev $(GLD)winplat.dev + +$(GLGEN)mswin32_.dev: $(mswin32__) $(ECHOGS_XE) $(mswin32_inc) $(WINLIB_MAK) + $(SETMOD) $(GLGEN)mswin32_ $(mswin32__) + $(ADDMOD) $(GLGEN)mswin32_ -include $(mswin32_inc) + +$(GLOBJ)gp_mswin.$(OBJ): $(GLSRC)gp_mswin.c $(AK) $(gp_mswin_h) \ + $(ctype__h) $(dos__h) $(malloc__h) $(memory__h) $(pipe__h) \ + $(stdio__h) $(string__h) $(windows__h) \ + $(gx_h) $(gp_h) $(gpcheck_h) $(gpmisc_h) $(gserrors_h) $(gsexit_h) \ + $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_mswin.$(OBJ) $(C_) $(GLSRC)gp_mswin.c + +$(GLOBJ)gp_winfs.$(OBJ): $(GLSRC)gp_winfs.c $(AK) $(gp_mswin_h) \ + $(memory__h) $(stdio__h) $(windows__h) $(gp_h) $(gserrors_h) \ + $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_winfs.$(OBJ) $(C_) $(GLSRC)gp_winfs.c + +$(AUX)gp_winfs.$(OBJ): $(GLSRC)gp_winfs.c $(AK) $(gp_mswin_h) \ + $(memory__h) $(stdio__h) $(windows__h) $(gp_h) $(gserrors_h) \ + $(WINLIB_MAK) + $(GLCCAUX) $(AUXO_)gp_winfs.$(OBJ) $(C_) $(GLSRC)gp_winfs.c + +$(AUX)gp_winfs2.$(OBJ): $(GLSRC)gp_winfs2.c $(AK) $(gp_mswin_h) \ + $(memory__h) $(stdio__h) $(windows__h) $(gp_h) $(gserrors_h) \ + $(WINLIB_MAK) + $(GLCCAUX) $(AUXO_)gp_winfs2.$(OBJ) $(C_) $(GLSRC)gp_winfs2.c + +$(GLOBJ)gp_wutf8.$(OBJ): $(GLSRC)gp_wutf8.c $(windows__h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_wutf8.$(OBJ) $(C_) $(GLSRC)gp_wutf8.c + +$(AUX)gp_wutf8.$(OBJ): $(GLSRC)gp_wutf8.c $(windows__h) $(WINLIB_MAK) + $(GLCCAUX) $(AUXO_)gp_wutf8.$(OBJ) $(C_) $(GLSRC)gp_wutf8.c + +$(GLOBJ)gp_wgetv.$(OBJ): $(GLSRC)gp_wgetv.c $(AK) $(gscdefs_h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_wgetv.$(OBJ) $(C_) $(GLSRC)gp_wgetv.c + +$(GLOBJ)gp_wpapr.$(OBJ): $(GLSRC)gp_wpapr.c $(AK) $(gp_h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_wpapr.$(OBJ) $(C_) $(GLSRC)gp_wpapr.c + +$(GLOBJ)gp_stdia.$(OBJ): $(GLSRC)gp_stdia.c $(AK)\ + $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_stdia.$(OBJ) $(C_) $(GLSRC)gp_stdia.c + +# The Metro platform +!ifdef METRO +METRO_OBJS=$(GLOBJ)winrtsup.$(OBJ) $(GLOBJ)gp_wutf8.$(OBJ) + +$(GLOBJ)winrtsup.$(OBJ): $(GLSRCDIR)/winrtsup.cpp $(WINLIB_MAK) + $(GLCCWIN) /EHsc $(GLO_)winrtsup.$(OBJ) $(C_) $(GLSRCDIR)/winrtsup.cpp +!else +METRO_OBJS= +!endif + + +metro__=$(GLOBJ)gp_mswin.$(OBJ) $(GLOBJ)gp_wgetv.$(OBJ) $(GLOBJ)gp_wpapr.$(OBJ)\ + $(GLOBJ)gp_stdia.$(OBJ) $(METRO_OBJS) +#$(GLOBJ)gp_wutf8.$(OBJ) +metro_inc=$(GLD)nosync.dev $(GLD)winplat.dev + +$(GLGEN)metro_.dev: $(metro__) $(ECHOGS_XE) $(metro_inc) $(WINLIB_MAK) + $(SETMOD) $(GLGEN)metro_ $(metro__) + $(ADDMOD) $(GLGEN)metro_ -include $(metro_inc) + + +# Define MS-Windows handles (file system) as a separable feature. + +mshandle_=$(GLOBJ)gp_mshdl.$(OBJ) +$(GLD)mshandle.dev: $(ECHOGS_XE) $(mshandle_) $(WINLIB_MAK) + $(SETMOD) $(GLD)mshandle $(mshandle_) + $(ADDMOD) $(GLD)mshandle -iodev handle + +$(GLOBJ)gp_mshdl.$(OBJ): $(GLSRC)gp_mshdl.c $(AK)\ + $(ctype__h) $(errno__h) $(stdio__h) $(string__h)\ + $(gsmemory_h) $(gstypes_h) $(gxiodev_h) $(gserrors_h) $(WINLIB_MAK) + $(GLCC) $(GLO_)gp_mshdl.$(OBJ) $(C_) $(GLSRC)gp_mshdl.c + +# Define MS-Windows printer (file system) as a separable feature. + +msprinter_=$(GLOBJ)gp_msprn.$(OBJ) + +$(GLD)msprinter.dev: $(msprinter_) $(WINLIB_MAK) + $(SETMOD) $(GLD)msprinter $(msprinter_) + $(ADDMOD) $(GLD)msprinter -iodev printer + +$(GLOBJ)gp_msprn.$(OBJ): $(GLSRC)gp_msprn.c $(AK)\ + $(ctype__h) $(errno__h) $(stdio__h) $(string__h)\ + $(gsmemory_h) $(gstypes_h) $(gxiodev_h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_msprn.$(OBJ) $(C_) $(GLSRC)gp_msprn.c + +# Define MS-Windows polling as a separable feature +# because it is not needed by the gslib. +mspoll_=$(GLOBJ)gp_mspol.$(OBJ) +$(GLD)mspoll.dev: $(ECHOGS_XE) $(mspoll_) $(WINLIB_MAK) + $(SETMOD) $(GLD)mspoll $(mspoll_) + +$(GLOBJ)gp_mspol.$(OBJ): $(GLSRC)gp_mspol.c $(AK)\ + $(gx_h) $(gp_h) $(gpcheck_h) $(WINLIB_MAK) + $(GLCCWIN) $(GLO_)gp_mspol.$(OBJ) $(C_) $(GLSRC)gp_mspol.c + +# end of winlib.mak |