* harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* moved declaration of hb_gtSetDefault() from hbgtcore.h to hbapigt.h
* harbour/include/hbapi.h
* harbour/src/vm/hvm.c
+ added new function hb_vmSetDefaultGT()
* harbour/bin/hb-func.sh
* harbour/utils/hbmk2/hbmk2.prg
* use hb_vmSetDefaultGT() to set default GT
* removed extern declarations for functions defined in hbapi.h
* harbour/src/vm/dynlibhb.c
+ added support for HB_LIBLOAD()/HB_LIBFREE() in DJGPP 2.04 builds
* harbour/config/global.mk
* use 8.3 names for harbour dynamic libraries in all DOS builds
* harbour/config/dos/djgpp.mk
+ added support for dynamic libraries (DXE) in DJGPP builds.
DXE is sth similar to DLL in Windows and can be used with
DJGPP 2.04. I had to make some modifications in DXE header
files to make it working so it will not work in default DJGPP
installation. I'll document these modifications in the future.
* harbour/config/dos/watcom.mk
* enable creating of harbour dynamic libraries only when HB_BUILD_DLL
is explictly set by user to 'yes'. In DOS DJGPP and OpenWatcom builds
DLLs support is not functional yet.
* harbour/config/dyn.mk
* added an option to create harbour dynamic libraries from static
ones instead of .o|.obj files. It's necessary for DXE3GEN which
internally calls LD which has some limited on maximum size of passed
parameters.
TODO: make HB_DYN_LIBS definition common for dyn.mk and lib.mk
125 lines
2.2 KiB
Makefile
125 lines
2.2 KiB
Makefile
#
|
|
# $Id$
|
|
#
|
|
|
|
include $(TOP)$(ROOT)config/global.mk
|
|
|
|
ifneq ($(HB_PLATFORM),)
|
|
ifneq ($(HB_COMPILER),)
|
|
|
|
HB_LINKING_RTL :=
|
|
HB_LINKING_VMMT :=
|
|
|
|
ifneq ($(DYNNAME),)
|
|
HB_LINKING_RTL := yes
|
|
ifneq ($(findstring vmmt, $(DYNDIRLIST)),)
|
|
HB_LINKING_VMMT := yes
|
|
endif
|
|
endif
|
|
|
|
-include $(TOP)$(ROOT)config/$(HB_PLATFORM)/libs.mk
|
|
|
|
include $(TOP)$(ROOT)config/$(HB_PLATFORM)/$(HB_COMPILER).mk
|
|
include $(TOP)$(ROOT)config/c.mk
|
|
include $(TOP)$(ROOT)config/prg.mk
|
|
|
|
ifeq ($(HB_LINKING_VMMT),yes)
|
|
_HB_VM := hbvmmt
|
|
else
|
|
_HB_VM := hbvm
|
|
endif
|
|
|
|
HB_DYN_LIBS := \
|
|
hbcommon \
|
|
hbpp \
|
|
hbrtl \
|
|
hbmacro \
|
|
hblang \
|
|
hbcpage \
|
|
hbextern \
|
|
hbrdd \
|
|
rddntx \
|
|
rddnsx \
|
|
rddcdx \
|
|
rddfpt \
|
|
hbsix \
|
|
hbhsx \
|
|
hbusrrdd \
|
|
gtcgi \
|
|
gtpca \
|
|
gtstd \
|
|
gtwvt \
|
|
gtgui \
|
|
gtwin \
|
|
gtos2 \
|
|
gttrm \
|
|
gtcrs \
|
|
gtsln \
|
|
gtxwc \
|
|
$(_HB_VM) \
|
|
hbmaindllh
|
|
|
|
ifneq ($(HB_HAS_PCRE_LOCAL),)
|
|
HB_DYN_LIBS += hbpcre
|
|
endif
|
|
ifneq ($(HB_HAS_ZLIB_LOCAL),)
|
|
HB_DYN_LIBS += hbzlib
|
|
endif
|
|
|
|
# hbcplr \
|
|
# hbdebug \
|
|
|
|
ifneq ($(HB_HAS_PCRE_LOCAL),)
|
|
HB_DYN_LIBS += hbpcre
|
|
endif
|
|
ifneq ($(HB_HAS_ZLIB_LOCAL),)
|
|
HB_DYN_LIBS += hbzlib
|
|
endif
|
|
|
|
|
|
DYN_FILE :=
|
|
IMP_FILE :=
|
|
|
|
ifneq ($(HB_BUILD_DLL),no)
|
|
ifneq ($(DY_RULE),)
|
|
|
|
DYN_NAME := $(DYN_PREF)$(DYNNAME)$(DYN_EXT)
|
|
DYN_FILE := $(DYN_DIR)/$(DYN_NAME)
|
|
DYN_NAME2 := $(DYN_PREF)$(DYNNAME2)$(DYN_EXT)
|
|
DYN_FILE2 := $(DYN_DIR)/$(DYN_NAME2)
|
|
|
|
ifneq ($(IMP_DIR),)
|
|
IMP_NAME := $(LIB_PREF)$(DYNNAME)$(LIB_EXT)
|
|
IMP_FILE := $(IMP_DIR)/$(IMP_NAME)
|
|
endif
|
|
|
|
ifeq ($(HB_DYN_FROM_LIBS),yes)
|
|
ALL_OBJS := $(subst /,$(DIRSEP),$(foreach lib,$(HB_DYN_LIBS),$(wildcard $(LIB_DIR)/$(LIB_PREF)$(lib)$(LIB_EXT))))
|
|
else
|
|
ALL_OBJS := $(subst /,$(DIRSEP),$(foreach dir,$(DYNDIRLIST),$(wildcard $(TOP)$(ROOT)$(dir)/$(OBJ_DIR)/*$(OBJ_DYN_POSTFIX)$(OBJ_EXT))))
|
|
endif
|
|
|
|
first:: dirbase descend
|
|
|
|
descend:: dirbase
|
|
+@$(MK) $(MKFLAGS) -C $(OBJ_DIR) -f $(GRANDP)Makefile TOP=$(GRANDP) $(DYN_NAME)
|
|
|
|
vpath $(DYN_NAME) $(DYN_DIR)
|
|
$(DYN_NAME) : $(ALL_OBJS)
|
|
$(DY_RULE)
|
|
|
|
INSTALL_FILES := $(DYN_FILE)
|
|
INSTALL_DIR := $(HB_DYN_INSTALL)
|
|
include $(TOP)$(ROOT)config/instsh.mk
|
|
INSTALL_RULE_DYN := $(INSTALL_RULE)
|
|
ifneq ($(INSTALL_RULE_DYN),)
|
|
install:: first
|
|
$(INSTALL_RULE_DYN)
|
|
|
|
endif
|
|
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|