##############################################################################
#                                                                            #
#                      Makefile for common code library.                     #
#                                                                            #
##############################################################################

LIBDIR = ..\LIB
OBJDIR = OBJ
LSTDIR = LST
INCDIR = ..\INCLUDE

#
# Masm command line
#

ASM = ml /c /Cx /Zi /Zd /Sn /W3 /Zp1 /I$(INCDIR)

#
# C compiler command line
#

CC = cl /c /Asnw /Ox /G3s /Zd /W3 /Zlp1 /I$(INCDIR)
#CC = cl /c /Asnw /Ox /G3s /Zd /W3 /Zlp1 /I$(INCDIR) /DDBG

#
# Linker command line
#

LINK = link /noe/al:16/map/li/warnfixup/NOD/DOSS

#
# Library manager command line
#

LIB = lib

#
# Main dependency
#

COMMON.LIB: $(LIBDIR)\common.lib $(OBJDIR)\common.xrf   \
    $(OBJDIR)\dll.obj       $(OBJDIR)\textout.obj       \
    $(OBJDIR)\enable.obj    $(OBJDIR)\control.obj       \
    $(OBJDIR)\bitblt.obj    $(OBJDIR)\output.obj        \
    $(OBJDIR)\pixel.obj     $(OBJDIR)\utils.obj         \
    $(OBJDIR)\dibitmap.obj  $(OBJDIR)\stubs.obj         \
    $(OBJDIR)\realize.obj   $(OBJDIR)\enum.obj          \
    $(OBJDIR)\bitmap.obj                                \
    $(OBJDIR)\bltutil.obj   $(OBJDIR)\textext.obj

#
# C source dependencies
#

$(OBJDIR)\dll.obj:      dll.c $(INCDIR)\common.h
	$(CC) /NT _INIT /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\textout.obj:  textout.c $(INCDIR)\common.h $(INCDIR)\textout.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\enable.obj:   enable.c $(INCDIR)\common.h $(INCDIR)\enable.h
	$(CC) /NT _INIT /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\control.obj:  control.c $(INCDIR)\common.h $(INCDIR)\control.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\bitblt.obj:   bitblt.c $(INCDIR)\common.h $(INCDIR)\bitblt.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\output.obj:   output.c $(INCDIR)\common.h $(INCDIR)\output.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\realize.obj:   realize.c $(INCDIR)\common.h $(INCDIR)\realize.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\enum.obj:     enum.c $(INCDIR)\common.h $(INCDIR)\enum.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\pixel.obj: pixel.c $(INCDIR)\common.h $(INCDIR)\pixel.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\dibitmap.obj: dibitmap.c $(INCDIR)\common.h $(INCDIR)\dibitmap.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\bitmap.obj:   bitmap.c $(INCDIR)\common.h $(INCDIR)\bitmap.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\stubs.obj:    stubs.c $(INCDIR)\common.h $(INCDIR)\stubs.h
	$(CC) /Fo$(OBJDIR)\$(@B).obj /Fc$(LSTDIR)\$(@B) $(@B).c
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

#
# Assembly source dependencies
#

$(OBJDIR)\bltutil.obj:   bltutil.asm $(INCDIR)\common.inc $(INCDIR)\bitblt.inc
	$(ASM) /Fo$(OBJDIR)\$(@B).obj /Fl$(LSTDIR)\$(@B) $(@B).asm
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\textext.obj:   textext.asm $(INCDIR)\common.inc $(INCDIR)\textout.inc
	$(ASM) /Fo$(OBJDIR)\$(@B).obj /Fl$(LSTDIR)\$(@B) $(@B).asm
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

$(OBJDIR)\utils.obj:    utils.asm $(INCDIR)\common.inc
	$(ASM) /Fo$(OBJDIR)\$(@B).obj /Fl$(LSTDIR)\$(@B) $(@B).asm
    $(LIB) $(LIBDIR)\common -+$(OBJDIR)\$(@B).obj;

#
# Library dependencies
#

$(LIBDIR)\common.lib:                                   \
    $(OBJDIR)\dll.obj       $(OBJDIR)\textout.obj       \
    $(OBJDIR)\enable.obj    $(OBJDIR)\control.obj       \
    $(OBJDIR)\bitblt.obj    $(OBJDIR)\output.obj        \
    $(OBJDIR)\pixel.obj     $(OBJDIR)\utils.obj         \
    $(OBJDIR)\dibitmap.obj  $(OBJDIR)\stubs.obj         \
    $(OBJDIR)\realize.obj   $(OBJDIR)\enum.obj          \
    $(OBJDIR)\bitmap.obj                                \
    $(OBJDIR)\bltutil.obj   $(OBJDIR)\textext.obj
    $(LIB) $(LIBDIR)\common.lib, $(OBJDIR)\common.xrf;

$(OBJDIR)\common.xrf: $(LIBDIR)\common.lib
    $(LIB) $(LIBDIR)\common.lib, $(OBJDIR)\common.xrf;


