diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fb3ab31744..0434e43f7b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,16 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-21 14:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * source/dynlib/Makefile + * source/Makefile + + Moved dynamic lib generation initialization logic to source + root Makefile. This ensures that all subdirs are built before + creating the dynamic libraries. + + * config/globsh.mk + + Added rules to delete .def files. + 2009-08-21 13:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk * INSTALL diff --git a/harbour/config/globsh.mk b/harbour/config/globsh.mk index 150c6023b6..ca511102ee 100644 --- a/harbour/config/globsh.mk +++ b/harbour/config/globsh.mk @@ -57,6 +57,7 @@ clean:: [ "`$(ECHO) $(BIN_DIR)/*`" != "$(BIN_DIR)/*" ] || $(RDP) $(BIN_DIR); \ fi ; \ if [ -n "$(DYN_FILE)" ]; then \ + $(RM) $(basename $(DYN_FILE)).def; \ $(RM) $(basename $(DYN_FILE)).exp; \ [ "`$(ECHO) $(DYN_DIR)/*`" != "$(DYN_DIR)/*" ] || $(RDP) $(DYN_DIR); \ fi @@ -95,6 +96,7 @@ clean:: $(if $(BIN_FILE),-@if exist "$(basename $(BIN_FILE_OS)).tds" $(RM) "$(basename $(BIN_FILE_OS)).tds",) $(if $(BIN_FILE),-@if exist "$(BIN_DIR_OS)" if not exist "$(BIN_DIR_OS)\*" $(RDP) "$(BIN_DIR_OS)",) $(if $(DYN_FILE),-@if exist "$(DYN_FILE_OS)" $(RM) "$(DYN_FILE_OS)",) + $(if $(DYN_FILE),-@if exist "$(basename $(DYN_FILE_OS)).def" $(RM) "$(basename $(DYN_FILE_OS)).def",) $(if $(DYN_FILE),-@if exist "$(basename $(DYN_FILE_OS)).exp" $(RM) "$(basename $(DYN_FILE_OS)).exp",) $(if $(DYN_FILE),-@if exist "$(DYN_DIR_OS)" if not exist "$(DYN_DIR_OS)\*" $(RDP) "$(DYN_DIR_OS)",) @@ -148,6 +150,7 @@ clean:: $(if $(LIB_FILE),$(if $(wildcard $(LIB_DIR_OS)/*.*),,-@$(RDP) $(LIB_DIR_OS)),) $(if $(BIN_FILE),-@$(RM) $(basename $(BIN_FILE_OS)).tds,) $(if $(BIN_FILE),$(if $(wildcard $(BIN_DIR_OS)/*.*),,-@$(RDP) $(BIN_DIR_OS)),) + $(if $(DYN_FILE),-@$(RM) $(basename $(DYN_FILE_OS)).def,) $(if $(DYN_FILE),-@$(RM) $(basename $(DYN_FILE_OS)).exp,) $(if $(DYN_FILE),$(if $(wildcard $(DYN_DIR_OS)/*.*),,-@$(RDP) $(DYN_DIR_OS)),) diff --git a/harbour/source/Makefile b/harbour/source/Makefile index d3c4248a1f..5979ced59a 100644 --- a/harbour/source/Makefile +++ b/harbour/source/Makefile @@ -4,6 +4,8 @@ ROOT := ../ +include $(TOP)$(ROOT)config/global.mk + ifeq ($(HB_HOST_BUILD),yes) DIRS := \ @@ -15,6 +17,53 @@ ifeq ($(HB_HOST_BUILD),yes) else + ifneq ($(HB_BUILD_DLL),no) + ifneq ($(HB_ARCHITECTURE),dos) + + DYNNAME_POST := -$(HB_DYN_VER) + + ifeq ($(HB_ARCHITECTURE),win) + ifeq ($(HB_COMPILER),bcc) + DYNNAME_POST := $(DYNNAME_POST)-bcc + else + ifeq ($(HB_CPU),x86_64) + DYNNAME_POST := $(DYNNAME_POST)-x64 + else + ifeq ($(HB_CPU),ia64) + DYNNAME_POST := $(DYNNAME_POST)-ia64 + endif + endif + endif + else + ifeq ($(HB_ARCHITECTURE),wce) + DYNNAME_POST := $(DYNNAME_POST)-wce + ifeq ($(HB_CPU),arm) + DYNNAME_POST := $(DYNNAME_POST)-arm + else + ifeq ($(HB_CPU),mips) + DYNNAME_POST := $(DYNNAME_POST)-mips + else + ifeq ($(HB_CPU),sh) + DYNNAME_POST := $(DYNNAME_POST)-sh + endif + endif + endif + endif + endif + + DYNDIRLIST_BASE := source/common source/pp source/rtl source/macro source/lang source/codepage source/hbpcre source/hbzlib source/hbextern source/rdd source/rdd/dbfntx source/rdd/dbfnsx source/rdd/dbfcdx source/rdd/dbffpt source/rdd/hbsix source/rdd/hsx source/rdd/usrrdd source/rtl/gtcgi source/rtl/gtpca source/rtl/gtstd source/rtl/gtwvt source/rtl/gtgui + ifneq ($(HB_ARCHITECTURE),wce) + DYNDIRLIST_BASE += source/rtl/gtwin + endif + ifeq ($(HB_ARCHITECTURE)-$(HB_COMPILER),win-watcom) + DYNDIRLIST_BASE += source/vm/maindllh + endif + + export DYNDIRLIST_BASE + export DYNNAME_POST + endif + endif + ifeq ($(HB_HOST_BUILD),lib) HB_COMP_DIR := HB_COMP_REF := diff --git a/harbour/source/dynlib/Makefile b/harbour/source/dynlib/Makefile index 856f82f2f0..7e1b1f9309 100644 --- a/harbour/source/dynlib/Makefile +++ b/harbour/source/dynlib/Makefile @@ -6,63 +6,20 @@ ROOT := ../../ include $(TOP)$(ROOT)config/global.mk -ifneq ($(HB_BUILD_DLL),no) +ifneq ($(DYNDIRLIST_BASE),) ifneq ($(HB_ARCHITECTURE),dos) - DYNNAME_POST := -$(HB_DYN_VER) - - ifeq ($(HB_ARCHITECTURE),win) - ifeq ($(HB_COMPILER),bcc) - DYNNAME_POST := $(DYNNAME_POST)-bcc - else - ifeq ($(HB_CPU),x86_64) - DYNNAME_POST := $(DYNNAME_POST)-x64 - else - ifeq ($(HB_CPU),ia64) - DYNNAME_POST := $(DYNNAME_POST)-ia64 - endif - endif - endif - else - ifeq ($(HB_ARCHITECTURE),wce) - DYNNAME_POST := $(DYNNAME_POST)-wce - ifeq ($(HB_CPU),arm) - DYNNAME_POST := $(DYNNAME_POST)-arm - else - ifeq ($(HB_CPU),mips) - DYNNAME_POST := $(DYNNAME_POST)-mips - else - ifeq ($(HB_CPU),sh) - DYNNAME_POST := $(DYNNAME_POST)-sh - endif - endif - endif - endif - endif - - DYNDIRLIST_BASE := source/common source/pp source/rtl source/macro source/lang source/codepage source/hbpcre source/hbzlib source/hbextern source/rdd source/rdd/dbfntx source/rdd/dbfnsx source/rdd/dbfcdx source/rdd/dbffpt source/rdd/hbsix source/rdd/hsx source/rdd/usrrdd source/rtl/gtcgi source/rtl/gtpca source/rtl/gtstd source/rtl/gtwvt source/rtl/gtgui - ifneq ($(HB_ARCHITECTURE),wce) - DYNDIRLIST_BASE += source/rtl/gtwin - endif - ifeq ($(HB_ARCHITECTURE)-$(HB_COMPILER),win-watcom) - DYNDIRLIST_BASE += source/vm/maindllh - endif - - export DYNDIRLIST_BASE - export DYNNAME_POST - DYNDIRLIST := $(DYNDIRLIST_BASE) source/vm DYNNAME := harbour$(DYNNAME_POST) DIRS := mt include $(TOP)$(ROOT)config/dyn.mk - ifneq ($(DIRS),) - include $(TOP)$(ROOT)config/dir.mk - endif + include $(TOP)$(ROOT)config/dir.mk else include $(TOP)$(ROOT)config/none.mk endif else + $(warning ! Warning: Please run make from one level up) include $(TOP)$(ROOT)config/none.mk endif