diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f70cc80a1e..f8bea7fd43 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,31 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-22 16:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * source/pp/Makefile + ! Fixed case when OBJ_DYN_POSTFIX was empty (all platforms + except win/wce non-gcc family) and hbpp object was deleted + twice, the second one resulting in error message. + ! Deleted ineffective hack to add an empty line after pptable + rules. I turned out the behavior I was trying to fix with this + is totally random. + + * source/pp/hbpp.c + ! Disabled content when built in HB_DYNLIB. This file should + never go into a the Harbour dynamic library. + Of course we already have the object deletion trick, but, + at least on bcc it doesn't work reliably. After chasing this + for half a day it turns out bcc build with mingw32-make 3.81 + has some sort of random behvior and sometimes hbpp_dyn.obj is + deleted, sometimes not. Also 'rm hbpp.obj' either appears at + the end of the make process, or not, I don't know if there is + any realtion between the two. Maybe we're exploiting some + make bugs with bcc rules, I don't know. + So this patch will make bcc dynamic lib creation reliable. + + * config/global.mk + * Comments. + 2009-08-22 15:06 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/rules.mk ! Deleted dynlib related rule causing problems in some situations diff --git a/harbour/config/global.mk b/harbour/config/global.mk index 013d348a0a..afd750f77d 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -1065,9 +1065,11 @@ ifneq ($(HB_INSTALL_PREFIX),) endif endif + # Standard name: BINDIR ifeq ($(HB_BIN_INSTALL),) export HB_BIN_INSTALL := $(HB_INSTALL_PREFIX)$(DIRSEP)bin endif + # Standard name: LIBDIR ifeq ($(HB_LIB_INSTALL),) export HB_LIB_INSTALL := $(HB_INSTALL_PREFIX)$(DIRSEP)lib$(LIBPOSTFIX) endif @@ -1078,11 +1080,13 @@ ifneq ($(HB_INSTALL_PREFIX),) export HB_DYN_INSTALL := $(HB_LIB_INSTALL) endif endif + # Standard name: INCLUDEDIR ifeq ($(HB_INC_INSTALL),) ifneq ($(HB_INSTALL_PREFIX),$(HB_INSTALL_PREFIX_TOP)) export HB_INC_INSTALL := $(HB_INSTALL_PREFIX)$(DIRSEP)include$(INCPOSTFIX) endif endif + # Standard name: DOCDIR ifeq ($(HB_DOC_INSTALL),) # Don't set doc dir for *nix targets ifeq ($(HB_OS_UNIX),no) diff --git a/harbour/source/pp/Makefile b/harbour/source/pp/Makefile index 5f2515248d..76dd26ca26 100644 --- a/harbour/source/pp/Makefile +++ b/harbour/source/pp/Makefile @@ -34,8 +34,7 @@ vpath hbpp$(BIN_EXT) $(BIN_DIR) pptable.c : hbpp$(BIN_EXT) $(HB_HOST_BIN_DIR)/hbpp$(HB_HOST_BIN_EXT) $(TOP)$(ROOT)include/hbstdgen.ch -opptable.c -q -c$(TOP)$(ROOT) -v$(HB_VERHEADER) $(if $(wildcard hbpp$(OBJ_EXT)),-@$(RM) hbpp$(OBJ_EXT),) - $(if $(wildcard hbpp$(OBJ_DYN_POSTFIX)$(OBJ_EXT)),-@$(RM) hbpp$(OBJ_DYN_POSTFIX)$(OBJ_EXT),) - + $(if $(OBJ_DYN_POSTFIX),$(if $(wildcard hbpp$(OBJ_DYN_POSTFIX)$(OBJ_EXT)),-@$(RM) hbpp$(OBJ_DYN_POSTFIX)$(OBJ_EXT),),) ifneq ($(HB_HOST_BUILD),lib) ifneq ($(HB_BIN_INSTALL),) diff --git a/harbour/source/pp/hbpp.c b/harbour/source/pp/hbpp.c index fa1fc11664..95468e88f8 100644 --- a/harbour/source/pp/hbpp.c +++ b/harbour/source/pp/hbpp.c @@ -52,6 +52,8 @@ * */ +#if ! defined( HB_DYNLIB ) + #include "hbapi.h" int hb_verSvnID( void ) { return 0; } @@ -827,3 +829,5 @@ int main( int argc, char * argv[] ) #if defined( HB_OS_WIN_CE ) && !defined( __CEGCC__ ) # include "hbwmain.c" #endif + +#endif