############################################################################
#                                                                          #
#  MAKEFILE for the DESKTOP                                                #
#                                                                          #
############################################################################

# Compiler is 'M' for Microsoft, 'T' for Borland Turbo C
COMPILER = M
# Model is 
#   1) Microsoft C - 'M' for Medium, 'L' for Large
#   2) Turbo C - 'm' for medium, 'l' for large
MODEL = L

# Microsoft C macros
CC = cl
OPT = /Oait
DEBUG = /Od /Zi
CFLAGS = /c /DMSC=1 /DDOS /A$(MODEL) /J $(OPT) /DDESKTOP /DMODELESS
ASM = masm 
# LMODEL should be 1 if you want large data
ASMFLAGS = /DLMODEL=0 /DTC=0
LIB = lib
LINK = link
LFLAGS = /seg:192 /packcode /f /noe /stack:8192

# Borland Turbo C macros
#CC = tcc
# Optimization : -G favors speed over size, -O improves jumps & loops
#OPT = -G -O
#CFLAGS = -v -c -d -f- -k -N -K -m$(MODEL) -DTC -w-aus -w-pia -w-stu -w-rvl -w-par
#ASM = tasm
#ASMFLAGS = /dTC=1 /dLMODEL=0 /mx
#LIB = tlib
#LINK = tlink
#LFLAGS = /v

# We tack the compiler and model onto the end of the library name, so
# the library for Borland's Turbo C, medium model would be called WINLIBTM.LIB

# Inference rules for C and ASM files

.c.obj :
	$(CC) $(CFLAGS) $*.c

.asm.obj :
	$(ASM) $(ASMFLAGS) $*;


DEMO = desktop
OBJS = $(DEMO).obj deskdlg.obj deskaux.obj deskhelp.obj calc.obj

$(DEMO).obj :   $(DEMO).c

deskdlg.obj :   deskdlg.c

deskaux.obj :   deskaux.c

deskhelp.obj :  deskhelp.c

calc.obj    :   calc.c

desktop.res : desktop.rc
	rc desktop.rc

$(DEMO).exe :   $(OBJS) desktop.res
# Microsoft
  $(LINK) $(LFLAGS) $(OBJS),$(DEMO),nul,winlib$(COMPILER)$(MODEL).lib;
  rc desktop.res
# $(LINK) /co @calc.lnk
# cvpack desktop.exe
# Turbo C
# $(LINK) $(LFLAGS) e:\tc\lib\c0$(MODEL)+$(OBJS),\
#      $(DEMO),nul,e:\tc\lib\c$(MODEL)+winlib$(COMPILER)$(MODEL)
# rc desktop.res

