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.
This commit is contained in:
Viktor Szakats
2009-08-22 14:24:26 +00:00
parent 8799d81c82
commit 43b33b5814
4 changed files with 34 additions and 2 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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),)

View File

@@ -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