#SCCSID = @(#)makefile	6.6 92/04/27

#******************************************************************************
#
#  Makefile for the PMDISP\PPXY\8514 subdirectory
#
#       IBM/Microsoft Confidential
#
#       Copyright (c) IBM Corporation 1987, 1989
#       Copyright (c) Microsoft Corporation 1987, 1989
#
#       All Rights Reserved
#
#******************************************************************************

#******************************************************************************
#  Dot directive definition area (usually just suffixes)
#****************************************************************************

.SUFFIXES:      .obj

#****************************************************************************
#  Environment Setup for the component(s).
#****************************************************************************

O       = debug
OPT     = -DFIREWALLS -DKLUGE

!ifdef DEBUG
O       = debug
OPT     = -DFIREWALLS -DKLUGE
!endif

!ifdef RETAIL
O       = retail
OPT     =
!endif

!ifdef PROFILE
O       = profile
OPT     = -DATTRPROF
!endif

#
# Compiler Location w/ includes, libs and tools relative to the
# Global Source (GS), Family Source (FS), and Specific Source (SS)
# directories, PMDISP, PMDISP\PPXY, and PMDISP\PPXY\8514,
# respectively.
#

GS      = ..\..
FS      = ..
SS      = .

H       = $(GS)\..\..\h
INC     = $(GS)\..\..\inc
LIB     = $(GS)\..\..\lib
TOOLSPATH = $(GS)\..\..\tools

!if [set INCLUDE=$(SS);$(FS);$(GS);$(H);$(INC)] || \
    [set LIB=$(LIB)] || [set PATH=$(TOOLSPATH)]
!endif

#
# Compiler/tools Macros
#

AS      = masm
CC      = cl
IMPLIB  = implib
IPF     = ipfc
LIBUTIL = lib
LINK    = link386
MAPSYM  = mapsym
RC      = rc

#
# Compiler and Linker Options
#

AFLAGS  = -ML -v -DDOS5 -DBITS_PEL=8 -DCLR256 -DPALMGR $(OPT) $(CCV) \
        -DHIRES -DPP8 -DBGA -DSPLITBLT -DFONT_CACHING
AINC    = -I$(SS) -I$(FS) -I$(GS) -I$(INC) -I$(H) -I$(MAKEDIR)
CINC    = -I$(SS) -I$(FS) -I$(GS) -I$(H) -I$(INC) -I$(MAKEDIR)
CFLAGS  = -c -nologo -u -W3
LFLAGS  = /far /map /nod /noe /EXEPACK /ALIGN:16
RFLAGS  = -r
RF      = -x -p

#****************************************************************************
# Set up Macros that will contain all the different dependencies for the
# executables and dlls etc. that are generated.
#****************************************************************************

# note: critsec.obj must be linked first

OBJ0    = $(O)\critsec.obj   $(O)\dispatch.obj  $(O)\hwdata.obj
OBJ1    = $(O)\resolve.obj   $(O)\8514init.obj  $(O)\data.obj
OBJ2    = $(O)\enable.obj    $(O)\init.obj      $(O)\firewall.obj

OBJ3    = $(O)\memman.obj    $(O)\enter.obj     $(O)\exit.obj
OBJ4    = $(O)\cmplcode.obj  $(O)\error.obj     $(O)\validate.obj
OBJ5    = $(O)\winattrs.obj  $(O)\query.obj     $(O)\pelsup.obj

OBJ6    = $(O)\colortbl.obj  $(O)\pointer.obj   $(O)\cursors.obj
OBJ7    = $(O)\8514memd.obj  $(O)\major01.obj
OBJ8    = $(O)\enumclip.obj  $(O)\bmsup.obj     $(O)\winbits.obj

OBJ9    = $(O)\drawbord.obj  $(O)\bounds.obj    $(O)\bundle.obj
OBJ10   = $(O)\marker.obj    $(O)\winstr.obj    $(O)\cellblt.obj
OBJ11   = $(O)\cellcp.obj    $(O)\cellscan.obj  $(O)\dither.obj

OBJ12   = $(O)\phycolor.obj  $(O)\clrconv.obj   $(O)\bmc_eti.obj
OBJ13   = $(O)\bmc_ite.obj   $(O)\major0b.obj   $(O)\boardblt.obj
OBJ14   = $(O)\strdraw.obj   $(O)\strblt.obj    $(O)\buildstr.obj

OBJ15   = $(O)\csdevsup.obj  $(O)\smartfix.obj  $(O)\ssb.obj
OBJ16   = $(O)\memblt.obj    $(O)\smartpro.obj  $(O)\pixel.obj
OBJ17   = $(O)\cblt.obj      $(O)\rect.obj      $(O)\clip.obj

OBJ18   = $(O)\getclip.obj   $(O)\celldraw.obj  $(O)\polyline.obj
OBJ19   = $(O)\pldevsup.obj  $(O)\plbmsup.obj   $(O)\plmonobm.obj
OBJ20   = $(O)\pldda.obj     $(O)\plstyle.obj   $(O)\drawline.obj

OBJ21   = $(O)\shortln.obj   $(O)\scanline.obj  $(O)\8514font.obj
OBJ22   = $(O)\slcorr.obj    $(O)\scancorr.obj  $(O)\strchblt.obj
OBJ23   = $(O)\resolvec.obj  $(O)\strbltc.obj   $(O)\math.obj

