#
# htp
# An HTML pre-processor
# Copyright (c) 1995 Jim Nelson.
#

#
# project name and memory model
#
MAIN = htp
MODEL = l
LIBMODEL = l

#
# DEBUG (0 = off, 1 = on)
#
!ifndef DEBUG
DEBUG = 0
!endif

#
# OPTIMIZE (0 = none, 1 = small, 2 = fast)
#
!ifndef OPTIMIZE
OPTIMIZE = 2
!endif

#
# Borland C/C++ home directory
#
HOME = d:\bc

#
# development environment
#
BIN = $(HOME)\bin
INC = $(HOME)\include;
LIB = $(HOME)\lib;

#
# development tools
#
ASM = $(BIN)\tasm
CC = $(BIN)\bcc
LINK = $(BIN)\tlink

#
# tool command-line options
#
ASMOPT = /mx
CCOPT = /c /m$(MODEL) /H /d /3 /Z /w3 /a
LOPT = /c /L$(LIB) /m /3

#
# program prefix
#
PREFIX = $(HOME)\lib\c0$(MODEL).obj

#
# object files used
# declare OBJ2 if another line is needed
#
OBJ1 = $(PREFIX) $(MAIN).obj image.obj html.obj ver.obj textfile.obj varstore.obj
OBJ2 = msg.obj jpeg.obj gif.obj option.obj suballoc.obj

#
# needed library files
#
LIBFILES = fp87 math$(LIBMODEL) c$(LIBMODEL)

#
# debug command-line options
# note that debug on turns optimize off
#
!if $(DEBUG)
OPTIMIZE = 0
ASMOPT = $(ASMOPT)
CCOPT = $(CCOPT) /v /Od
LOPT = $(LOPT) /v
!endif

#
# optimize command-line options
#
!if $(OPTIMIZE)
ASMOPT = $(ASMOPT)
CCOPT = $(CCOPT) /O$(OPTIMIZE) /N- /k-
LOPT = $(LOPT)
!endif

#
# defines
#
DEFINES = /DDEBUG=$(DEBUG) /DOPTIMIZE=$(OPTIMIZE)

#
# explicit dependency: final executable
#
EXE = $(MAIN).exe
$(EXE) : largs.rsp cargs.rsp aargs.rsp $(OBJ1) $(OBJ2)
    $(LINK) $(LOPT) @largs.rsp

#
# explicit dependency: clean build
#
clean :
    erase *.obj
    erase *.map
    erase *.rsp

#
# implicit dependencies for source code
#
.asm.obj :
    $(ASM) @aargs.rsp $< > $*.err

.c.obj :
    $(CC) @cargs.rsp $< > $*.err

.cpp.obj :
    $(CC) @cargs.rsp $< > $*.err

#
# explicit dependencies: Borland response files
#
aargs.rsp : makefile
    @echo Building TASM response file . . .
    @if exist $< erase $<
    @echo. $(ASMOPT) >> $<

cargs.rsp : makefile
    @echo Building BCC response file . . .
    @if exist $< erase $<
    @echo. $(CCOPT) >> $<
    @echo. /I$(INC) >> $<
    @echo. $(DEFINES) >> $<

largs.rsp : makefile
    @echo Building TLINK response file . . .
    @if exist $< erase $<
!ifndef OBJ2
    @echo. $(OBJ1) >> $<
!else
    @echo. $(OBJ1) + >> $<
    @echo. $(OBJ2) >> $<
!endif
    @echo. $(EXE) >> $<
    @echo. $(MAIN).map >> $<
    @echo. $(LIBFILES) >> $<

