diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c84afc329b..3fee7ecee6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,27 @@ The license applies to all entries newer than 2009-04-28. */ +2012-04-01 11:21 UTC+0200 Viktor Szakats (harbour syenar.net) + * config/win/watcom.mk + * config/win/xcc.mk + * config/win/icc.mk + * config/win/global.mk + * config/win/mingw.mk + * config/win/pocc.mk + * config/win/bcc.mk + * config/win/msvc.mk + + reworked unicows lib support so now watcom will also + work (not tested) + + * config/wce/mingwarm.mk + * config/wce/poccarm.mk + * config/wce/msvcarm.mk + - deleted $(SYSLIBPATHS) in sync with win, left multiple + lib path support. + + * contrib/hbwin/win_regc.c + * formatting + 2012-03-31 20:32 UTC+0200 Viktor Szakats (harbour syenar.net) * contrib/gtwvg/gtwvg.hbp * contrib/hbwin/hbwin.hbp @@ -76,7 +97,7 @@ ! fixed bcc dynlib link command missing libpaths. ; NOTE: watcom unicows support is missing, as it needs special tricks due to missing separate libpath option - in this compiler/linker. + in this compiler/linker. [SOLVED] * config/wce/mingwarm.mk * config/wce/poccarm.mk @@ -110,7 +131,7 @@ for older msvc, watcom, dmc and lcc compilers. I don't think it's worth the extra size to support Win9x using these legacy compilers, anyhow they can be added easily - if needed (except watcom, which requires more work). + if needed. ; These changes mean three things: 1. Harbour now has only one build mode on Windows: UNICODE diff --git a/harbour/config/wce/mingwarm.mk b/harbour/config/wce/mingwarm.mk index 9f46a66d70..89f5aad3e5 100644 --- a/harbour/config/wce/mingwarm.mk +++ b/harbour/config/wce/mingwarm.mk @@ -54,7 +54,7 @@ endif LD := $(CC) LD_OUT := -o$(subst x,x, ) -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir)) +LIBPATHS := $(foreach dir,$(LIB_DIR),-L$(dir)) LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) LDFLAGS += $(LIBPATHS) diff --git a/harbour/config/wce/msvcarm.mk b/harbour/config/wce/msvcarm.mk index 1c68a7a3b3..c1d422060c 100644 --- a/harbour/config/wce/msvcarm.mk +++ b/harbour/config/wce/msvcarm.mk @@ -91,7 +91,7 @@ LD_OUT := -out: SYSLIBS += corelibc -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) +LIBPATHS := $(foreach dir,$(LIB_DIR),-libpath:$(dir)) LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += -nologo -subsystem:windowsce -nodefaultlib:oldnames.lib -nodefaultlib:kernel32.lib diff --git a/harbour/config/wce/poccarm.mk b/harbour/config/wce/poccarm.mk index a6f20c8f16..955c0bd359 100644 --- a/harbour/config/wce/poccarm.mk +++ b/harbour/config/wce/poccarm.mk @@ -44,7 +44,7 @@ LD_OUT := -out: SYSLIBS += corelibc -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) +LIBPATHS := $(foreach dir,$(LIB_DIR),-libpath:$(dir)) LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += -subsystem:windows diff --git a/harbour/config/win/bcc.mk b/harbour/config/win/bcc.mk index 9f2c91b3bb..eb9a557825 100644 --- a/harbour/config/win/bcc.mk +++ b/harbour/config/win/bcc.mk @@ -62,11 +62,11 @@ RC := brcc32.exe RC_OUT := -fo LD := ilink32.exe -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),$(subst /,$(BACKSLASH),-L"$(dir)")) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),$(subst /,$(BACKSLASH),-L"$(dir)")) LDFLAGS += $(LIBPATHS) -Gn -Tpe 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)) +LDLIBS := $(strip $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS)) AR := tlib.exe ARFLAGS += /P128 @@ -107,7 +107,7 @@ DY := ilink32.exe DFLAGS += -q -Gn -C -aa -Tpd -Gi -x $(LIBPATHS) DY_OUT := # NOTE: .lib extension not added to keep line short enough to work on Win9x/ME -DLIBS := $(HB_USER_LIBS) $(LIBS) $(SYSLIBS) cw32mt import32 +DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw32mt import32 # NOTE: The empty line directly before 'endef' HAVE TO exist! define dynlib_object diff --git a/harbour/config/win/global.mk b/harbour/config/win/global.mk index 0f8fb59683..cc25a1e7b3 100644 --- a/harbour/config/win/global.mk +++ b/harbour/config/win/global.mk @@ -21,8 +21,8 @@ HB_GT_LIBS += gtwvt gtgui gtwin # unicows lib must come after user libs and before Windows system libs ifneq ($(wildcard $(TOP)$(ROOT)lib/3rd/$(HB_PLATFORM)/$(HB_COMPILER)),) - SYSLIBPATHS += $(TOP)$(ROOT)lib/3rd/$(HB_PLATFORM)/$(HB_COMPILER) - SYSLIBS += unicows + 3RDLIB_DIR := $(TOP)$(ROOT)lib/3rd/$(HB_PLATFORM)/$(HB_COMPILER) + 3RDLIBS := unicows endif SYSLIBS += kernel32 user32 ws2_32 advapi32 gdi32 diff --git a/harbour/config/win/icc.mk b/harbour/config/win/icc.mk index fe8d79a33a..194cf63156 100644 --- a/harbour/config/win/icc.mk +++ b/harbour/config/win/icc.mk @@ -44,8 +44,8 @@ endif LD := xilink.exe LD_OUT := -out: -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) -LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),-libpath:$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += -nologo $(LIBPATHS) @@ -55,7 +55,7 @@ AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) -nologo -out:$(LIB_DIR DY := $(LD) DFLAGS += -nologo -dll -subsystem:console $(LIBPATHS) DY_OUT := $(LD_OUT) -DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) # NOTE: The empty line directly before 'endef' HAVE TO exist! define dynlib_object diff --git a/harbour/config/win/mingw.mk b/harbour/config/win/mingw.mk index dde6e96344..af1f040eb8 100644 --- a/harbour/config/win/mingw.mk +++ b/harbour/config/win/mingw.mk @@ -89,8 +89,8 @@ endif LD := $(CC) LD_OUT := -o$(subst x,x, ) -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir)) -LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),-L$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),-l$(lib)) # Add the standard C entry ifneq ($(HB_LINKING_RTL),) @@ -119,7 +119,7 @@ AR_RULE = $(create_library) DY := $(CC) DFLAGS += -shared $(LIBPATHS) DY_OUT := $(LD_OUT) -DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) +DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),-l$(lib)) # NOTE: The empty line directly before 'endef' HAVE TO exist! define dynlib_object diff --git a/harbour/config/win/msvc.mk b/harbour/config/win/msvc.mk index 08ffec8f92..3f6054db69 100644 --- a/harbour/config/win/msvc.mk +++ b/harbour/config/win/msvc.mk @@ -77,8 +77,8 @@ endif LD := link.exe LD_OUT := -out: -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) -LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),-libpath:$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += -nologo -subsystem:console $(LIBPATHS) @@ -88,7 +88,7 @@ AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) -nologo -out:$(LIB_DIR DY := $(LD) DFLAGS += -nologo -dll -subsystem:console $(LIBPATHS) DY_OUT := $(LD_OUT) -DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) # NOTE: The empty line directly before 'endef' HAVE TO exist! define dynlib_object diff --git a/harbour/config/win/pocc.mk b/harbour/config/win/pocc.mk index e159530157..7baeb38666 100644 --- a/harbour/config/win/pocc.mk +++ b/harbour/config/win/pocc.mk @@ -41,8 +41,8 @@ RC_OUT := -fo$(subst x,x, ) LD := polink.exe LD_OUT := -out: -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) -LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),-libpath:$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += -subsystem:console LDFLAGS += $(LIBPATHS) @@ -53,7 +53,7 @@ AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) -out:$(LIB_DIR)/$@ $(^ DY := $(LD) DFLAGS += -nologo -dll $(LIBPATHS) DY_OUT := $(LD_OUT) -DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) # NOTE: The empty line directly before 'endef' HAVE TO exist! define dynlib_object diff --git a/harbour/config/win/watcom.mk b/harbour/config/win/watcom.mk index df1251ed65..d7010c2d78 100644 --- a/harbour/config/win/watcom.mk +++ b/harbour/config/win/watcom.mk @@ -66,6 +66,7 @@ LDFLAGS += SYS nt LDLIBS := $(foreach lib,$(HB_USER_LIBS),$(lib)) LDLIBS += $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)) +LDLIBS += $(foreach lib,$(3RDLIBS),$(3RDLIB_DIR)/$(lib)) LDLIBS += $(foreach lib,$(SYSLIBS),$(lib)) DY := $(LD) @@ -73,6 +74,7 @@ DFLAGS += OP quiet SYS nt_dll DY_OUT := DLIBS := $(foreach lib,$(HB_USER_LIBS),$(lib)) DLIBS += $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)) +DLIBS += $(foreach lib,$(3RDLIBS),$(3RDLIB_DIR)/$(lib)) DLIBS += $(foreach lib,$(SYSLIBS),$(lib)) DLIBS := $(strip $(DLIBS)) diff --git a/harbour/config/win/xcc.mk b/harbour/config/win/xcc.mk index 1f1b77bcdd..844318fb48 100644 --- a/harbour/config/win/xcc.mk +++ b/harbour/config/win/xcc.mk @@ -45,8 +45,8 @@ RC_OUT := -fo$(subst x,x, ) LD := xLink.exe LD_OUT := -out: -LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-libpath:$(dir)) -LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +LIBPATHS := $(foreach dir,$(LIB_DIR) $(3RDLIB_DIR),-libpath:$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) LDFLAGS += $(LIBPATHS) @@ -56,7 +56,7 @@ AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) -out:$(LIB_DIR)/$@ $(^ DY := $(LD) DFLAGS += -nologo -dll -noexpobj $(LIBPATHS) DY_OUT := $(LD_OUT) -DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) +DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) ifeq ($(HB_SHELL),sh) DYNFIX = && mv $(DYN_DIR)/$(@:.dll=.LIB) $(LIB_DIR)/$(@:.dll=.lib) diff --git a/harbour/contrib/hbwin/win_regc.c b/harbour/contrib/hbwin/win_regc.c index e8342cdb7f..227b3065fb 100644 --- a/harbour/contrib/hbwin/win_regc.c +++ b/harbour/contrib/hbwin/win_regc.c @@ -226,7 +226,7 @@ HB_FUNC( WIN_REGSETVALUEEX ) ++nValueLen; #if defined( UNICODE ) - nValueLen *= 2; + nValueLen *= 2; #endif hb_retl( RegSetValueEx( ( HKEY ) hb_parptr( 1 ),