From e2cde9bb35847a2ae474168267527424db82b24c Mon Sep 17 00:00:00 2001 From: "Gonzalo A. Diethelm" Date: Sat, 12 Jun 1999 00:13:33 +0000 Subject: [PATCH] ChangeLogTag:Fri Jun 11 17:11:09 1999 Gonzalo A. Diethelm --- harbour/ChangeLog | 24 ++++++++++++++++++ harbour/config/bin.cf | 2 +- harbour/config/dir.cf | 13 +++------- harbour/config/dos/dir.cf | 14 +++++++++++ harbour/config/dos/djgpp.cf | 29 ++++++++++++++++++++++ harbour/config/dos/global.cf | 21 ++++++++++++++++ harbour/config/dos/install.cf | 9 +++++++ harbour/config/global.cf | 20 --------------- harbour/config/install.cf | 22 +++-------------- harbour/config/lib.cf | 2 +- harbour/config/{win32 => }/rules.cf | 4 +-- harbour/config/test.cf | 2 +- harbour/config/win32/dir.cf | 25 +++++++++++++++++++ harbour/config/win32/gcc.cf | 2 +- harbour/config/win32/global.cf | 38 +++++++++++++++++++++++++++++ harbour/config/win32/install.cf | 30 +++++++++++++++++++++++ harbour/config/win32/msvc.cf | 4 +-- 17 files changed, 204 insertions(+), 57 deletions(-) create mode 100644 harbour/config/dos/dir.cf create mode 100644 harbour/config/dos/djgpp.cf create mode 100644 harbour/config/dos/global.cf create mode 100644 harbour/config/dos/install.cf rename harbour/config/{win32 => }/rules.cf (94%) create mode 100644 harbour/config/win32/dir.cf create mode 100644 harbour/config/win32/install.cf diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a978fd78bd..7af7eb4909 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,27 @@ +Fri Jun 11 17:11:09 1999 Gonzalo A. Diethelm + + * config/bin.cf: + * config/dir.cf: + * config/global.cf: + * config/install.cf: + * config/lib.cf: + * config/rules.cf: + * config/test.cf: + * config/dos/dir.cf: + * config/dos/djgpp.cf: + * config/dos/global.cf: + * config/dos/install.cf: + * config/win32/dir.cf: + * config/win32/gcc.cf: + * config/win32/global.cf: + * config/win32/install.cf: + * config/win32/msvc.cf: + * config/win32/rules.cf: + Reorganized things in an attempt to make it clearer how to support + different platforms and compilers. Also added as much support as I + could for running the GNU-make build system under plain + COMMAND.COM (DOS and Win95), not only under bash. + 19990611-17:00 CET Matthew Hamiltion * tests/working/inifiles.prg new version installed diff --git a/harbour/config/bin.cf b/harbour/config/bin.cf index 3aa6266305..81cb4cc9f5 100644 --- a/harbour/config/bin.cf +++ b/harbour/config/bin.cf @@ -13,7 +13,7 @@ ALL_OBJS = $(ALL_C_OBJS) $(ALL_PRG_OBJS) first : dirbase descend descend : - $(MAKE) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(EXE_NAME) + @$(MK) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(EXE_NAME) $(EXE_NAME) : $(ALL_OBJS) $(LD_RULE) diff --git a/harbour/config/dir.cf b/harbour/config/dir.cf index a70ffb386a..49ce316c65 100644 --- a/harbour/config/dir.cf +++ b/harbour/config/dir.cf @@ -2,15 +2,10 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf +include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/dir.cf + all : first first clean install :: -ifeq ($(SHLVL),) - @cmd /c FOR /D %d IN ($(DIRS)) DO @$(MAKE) -C %d $@ -else # ! Windows - @for d in $(DIRS); do \ - if [ -d $$d ]; then \ - $(MAKE) -C $$d $@; \ - fi \ - done -endif # ! Windows + $(DIR_RULE) diff --git a/harbour/config/dos/dir.cf b/harbour/config/dos/dir.cf new file mode 100644 index 0000000000..b4862d5292 --- /dev/null +++ b/harbour/config/dos/dir.cf @@ -0,0 +1,14 @@ +# +# $Id$ +# + +include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf + +ifeq ($(DIRS),) # Empty directory list +DIR_RULE =\ + @echo Done +else +DIR_LIST = $(subst /,\,$(DIRS)) +DIR_RULE =\ + command.com /c FOR %d IN ($(DIR_LIST)) DO $(MK) -C %d $@ +endif diff --git a/harbour/config/dos/djgpp.cf b/harbour/config/dos/djgpp.cf new file mode 100644 index 0000000000..ab91164ce4 --- /dev/null +++ b/harbour/config/dos/djgpp.cf @@ -0,0 +1,29 @@ +# +# $Id$ +# + +include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf + +OBJ_EXT = .obj +EXE_EXT = .exe +LIB_PREF = +LIB_EXT = .lib + +CC = gcc +CC_OUT = -o +CPPFLAGS = -DDEBUG -I. -I$(HB_INC_DIR) +CFLAGS = -Wall -g + +LD = gcc +LD_OUT = -o +ifdef HB_LIB_DIR +LDFLAGS = -L$(HB_LIB_DIR) +endif +LINKLIBS = $(foreach lib, $(LIBS), -l$(lib)) +# LINKLIBS += -lm + +AR = ar +ARFLAGS = +AR_RULE = $(AR) $(ARFLAGS) r $@ $^ || $(RM) $@ + +include $(TOP)$(ROOT)config/rules.cf diff --git a/harbour/config/dos/global.cf b/harbour/config/dos/global.cf new file mode 100644 index 0000000000..9724dfca42 --- /dev/null +++ b/harbour/config/dos/global.cf @@ -0,0 +1,21 @@ +# +# $Id$ +# + +ARCH_DIR = $(subst /,\,$(ARCH)\) +MK = $(subst /,\,$(subst \~,~,$(MAKE))) + +RM = del /q +RD = rmdir +CP = copy +MV = move +MD = md + +dirbase:: + -$(MD) $(HB_ARCHITECTURE) >NUL + -$(MD) $(ARCH_DIR) >NUL + + +clean:: + -$(RM) $(ARCH_DIR)\*.* + -$(RD) $(ARCH_DIR) diff --git a/harbour/config/dos/install.cf b/harbour/config/dos/install.cf new file mode 100644 index 0000000000..3e147b8787 --- /dev/null +++ b/harbour/config/dos/install.cf @@ -0,0 +1,9 @@ +# +# $Id$ +# + +include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf + +INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS)) +INSTALL_RULE =\ + command.com /c FOR %f IN ($(INSTALL_LIST)) DO COPY %f $(INSTALL_DIR) diff --git a/harbour/config/global.cf b/harbour/config/global.cf index d86d6225cf..5867e82d61 100644 --- a/harbour/config/global.cf +++ b/harbour/config/global.cf @@ -2,27 +2,7 @@ # $Id$ # -all : first - GRANDP = ../../ ARCH = $(HB_ARCHITECTURE)/$(HB_COMPILER) -ifeq ($(SHLVL),) -ARCH_DIR = $(subst /,\\,$(ARCH))\\ -else # ! Windows -ARCH_DIR = $(ARCH)/ -endif - include $(TOP)$(ROOT)config/$(ARCH).cf - -dirbase:: -ifeq ($(SHLVL),) - -$(MD) $(HB_ARCHITECTURE) - -$(MD) $(ARCH_DIR) >NUL -else # ! Windows - @[ -d $(HB_ARCHITECTURE) ] || $(MD) $(HB_ARCHITECTURE); \ - [ -d $(ARCH) ] || $(MD) $(ARCH) -endif - -clean:: - $(RM) -r $(ARCH_DIR) diff --git a/harbour/config/install.cf b/harbour/config/install.cf index c3973ad4fe..5f872f433d 100644 --- a/harbour/config/install.cf +++ b/harbour/config/install.cf @@ -2,23 +2,7 @@ # $Id$ # +include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/install.cf + install:: first -ifeq ($(SHLVL),) - @cmd /c FOR %f IN ($(INSTALL_OBJS)) DO @COPY %f $(INSTALL_DIR) -else # ! Windows - @if [ ! -d $(INSTALL_DIR) ]; \ - then \ - echo "! Can't install, path not found:" $(INSTALL_DIR); \ - else \ - for i in $(INSTALL_OBJS); \ - do \ - if [ -r $$i ]; \ - then \ - echo "! Installing $$i on $(INSTALL_DIR)"; \ - $(CP) $$i $(INSTALL_DIR); \ - else \ - echo "! Can't install $$i, not found"; \ - fi \ - done \ - fi -endif # ! Windows + $(INSTALL_RULE) diff --git a/harbour/config/lib.cf b/harbour/config/lib.cf index 658558912c..baff2cd569 100644 --- a/harbour/config/lib.cf +++ b/harbour/config/lib.cf @@ -14,7 +14,7 @@ ALL_OBJS = $(ALL_C_OBJS) $(ALL_PRG_OBJS) first : dirbase descend descend : - $(MAKE) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(LIB_NAME) + @$(MK) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(LIB_NAME) $(LIB_NAME) : $(ALL_OBJS) $(AR_RULE) diff --git a/harbour/config/win32/rules.cf b/harbour/config/rules.cf similarity index 94% rename from harbour/config/win32/rules.cf rename to harbour/config/rules.cf index 5c510f5ed1..57f34fc361 100644 --- a/harbour/config/win32/rules.cf +++ b/harbour/config/rules.cf @@ -8,7 +8,7 @@ YACC_FLAGS = -d # How to run lex. LEX = flex -LEX_FLAGS = -i +LEX_FLAGS = -i -8 # How to run Harbour. HB = harbour$(EXE_EXT) @@ -43,4 +43,4 @@ LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$@ $^ $(LDFLAGS) $(LINKLIBS) # Generic rule to clean up. clean:: - $(RM) core *~ *.o + -$(RM) *.bak *.obj core *~ *.o diff --git a/harbour/config/test.cf b/harbour/config/test.cf index 2985775327..786fc89beb 100644 --- a/harbour/config/test.cf +++ b/harbour/config/test.cf @@ -8,4 +8,4 @@ include $(TOP)$(ROOT)config/prg.cf first : dirbase descend descend : - $(MAKE) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(PRG_EXES) + @$(MK) -C $(ARCH_DIR) -f $(GRANDP)Makefile 'TOP=$(GRANDP)' $(PRG_EXES) diff --git a/harbour/config/win32/dir.cf b/harbour/config/win32/dir.cf new file mode 100644 index 0000000000..3d6753ebec --- /dev/null +++ b/harbour/config/win32/dir.cf @@ -0,0 +1,25 @@ +# +# $Id$ +# + +ifeq ($(SHLVL),) # COMMAND.COM + +ifeq ($(DIRS),) # Empty directory list +DIR_RULE =\ + @echo Done +else +DIR_LIST = $(subst /,\,$(DIRS)) +DIR_RULE =\ + command.com /c FOR %d IN ($(DIR_LIST)) DO $(MK) -C %d $@ +endif + +else # bash + +DIR_RULE =\ + @for d in $(DIRS); do \ + if [ -d $$d ]; then \ + $(MAKE) -C $$d $@; \ + fi \ + done + +endif # ! Windows diff --git a/harbour/config/win32/gcc.cf b/harbour/config/win32/gcc.cf index 893d1d1c60..69ed8c1d85 100644 --- a/harbour/config/win32/gcc.cf +++ b/harbour/config/win32/gcc.cf @@ -26,4 +26,4 @@ AR = ar ARFLAGS = AR_RULE = $(AR) $(ARFLAGS) r $@ $^ || $(RM) $@ -include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/rules.cf +include $(TOP)$(ROOT)config/rules.cf diff --git a/harbour/config/win32/global.cf b/harbour/config/win32/global.cf index 12b5441fd6..ce8ef35e05 100644 --- a/harbour/config/win32/global.cf +++ b/harbour/config/win32/global.cf @@ -2,7 +2,45 @@ # $Id$ # +all : first + + +ifeq ($(SHLVL),) # COMMAND.COM + +ARCH_DIR = $(subst /,\,$(ARCH)\) +MK = $(subst /,\,$(subst \~,~,$(MAKE))) + +RM = del /q +RD = rmdir +CP = copy +MV = move +MD = md + +dirbase:: + -$(MD) $(HB_ARCHITECTURE) >NUL + -$(MD) $(ARCH_DIR) >NUL + + +clean:: + -$(RM) $(ARCH_DIR)\*.* + -$(RD) $(ARCH_DIR) + +else # bash + +ARCH_DIR = $(ARCH)/ +MK = $(MAKE) + RM = rm -f +RD = rm -f -r CP = cp -f MV = mv -f MD = mkdir + +dirbase:: + @[ -d $(HB_ARCHITECTURE) ] || $(MD) $(HB_ARCHITECTURE); \ + [ -d $(ARCH) ] || $(MD) $(ARCH) + +clean:: + -$(RD) $(ARCH_DIR) + +endif diff --git a/harbour/config/win32/install.cf b/harbour/config/win32/install.cf new file mode 100644 index 0000000000..bf18f950b1 --- /dev/null +++ b/harbour/config/win32/install.cf @@ -0,0 +1,30 @@ +# +# $Id$ +# + +ifeq ($(SHLVL),) # COMMAND.COM + +INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS)) +INSTALL_RULE =\ + command.com /c FOR %f IN ($(INSTALL_LIST)) DO COPY %f $(INSTALL_DIR) + +else # bash + +INSTALL_RULE =\ + @if [ ! -d $(INSTALL_DIR) ]; \ + then \ + echo "! Can't install, path not found:" $(INSTALL_DIR); \ + else \ + for i in $(INSTALL_OBJS); \ + do \ + if [ -r $$i ]; \ + then \ + echo "! Installing $$i on $(INSTALL_DIR)"; \ + $(CP) $$i $(INSTALL_DIR); \ + else \ + echo "! Can't install $$i, not found"; \ + fi \ + done \ + fi + +endif diff --git a/harbour/config/win32/msvc.cf b/harbour/config/win32/msvc.cf index 3fb90877ce..2ecb96162e 100644 --- a/harbour/config/win32/msvc.cf +++ b/harbour/config/win32/msvc.cf @@ -2,8 +2,6 @@ # $Id$ # -include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/global.cf - OBJ_EXT = .obj EXE_EXT = .exe LIB_PREF = @@ -25,4 +23,4 @@ AR = lib.exe ARFLAGS = AR_RULE = $(AR) $(ARFLAGS) /out:$@ $^ || $(RM) $@ -include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/rules.cf +include $(TOP)$(ROOT)config/rules.cf