# # $Id$ # # # Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers # # # NOTE: You can use these envvars to configure the make process: # (note that these are all optional) # # CFLAGS - Extra C compiler options for libraries and for # executables # C_USR - Extra C compiler options for libraries and for # executables (GNU make compatible envvar) # CLIBFLAGS - Extra C compiler options for the libraries # HARBOURFLAGS - Extra Harbour compiler options # PRG_USR - Extra Harbour compiler options # (GNU make compatible envvar) # # # NOTE: "echo." intentionally used instead of "echo", to avoid conflicts # with external commands named echo. # !if $d(B16) CC = bcc AS = tasm # Borland C/C++ (DOS 16 bits) CFLAGS = -mh $(CFLAGS) BIN_DIR = bin\b16 OBJ_DIR = obj\b16 LIB_DIR = lib\b16 !else CC = bcc32 AS = tasm32 BIN_DIR = ..\..\bin\b32 OBJ_DIR = ..\..\obj\b32 LIB_DIR = ..\..\lib\b32 # This is needed, otherwise the libs may overflow when # debug info is requested with -v -y ARFLAGS = /P32 !endif !if !$d(BCC_NOOPTIM) CFLAGS = -O2 $(CFLAGS) !endif # # Directory macros. These should never have to change. # INCLUDE_DIR = ..\..\include TOOLS_DIR = . # # C compiler definition and C flags. These should never have to change. # CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS) CLIBFLAGSDEBUG = -v $(CLIBFLAGS) HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS) LDFLAGS = $(LDFLAGS) # # Macros to access our library names # TOOLS_LIB = $(LIB_DIR)\libct.lib HARBOUR_EXE = $(BIN_DIR)\harbour.exe # # Rules # # # TOOLS.LIB rules # TOOLS_LIB_OBJS = \ $(OBJ_DIR)\addascii.obj \ $(OBJ_DIR)\asciisum.obj \ $(OBJ_DIR)\ascpos.obj \ $(OBJ_DIR)\atadjust.obj \ $(OBJ_DIR)\atnum.obj \ $(OBJ_DIR)\atrepl.obj \ $(OBJ_DIR)\bit1.obj \ $(OBJ_DIR)\bit2.obj \ $(OBJ_DIR)\bit3.obj \ $(OBJ_DIR)\charevod.obj \ $(OBJ_DIR)\charlist.obj \ $(OBJ_DIR)\charmirr.obj \ $(OBJ_DIR)\charmix.obj \ $(OBJ_DIR)\charone.obj \ $(OBJ_DIR)\charonly.obj \ $(OBJ_DIR)\charop.obj \ $(OBJ_DIR)\charrepl.obj \ $(OBJ_DIR)\charsort.obj \ $(OBJ_DIR)\charswap.obj \ $(OBJ_DIR)\count.obj \ $(OBJ_DIR)\ctc.obj \ $(OBJ_DIR)\ctmath.obj \ $(OBJ_DIR)\ctset.obj \ $(OBJ_DIR)\ctstr.obj \ $(OBJ_DIR)\ctchksum.obj \ $(OBJ_DIR)\ctcrypt.obj \ $(OBJ_DIR)\ctwfunc.obj \ $(OBJ_DIR)\ctwin.obj \ $(OBJ_DIR)\exponent.obj \ $(OBJ_DIR)\files.obj \ $(OBJ_DIR)\finan.obj \ $(OBJ_DIR)\ftoc.obj \ $(OBJ_DIR)\justify.obj \ $(OBJ_DIR)\keyset.obj \ $(OBJ_DIR)\math.obj \ $(OBJ_DIR)\misc1.obj \ $(OBJ_DIR)\num1.obj \ $(OBJ_DIR)\numat.obj \ $(OBJ_DIR)\pad.obj \ $(OBJ_DIR)\pos1.obj \ $(OBJ_DIR)\pos2.obj \ $(OBJ_DIR)\posdiff.obj \ $(OBJ_DIR)\print.obj \ $(OBJ_DIR)\range.obj \ $(OBJ_DIR)\relation.obj \ $(OBJ_DIR)\remove.obj \ $(OBJ_DIR)\replace.obj \ $(OBJ_DIR)\screen1.obj \ $(OBJ_DIR)\strdiff.obj \ $(OBJ_DIR)\strswap.obj \ $(OBJ_DIR)\tab.obj \ $(OBJ_DIR)\token1.obj \ $(OBJ_DIR)\token2.obj \ $(OBJ_DIR)\trig.obj \ $(OBJ_DIR)\wordrepl.obj \ $(OBJ_DIR)\wordtoch.obj \ \ $(OBJ_DIR)\color.obj \ $(OBJ_DIR)\ct.obj \ $(OBJ_DIR)\ctmisc.obj \ $(OBJ_DIR)\datetime.obj \ $(OBJ_DIR)\dattime2.obj \ $(OBJ_DIR)\invrtwin.obj \ $(OBJ_DIR)\numconv.obj \ $(OBJ_DIR)\screen2.obj \ $(OBJ_DIR)\setlast.obj \ # # Our default target # all: \ $(TOOLS_LIB) \ # # Library dependencies and build rules # $(TOOLS_LIB) : $(TOOLS_LIB_OBJS) # # TOOLS.LIB dependencies # $(OBJ_DIR)\addascii.obj : $(TOOLS_DIR)\addascii.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\asciisum.obj : $(TOOLS_DIR)\asciisum.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ascpos.obj : $(TOOLS_DIR)\ascpos.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\atadjust.obj : $(TOOLS_DIR)\atadjust.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\atnum.obj : $(TOOLS_DIR)\atnum.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\atrepl.obj : $(TOOLS_DIR)\atrepl.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\bit1.obj : $(TOOLS_DIR)\bit1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\bit2.obj : $(TOOLS_DIR)\bit2.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\bit3.obj : $(TOOLS_DIR)\bit3.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charevod.obj : $(TOOLS_DIR)\charevod.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charlist.obj : $(TOOLS_DIR)\charlist.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charmirr.obj : $(TOOLS_DIR)\charmirr.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charmix.obj : $(TOOLS_DIR)\charmix.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charone.obj : $(TOOLS_DIR)\charone.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charonly.obj : $(TOOLS_DIR)\charonly.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charop.obj : $(TOOLS_DIR)\charop.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charrepl.obj : $(TOOLS_DIR)\charrepl.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charsort.obj : $(TOOLS_DIR)\charsort.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\charswap.obj : $(TOOLS_DIR)\charswap.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\count.obj : $(TOOLS_DIR)\count.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctc.obj : $(TOOLS_DIR)\ctc.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctmath.obj : $(TOOLS_DIR)\ctmath.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctset.obj : $(TOOLS_DIR)\ctset.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctstr.obj : $(TOOLS_DIR)\ctstr.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctchksum.obj : $(TOOLS_DIR)\ctchksum.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctcrypt.obj : $(TOOLS_DIR)\ctcrypt.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctwfunc.obj : $(TOOLS_DIR)\ctwfunc.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctwin.obj : $(TOOLS_DIR)\ctwin.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\exponent.obj : $(TOOLS_DIR)\exponent.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\files.obj : $(TOOLS_DIR)\files.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\finan.obj : $(TOOLS_DIR)\finan.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ftoc.obj : $(TOOLS_DIR)\ftoc.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\justify.obj : $(TOOLS_DIR)\justify.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\keyset.obj : $(TOOLS_DIR)\keyset.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\math.obj : $(TOOLS_DIR)\math.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\misc1.obj : $(TOOLS_DIR)\misc1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\num1.obj : $(TOOLS_DIR)\num1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\numat.obj : $(TOOLS_DIR)\numat.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\pad.obj : $(TOOLS_DIR)\pad.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\pos1.obj : $(TOOLS_DIR)\pos1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\pos2.obj : $(TOOLS_DIR)\pos2.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\posdiff.obj : $(TOOLS_DIR)\posdiff.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\print.obj : $(TOOLS_DIR)\print.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\range.obj : $(TOOLS_DIR)\range.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\relation.obj : $(TOOLS_DIR)\relation.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\remove.obj : $(TOOLS_DIR)\remove.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\replace.obj : $(TOOLS_DIR)\replace.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\screen1.obj : $(TOOLS_DIR)\screen1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\strswap.obj : $(TOOLS_DIR)\strswap.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\strdiff.obj : $(TOOLS_DIR)\strdiff.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\tab.obj : $(TOOLS_DIR)\tab.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\token1.obj : $(TOOLS_DIR)\token1.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\token2.obj : $(TOOLS_DIR)\token2.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\trig.obj : $(TOOLS_DIR)\trig.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\wordrepl.obj : $(TOOLS_DIR)\wordrepl.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\wordtoch.obj : $(TOOLS_DIR)\wordtoch.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ct.c : $(TOOLS_DIR)\ct.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\ct.obj : $(OBJ_DIR)\ct.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\color.c : $(TOOLS_DIR)\color.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\color.obj : $(OBJ_DIR)\color.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\ctmisc.c : $(TOOLS_DIR)\ctmisc.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\ctmisc.obj : $(OBJ_DIR)\ctmisc.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\datetime.c : $(TOOLS_DIR)\datetime.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\datetime.obj : $(OBJ_DIR)\datetime.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\dattime2.c : $(TOOLS_DIR)\dattime2.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\dattime2.obj : $(OBJ_DIR)\dattime2.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\invrtwin.c : $(TOOLS_DIR)\invrtwin.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\invrtwin.obj : $(OBJ_DIR)\invrtwin.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\numconv.c : $(TOOLS_DIR)\numconv.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\numconv.obj : $(OBJ_DIR)\numconv.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\screen2.c : $(TOOLS_DIR)\screen2.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\screen2.obj : $(OBJ_DIR)\screen2.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,, $(OBJ_DIR)\setlast.c : $(TOOLS_DIR)\setlast.prg $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@ $(OBJ_DIR)\setlast.obj : $(OBJ_DIR)\setlast.c $(CC) $(CLIBFLAGS) -o$@ $** tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,