Files
harbour-core/harbour/makefile.vc
2000-03-14 06:11:52 +00:00

818 lines
21 KiB
Plaintext

#
# $Id$
#
#
# Makefile for Harbour project for Microsoft Visual C (32 bits)
#
# To add new files to this makefile:
#
# 1. Add obj name to one of the OBJ list for the appropriate
# library (if adding RTL functions)
# 2. Add file dependency and compile rule to end of this file
# (see current one as an example)
#
BIN_DIR = bin\vc
LIB_DIR = lib\vc
OBJ_DIR = obj\vc
#
# Directory macros. These should never have to change.
#
INCLUDE_DIR = include
COMMON_DIR = source\common
COMPILER_DIR = source\compiler
DEBUG_DIR = source\debug
MACRO_DIR = source\macro
PP_DIR = source\pp
RDD_DIR = source\rdd
RTL_DIR = source\rtl
RUNNER_DIR = source\runner
TOOLS_DIR = source\tools
VM_DIR = source\vm
HBTEST_DIR = utils\hbtest
HBDOC_DIR = utils\hbdoc
#
# C compiler definition and C flags. These should never have to change.
#
AS = masm
CC = cl
CFLAGS = -TP -W1 -nologo -I$(INCLUDE_DIR) -D_Windows -DHB_GT_WIN
CLIBFLAGS = $(CFLAGS) -c
CLIBFLAGSDEBUG = $(CLIBFLAGS) -Zi
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w -es2 -gc0
#
# Macros to access our library names
#
COMMON_LIB = $(LIB_DIR)\common.lib
DBFCDX_LIB = $(LIB_DIR)\dbfcdx.lib
DBFNTX_LIB = $(LIB_DIR)\dbfntx.lib
DEBUG_LIB = $(LIB_DIR)\debug.lib
MACRO_LIB = $(LIB_DIR)\macro.lib
NULSYS_LIB = $(LIB_DIR)\nulsys.lib
PP_LIB = $(LIB_DIR)\pp.lib
RDD_LIB = $(LIB_DIR)\rdd.lib
RTL_LIB = $(LIB_DIR)\rtl.lib
RUNNER_LIB = $(LIB_DIR)\runner.lib
TOOLS_LIB = $(LIB_DIR)\tools.lib
VM_LIB = $(LIB_DIR)\vm.lib
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
PP_EXE = $(BIN_DIR)\hbpp.exe
RUNNER_EXE = $(BIN_DIR)\hbrun.exe
HBTEST_EXE = $(BIN_DIR)\hbtest.exe
HBDOC_EXE = $(BIN_DIR)\hbdoc.exe
RUNNER_DLL = $(BIN_DIR)\runjava.dll
#
# Rules
#
.SUFFIXES: .prg .lib
# QUESTION: Any make genius tell us why this doesn't work?
{$(OBJ_DIR)}.obj{$(LIB_DIR)}.lib:
lib /OUT:$@ $**
# override builtin
.c.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
#
#
#
LIBLIST = \
$(RTL_LIB) \
$(COMMON_LIB) \
$(DEBUG_LIB) \
$(MACRO_LIB) \
$(PP_LIB) \
$(RDD_LIB) \
$(DBFCDX_LIB) \
$(DBFNTX_LIB) \
$(NULSYS_LIB) \
$(RUNNER_LIB) \
$(TOOLS_LIB) \
$(VM_LIB)
#
# macro.lib needs to be listed twice
#
LIBS = \
$(LIBLIST) \
$(MACRO_LIB)
#
# programs that require user32.lib (for OemToAnsi)
#
LIBS2 = \
$(LIBS) \
user32.lib
#
# RTL.LIB rules
#
{$(RTL_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(RTL_DIR)}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
RTL_LIB_OBJS = \
$(OBJ_DIR)\binnum.obj \
$(OBJ_DIR)\console.obj \
$(OBJ_DIR)\copyfile.obj \
$(OBJ_DIR)\dates.obj \
$(OBJ_DIR)\descend.obj \
$(OBJ_DIR)\dir.obj \
$(OBJ_DIR)\do.obj \
$(OBJ_DIR)\empty.obj \
$(OBJ_DIR)\environ.obj \
$(OBJ_DIR)\errorapi.obj \
$(OBJ_DIR)\filesys.obj \
$(OBJ_DIR)\gtapi.obj \
$(OBJ_DIR)\hardcr.obj \
$(OBJ_DIR)\inkey.obj \
$(OBJ_DIR)\isprint.obj \
$(OBJ_DIR)\langapi.obj \
$(OBJ_DIR)\len.obj \
$(OBJ_DIR)\math.obj \
$(OBJ_DIR)\memofile.obj \
$(OBJ_DIR)\memoline.obj \
$(OBJ_DIR)\mlcount.obj \
$(OBJ_DIR)\mlpos.obj \
$(OBJ_DIR)\mouseapi.obj \
$(OBJ_DIR)\mtran.obj \
$(OBJ_DIR)\natmsg.obj \
$(OBJ_DIR)\net.obj \
$(OBJ_DIR)\oemansi.obj \
$(OBJ_DIR)\oldbox.obj \
$(OBJ_DIR)\oldclear.obj \
$(OBJ_DIR)\samples.obj \
$(OBJ_DIR)\set.obj \
$(OBJ_DIR)\setcolor.obj \
$(OBJ_DIR)\soundex.obj \
$(OBJ_DIR)\strings.obj \
$(OBJ_DIR)\tone.obj \
$(OBJ_DIR)\trace.obj \
$(OBJ_DIR)\transfrm.obj \
$(OBJ_DIR)\type.obj \
$(OBJ_DIR)\valtype.obj \
$(OBJ_DIR)\word.obj \
$(OBJ_DIR)\xhelp.obj \
\
$(OBJ_DIR)\gtxxx.obj \
$(OBJ_DIR)\mousexxx.obj \
$(OBJ_DIR)\msgxxx.obj \
\
$(OBJ_DIR)\achoice.obj \
$(OBJ_DIR)\adir.obj \
$(OBJ_DIR)\alert.obj \
$(OBJ_DIR)\asort.obj \
$(OBJ_DIR)\browdb.obj \
$(OBJ_DIR)\browse.obj \
$(OBJ_DIR)\dbedit.obj \
$(OBJ_DIR)\devoutp.obj \
$(OBJ_DIR)\dircmd.obj \
$(OBJ_DIR)\dummy.obj \
$(OBJ_DIR)\errorsys.obj \
$(OBJ_DIR)\fieldbl.obj \
$(OBJ_DIR)\input.obj \
$(OBJ_DIR)\memvarbl.obj \
$(OBJ_DIR)\menuto.obj \
$(OBJ_DIR)\objfunc.obj \
$(OBJ_DIR)\readkey.obj \
$(OBJ_DIR)\setfunc.obj \
$(OBJ_DIR)\setkey.obj \
$(OBJ_DIR)\setta.obj \
$(OBJ_DIR)\tbcolumn.obj \
$(OBJ_DIR)\tbrowse.obj \
$(OBJ_DIR)\tclass.obj \
$(OBJ_DIR)\terror.obj \
$(OBJ_DIR)\text.obj \
$(OBJ_DIR)\tget.obj \
$(OBJ_DIR)\tgetlist.obj \
$(OBJ_DIR)\tlabel.obj \
$(OBJ_DIR)\treport.obj \
$(OBJ_DIR)\typefile.obj \
$(OBJ_DIR)\wait.obj \
$(OBJ_DIR)\xsavescr.obj
#
# TOOLS.LIB rules
#
{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
TOOLS_LIB_OBJS = \
$(OBJ_DIR)\asciisum.obj \
$(OBJ_DIR)\ascpos.obj \
$(OBJ_DIR)\atdiff.obj \
$(OBJ_DIR)\chareven.obj \
$(OBJ_DIR)\charmix.obj \
$(OBJ_DIR)\charodd.obj \
$(OBJ_DIR)\chrcount.obj \
$(OBJ_DIR)\chrfirst.obj \
$(OBJ_DIR)\chrtotal.obj \
$(OBJ_DIR)\ctchksum.obj \
$(OBJ_DIR)\ctchrmix.obj \
$(OBJ_DIR)\ctcrypt.obj \
$(OBJ_DIR)\dates2.obj \
$(OBJ_DIR)\datesx.obj \
$(OBJ_DIR)\dbftools.obj \
$(OBJ_DIR)\hb_f.obj \
$(OBJ_DIR)\io.obj \
$(OBJ_DIR)\mathx.obj \
$(OBJ_DIR)\strasint.obj \
$(OBJ_DIR)\strcount.obj \
$(OBJ_DIR)\strcspn.obj \
$(OBJ_DIR)\strdiff.obj \
$(OBJ_DIR)\strexpan.obj \
$(OBJ_DIR)\strfmt.obj \
$(OBJ_DIR)\stringsx.obj \
$(OBJ_DIR)\strleft.obj \
$(OBJ_DIR)\strpbrk.obj \
$(OBJ_DIR)\strright.obj \
\
$(OBJ_DIR)\fileread.obj \
$(OBJ_DIR)\html.obj \
$(OBJ_DIR)\nconvert.obj \
$(OBJ_DIR)\ng.obj \
$(OBJ_DIR)\numtxten.obj \
$(OBJ_DIR)\numtxthu.obj \
$(OBJ_DIR)\os2.obj \
$(OBJ_DIR)\rtf.obj \
$(OBJ_DIR)\stringp.obj \
$(OBJ_DIR)\troff.obj
#
# MACRO.LIB rules
#
{$(MACRO_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
MACRO_LIB_OBJS = \
$(OBJ_DIR)\macroy.obj \
$(OBJ_DIR)\macrol.obj \
$(OBJ_DIR)\macro.obj
#
# RDD.LIB rules
#
{$(RDD_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(RDD_DIR)}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
RDD_LIB_OBJS = \
$(OBJ_DIR)\dbcmd.obj \
$(OBJ_DIR)\dbf0.obj \
$(OBJ_DIR)\dbf1.obj \
$(OBJ_DIR)\dbnubs.obj \
$(OBJ_DIR)\dbstrux.obj \
$(OBJ_DIR)\sdf0.obj \
$(OBJ_DIR)\sdf1.obj \
$(OBJ_DIR)\delim0.obj \
$(OBJ_DIR)\delim1.obj \
$(OBJ_DIR)\rddord.obj \
$(OBJ_DIR)\rddsys.obj
{$(RDD_DIR)\nulsys}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(RDD_DIR)\nulsys}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
NULSYS_LIB_OBJS = \
$(OBJ_DIR)\nulsys.obj
{$(RDD_DIR)\dbfntx}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(RDD_DIR)\dbfntx}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
DBFNTX_LIB_OBJS = \
$(OBJ_DIR)\dbfntx0.obj \
$(OBJ_DIR)\dbfntx1.obj
{$(RDD_DIR)\dbfcdx}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(RDD_DIR)\dbfcdx}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
DBFCDX_LIB_OBJS = \
$(OBJ_DIR)\dbfcdx0.obj \
$(OBJ_DIR)\dbfcdx1.obj
#
# RUNNER.LIB rules
#
{$(RUNNER_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
RUNNER_LIB_OBJS = \
$(OBJ_DIR)\runlib.obj
#
# PP.LIB rules
#
{$(PP_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
PP_LIB_OBJS = \
$(OBJ_DIR)\ppcore.obj \
$(OBJ_DIR)\ppcomp.obj \
$(OBJ_DIR)\pplib.obj \
$(OBJ_DIR)\pptable.obj
#
# DEBUG.LIB rules
#
{$(DEBUG_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(DEBUG_DIR)}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
DEBUG_LIB_OBJS = \
$(OBJ_DIR)\dbgmenu.obj \
$(OBJ_DIR)\debugger.obj \
$(OBJ_DIR)\tbrwtext.obj
#
# COMMON.LIB rules
#
{$(COMMON_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
COMMON_LIB_OBJS = \
$(OBJ_DIR)\hbfsapi.obj \
$(OBJ_DIR)\hbstr.obj \
$(OBJ_DIR)\hbtrace.obj \
$(OBJ_DIR)\reserved.obj
#
# VM.LIB rules
#
{$(VM_DIR)}.asm{$(OBJ_DIR)}.obj:
$(AS) $< $@ nul nul
{$(VM_DIR)}.c{$(OBJ_DIR)}.obj::
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
{$(VM_DIR)}.prg{$(OBJ_DIR)}.obj:
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$*.c
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
VM_LIB_OBJS = \
$(OBJ_DIR)\arrays.obj \
$(OBJ_DIR)\break.obj \
$(OBJ_DIR)\classes.obj \
$(OBJ_DIR)\cmdarg.obj \
$(OBJ_DIR)\codebloc.obj \
$(OBJ_DIR)\debug.obj \
$(OBJ_DIR)\dynsym.obj \
$(OBJ_DIR)\extend.obj \
$(OBJ_DIR)\fm.obj \
$(OBJ_DIR)\hvm.obj \
$(OBJ_DIR)\initexit.obj \
$(OBJ_DIR)\initsymb.obj \
$(OBJ_DIR)\itemapi.obj \
$(OBJ_DIR)\maindll.obj \
$(OBJ_DIR)\mainstd.obj \
$(OBJ_DIR)\mainwin.obj \
$(OBJ_DIR)\memvars.obj \
$(OBJ_DIR)\pcount.obj \
$(OBJ_DIR)\proc.obj \
$(OBJ_DIR)\pvalue.obj \
\
$(OBJ_DIR)\symbols.obj \
\
$(OBJ_DIR)\harbinit.obj
#
# Our default target
#
all: \
$(HARBOUR_EXE) \
$(LIBLIST) \
$(PP_EXE) \
$(RUNNER_EXE) \
$(HBTEST_EXE) \
$(HBDOC_EXE) \
# $(RUNNER_DLL)
$(PP_EXE) : \
$(PP_DIR)\stdalone\hbpp.c \
$(COMMON_DIR)\hbfsapi.c \
$(COMMON_DIR)\hbstr.c
$(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $** -o $(PP_EXE) /link $(PP_LIB)
#
# HBRUN.EXE rules
#
$(RUNNER_EXE) : \
$(RUNNER_DIR)\stdalone\hbrun.prg
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
$(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\hbrun.c -o $(BIN_DIR)\hbrun /link $(LIBS2)
#
# To compile this you must have a JDK installed
#
#$(RUNNER_DLL) : $(RUNNER_DIR)\runjava.c
# $(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(RUNNER_DIR)\runjava.c -o $(BIN_DIR)\runjava.dll /link-dll $(LIBS)
# -del $(BIN_DIR)\runjava.exp
# -del $(BIN_DIR)\runjava.lib
#
# HBTEST.EXE rules
#
$(HBTEST_EXE) : \
$(HBTEST_DIR)\hbtest.prg \
$(HBTEST_DIR)\rt_array.prg \
$(HBTEST_DIR)\rt_date.prg \
$(HBTEST_DIR)\rt_file.prg \
$(HBTEST_DIR)\rt_hvm.prg \
$(HBTEST_DIR)\rt_math.prg \
$(HBTEST_DIR)\rt_misc.prg \
$(HBTEST_DIR)\rt_str.prg \
$(HBTEST_DIR)\rt_trans.prg
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
$(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\hbtest.c $(OBJ_DIR)\rt_array.c $(OBJ_DIR)\rt_date.c $(OBJ_DIR)\rt_file.c $(OBJ_DIR)\rt_hvm.c $(OBJ_DIR)\rt_math.c $(OBJ_DIR)\rt_misc.c $(OBJ_DIR)\rt_str.c $(OBJ_DIR)\rt_trans.c -o $(HBTEST_EXE) /link $(LIBS)
#
# HBDOC.EXE rules
#
$(HBDOC_EXE) : \
$(HBDOC_DIR)\hbdoc.prg \
$(HBDOC_DIR)\genos2.prg \
$(HBDOC_DIR)\gentrf.prg \
$(HBDOC_DIR)\genng.prg \
$(HBDOC_DIR)\genhtm.prg \
$(HBDOC_DIR)\genrtf.prg \
$(HBDOC_DIR)\genhpc.prg \
$(HBDOC_DIR)\genasc.prg
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
$(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ $(OBJ_DIR)\hbdoc.c $(OBJ_DIR)\genos2.c $(OBJ_DIR)\gentrf.c $(OBJ_DIR)\genng.c $(OBJ_DIR)\genhtm.c $(OBJ_DIR)\genrtf.c $(OBJ_DIR)\genhpc.c $(OBJ_DIR)\genasc.c -o $(HBDOC_EXE) /link $(LIBS2)
#
# HARBOUR.EXE rules
#
$(HARBOUR_EXE) : \
$(COMPILER_DIR)\harbour.c \
$(OBJ_DIR)\harboury.c \
$(OBJ_DIR)\harbourl.c \
$(COMPILER_DIR)\hbusage.c \
$(COMPILER_DIR)\hbpcode.c \
$(COMPILER_DIR)\hbfunchk.c \
$(COMPILER_DIR)\cmdcheck.c \
$(COMPILER_DIR)\hbgenerr.c \
$(COMPILER_DIR)\genobj32.c \
$(COMPILER_DIR)\genc.c \
$(COMPILER_DIR)\genhrb.c \
$(COMPILER_DIR)\genrc.c \
$(COMPILER_DIR)\genjava.c \
$(COMPILER_DIR)\genpas.c \
$(COMPILER_DIR)\expropt.c \
$(COMMON_DIR)\reserved.c \
$(COMMON_DIR)\hbfsapi.c \
$(COMMON_DIR)\hbstr.c \
$(PP_DIR)\ppcore.c \
$(PP_DIR)\ppcomp.c \
$(PP_DIR)\pptable.c
command /c echo. > include\unistd.h
$(CC) $(CFLAGS) -Fo$(OBJ_DIR)\ -w $** -o $(HARBOUR_EXE)
command /c del include\unistd.h
#
# Library dependencies and build rules
#
$(RTL_LIB) : $(RTL_LIB_OBJS)
lib /out:$@ $**
$(COMMON_LIB) : $(COMMON_LIB_OBJS)
lib /out:$@ $**
$(DEBUG_LIB) : $(DEBUG_LIB_OBJS)
lib /out:$@ $**
$(MACRO_LIB) : $(MACRO_LIB_OBJS)
lib /out:$@ $**
$(PP_LIB) : $(PP_LIB_OBJS)
lib /out:$@ $**
$(RDD_LIB) : $(RDD_LIB_OBJS)
lib /out:$@ $**
$(DBFCDX_LIB) : $(DBFCDX_LIB_OBJS)
lib /out:$@ $**
$(DBFNTX_LIB) : $(DBFNTX_LIB_OBJS)
lib /out:$@ $**
$(NULSYS_LIB) : $(NULSYS_LIB_OBJS)
lib /out:$@ $**
$(RUNNER_LIB) : $(RUNNER_LIB_OBJS)
lib /out:$@ $**
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
lib /out:$@ $**
$(VM_LIB) : $(VM_LIB_OBJS)
lib /out:$@ $**
#
# HARBOUR.EXE dependencies
#
$(OBJ_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
bison -d $(COMPILER_DIR)\harbour.y -o$(OBJ_DIR)\harboury.c
$(OBJ_DIR)\harbourl.c : $(COMPILER_DIR)\harbour.l
flex -i -8 -o$(OBJ_DIR)\harbourl.c $(COMPILER_DIR)\harbour.l
#
# MACRO.LIB dependencies
#
$(OBJ_DIR)\macroy.c : $(MACRO_DIR)\macro.y
bison -d -p hb_comp -o$(OBJ_DIR)\macroy.c $(MACRO_DIR)\macro.y
$(OBJ_DIR)\macrol.c : $(OBJ_DIR)\macroy.c $(MACRO_DIR)\macro.l
flex -i -8 -Phb_comp -o$(OBJ_DIR)\macrol.c $(MACRO_DIR)\macro.l
$(OBJ_DIR)\macroy.obj : $(OBJ_DIR)\macroy.c
$(CC) $(CLIBFLAGS) -w -DYY_NEVER_INTERACTIVE -Fo$@ $**
$(OBJ_DIR)\macrol.obj : $(OBJ_DIR)\macrol.c
command /c echo. > include\unistd.h
$(CC) $(CLIBFLAGS) -w -DYY_NEVER_INTERACTIVE -Fo$@ $**
command /c del include\unistd.h
$(OBJ_DIR)\macro.obj : $(MACRO_DIR)\macro.c
#
# PP.LIB dependencies
#
$(OBJ_DIR)\pplib.obj : $(PP_DIR)\pplib.c
$(OBJ_DIR)\ppcore.obj : $(PP_DIR)\ppcore.c
$(OBJ_DIR)\ppcomp.obj : $(PP_DIR)\ppcomp.c
$(OBJ_DIR)\pptable.obj : $(PP_DIR)\pptable.c
#
# RTL.LIB dependencies
#
$(OBJ_DIR)\achoice.obj : $(RTL_DIR)\achoice.prg
$(OBJ_DIR)\adir.obj : $(RTL_DIR)\adir.prg
$(OBJ_DIR)\alert.obj : $(RTL_DIR)\alert.prg
$(OBJ_DIR)\asort.obj : $(RTL_DIR)\asort.prg
$(OBJ_DIR)\binnum.obj : $(RTL_DIR)\binnum.c
$(OBJ_DIR)\browdb.obj : $(RTL_DIR)\browdb.prg
$(OBJ_DIR)\browse.obj : $(RTL_DIR)\browse.prg
$(OBJ_DIR)\console.obj : $(RTL_DIR)\console.c
$(OBJ_DIR)\copyfile.obj : $(RTL_DIR)\copyfile.c
$(OBJ_DIR)\dates.obj : $(RTL_DIR)\dates.c
$(OBJ_DIR)\dbedit.obj : $(RTL_DIR)\dbedit.prg
$(OBJ_DIR)\descend.obj : $(RTL_DIR)\descend.c
$(OBJ_DIR)\devoutp.obj : $(RTL_DIR)\devoutp.prg
$(OBJ_DIR)\dir.obj : $(RTL_DIR)\dir.c
$(OBJ_DIR)\dircmd.obj : $(RTL_DIR)\dircmd.prg
$(OBJ_DIR)\do.obj : $(RTL_DIR)\do.c
$(OBJ_DIR)\dummy.obj : $(RTL_DIR)\dummy.prg
$(OBJ_DIR)\empty.obj : $(RTL_DIR)\empty.c
$(OBJ_DIR)\environ.obj : $(RTL_DIR)\environ.c
$(OBJ_DIR)\errorapi.obj : $(RTL_DIR)\errorapi.c
$(OBJ_DIR)\errorsys.obj : $(RTL_DIR)\errorsys.prg
$(OBJ_DIR)\fieldbl.obj : $(RTL_DIR)\fieldbl.prg
$(OBJ_DIR)\filesys.obj : $(RTL_DIR)\filesys.c
$(OBJ_DIR)\gtapi.obj : $(RTL_DIR)\gtapi.c
$(OBJ_DIR)\gtxxx.obj : $(RTL_DIR)\gtxxx.c
$(OBJ_DIR)\hardcr.obj : $(RTL_DIR)\hardcr.c
$(OBJ_DIR)\inkey.obj : $(RTL_DIR)\inkey.c
$(OBJ_DIR)\input.obj : $(RTL_DIR)\input.prg
$(OBJ_DIR)\isprint.obj : $(RTL_DIR)\isprint.c
$(OBJ_DIR)\langapi.obj : $(RTL_DIR)\langapi.c
$(OBJ_DIR)\len.obj : $(RTL_DIR)\len.c
$(OBJ_DIR)\math.obj : $(RTL_DIR)\math.c
$(OBJ_DIR)\memofile.obj : $(RTL_DIR)\memofile.c
$(OBJ_DIR)\memoline.obj : $(RTL_DIR)\memoline.c
$(OBJ_DIR)\memvarbl.obj : $(RTL_DIR)\memvarbl.prg
$(OBJ_DIR)\menuto.obj : $(RTL_DIR)\menuto.prg
$(OBJ_DIR)\mlcount.obj : $(RTL_DIR)\mlcount.c
$(OBJ_DIR)\mlpos.obj : $(RTL_DIR)\mlpos.c
$(OBJ_DIR)\mouseapi.obj : $(RTL_DIR)\mouseapi.c
$(OBJ_DIR)\mousexxx.obj : $(RTL_DIR)\mousexxx.c
$(OBJ_DIR)\msgxxx.obj : $(RTL_DIR)\msgxxx.c
$(OBJ_DIR)\mtran.obj : $(RTL_DIR)\mtran.c
$(OBJ_DIR)\natmsg.obj : $(RTL_DIR)\natmsg.c
$(OBJ_DIR)\net.obj : $(RTL_DIR)\net.c
$(OBJ_DIR)\objfunc.obj : $(RTL_DIR)\objfunc.prg
$(OBJ_DIR)\oemansi.obj : $(RTL_DIR)\oemansi.c
$(OBJ_DIR)\oldbox.obj : $(RTL_DIR)\oldbox.c
$(OBJ_DIR)\oldclear.obj : $(RTL_DIR)\oldclear.c
$(OBJ_DIR)\readkey.obj : $(RTL_DIR)\readkey.prg
$(OBJ_DIR)\samples.obj : $(RTL_DIR)\samples.c
$(OBJ_DIR)\set.obj : $(RTL_DIR)\set.c
$(OBJ_DIR)\setcolor.obj : $(RTL_DIR)\setcolor.c
$(OBJ_DIR)\setfunc.obj : $(RTL_DIR)\setfunc.prg
$(OBJ_DIR)\setkey.obj : $(RTL_DIR)\setkey.prg
$(OBJ_DIR)\setta.obj : $(RTL_DIR)\setta.prg
$(OBJ_DIR)\soundex.obj : $(RTL_DIR)\soundex.c
$(OBJ_DIR)\strings.obj : $(RTL_DIR)\strings.c
$(OBJ_DIR)\tbcolumn.obj : $(RTL_DIR)\tbcolumn.prg
$(OBJ_DIR)\tbrowse.obj : $(RTL_DIR)\tbrowse.prg
$(OBJ_DIR)\tclass.obj : $(RTL_DIR)\tclass.prg
$(OBJ_DIR)\terror.obj : $(RTL_DIR)\terror.prg
$(OBJ_DIR)\text.obj : $(RTL_DIR)\text.prg
$(OBJ_DIR)\tget.obj : $(RTL_DIR)\tget.prg
$(OBJ_DIR)\tgetlist.obj : $(RTL_DIR)\tgetlist.prg
$(OBJ_DIR)\tlabel.obj : $(RTL_DIR)\tlabel.prg
$(OBJ_DIR)\tone.obj : $(RTL_DIR)\tone.c
$(OBJ_DIR)\trace.obj : $(RTL_DIR)\trace.c
$(OBJ_DIR)\transfrm.obj : $(RTL_DIR)\transfrm.c
$(OBJ_DIR)\treport.obj : $(RTL_DIR)\treport.prg
$(OBJ_DIR)\type.obj : $(RTL_DIR)\type.c
$(OBJ_DIR)\typefile.obj : $(RTL_DIR)\typefile.prg
$(OBJ_DIR)\valtype.obj : $(RTL_DIR)\valtype.c
$(OBJ_DIR)\wait.obj : $(RTL_DIR)\wait.prg
$(OBJ_DIR)\word.obj : $(RTL_DIR)\word.c
$(OBJ_DIR)\xhelp.obj : $(RTL_DIR)\xhelp.c
$(OBJ_DIR)\xsavescr.obj : $(RTL_DIR)\xsavescr.prg
#
# DEBUG.LIB dependencies
#
$(OBJ_DIR)\dbgmenu.obj : $(DEBUG_DIR)\dbgmenu.prg
$(OBJ_DIR)\debugger.obj : $(DEBUG_DIR)\debugger.prg
$(OBJ_DIR)\tbrwtext.obj : $(DEBUG_DIR)\tbrwtext.prg
#
# RUNNER.LIB dependencies
#
$(OBJ_DIR)\runlib.obj : $(RUNNER_DIR)\runlib.c
#
# VM.LIB dependencies
#
$(OBJ_DIR)\arrays.obj : $(VM_DIR)\arrays.c
$(OBJ_DIR)\break.obj : $(VM_DIR)\break.c
$(OBJ_DIR)\classes.obj : $(VM_DIR)\classes.c
$(OBJ_DIR)\cmdarg.obj : $(VM_DIR)\cmdarg.c
$(OBJ_DIR)\codebloc.obj : $(VM_DIR)\codebloc.c
$(OBJ_DIR)\debug.obj : $(VM_DIR)\debug.c
$(OBJ_DIR)\dynsym.obj : $(VM_DIR)\dynsym.c
$(OBJ_DIR)\extend.obj : $(VM_DIR)\extend.c
$(OBJ_DIR)\fm.obj : $(VM_DIR)\fm.c
$(OBJ_DIR)\harbinit.obj : $(VM_DIR)\harbinit.prg
$(OBJ_DIR)\hvm.obj : $(VM_DIR)\hvm.c
$(OBJ_DIR)\initexit.obj : $(VM_DIR)\initexit.c
$(OBJ_DIR)\initsymb.obj : $(VM_DIR)\initsymb.c
$(OBJ_DIR)\itemapi.obj : $(VM_DIR)\itemapi.c
$(OBJ_DIR)\maindll.obj : $(VM_DIR)\maindll.c
$(OBJ_DIR)\mainstd.obj : $(VM_DIR)\mainstd.c
$(OBJ_DIR)\mainwin.obj : $(VM_DIR)\mainwin.c
$(OBJ_DIR)\memvars.obj : $(VM_DIR)\memvars.c
$(OBJ_DIR)\pcount.obj : $(VM_DIR)\pcount.c
$(OBJ_DIR)\proc.obj : $(VM_DIR)\proc.c
$(OBJ_DIR)\pvalue.obj : $(VM_DIR)\pvalue.c
$(OBJ_DIR)\symbols.obj : $(VM_DIR)\symbols.asm
#
# TOOLS.LIB dependencies
#
$(OBJ_DIR)\asciisum.obj : $(TOOLS_DIR)\asciisum.c
$(OBJ_DIR)\ascpos.obj : $(TOOLS_DIR)\ascpos.c
$(OBJ_DIR)\atdiff.obj : $(TOOLS_DIR)\atdiff.c
$(OBJ_DIR)\chareven.obj : $(TOOLS_DIR)\chareven.c
$(OBJ_DIR)\charmix.obj : $(TOOLS_DIR)\charmix.c
$(OBJ_DIR)\charodd.obj : $(TOOLS_DIR)\charodd.c
$(OBJ_DIR)\chrcount.obj : $(TOOLS_DIR)\chrcount.c
$(OBJ_DIR)\chrfirst.obj : $(TOOLS_DIR)\chrfirst.c
$(OBJ_DIR)\chrtotal.obj : $(TOOLS_DIR)\chrtotal.c
$(OBJ_DIR)\ctchksum.obj : $(TOOLS_DIR)\ctchksum.c
$(OBJ_DIR)\ctchrmix.obj : $(TOOLS_DIR)\ctchrmix.c
$(OBJ_DIR)\ctcrypt.obj : $(TOOLS_DIR)\ctcrypt.c
$(OBJ_DIR)\dates2.obj : $(TOOLS_DIR)\dates2.c
$(OBJ_DIR)\datesx.obj : $(TOOLS_DIR)\datesx.c
$(OBJ_DIR)\dbftools.obj : $(TOOLS_DIR)\dbftools.c
$(OBJ_DIR)\fileread.obj : $(TOOLS_DIR)\fileread.prg
$(OBJ_DIR)\hb_f.obj : $(TOOLS_DIR)\hb_f.c
$(OBJ_DIR)\html.obj : $(TOOLS_DIR)\html.prg
$(OBJ_DIR)\io.obj : $(TOOLS_DIR)\io.c
$(OBJ_DIR)\mathx.obj : $(TOOLS_DIR)\mathx.c
$(OBJ_DIR)\nconvert.obj : $(TOOLS_DIR)\nconvert.prg
$(OBJ_DIR)\ng.obj : $(TOOLS_DIR)\ng.prg
$(OBJ_DIR)\numtxten.obj : $(TOOLS_DIR)\numtxten.prg
$(OBJ_DIR)\numtxthu.obj : $(TOOLS_DIR)\numtxthu.prg
$(OBJ_DIR)\os2.obj : $(TOOLS_DIR)\os2.prg
$(OBJ_DIR)\rtf.obj : $(TOOLS_DIR)\rtf.prg
$(OBJ_DIR)\strasint.obj : $(TOOLS_DIR)\strasint.c
$(OBJ_DIR)\strcount.obj : $(TOOLS_DIR)\strcount.c
$(OBJ_DIR)\strcspn.obj : $(TOOLS_DIR)\strcspn.c
$(OBJ_DIR)\strdiff.obj : $(TOOLS_DIR)\strdiff.c
$(OBJ_DIR)\strexpan.obj : $(TOOLS_DIR)\strexpan.c
$(OBJ_DIR)\strfmt.obj : $(TOOLS_DIR)\strfmt.c
$(OBJ_DIR)\stringp.obj : $(TOOLS_DIR)\stringp.prg
$(OBJ_DIR)\stringsx.obj : $(TOOLS_DIR)\stringsx.c
$(OBJ_DIR)\strleft.obj : $(TOOLS_DIR)\strleft.c
$(OBJ_DIR)\strpbrk.obj : $(TOOLS_DIR)\strpbrk.c
$(OBJ_DIR)\strright.obj : $(TOOLS_DIR)\strright.c
$(OBJ_DIR)\troff.obj : $(TOOLS_DIR)\troff.prg
#
# RDD.LIB dependencies
#
$(OBJ_DIR)\dbcmd.obj : $(RDD_DIR)\dbcmd.c
$(OBJ_DIR)\rddsys.obj : $(RDD_DIR)\rddsys.prg
$(OBJ_DIR)\dbf0.obj : $(RDD_DIR)\dbf0.prg
$(OBJ_DIR)\dbf1.obj : $(RDD_DIR)\dbf1.c
$(OBJ_DIR)\dbnubs.obj : $(RDD_DIR)\dbnubs.c
$(OBJ_DIR)\dbstrux.obj : $(RDD_DIR)\dbstrux.prg
$(OBJ_DIR)\sdf0.obj : $(RDD_DIR)\sdf0.prg
$(OBJ_DIR)\sdf1.obj : $(RDD_DIR)\sdf1.c
$(OBJ_DIR)\delim0.obj : $(RDD_DIR)\delim0.prg
$(OBJ_DIR)\delim1.obj : $(RDD_DIR)\delim1.c
$(OBJ_DIR)\rddord.obj : $(RDD_DIR)\rddord.prg
#
# NULSYS.LIB dependencies
#
$(OBJ_DIR)\nulsys.obj : $(RDD_DIR)\nulsys\nulsys.prg
#
# DBFNTX.LIB dependencies
#
$(OBJ_DIR)\dbfntx0.obj : $(RDD_DIR)\dbfntx\dbfntx0.prg
$(OBJ_DIR)\dbfntx1.obj : $(RDD_DIR)\dbfntx\dbfntx1.c
#
# DBFCDX.LIB dependencies
#
$(OBJ_DIR)\dbfcdx0.obj : $(RDD_DIR)\dbfcdx\dbfcdx0.prg
$(OBJ_DIR)\dbfcdx1.obj : $(RDD_DIR)\dbfcdx\dbfcdx1.c
#
# COMMON.LIB dependencies
#
$(OBJ_DIR)\hbtrace.obj : $(COMMON_DIR)\hbtrace.c
$(OBJ_DIR)\hbfsapi.obj : $(COMMON_DIR)\hbfsapi.c
$(OBJ_DIR)\hbstr.obj : $(COMMON_DIR)\hbstr.c
$(OBJ_DIR)\reserved.obj : $(COMMON_DIR)\reserved.c