Files
harbour-core/harbour/makefile.vc
1999-07-29 03:40:52 +00:00

421 lines
10 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)\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)\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$@ $**