diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 341588a5e7..8ff858c489 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,31 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-01 15:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * config/global.cf + * config/lib.cf + * config/bin.cf + * config/globsh.cf + * config/instsh.cf + * config/none.cf + * config/dirsh.cf + ! Using embedded GNU Tools on OS/2. This fixes the install dir + creation problems (at least makes it work like on other platforms). + Fixes HB_BUILD_SUBDIR support. It also allowed to remove all + remaining hacks to try to create dirs for platforms where 'mkdir -p' + equivalent isn't available. + Probably it would be better to solve this using some GNU Make + tricks, but couldn't find one yet. + % Using native DOS commands for RM and MD. (MD is not used currently) + * EXE_DIR, LIB_DIR moved to global.cf + % Deleted (I hope) unnecessary $(CMDPREF) variables. + If someone knows what was the purpose of them, we can readd them, but + we should then readd them to all shell types and all commands consistently. + ! Fixed nt dir walking rule for old GNU Make versions. + + + config/os2-rm.exe + + Added OS/2 GNU rm binary. + 2009-08-01 14:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/global.cf + Minor improvements. diff --git a/harbour/config/bin.cf b/harbour/config/bin.cf index 054c7fc905..270dd0a147 100644 --- a/harbour/config/bin.cf +++ b/harbour/config/bin.cf @@ -7,11 +7,6 @@ include $(TOP)$(ROOT)config/global.cf ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -# no slash at the end -EXE_ARCH_DIR := $(TOP)$(ROOT)bin/$(HB_ARCHITECTURE) -# no slash at the end -EXE_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP) - include $(TOP)$(ROOT)config/c.cf include $(TOP)$(ROOT)config/prg.cf @@ -33,8 +28,6 @@ endif EXE_FILE := $(EXE_DIR)/$(EXE_NAME) -LIB_DIR := $(TOP)$(ROOT)lib/$(ARCH_COMP) - ALL_OBJS = $(ALL_C_OBJS) $(ALL_PRG_OBJS) first:: dirbase descend diff --git a/harbour/config/dirsh.cf b/harbour/config/dirsh.cf index 2ca85e059f..1c0b474c42 100644 --- a/harbour/config/dirsh.cf +++ b/harbour/config/dirsh.cf @@ -30,14 +30,14 @@ endif ifeq ($(HB_SHELL),nt) DIR_RULE =\ - $(CMDPREF)for %d in ($(DIRS_OS)) do $(MK_OS) -C %d $@ + for %%d in ($(DIRS_OS)) do $(MK_OS) -C %%d $@ endif ifeq ($(HB_SHELL),os2) DIR_RULE =\ - $(CMDPREF)for %d in ($(DIRS_OS)) do $(MK_OS) -C %d $@ + for %d in ($(DIRS_OS)) do $(MK_OS) -C %d $@ endif diff --git a/harbour/config/global.cf b/harbour/config/global.cf index 535b810140..4298bdba01 100644 --- a/harbour/config/global.cf +++ b/harbour/config/global.cf @@ -337,9 +337,9 @@ ARCH_COMP := $(HB_ARCHITECTURE)/$(HB_COMPILER) ifneq ($(HB_BUILD_SUBDIR),) ARCH_COMP += /$(subst \,/,$(HB_BUILD_SUBDIR)) endif -OBJ_BASE := obj -OBJ_DIR := $(OBJ_BASE)/$(ARCH_COMP) -OBJ_ARCH_DIR := $(OBJ_BASE)/$(HB_ARCHITECTURE) +OBJ_DIR := obj/$(ARCH_COMP) +EXE_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP) +LIB_DIR := $(TOP)$(ROOT)lib/$(ARCH_COMP) # TODO: Set this in /.cf HB_CPU := diff --git a/harbour/config/globsh.cf b/harbour/config/globsh.cf index 05fc966928..b608923608 100644 --- a/harbour/config/globsh.cf +++ b/harbour/config/globsh.cf @@ -50,23 +50,23 @@ ifeq ($(HB_SHELL),nt) MK = "$(subst \,/,$(subst \~,~,$(MAKE)))" RM = del /q /f RDP = rmdir /q /s -CP = $(CMDPREF)copy +CP = copy MD = mkdir MDP = mkdir dirbase:: - -@$(CMDPREF)if not exist "$(OBJ_DIR_OS)" $(MDP) "$(OBJ_DIR_OS)" - $(if $(LIB_FILE),-@$(CMDPREF)if not exist "$(LIB_DIR_OS)" $(MDP) "$(LIB_DIR_OS)",) - $(if $(EXE_FILE),-@$(CMDPREF)if not exist "$(EXE_DIR_OS)" $(MDP) "$(EXE_DIR_OS)",) + -@if not exist "$(OBJ_DIR_OS)" $(MDP) "$(OBJ_DIR_OS)" + $(if $(LIB_FILE),-@if not exist "$(LIB_DIR_OS)" $(MDP) "$(LIB_DIR_OS)",) + $(if $(EXE_FILE),-@if not exist "$(EXE_DIR_OS)" $(MDP) "$(EXE_DIR_OS)",) clean:: - -@$(CMDPREF)if exist "$(OBJ_DIR_OS)" $(RDP) "$(OBJ_DIR_OS)" - $(if $(LIB_FILE),-@$(CMDPREF)if exist "$(LIB_FILE_OS)" $(RM) "$(LIB_FILE_OS)",) - $(if $(LIB_FILE),-@$(CMDPREF)if exist "$(basename $(LIB_FILE_OS)).bak" $(RM) "$(basename $(LIB_FILE_OS)).bak",) - $(if $(LIB_FILE),-@$(CMDPREF)if exist "$(LIB_DIR_OS)" if not exist "$(LIB_DIR_OS)\*" $(RDP) "$(LIB_DIR_OS)",) - $(if $(EXE_FILE),-@$(CMDPREF)if exist "$(EXE_FILE_OS)" $(RM) "$(EXE_FILE_OS)",) - $(if $(EXE_FILE),-@$(CMDPREF)if exist "$(basename $(EXE_FILE_OS)).tds" $(RM) "$(basename $(EXE_FILE_OS)).tds",) - $(if $(EXE_FILE),-@$(CMDPREF)if exist "$(EXE_DIR_OS)" if not exist "$(EXE_DIR_OS)\*" $(RDP) "$(EXE_DIR_OS)",) + -@if exist "$(OBJ_DIR_OS)" $(RDP) "$(OBJ_DIR_OS)" + $(if $(LIB_FILE),-@if exist "$(LIB_FILE_OS)" $(RM) "$(LIB_FILE_OS)",) + $(if $(LIB_FILE),-@if exist "$(basename $(LIB_FILE_OS)).bak" $(RM) "$(basename $(LIB_FILE_OS)).bak",) + $(if $(LIB_FILE),-@if exist "$(LIB_DIR_OS)" if not exist "$(LIB_DIR_OS)\*" $(RDP) "$(LIB_DIR_OS)",) + $(if $(EXE_FILE),-@if exist "$(EXE_FILE_OS)" $(RM) "$(EXE_FILE_OS)",) + $(if $(EXE_FILE),-@if exist "$(basename $(EXE_FILE_OS)).tds" $(RM) "$(basename $(EXE_FILE_OS)).tds",) + $(if $(EXE_FILE),-@if exist "$(EXE_DIR_OS)" if not exist "$(EXE_DIR_OS)\*" $(RDP) "$(EXE_DIR_OS)",) endif @@ -74,26 +74,20 @@ ifeq ($(HB_SHELL),os2) MK = $(subst /,\,$(subst \~,~,$(MAKE))) RM = del /n -RD = rmdir -CP = $(CMDPREF)copy +RD = $(TOOL_DIR)os2-rm -f -r +CP = copy MD = mkdir - -OBJ_ARCH_DIR_OS = $(subst /,\,$(OBJ_ARCH_DIR)) -LIB_ARCH_DIR_OS = $(subst /,\,$(LIB_ARCH_DIR)) -EXE_ARCH_DIR_OS = $(subst /,\,$(EXE_ARCH_DIR)) +MDP = $(TOOL_DIR)os2-mkdir -p dirbase:: - -@for %d in ($(OBJ_BASE) $(OBJ_ARCH_DIR_OS) $(OBJ_DIR_OS)) do if not exist %d $(MD) %d - $(if $(LIB_FILE),-@for %d in ($(LIB_ARCH_DIR_OS) $(LIB_DIR_OS)) do if not exist %d $(MD) %d,) - $(if $(EXE_FILE),-@for %d in ($(EXE_ARCH_DIR_OS) $(EXE_DIR_OS)) do if not exist %d $(MD) %d,) + -@if not exist $(OBJ_DIR_OS) $(MDP) $(OBJ_DIR_OS) + $(if $(LIB_FILE),-@if not exist $(LIB_DIR_OS) $(MDP) $(LIB_DIR_OS),) + $(if $(EXE_FILE),-@if not exist $(EXE_DIR_OS) $(MDP) $(EXE_DIR_OS),) clean:: - -@if exist $(OBJ_DIR_OS)\*.* $(RM) $(OBJ_DIR_OS)\*.* - -@for %d in ($(OBJ_DIR_OS) $(OBJ_ARCH_DIR_OS) $(OBJ_BASE)) do if exist %d $(RD) %d - $(if $(LIB_FILE),-@if exist $(LIB_FILE_OS) $(RM) $(LIB_FILE_OS),) - $(if $(LIB_FILE),-@for %d in ($(LIB_DIR_OS) $(LIB_ARCH_DIR_OS)) do if exist %d $(RD) %d,) - $(if $(EXE_FILE),-@if exist $(EXE_FILE_OS) $(RM) $(EXE_FILE_OS),) - $(if $(EXE_FILE),-@for %d in ($(EXE_DIR_OS) $(EXE_ARCH_DIR_OS)) do if exist %d $(RD) %d,) + -@$(RDP) $(OBJ_DIR_OS) $(LIB_FILE_OS) $(EXE_FILE_OS) + $(if $(LIB_FILE),-@if not exist $(LIB_DIR_OS) $(RDP) $(LIB_DIR_OS),) + $(if $(EXE_FILE),-@if not exist $(EXE_DIR_OS) $(RDP) $(EXE_DIR_OS),) endif @@ -102,22 +96,22 @@ ifeq ($(HB_SHELL),dos) TOOL_DIR := $(subst /,\,$(TOP)$(ROOT)config/) MK = $(subst \,/,$(subst \~,~,$(MAKE))) -RM = $(TOOL_DIR)dj-rm -f +RM = del RDP = $(TOOL_DIR)dj-rm -f -r CP = $(TOOL_DIR)dj-cp -f -MD = $(TOOL_DIR)dj-mkdir +MD = mkdir MDP = $(TOOL_DIR)dj-mkdir -p dirbase:: - -@$(CMDPREF)if not exist $(OBJ_DIR_OS)\nul $(MDP) $(OBJ_DIR_OS) - $(if $(LIB_FILE),-@$(CMDPREF)if not exist $(LIB_DIR_OS)\nul $(MDP) $(LIB_DIR_OS),) - $(if $(EXE_FILE),-@$(CMDPREF)if not exist $(EXE_DIR_OS)\nul $(MDP) $(EXE_DIR_OS),) + -@if not exist $(OBJ_DIR_OS)\nul $(MDP) $(OBJ_DIR_OS) + $(if $(LIB_FILE),-@if not exist $(LIB_DIR_OS)\nul $(MDP) $(LIB_DIR_OS),) + $(if $(EXE_FILE),-@if not exist $(EXE_DIR_OS)\nul $(MDP) $(EXE_DIR_OS),) clean:: -@$(RDP) $(OBJ_DIR_OS) $(LIB_FILE_OS) $(EXE_FILE_OS) - $(if $(LIB_FILE),-@$(CMDPREF)if exist $(basename $(LIB_FILE_OS)).bak $(RM) $(basename $(LIB_FILE_OS)).bak,) - $(if $(LIB_FILE),-@$(CMDPREF)if not exist $(LIB_DIR_OS)\*.* $(RDP) $(LIB_DIR_OS),) - $(if $(EXE_FILE),-@$(CMDPREF)if exist $(basename $(EXE_FILE_OS)).tds $(RM) $(basename $(EXE_FILE_OS)).tds,) - $(if $(EXE_FILE),-@$(CMDPREF)if not exist $(EXE_DIR_OS)\*.* $(RDP) $(EXE_DIR_OS),) + $(if $(LIB_FILE),-@if exist $(basename $(LIB_FILE_OS)).bak $(RM) $(basename $(LIB_FILE_OS)).bak,) + $(if $(LIB_FILE),-@if not exist $(LIB_DIR_OS)\*.* $(RDP) $(LIB_DIR_OS),) + $(if $(EXE_FILE),-@if exist $(basename $(EXE_FILE_OS)).tds $(RM) $(basename $(EXE_FILE_OS)).tds,) + $(if $(EXE_FILE),-@if not exist $(EXE_DIR_OS)\*.* $(RDP) $(EXE_DIR_OS),) endif diff --git a/harbour/config/instsh.cf b/harbour/config/instsh.cf index f1aefaad28..1034fefe3a 100644 --- a/harbour/config/instsh.cf +++ b/harbour/config/instsh.cf @@ -58,7 +58,7 @@ endif ifeq ($(HB_SHELL),os2) define inst_file_all -if not exist $(INSTALL_DIR_OS) $(MD) $(INSTALL_DIR_OS) +if not exist $(INSTALL_DIR_OS) $(MDP) $(INSTALL_DIR_OS) $(foreach file, $(INSTALL_FILES_OS), $(inst_file)) endef diff --git a/harbour/config/lib.cf b/harbour/config/lib.cf index 02280b5849..7d0c733e9b 100644 --- a/harbour/config/lib.cf +++ b/harbour/config/lib.cf @@ -7,11 +7,6 @@ include $(TOP)$(ROOT)config/global.cf ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -# no slash at the end -LIB_ARCH_DIR := $(TOP)$(ROOT)lib/$(HB_ARCHITECTURE) -# no slash at the end -LIB_DIR := $(TOP)$(ROOT)lib/$(ARCH_COMP) - include $(TOP)$(ROOT)config/c.cf include $(TOP)$(ROOT)config/prg.cf @@ -19,11 +14,6 @@ LIB_NAME := $(LIB_PREF)$(LIBNAME)$(LIB_EXT) LIB_FILE := $(LIB_DIR)/$(LIB_NAME) -ifeq ($(HB_SHELL),os2) - EXE_ARCH_DIR := $(TOP)$(ROOT)bin/$(HB_ARCHITECTURE) -endif -EXE_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP) - ALL_OBJS = $(ALL_C_OBJS) $(ALL_PRG_OBJS) first:: dirbase descend diff --git a/harbour/config/none.cf b/harbour/config/none.cf index 579ffd8777..4e6ec57b42 100644 --- a/harbour/config/none.cf +++ b/harbour/config/none.cf @@ -8,7 +8,7 @@ ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) ifneq ($(LIBNAME),) - DIR_RULE := @$(CMDPREF)echo "The '$(LIBNAME)' library ignored." + DIR_RULE := @echo "The '$(LIBNAME)' library ignored." else DIR_RULE := endif diff --git a/harbour/config/os2-rm.exe b/harbour/config/os2-rm.exe new file mode 100644 index 0000000000..f98d0654d9 Binary files /dev/null and b/harbour/config/os2-rm.exe differ