* config/rules.cf
* config/win/global.cf
* config/lib.cf
* config/bin.cf
* Make files changed to:
- add Harbour option -n1 for all lib .prgs.
- add Harbour option -n for all binary .prgs.
- use HB_GCMODE to override -gc mode for binaries.
- add C -DHB_DYNLIB option when HB_DLL envvar is set to 'yes'.
; This means that now 'set HB_DLL=yes' setting works as planned,
and will compile Harbour to allow the creation of .dlls
and will also create those (msvc, bcc32, owatcom).
(MinGW has been covered before these changes already.)
; TOFIX: .dlls still need tweaking to work properly.
owatcom doesn't create usable binaries when
using HB_DLL=yes f.e., also hbrun-dll cannot be
built with msvc/bcc32.
* config/win/owatcom.cf
% Removed DOS hack.
* bin/hb-mkdyn.bat
! Fixes to recent changes.
96 lines
2.2 KiB
CFEngine3
96 lines
2.2 KiB
CFEngine3
#
|
|
# $Id$
|
|
#
|
|
|
|
# How to run yacc.
|
|
YACC = bison
|
|
YACC_FLAGS := -d $(YACC_FLAGS)
|
|
|
|
# How to run lex.
|
|
LEX = flex
|
|
LEX_FLAGS := -i -8 $(LEX_FLAGS)
|
|
|
|
#
|
|
# How to run Harbour.
|
|
#
|
|
HB := $(notdir $(HB_BIN_COMPILE))
|
|
ifneq ($(HB),)
|
|
# there is no slash at the end
|
|
HB := $(HB_BIN_COMPILE)/
|
|
endif
|
|
HB := $(HB)harbour$(EXE_EXT)
|
|
|
|
ifeq ($(HB_GCMODE),)
|
|
HB_GCMODE=3
|
|
endif
|
|
ifeq ($(HB_NFLAG),)
|
|
HB_NFLAG=
|
|
endif
|
|
HB_FLAGS := -i$(HB_INC_COMPILE) -q0 -w3 -es2 -km -l
|
|
HB_RULE = $(HB) $? $(HB_NFLAG) $(HB_FLAGS) -gc$(HB_GCMODE) $(HB_USER_PRGFLAGS)
|
|
|
|
# The rule to link an executable.
|
|
ifeq ($(LD_RULE),)
|
|
# Use default rule if architecture/compiler specific rule is not defined
|
|
LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$@ $(^F) $(LDFLAGS) $(HB_USER_LDFLAGS) $(LINKLIBS)
|
|
endif
|
|
|
|
# The rule to compile a C source file.
|
|
ifeq ($(CC_RULE),)
|
|
# Use default rule if architecture/compiler specific rule is not defined
|
|
CC_RULE = $(CC) $(CPPFLAGS) $(CFLAGS) $(HB_USER_CFLAGS) $(HB_CDYNLIB) $(CC_IN) $< $(CC_OUT)$(<F:.c=$(OBJ_EXT))
|
|
endif
|
|
|
|
# The rule to compile a C++ source file.
|
|
ifeq ($(CPP_RULE),)
|
|
# Use default rule if architecture/compiler specific rule is not defined
|
|
CPP_RULE = $(CC) $(CPPFLAGS) $(CFLAGS) $(HB_USER_CFLAGS) $(HB_CDYNLIB) $(CC_IN) $< $(CC_OUT)$(<F:.cpp=$(OBJ_EXT))
|
|
endif
|
|
|
|
|
|
# Eliminate these rules.
|
|
|
|
%.c : %.y
|
|
|
|
%.c : %.l
|
|
|
|
# Location of source C files
|
|
# Some DOS compilers doesn't like '/' in filenames - however the MAKE system
|
|
# requires '/' in filenames - this trick allows to solve this conflict
|
|
SOURCE_DIR := $($(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP)
|
|
ifeq ($(SOURCE_DIR),)
|
|
SOURCE_DIR = $(GRANDP)
|
|
endif
|
|
|
|
# Rule to generate an object file from a C source file in the parent.
|
|
%$(OBJ_EXT) : $(SOURCE_DIR)%.c
|
|
$(CC_RULE)
|
|
|
|
# Rule to generate an object file from a C source file.
|
|
%$(OBJ_EXT) : %.c
|
|
$(CC_RULE)
|
|
|
|
#rules for CPP files
|
|
%$(OBJ_EXT) : $(SOURCE_DIR)%.cpp
|
|
$(CPP_RULE)
|
|
|
|
%$(OBJ_EXT) : %.cpp
|
|
$(CPP_RULE)
|
|
|
|
|
|
# Rule to generate an executable file from an object file.
|
|
%$(EXE_EXT) : %$(OBJ_EXT)
|
|
$(LD_RULE)
|
|
|
|
# Rule to generate a C file from a PRG file.
|
|
%.c : $(GRANDP)%.prg
|
|
$(HB_RULE)
|
|
|
|
ifeq ($(SHLVL),) # COMMAND.COM
|
|
# Do nothing. the $(HB_ARCHITECTURE)/global.cf will handle clean up.
|
|
else
|
|
# Generic rule to clean up.
|
|
clean::
|
|
-$(RM) *.bak *.obj core *.core *~ *.o *.ppo *.err
|
|
endif
|