425 lines
11 KiB
Plaintext
425 lines
11 KiB
Plaintext
#
|
|
# 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)
|
|
#
|
|
|
|
#
|
|
# Directory macros. These should never have to change.
|
|
#
|
|
|
|
COMPILER_DIR=source\compiler
|
|
RTL_DIR=source\rtl
|
|
RDD_DIR=source\rdd
|
|
HBPP_DIR=source\hbpp
|
|
TOOLS_DIR=source\tools
|
|
VM_DIR=source\vm
|
|
INCLUDE_DIR=include
|
|
BIN_DIR=bin
|
|
LIB_DIR=libs\vc
|
|
OBJ_DIR=obj
|
|
|
|
#
|
|
# C compiler definition and C flags. These should never have to change.
|
|
#
|
|
|
|
CC=cl
|
|
CFLAGS=-w -I$(INCLUDE_DIR) -DHARBOUR_USE_GTAPI -DHARBOUR_USE_WIN_GTAPI
|
|
CLIBFLAGS=$(CFLAGS) -c /TP
|
|
CLIBFLAGSDEBUG=$(CFLAGS) -c -Zi /TP
|
|
|
|
#
|
|
# Macros to access our library names
|
|
#
|
|
|
|
HARBOUR_LIB=$(LIB_DIR)\harbour.lib
|
|
TERMINAL_LIB=$(LIB_DIR)\terminal.lib
|
|
TOOLS_LIB=$(LIB_DIR)\hbtools.lib
|
|
RDD_LIB=$(LIB_DIR)\rdd.lib
|
|
HARBOUR_EXE=$(BIN_DIR)\harbour.exe
|
|
|
|
#
|
|
# OBJ list for harbour.lib. Add new ones as needed
|
|
#
|
|
|
|
HARBOUR_LIB_OBJS = \
|
|
$(OBJ_DIR)\arrays.obj \
|
|
$(OBJ_DIR)\asort.obj \
|
|
$(OBJ_DIR)\classes.obj \
|
|
$(OBJ_DIR)\codebloc.obj \
|
|
$(OBJ_DIR)\console.obj \
|
|
$(OBJ_DIR)\copyfile.obj \
|
|
$(OBJ_DIR)\dates.obj \
|
|
$(OBJ_DIR)\descend.obj \
|
|
$(OBJ_DIR)\devoutp.obj \
|
|
$(OBJ_DIR)\dir.obj \
|
|
$(OBJ_DIR)\dynsym.obj \
|
|
$(OBJ_DIR)\environ.obj \
|
|
$(OBJ_DIR)\error.obj \
|
|
$(OBJ_DIR)\errorapi.obj \
|
|
$(OBJ_DIR)\errorsys.obj \
|
|
$(OBJ_DIR)\extend.obj \
|
|
$(OBJ_DIR)\files.obj \
|
|
$(OBJ_DIR)\gtapi.obj \
|
|
$(OBJ_DIR)\hardcr.obj \
|
|
$(OBJ_DIR)\hvm.obj \
|
|
$(OBJ_DIR)\initsymb.obj \
|
|
$(OBJ_DIR)\itemapi.obj \
|
|
$(OBJ_DIR)\math.obj \
|
|
$(OBJ_DIR)\memvars.obj \
|
|
$(OBJ_DIR)\msgxxx.obj \
|
|
$(OBJ_DIR)\mtran.obj \
|
|
$(OBJ_DIR)\objfunc.obj \
|
|
$(OBJ_DIR)\set.obj \
|
|
$(OBJ_DIR)\setcolor.obj \
|
|
$(OBJ_DIR)\strcmp.obj \
|
|
$(OBJ_DIR)\strings.obj \
|
|
$(OBJ_DIR)\tclass.obj \
|
|
$(OBJ_DIR)\transfrm.obj
|
|
|
|
#
|
|
# OBJ list for hbtools.lib. Add new ones as needed
|
|
#
|
|
#$(OBJ_DIR)\genobj.obj \ PatrickMast
|
|
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)\datesx.obj \
|
|
$(OBJ_DIR)\debug.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)\stringp.obj \
|
|
$(OBJ_DIR)\stringsx.obj \
|
|
$(OBJ_DIR)\strleft.obj \
|
|
$(OBJ_DIR)\strpbrk.obj \
|
|
$(OBJ_DIR)\strright.obj
|
|
|
|
#
|
|
# OBJ list for terminal.lib. Add new ones as needed
|
|
#
|
|
|
|
TERMINAL_LIB_OBJS = \
|
|
$(OBJ_DIR)\console.obj \
|
|
$(OBJ_DIR)\gtxxx.obj
|
|
|
|
#
|
|
# OBJ list for rdd.lib. Add new ones as needed
|
|
#
|
|
|
|
RDD_LIB_OBJS = \
|
|
$(OBJ_DIR)\dbcmd.obj \
|
|
$(OBJ_DIR)\dbfntx0.obj \
|
|
$(OBJ_DIR)\dbfntx1.obj \
|
|
$(OBJ_DIR)\rddsys.obj
|
|
|
|
#
|
|
# Our default target
|
|
#
|
|
|
|
all: $(HARBOUR_EXE) $(HARBOUR_LIB) $(TOOLS_LIB) $(TERMINAL_LIB) $(RDD_LIB)
|
|
|
|
$(HARBOUR_EXE) : \
|
|
$(COMPILER_DIR)\harboury.c \
|
|
$(COMPILER_DIR)\harbourl.c \
|
|
$(COMPILER_DIR)\genobj32.c \
|
|
$(COMPILER_DIR)\harbour.c \
|
|
$(HBPP_DIR)\hbpp.c \
|
|
$(HBPP_DIR)\hbppint.c \
|
|
$(HBPP_DIR)\table.c
|
|
$(CC) $(CFLAGS) $(COMPILER_DIR)\harboury.c $(COMPILER_DIR)\harbourl.c $(COMPILER_DIR)\harbour.c $(HBPP_DIR)\hbppint.c $(HBPP_DIR)\hbpp.c $(HBPP_DIR)\table.c -o $(BIN_DIR)\harbour
|
|
-del harboury.obj
|
|
-del harbourl.obj
|
|
-del harbour.obj
|
|
-del hbppint.obj
|
|
-del hbpp.obj
|
|
-del table.obj
|
|
|
|
#
|
|
# Library depencies and build rules
|
|
#
|
|
|
|
$(HARBOUR_LIB) : $(HARBOUR_LIB_OBJS)
|
|
lib /OUT:$(HARBOUR_LIB) $(HARBOUR_LIB_OBJS)
|
|
|
|
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
|
lib /OUT:$(TOOLS_LIB) $(TOOLS_LIB_OBJS)
|
|
|
|
$(TERMINAL_LIB) : $(TERMINAL_LIB_OBJS)
|
|
lib /OUT:$(TERMINAL_LIB) $(TERMINAL_LIB_OBJS)
|
|
|
|
$(RDD_LIB) : $(RDD_LIB_OBJS)
|
|
lib /OUT:$(RDD_LIB) $(RDD_LIB_OBJS)
|
|
|
|
#
|
|
# Compiler source depencies and build rules
|
|
#
|
|
|
|
$(COMPILER_DIR)\harboury.c : $(COMPILER_DIR)\harbour.y
|
|
bison -d -v $(COMPILER_DIR)\harbour.y -o$(COMPILER_DIR)\harboury.c
|
|
|
|
$(COMPILER_DIR)\harbourl.c : $(COMPILER_DIR)\harbour.l
|
|
flex -i -o$(COMPILER_DIR)\harbourl.c $(COMPILER_DIR)\harbour.l
|
|
|
|
#
|
|
# RTL source depencies below. Add as needed
|
|
#
|
|
|
|
$(RTL_DIR)\achoice.c : $(RTL_DIR)\achoice.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\achoice.obj : $(RTL_DIR)\achoice.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\arrays.obj : $(RTL_DIR)\arrays.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\asort.c : $(RTL_DIR)\asort.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $** -n
|
|
|
|
$(OBJ_DIR)\asort.obj : $(RTL_DIR)\asort.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
#$(RTL_DIR)\classes.c : $(RTL_DIR)\classes.prg
|
|
# $(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\classes.obj : $(RTL_DIR)\classes.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\codebloc.obj : $(RTL_DIR)\codebloc.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\console.obj : $(RTL_DIR)\console.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\copyfile.obj : $(RTL_DIR)\copyfile.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\dates.obj : $(RTL_DIR)\dates.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\descend.obj : $(RTL_DIR)\descend.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\devoutp.c : $(RTL_DIR)\devoutp.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\devoutp.obj : $(RTL_DIR)\devoutp.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\dir.obj : $(RTL_DIR)\dir.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\environ.obj : $(RTL_DIR)\environ.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\errorapi.obj : $(RTL_DIR)\errorapi.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\errorsys.c : $(RTL_DIR)\errorsys.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $** -n /iinclude
|
|
|
|
$(OBJ_DIR)\errorsys.obj : $(RTL_DIR)\errorsys.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\error.c : $(RTL_DIR)\error.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\error.obj : $(RTL_DIR)\error.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\extend.obj : $(RTL_DIR)\extend.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\files.obj : $(RTL_DIR)\files.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\gtapi.obj : $(RTL_DIR)\gtapi.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\hardcr.obj : $(RTL_DIR)\hardcr.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\itemapi.obj : $(RTL_DIR)\itemapi.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\math.obj : $(RTL_DIR)\math.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\memvars.obj : $(RTL_DIR)\memvars.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\msgxxx.obj : $(RTL_DIR)\natmsg\msgxxx.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\mtran.obj : $(RTL_DIR)\mtran.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\objfunc.c : $(RTL_DIR)\objfunc.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\objfunc.obj : $(RTL_DIR)\objfunc.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\set.obj : $(RTL_DIR)\set.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\setcolor.obj : $(RTL_DIR)\setcolor.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strcmp.obj : $(RTL_DIR)\strcmp.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strings.obj : $(RTL_DIR)\strings.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RTL_DIR)\tclass.c : $(RTL_DIR)\tclass.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $** -n
|
|
|
|
$(OBJ_DIR)\tclass.obj : $(RTL_DIR)\tclass.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\transfrm.obj : $(RTL_DIR)\transfrm.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\gtxxx.obj : $(RTL_DIR)\gtxxx.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
#
|
|
# VM source depencies below. Add as needed
|
|
#
|
|
|
|
$(OBJ_DIR)\dynsym.obj : $(VM_DIR)\dynsym.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\hvm.obj : $(VM_DIR)\hvm.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\initsymb.obj : $(VM_DIR)\initsymb.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
#
|
|
# TOOLS source depencies below. Add as needed
|
|
#
|
|
|
|
$(OBJ_DIR)\asciisum.obj : $(TOOLS_DIR)\asciisum.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\ascpos.obj : $(TOOLS_DIR)\ascpos.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\atdiff.obj : $(TOOLS_DIR)\atdiff.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\chareven.obj : $(TOOLS_DIR)\chareven.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\charmix.obj : $(TOOLS_DIR)\charmix.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\charodd.obj : $(TOOLS_DIR)\charodd.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\chrcount.obj : $(TOOLS_DIR)\chrcount.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\chrfirst.obj : $(TOOLS_DIR)\chrfirst.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\chrtotal.obj : $(TOOLS_DIR)\chrtotal.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\dates2.obj : $(TOOLS_DIR)\dates2.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\datesx.obj : $(TOOLS_DIR)\datesx.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\debug.obj : $(TOOLS_DIR)\debug.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
#$(OBJ_DIR)\genobj.obj : $(TOOLS_DIR)\genobj.c
|
|
# $(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\hb_f.obj : $(TOOLS_DIR)\hb_f.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\io.obj : $(TOOLS_DIR)\io.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\mathx.obj : $(TOOLS_DIR)\mathx.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strasint.obj : $(TOOLS_DIR)\strasint.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strcount.obj : $(TOOLS_DIR)\strcount.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strcspn.obj : $(TOOLS_DIR)\strcspn.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strdiff.obj : $(TOOLS_DIR)\strdiff.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strexpan.obj : $(TOOLS_DIR)\strexpan.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(TOOLS_DIR)\stringp.c : $(TOOLS_DIR)\stringp.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $**
|
|
|
|
$(OBJ_DIR)\stringp.obj : $(TOOLS_DIR)\stringp.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\stringsx.obj : $(TOOLS_DIR)\stringsx.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strleft.obj : $(TOOLS_DIR)\strleft.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strpbrk.obj : $(TOOLS_DIR)\strpbrk.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\strright.obj : $(TOOLS_DIR)\strright.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
#
|
|
# RDD source depencies below. Add as needed
|
|
#
|
|
|
|
$(OBJ_DIR)\dbcmd.obj : $(RDD_DIR)\dbcmd.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RDD_DIR)\rddsys.c : $(RDD_DIR)\rddsys.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $** -n
|
|
|
|
$(OBJ_DIR)\rddsys.obj : $(RDD_DIR)\rddsys.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(RDD_DIR)\dbfntx0.c : $(RDD_DIR)\dbfntx0.prg
|
|
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(**D) $** -n
|
|
|
|
$(OBJ_DIR)\dbfntx0.obj : $(RDD_DIR)\dbfntx0.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|
|
$(OBJ_DIR)\dbfntx1.obj : $(RDD_DIR)\dbfntx1.c
|
|
$(CC) $(CLIBFLAGS) -Fo$@ $**
|
|
|