# various directory paths
INC       = ..\..\..\..\inc
H         = ..\..\..\..\h
LIB       = ..\..\..\..\lib
TOOLSPATH = ..\..\..\..\tools

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

!include "$(H)\version.mak"

# libraries
OS2LIB= $(LIB)\os2286.lib
CLIB  = $(LIB)\slibc7p.lib
DOSLIB= $(LIB)\doscalls.lib
DEF   = estdfm.def

# linker info
#   BA - suppress prompts
#   NOD - no default library search
#   M - create a listing file
LN= link
LFLAGS= /BA /NOD /M


# assembler info
#   MX - turn on case sensitivity
#   p - check for impure code
#   t - report only errors
#   L - create listing file
AS= alp
AFLAGS=  +Lm


# compiler info
#   c - suppress linking
#   Zp - ?????????
#   Zl - remove default library info
#   Od - disable optimization
#   G2 - generate 286 instructions
#   Gs - no stack checking
#   Asnd - use near code pointers
#        - use near data pointers
#        - sets ss == ds; ds not loaded on function entry
#   W2 - warns about everthing except ANSI compliance
#   Fm - create map file
#   Fc - create assembly listing file
#   Zp - pack structures
#   I - path for include files
#   DDEBUG - enable int 3 breakpoints
#   DOS2 - enable os2 specific code
#   DCS_2_0 - enable cs version 2.0 specific code
CC= cl
CFLAGS= -c -Zp -Zl -G2s -Asnd -W2 -Od -DOS2 -DCS_2_0

# do it

OBJ= stgy.obj devhlp.obj cs.obj cs_util.obj cs_help.obj cs_idc.obj com_idc.obj config.obj card_id.obj comport.obj shell.obj
OUTFILE= estdfm

$(OUTFILE).os2: $(OBJ)
        Rem Create DEF file <<$(DEF)
LIBRARY estdfm
DESCRIPTION '$(FILEVER)  OS/2 PCMCIA CLDFM Sample Driver'
PROTMODE
SEGMENTS
   _DATA      CLASS 'DATA'
   _BSS       CLASS 'BSS'
   CONST      CLASS 'CONST'
   _ENDDATA   CLASS 'ENDDATA'
   _TEXT      CLASS 'CODE'
<<keep

        $(LN) @<<$(@B).lnk
$(LFLAGS) $(OBJ)
$(OUTFILE).os2
$(OUTFILE).map
$(OS2LIB) $(CLIB) $(DOSLIB)
$(DEF);
<<keep
        mapsym $(OUTFILE)

clean:
        rm *.map
        rm *.sym
        rm *.sys
        rm *.obj
        rm *.a
        rm *.lst

stgy.obj: stgy.c
        $(CC) $(CFLAGS) -Fcstgy.a -Fostgy.obj stgy.lst stgy.c

config.obj: config.c
        $(CC) $(CFLAGS) -Fcconfig.a -Foconfig.obj config.lst config.c

card_id.obj: card_id.c
        $(CC) $(CFLAGS) -Fccard_id.a -Focard_id.obj card_id.lst card_id.c

cs.obj: cs.c
        $(CC) $(CFLAGS) -Fccs.a -Focs.obj cs.c

cs_util.obj: cs_util.c
        $(CC) $(CFLAGS) -Fccs_util.a -Focs_util.obj cs_util.c

comport.obj: comport.c
        $(CC) $(CFLAGS) -Fccomport.a -Focomport.obj comport.c

cs_help.obj: cs_help.asm
        $(AS) $(AFLAGS) cs_help.asm

cs_idc.obj: cs_idc.asm
        $(AS) $(AFLAGS) cs_idc.asm

com_idc.obj: com_idc.asm
        $(AS) $(AFLAGS) com_idc.asm

devhlp.obj: devhlp.asm
        $(AS) $(AFLAGS) devhlp.asm

shell.obj: shell.asm
        $(AS) $(AFLAGS) shell.asm
