* source/Makefile
* config/lib.mk
+ Added Przemek's patch to add local hbzlib and hbpcre
libs to Harbour dynlib.
; TODO: Add some ways to disable this because it has some
drawbacks (it f.e. makes it impossible to link 3rd
party libs also exporting zlib / pcre interfaces).
This information needs to be passed to hbmk2, too.
I don't have any elegant way to solve this problem ATM.
* utils/hbmk2/hbmk2.prg
* Changed to only add local hbzlib and hbpcre libs to liblist
in static mode. (this is needed to support change above).
+ Enabled lib grouping for beos/gcc.
+ Added supc++/supcxx lib to liblist of gcc family compilers.
This aims to solve link problems when Harbour is built
in C++, but hbmk2 is used in C mode.
* contrib/hbqt/hbqts.hbc
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
- Deleted explicit supc++ libspec. Now it's added by
hbmk2 automatically.
* config/dyn.mk
! Modified to add local hbpcre and hbzlib to syslib
list to make it link with beos/haiku.
Please test/confirm this change.
- Disabled above logic, since it's not needed.
* config/global.mk
+ Added autodetection for linux/sunpro, linux/icc,
darwin/clang, darwin/gcc, darwin/icc.
On darwin clang became the default, if available.
* external/sqlite3/Makefile
+ Tweak for linux/watcom. Based on Przemek patch sent to the devlist.
* config/detfun.mk
* config/bin.mk
* config/dyn.mk
* source/Makefile
* config/lib.mk
% Minor modification to HB_HAS_*_LOCAL logic to make
it safe to use this var without first checking HB_HAS_*.
; Please test/review these. I didn't restest everything after above changes.
109 lines
1.9 KiB
Makefile
109 lines
1.9 KiB
Makefile
#
|
|
# $Id$
|
|
#
|
|
|
|
include $(TOP)$(ROOT)config/global.mk
|
|
|
|
ifneq ($(HB_PLATFORM),)
|
|
ifneq ($(HB_COMPILER),)
|
|
|
|
# Assemble template lib list to help create a few common variations
|
|
|
|
# (have to use '=' operator here)
|
|
HB_LIBS_TPL = \
|
|
hbextern \
|
|
hbdebug \
|
|
$(_HB_VM) \
|
|
hbrtl \
|
|
hblang \
|
|
hbcpage \
|
|
$(HB_GT_LIBS) \
|
|
$(_HB_RDD) \
|
|
hbrtl \
|
|
$(_HB_VM) \
|
|
hbmacro \
|
|
hbcplr \
|
|
hbpp \
|
|
hbcommon
|
|
|
|
ifneq ($(HB_HAS_PCRE_LOCAL),)
|
|
HB_LIBS_TPL += hbpcre
|
|
endif
|
|
ifneq ($(HB_HAS_ZLIB_LOCAL),)
|
|
HB_LIBS_TPL += hbzlib
|
|
endif
|
|
|
|
# Create a few common core lib lists
|
|
_HB_RDD := hbrdd $(HB_RDD_LIBS)
|
|
_HB_VM := hbvm
|
|
HB_LIBS_ST_RDD := $(HB_LIBS_TPL)
|
|
_HB_VM := hbvmmt
|
|
HB_LIBS_MT_RDD := $(HB_LIBS_TPL)
|
|
_HB_RDD := hbnulrdd
|
|
_HB_VM := hbvm
|
|
HB_LIBS_ST_NORDD := $(HB_LIBS_TPL)
|
|
_HB_VM := hbvmmt
|
|
HB_LIBS_MT_NORDD := $(HB_LIBS_TPL)
|
|
|
|
# Cleanup temp vars
|
|
HB_LIBS_TPL :=
|
|
_HB_RDD :=
|
|
_HB_VM :=
|
|
|
|
HB_LINKING_RTL :=
|
|
HB_LINKING_VMMT :=
|
|
|
|
ifneq ($(filter hbrtl, $(LIBS)),)
|
|
HB_LINKING_RTL := yes
|
|
ifneq ($(filter hbvmmt, $(LIBS)),)
|
|
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
|
|
|
|
BIN_NAME :=
|
|
|
|
ifneq ($(C_MAIN),)
|
|
ifeq ($(BIN_NAME),)
|
|
BIN_NAME := $(C_MAIN:.c=$(BIN_EXT))
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(PRG_MAIN),)
|
|
ifeq ($(BIN_NAME),)
|
|
BIN_NAME := $(PRG_MAIN:.prg=$(BIN_EXT))
|
|
endif
|
|
endif
|
|
|
|
BIN_FILE := $(BIN_DIR)/$(BIN_NAME)
|
|
|
|
ALL_OBJS := $(ALL_C_OBJS) $(ALL_PRG_OBJS)
|
|
|
|
first:: dirbase descend
|
|
|
|
descend:: dirbase
|
|
+@$(MK) $(MKFLAGS) -C $(OBJ_DIR) -f $(GRANDP)Makefile TOP=$(GRANDP) $(BIN_NAME)
|
|
|
|
vpath $(BIN_NAME) $(BIN_DIR)
|
|
$(BIN_NAME) : $(ALL_OBJS)
|
|
$(LD_RULE)
|
|
|
|
INSTALL_FILES := $(BIN_FILE)
|
|
INSTALL_DIR := $(HB_BIN_INSTALL)
|
|
include $(TOP)$(ROOT)config/instsh.mk
|
|
INSTALL_RULE_BIN := $(INSTALL_RULE)
|
|
|
|
ifneq ($(INSTALL_RULE_BIN),)
|
|
|
|
install:: first
|
|
$(INSTALL_RULE_BIN)
|
|
|
|
endif
|
|
|
|
endif
|
|
endif
|