OBJ24   = $(O)\patcache.obj  $(O)\escape.obj    $(O)\palette.obj
OBJ25   = $(O)\palmem.obj    $(O)\realpal.obj   $(O)\colormat.obj
OBJ26   = $(O)\phy16clr.obj  $(O)\palsup.obj    $(O)\palmap.obj

OBJ27   = $(O)\mkvalid.obj   $(O)\drawbits.obj  $(O)\rlebm.obj

OBJS  = $(OBJ0)  $(OBJ1)  $(OBJ2)  $(OBJ3)  $(OBJ4)  \
        $(OBJ5)  $(OBJ6)  $(OBJ7)  $(OBJ8)  $(OBJ9)  \
        $(OBJ10) $(OBJ11) $(OBJ12) $(OBJ13) $(OBJ14) \
        $(OBJ15) $(OBJ16) $(OBJ17) $(OBJ18) $(OBJ19) \
        $(OBJ20) $(OBJ21) $(OBJ22) $(OBJ23) $(OBJ24) \
        $(OBJ25) $(OBJ26) $(OBJ27)

#****************************************************************************
#   Setup the inference rules for compiling and assembling source to object
#****************************************************************************

{$(SS)}.asm{$(O)}.obj:
        $(AS) $(AFLAGS) $(AINC) $<,$(O)\$(<B).obj;

{$(FS)}.asm{$(O)}.obj:
        $(AS) $(AFLAGS) $(AINC) $<,$(O)\$(<B).obj;

{$(GS)}.asm{$(O)}.obj:
        $(AS) $(AFLAGS) $(AINC) $<,$(O)\$(<B).obj;

#****************************************************************************
#   Target Information
#****************************************************************************


all:    debug   retail  profile

makeall: $(O)\ibm8514.dll $(O)\8514.dll

debug:  resource
    if not exist debug md debug
    $(MAKE) DEBUG= makeall -$(MAKEFLAGS)

retail: resource
    if not exist retail md retail
    $(MAKE) RETAIL= makeall -$(MAKEFLAGS)

profile: resource
    if not exist profile md profile
    $(MAKE) PROFILE= makeall -$(MAKEFLAGS)

resource: 8514res

8514res:
    cd ..\res
    $(MAKE) -$(MAKEFLAGS)
    cd ..\8514

clean:  dbgclean rtlclean prfclean

dbgclean:       resclean
    -echo y | del debug > nul 2>&1

rtlclean:       resclean
    -echo y | del retail > nul 2>&1

prfclean:       resclean
    -echo y | del profile > nul 2>&1

resclean:
    cd ..\res
    $(MAKE) clean -$(MAKEFLAGS)
    cd ..\8514

#*****************************************************************************
#   Specific Description Block Information
#*****************************************************************************

#
#  8514 Display Driver
#

$(O)\ibm8514.dll:  $(OBJS) ..\res\ibm8514.res ibm8514.def \
        $(LIB)\os2286.lib $(LIB)\os2286p.lib
        $(LINK) $(LFLAGS) @<<$(@B).lnk
$(OBJ0)  +
$(OBJ1)  +
$(OBJ2)  +
$(OBJ3)  +
$(OBJ4)  +
$(OBJ5)  +
$(OBJ6)  +
$(OBJ7)  +
$(OBJ8)  +
$(OBJ9)  +
$(OBJ10) +
$(OBJ11) +
$(OBJ12) +
$(OBJ13) +
$(OBJ14) +
$(OBJ15) +
$(OBJ16) +
$(OBJ17) +
$(OBJ18) +
$(OBJ19) +
$(OBJ20) +
$(OBJ21) +
$(OBJ22) +
$(OBJ23) +
$(OBJ24) +
$(OBJ25) +
$(OBJ26) +
$(OBJ27)
$@
$(@R).map
OS2286 OS2286P
$(@B).def
<<keep
        $(RC) $(RF) ..\res\$(@B).res $@
        cd $(O)
        ..\$(TOOLSPATH)\$(MAPSYM) $(@B)
        cd ..

$(O)\8514.dll:  $(OBJS) ..\res\8514.res 8514.def \
        $(LIB)\os2286.lib $(LIB)\os2286p.lib
        $(LINK) $(LFLAGS) @<<$(@B).lnk
$(OBJ0)  +
$(OBJ1)  +
$(OBJ2)  +
$(OBJ3)  +
$(OBJ4)  +
$(OBJ5)  +
$(OBJ6)  +
$(OBJ7)  +
$(OBJ8)  +
$(OBJ9)  +
$(OBJ10) +
$(OBJ11) +
$(OBJ12) +
$(OBJ13) +
$(OBJ14) +
$(OBJ15) +
$(OBJ16) +
$(OBJ17) +
$(OBJ18) +
$(OBJ19) +
$(OBJ20) +
$(OBJ21) +
$(OBJ22) +
$(OBJ23) +
$(OBJ24) +
$(OBJ25) +
$(OBJ26) +
$(OBJ27)
$@
$(@R).map
OS2286 OS2286P
$(@B).def
<<keep
        $(RC) $(RF) ..\res\$(@B).res $@
        cd $(O)
        ..\$(TOOLSPATH)\$(MAPSYM) $(@B)
        cd ..

#****************************************************************************
