From 129a3ccdaf18c1edbea92ef295ba0e1286b7161b Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 10 Jun 2010 07:44:15 +0000 Subject: [PATCH] 2010-06-10 09:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk ! Reverted one optimization from yesterday's late night programming jam session. * contrib/hbqt/hbqt_base.cpp * Renamed HBQT_ISQTSTATICLINKED() to HBQT_ISSTATICLINK(). (enough to have one 'QT' in the name) * config/win/bcc.mk + More changes targeting bcc support under WINE scenario. ; Here it now works "out of the box" * INSTALL + Added example for win/bcc build under WINE. (kudos go to Tamas Tevesz for the setup example) + Added win/bcc to supported cross(ish)-builds. * examples/httpsrv/uhttpd.prg ! Fixed bogus newlines in RTE ALERT() windows. --- harbour/ChangeLog | 33 ++++++++++++++++++++----- harbour/INSTALL | 8 +++++++ harbour/config/global.mk | 2 +- harbour/config/win/bcc.mk | 37 +++++++++++++++++------------ harbour/contrib/hbqt/hbqt_base.cpp | 2 +- harbour/examples/httpsrv/uhttpd.prg | 2 +- 6 files changed, 60 insertions(+), 24 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ff03678f3f..1169498181 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,27 @@ The license applies to all entries newer than 2009-04-28. */ +2010-06-10 09:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * config/global.mk + ! Reverted one optimization from yesterday's late + night programming jam session. + + * contrib/hbqt/hbqt_base.cpp + * Renamed HBQT_ISQTSTATICLINKED() to HBQT_ISSTATICLINK(). + (enough to have one 'QT' in the name) + + * config/win/bcc.mk + + More changes targeting bcc support under WINE scenario. + ; Here it now works "out of the box" + + * INSTALL + + Added example for win/bcc build under WINE. + (kudos go to Tamas Tevesz for the setup example) + + Added win/bcc to supported cross(ish)-builds. + + * examples/httpsrv/uhttpd.prg + ! Fixed bogus newlines in RTE ALERT() windows. + 2010-06-09 22:25 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + contrib/hbqt/qth/QHideEvent.qth + contrib/hbqt/qth/QShowEvent.qth @@ -58,16 +79,16 @@ * contrib/hbide/ideactions.prg * contrib/hbide/idedocks.prg * contrib/hbide/ideobject.prg - + Implemented: minimize action on hbIDE window landing in system tray - instead of statusbar. For now this is the default but provision is + + Implemented: minimize action on hbIDE window landing in system tray + instead of statusbar. For now this is the default but provision is in place to base it on user request. Once minimized in system tray, left-click will restore the window and icon in tray will disappear. - Right-click on tray icon will bring forward a menu with "Show" and + Right-click on tray icon will bring forward a menu with "Show" and "Exit" options. Exit is equivalant to toolbar's exit icon. - This feature will be available only on those OSes which support - system tray area. Please test on all aupported systems. I am also - interested to know which other actions can make-up in the + This feature will be available only on those OSes which support + system tray area. Please test on all aupported systems. I am also + interested to know which other actions can make-up in the icon's context menu. 2010-06-10 02:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) diff --git a/harbour/INSTALL b/harbour/INSTALL index 8a9e3ee66b..1907f7bdc1 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -1043,6 +1043,13 @@ HARBOUR make "$@" --- + --- Borland C++ 5.5.1 + export PATH=~/.wine/drive_c/Borland/BCC55/Bin:$PATH + export HB_PLATFORM=win + export HB_COMPILER=bcc + export HB_BUILD_EXTDEF=no + --- + for Darwin (Mac OS X) hosts --------------------------- @@ -1258,6 +1265,7 @@ HARBOUR x linux -> win/mingw x86 x linux -> win/mingw64 x86-64 x linux -> win/watcom x86 + x linux -> win/bcc x86 (requires WINE) x linux -> os2/watcom x86 x linux -> dos/watcom x86 x linux -> dos/djgpp x86 diff --git a/harbour/config/global.mk b/harbour/config/global.mk index ae23765c74..926bf7be78 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -986,7 +986,7 @@ ifeq ($(HB_COMP_PATH_PUB),) ifeq ($(HB_PLATFORM)-$(HB_COMPILER),win-bcc) HB_COMP_PATH := $(call find_in_path_raw,bcc32.exe) ifneq ($(HB_COMP_PATH),) - export HB_COMP_PATH_PUB := $(HB_COMP_PATH) + export HB_COMP_PATH_PUB := $(subst $(substpat), ,$(dir $(firstword $(subst $(subst x, ,x),$(substpat),$(HB_COMP_PATH))))) endif endif endif diff --git a/harbour/config/win/bcc.mk b/harbour/config/win/bcc.mk index e9ed9992d0..8f5b93f88d 100644 --- a/harbour/config/win/bcc.mk +++ b/harbour/config/win/bcc.mk @@ -36,17 +36,24 @@ ifeq ($(HB_BUILD_DEBUG),yes) CFLAGS += -y -v endif +ifneq ($(HB_HOST_PLAT_UNIX),) + BACKSLASH := $(subst /,\,\\) +else + BACKSLASH := $(subst /,\,\) +endif + +ifeq ($(HB_SHELL),sh) + ECHOBACKSLASH := $(BACKSLASH)$(BACKSLASH) +else + ECHOBACKSLASH := $(BACKSLASH) +endif + # Hack to autoconfig bcc, and not require properly set .cfg files in its bin dir. # It only works if we know compiler location. ifneq ($(HB_COMP_PATH_PUB),) - ifneq ($(HB_HOST_PLAT_UNIX),) - BCKSLASH := $(subst /,\,\\) - else - BCKSLASH := $(subst /,\,\) - endif - HB_CFLAGS += $(subst /,$(BCKSLASH),-I"$(HB_COMP_PATH_PUB)../Include") - LDFLAGS += $(subst /,$(BCKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") - DFLAGS += $(subst /,$(BCKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") + HB_CFLAGS += $(subst /,$(BACKSLASH),-I"$(HB_COMP_PATH_PUB)../Include") + LDFLAGS += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") + DFLAGS += $(subst /,$(BACKSLASH),-L"$(HB_COMP_PATH_PUB)../Lib" -L"$(HB_COMP_PATH_PUB)../Lib/PSDK") endif RC := brcc32.exe @@ -54,15 +61,15 @@ RC_OUT := -fo RCFLAGS := LD := ilink32.exe -LIBPATHS := $(subst /,\,-L"$(LIB_DIR)") +LIBPATHS := $(subst /,$(BACKSLASH),-L"$(LIB_DIR)") LDFLAGS += $(LIBPATHS) -Gn -Tpe -LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x32.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,\,$(BIN_DIR)/$@)", nul, $(LDLIBS) cw32mt import32,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP) +LD_RULE = $(LD) $(LDFLAGS) $(HB_LDFLAGS) $(HB_USER_LDFLAGS) c0x32.obj $(filter-out %$(RES_EXT),$(^F)), "$(subst /,$(BACKSLASH),$(BIN_DIR)/$@)", nul, $(LDLIBS) cw32mt import32,, $(filter %$(RES_EXT),$(^F)) $(LDSTRIP) LDLIBS := $(strip $(HB_USER_LIBS) $(LIBS) $(SYSLIBS)) AR := tlib.exe ARFLAGS += /P128 -AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,\,$(LIB_DIR)/$@)" $(foreach file,$(?F),-+$(file)) +AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,$(BACKSLASH),$(LIB_DIR)/$@)" $(foreach file,$(?F),-+$(file)) ifneq ($(HB_SHELL),sh) ifeq ($(HB_SHELL_XP),) @@ -79,7 +86,7 @@ ifneq ($(HB_SHELL),sh) # NOTE: The empty line directly before 'endef' HAVE TO exist! define lib_object - @$(ECHO) $(ECHOQUOTE)-+$(subst /,\,$(file)) $(LINECONT)$(ECHOQUOTE) >> __lib__.tmp + @$(ECHO) $(ECHOQUOTE)-+$(subst /,$(ECHOBACKSLASH),$(file)) $(LINECONT)$(ECHOQUOTE) >> __lib__.tmp endef @@ -87,7 +94,7 @@ ifneq ($(HB_SHELL),sh) $(if $(wildcard __lib__.tmp),@$(RM) __lib__.tmp,) $(foreach file,$(?F),$(lib_object)) @$(ECHO) $(ECHOQUOTE)-+$(ECHOQUOTE)>> __lib__.tmp - $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,\,$(LIB_DIR)/$@)" @__lib__.tmp + $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) "$(subst /,$(BACKSLASH),$(LIB_DIR)/$@)" @__lib__.tmp endef AR_RULE = $(create_library) @@ -104,13 +111,13 @@ DLIBS += $(foreach lib,$(SYSLIBS),$(lib)$(LIB_EXT)) # NOTE: The empty line directly before 'endef' HAVE TO exist! define dyn_object - @$(ECHO) $(ECHOQUOTE)$(subst /,\,$(file)) +$(ECHOQUOTE) >> __dyn__.tmp + @$(ECHO) $(ECHOQUOTE)$(subst /,$(BACKSLASH)$(BACKSLASH),$(file)) +$(ECHOQUOTE) >> __dyn__.tmp endef 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 + @$(ECHO) $(ECHOQUOTE), $(subst /,$(ECHOBACKSLASH),$(DYN_DIR)/$@),, $(subst /,$(ECHOBACKSLASH),$(DLIBS)) cw32mt.lib import32.lib$(ECHOQUOTE) >> __dyn__.tmp $(DY) $(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)) diff --git a/harbour/contrib/hbqt/hbqt_base.cpp b/harbour/contrib/hbqt/hbqt_base.cpp index 3639d625eb..203af91c35 100644 --- a/harbour/contrib/hbqt/hbqt_base.cpp +++ b/harbour/contrib/hbqt/hbqt_base.cpp @@ -105,7 +105,7 @@ HB_FUNC( HBQT_ISEQUALGCQTPOINTER ) } } -HB_FUNC( HBQT_ISQTSTATICLINK ) +HB_FUNC( HBQT_ISSTATICLINK ) { #ifdef QT_NODLL hb_retl( HB_TRUE ); diff --git a/harbour/examples/httpsrv/uhttpd.prg b/harbour/examples/httpsrv/uhttpd.prg index 86fb6d8d8d..db1b138498 100644 --- a/harbour/examples/httpsrv/uhttpd.prg +++ b/harbour/examples/httpsrv/uhttpd.prg @@ -2469,7 +2469,7 @@ STATIC FUNCTION uhttpd_DefError( oError ) cCallstack := "" n := 1 DO WHILE ! Empty( ProcName( ++n ) ) - cCallstack += "Called from " + ProcName( n ) + "(" + hb_NToS( ProcLine( n ) ) + ") " + cNewLine + cCallstack += "Called from " + ProcName( n ) + "(" + hb_NToS( ProcLine( n ) ) + ") ;" ENDDO // Build buttons