From b62fda94e543364f53b2948768a7208f94a8b722 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 2 Nov 2009 09:24:06 +0000 Subject: [PATCH] 2009-11-02 10:21 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * config/win/bcc.mk + Added hack to automatically configure bcc compilers which makes proper setup of bcc32.cfg and ilink32.cfg unnecessary. NOTE: This only works if you use compiler autodetection, which means DON'T set HB_COMPILER to bcc manually. ; Please make tests, f.e. I didn't test .dll creation. * config/global.mk + Exporting autodetected compiler PATH. * config/rules.mk * Moved linker flags before output name option to make some tools happy (bcc in this case). * INSTALL - Deleted just added extra NOTE for bcc users. Now it should be configured automatically. --- harbour/ChangeLog | 21 ++++++++++++++++++++- harbour/INSTALL | 18 ------------------ harbour/config/global.mk | 5 +++++ harbour/config/rules.mk | 2 +- harbour/config/win/bcc.mk | 13 +++++++++++-- 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 71eb8ce9d7..8fa9300ee2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,26 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-11-02 10:21 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * config/win/bcc.mk + + Added hack to automatically configure bcc compilers + which makes proper setup of bcc32.cfg and ilink32.cfg + unnecessary. NOTE: This only works if you use compiler + autodetection, which means DON'T set HB_COMPILER to bcc + manually. + ; Please make tests, f.e. I didn't test .dll creation. + + * config/global.mk + + Exporting autodetected compiler PATH. + + * config/rules.mk + * Moved linker flags before output name option to make + some tools happy (bcc in this case). + + * INSTALL + - Deleted just added extra NOTE for bcc users. Now it should + be configured automatically. + 2009-11-01 20:11 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbqt/generator/hbqtgen.prg @@ -300,7 +320,6 @@ Lorenzo, please rebuild and report back if exiting demoxbp still GPFs on Ubuntu. - 2009-11-02 02:14 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk diff --git a/harbour/INSTALL b/harbour/INSTALL index 75f45a8270..1767ba7b0c 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -52,24 +52,6 @@ HARBOUR > hello You should see 'Hello world!' on screen. - NOTE: For Borland C++ users. This information is included in Borland - C++ readme, but we repeat it here because many users don't read - it, and get it wrong. Make sure to have these two configuration - files set as indicated below. Naturally, you have to adapt dirs - to your own environment (and don't include the separator ('---') - lines): - - C:\Borland\BCC55\Bin\bcc32.cfg - --- - -I"C:\Borland\BCC55\Include" - -L"C:\Borland\BCC55\Lib";"C:\Borland\BCC55\Lib\PSDK" - --- - - C:\Borland\BCC55\Bin\ilink32.cfg - --- - /L"C:\Borland\BCC55\Lib";"C:\Borland\BCC55\Lib\PSDK" - --- - on Windows hosts with POSIX shells (MSYS/Cygwin) ---------------------------------- You can also use these shells to build Harbour on Windows. diff --git a/harbour/config/global.mk b/harbour/config/global.mk index 27348bed07..fa2e0b6c5b 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -924,6 +924,10 @@ export HB_COMPILER export HB_COMPILER_VER export HB_SHELL +ifneq ($(HB_COMP_PATH),) + export HB_COMP_PATH_PUB := $(HB_COMP_PATH) +endif + ifneq ($(filter $(HB_HOST_PLAT),win wce dos os2),) HB_HOST_PLAT_UNIX := else @@ -1025,6 +1029,7 @@ endif HB_CFLAGS := HB_LDFLAGS := HB_PRGFLAGS := +HB_DFLAGS := HB_CROSS_BUILD := ifneq ($(HB_HOST_PLAT)$(HB_HOST_CPU),$(HB_PLATFORM)$(HB_CPU)) diff --git a/harbour/config/rules.mk b/harbour/config/rules.mk index 4671e62153..12b39083bb 100644 --- a/harbour/config/rules.mk +++ b/harbour/config/rules.mk @@ -63,7 +63,7 @@ endif # The rule to link an executable. ifeq ($(LD_RULE),) - LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$(subst /,$(DIRSEP),$(BIN_DIR)/$@) $(^F) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) $(LDLIBS) $(LDSTRIP) + LD_RULE = $(LD) $(CFLAGS) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) $(LD_OUT)$(subst /,$(DIRSEP),$(BIN_DIR)/$@) $(^F) $(LDLIBS) $(LDSTRIP) endif # Eliminate these rules. diff --git a/harbour/config/win/bcc.mk b/harbour/config/win/bcc.mk index 8f50a363cd..d976dde9cc 100644 --- a/harbour/config/win/bcc.mk +++ b/harbour/config/win/bcc.mk @@ -17,6 +17,7 @@ CC_OUT := -o CPPFLAGS := -I. -I$(HB_INC_COMPILE) CFLAGS := -q -tWM LDFLAGS := +DFLAGS := ifneq ($(HB_BUILD_WARN),no) CFLAGS += -w -w-sig- -Q @@ -38,6 +39,14 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -y -v endif +# Hack to autoconfig bcc, and not require properly set .cfg files in its bin dir. +# It only works if compiler autodetection is being used. +ifneq ($(HB_COMP_PATH_PUB),) + CFLAGS += $(subst \,/,-I"$(HB_COMP_PATH_PUB)../Include") + LDFLAGS += $(subst \,/,-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") + DFLAGS += $(subst \,/,-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") +endif + LD := bcc32.exe LD_OUT := -e @@ -85,7 +94,7 @@ ifneq ($(HB_SHELL),sh) endif DY := ilink32.exe -DFLAGS := -q -Gn -C -aa -Tpd -Gi -x +DFLAGS += -q -Gn -C -aa -Tpd -Gi -x DY_OUT := DLIBS := $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)$(LIB_EXT)) DLIBS += $(foreach lib,$(SYSLIBS),$(lib)$(LIB_EXT)) @@ -99,7 +108,7 @@ define create_dynlib $(if $(wildcard __dyn__.tmp),@$(RM) __dyn__.tmp,) $(foreach file,$^,$(dyn_object)) @$(ECHO) $(ECHOQUOTE), $(subst /,\,$(DYN_DIR)/$@),, $(subst /,\,$(DLIBS)) cw32mt.lib import32.lib$(ECHOQUOTE) >> __dyn__.tmp - $(DY) $(DFLAGS) $(HB_USER_DFLAGS) c0d32.obj @__dyn__.tmp + $(DY) $(DFLAGS) $(HB_DFLAGS) $(HB_USER_DFLAGS) c0d32.obj @__dyn__.tmp @$(CP) $(subst /,$(DIRSEP),$(DYN_DIR)/$(basename $@)$(LIB_EXT)) $(subst /,$(DIRSEP),$(IMP_FILE)) @$(RM) $(subst /,$(DIRSEP),$(DYN_DIR)/$(basename $@)$(LIB_EXT)) endef