From f87ee247e1b3577e5bbc92594d740acac00ec2c6 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 1 Aug 2009 10:41:04 +0000 Subject: [PATCH] 2009-08-01 12:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/header.cf * config/rules.cf * config/none.cf * config/global.cf * config/doc.cf * config/lib.cf * config/bin.cf * config/dir.cf * config/test.cf + Added HB_COMPILER and HB_ARCHITECTURE autodetection. It's experimental yet. + Added support for HB_BUILD_SUBDIR envvar which can extend the / path by arbitrary subdir(s). Useful to keep custom binary builds in parallel, f.e. release/debug, cpp/c, cpu targets. Notice that hbmk2 will not be able to use such customized directory structure yet, but there'll probably be a cmdline option for that in the future (it won't/can't be automatic). Notice, this feature doesn't work yet on OS/2 because the shell doesn't support 'mkdir -p' equivalent. * Cleaned internal ARCH_COMP var usage. % Deleted SOURCE_DIR usage, it was a no-op. * make_gnu.bat ! Fixed autodetection of mingwarm. ; Autodetection code will have to be deleted from here anyway. + config/os2-mkdir.exe + Added OS/2 GNU mkdir executable. (not yet used) * examples/superlib/superlib.dif + Added 'const'. * source/rtl/hbinet.c ! Fixed to use hb_retc() to return hb_socketErrorStr() value. --- harbour/ChangeLog | 37 +++++++ harbour/config/bin.cf | 5 +- harbour/config/dir.cf | 4 +- harbour/config/doc.cf | 4 +- harbour/config/global.cf | 140 ++++++++++++++++++++++--- harbour/config/header.cf | 4 +- harbour/config/lib.cf | 7 +- harbour/config/none.cf | 4 +- harbour/config/os2-mkdir.exe | Bin 0 -> 18145 bytes harbour/config/rules.cf | 17 +-- harbour/config/test.cf | 3 +- harbour/examples/superlib/superlib.dif | 49 ++++++--- harbour/make_gnu.bat | 4 +- harbour/source/rtl/hbinet.c | 3 +- 14 files changed, 223 insertions(+), 58 deletions(-) create mode 100644 harbour/config/os2-mkdir.exe diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7d001bec51..0e5f4e6e0e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,43 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-01 12:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * config/header.cf + * config/rules.cf + * config/none.cf + * config/global.cf + * config/doc.cf + * config/lib.cf + * config/bin.cf + * config/dir.cf + * config/test.cf + + Added HB_COMPILER and HB_ARCHITECTURE autodetection. + It's experimental yet. + + Added support for HB_BUILD_SUBDIR envvar which can + extend the / path by arbitrary subdir(s). + Useful to keep custom binary builds in parallel, f.e. + release/debug, cpp/c, cpu targets. Notice that hbmk2 + will not be able to use such customized directory + structure yet, but there'll probably be a cmdline option + for that in the future (it won't/can't be automatic). + Notice, this feature doesn't work yet on OS/2 because + the shell doesn't support 'mkdir -p' equivalent. + * Cleaned internal ARCH_COMP var usage. + % Deleted SOURCE_DIR usage, it was a no-op. + + * make_gnu.bat + ! Fixed autodetection of mingwarm. + ; Autodetection code will have to be deleted from here anyway. + + + config/os2-mkdir.exe + + Added OS/2 GNU mkdir executable. (not yet used) + + * examples/superlib/superlib.dif + + Added 'const'. + + * source/rtl/hbinet.c + ! Fixed to use hb_retc() to return hb_socketErrorStr() value. + 2009-07-31 13:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbthread.h ! unblocked MT compilation for WinCE diff --git a/harbour/config/bin.cf b/harbour/config/bin.cf index e060f23a4b..054c7fc905 100644 --- a/harbour/config/bin.cf +++ b/harbour/config/bin.cf @@ -2,15 +2,16 @@ # $Id$ # +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 := $(EXE_ARCH_DIR)/$(HB_COMPILER) +EXE_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP) -include $(TOP)$(ROOT)config/global.cf include $(TOP)$(ROOT)config/c.cf include $(TOP)$(ROOT)config/prg.cf diff --git a/harbour/config/dir.cf b/harbour/config/dir.cf index 1c39c00719..5d6cacdb0d 100644 --- a/harbour/config/dir.cf +++ b/harbour/config/dir.cf @@ -2,11 +2,11 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf + ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -include $(TOP)$(ROOT)config/global.cf - ifeq ($(HB_HOST_ARCH),dos) #do not use rules for parallel processing in DOS JOB_SRV := NO diff --git a/harbour/config/doc.cf b/harbour/config/doc.cf index 14b9410bb0..4e3eaeef64 100644 --- a/harbour/config/doc.cf +++ b/harbour/config/doc.cf @@ -2,11 +2,11 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf + ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -include $(TOP)$(ROOT)config/global.cf - first:: ifeq ($(HB_DOC_INSTALL),) diff --git a/harbour/config/global.cf b/harbour/config/global.cf index 0a229b73dc..4c70e59e99 100644 --- a/harbour/config/global.cf +++ b/harbour/config/global.cf @@ -25,11 +25,10 @@ else need := 3.81 ok := $(filter $(need),$(firstword $(sort $(MAKE_VERSION) $(need)))) -GRANDP = ../../../ -ARCH_COMP := $(HB_ARCHITECTURE)/$(HB_COMPILER) -OBJ_BASE := obj -OBJ_DIR := $(OBJ_BASE)/$(ARCH_COMP) -OBJ_ARCH_DIR := $(OBJ_BASE)/$(HB_ARCHITECTURE) +# Don't indent this subroutine +define find_in_path +$(strip $(foreach dir,$(subst $(PTHSEP), ,$(PATH)),$(wildcard $(dir)/$(1)$(HB_HOST_BIN_EXT)))) +endef define check_host @@ -182,6 +181,12 @@ ifeq ($(HB_HOST_ARCH),) endif endif +ifneq ($(findstring $(HB_HOST_ARCH),win wce dos os2),) + HB_HOST_BIN_EXT := .exe +else + HB_HOST_BIN_EXT := +endif + ifeq ($(HB_BUILD_VERBOSE),yes) ifeq ($(ok),) $(info Detected host platform: $(HB_HOST_ARCH)) @@ -209,6 +214,123 @@ ifeq ($(HB_BUILD_VERBOSE),yes) endif endif +ifeq ($(HB_ARCHITECTURE),) + HB_ARCHITECTURE := $(HB_HOST_ARCH) + ifneq ($(findstring $(HB_COMPILER),msvcarm mingwarm poccarm),) + HB_ARCHITECTURE := wce + endif + export HB_ARCHITECTURE +endif +ifeq ($(HB_COMPILER),) + ifeq ($(HB_ARCHITECTURE),win) + ifneq ($(call find_in_path,arm-wince-mingw32ce-gcc),) + HB_COMPILER := mingwarm + HB_ARCHITECTURE := wce + export HB_CCPREFIX := arm-wince-mingw32ce- + else + ifneq ($(call find_in_path,arm-mingw32ce-gcc),) + HB_COMPILER := mingwarm + HB_ARCHITECTURE := wce + export HB_CCPREFIX := arm-mingw32ce- + else + ifneq ($(call find_in_path,cygstart),) + HB_COMPILER := cygwin + else + ifneq ($(call find_in_path,gcc),) + HB_COMPILER := mingw + else + ifneq ($(call find_in_path,wpp386),) + HB_COMPILER := watcom + else + ifneq ($(call find_in_path,ml64),) + HB_COMPILER := msvc64 + else + ifneq ($(call find_in_path,icl),) + HB_COMPILER := icc + else + ifneq ($(call find_in_path,cl),) + HB_COMPILER := msvc + else + ifneq ($(call find_in_path,bcc32),) + HB_COMPILER := bcc + else + ifneq ($(call find_in_path,pocc),) + HB_COMPILER := pocc + else + ifneq ($(call find_in_path,xcc),) + HB_COMPILER := xcc + else + ifneq ($(call find_in_path,x86_64-w64-mingw32-gcc),) + HB_COMPILER := mingw64 + export HB_CCPREFIX := x86_64-w64-mingw32- + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + endif + else + ifeq ($(HB_ARCHITECTURE),linux) + ifneq ($(call find_in_path,wpp386),) + HB_COMPILER := watcom + else + ifneq ($(call find_in_path,gcc),) + HB_COMPILER := gcc + endif + endif + else + ifeq ($(HB_ARCHITECTURE),sunos) + ifneq ($(call find_in_path,cc),) + HB_COMPILER := sunpro + else + ifneq ($(call find_in_path,gcc),) + HB_COMPILER := gcc + endif + endif + else + ifeq ($(HB_ARCHITECTURE),dos) + ifneq ($(call find_in_path,gcc),) + HB_COMPILER := djgpp + else + ifneq ($(call find_in_path,wpp386),) + HB_COMPILER := watcom + endif + endif + else + ifeq ($(HB_ARCHITECTURE),os2) + ifneq ($(call find_in_path,gcc),) + HB_COMPILER := gcc + else + ifneq ($(call find_in_path,wpp386),) + HB_COMPILER := watcom + endif + endif + else + # add other platforms here + endif + endif + endif + endif + endif + $(info Autodetected HB_COMPILER: $(HB_COMPILER)) + export HB_COMPILER +endif + +GRANDP = ../../../ +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) + # TODO: Set this in /.cf HB_CPU := ifeq ($(HB_ARCHITECTURE),win) @@ -247,12 +369,6 @@ else HB_UNIX_COMPATIBLE := yes endif -ifneq ($(findstring $(HB_HOST_ARCH),win wce dos os2),) - HB_HOST_BIN_EXT := .exe -else - HB_HOST_BIN_EXT := -endif - ifeq ($(HB_BUILD_VERBOSE),yes) ifeq ($(ok),) $(info Detected host executable extension: $(HB_HOST_BIN_EXT)) @@ -373,7 +489,7 @@ ifneq ($(HB_DB_DRVEXT),) endif ifeq ($(HB_UNIX_COMPATIBLE),no) - LIBPOSTFIX := $(DIRSEP)$(HB_ARCHITECTURE)$(DIRSEP)$(HB_COMPILER) + LIBPOSTFIX := $(DIRSEP)$(subst /,$(DIRSEP),$(ARCH_COMP)) endif ifeq ($(HB_BIN_INSTALL),) diff --git a/harbour/config/header.cf b/harbour/config/header.cf index 1ab1ea02c8..8b102318a9 100644 --- a/harbour/config/header.cf +++ b/harbour/config/header.cf @@ -2,11 +2,11 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf + ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -include $(TOP)$(ROOT)config/global.cf - ALL_HEADERS = $(C_HEADERS) $(PRG_HEADERS) $(API_HEADERS) first:: diff --git a/harbour/config/lib.cf b/harbour/config/lib.cf index 4a50d2cbc9..02280b5849 100644 --- a/harbour/config/lib.cf +++ b/harbour/config/lib.cf @@ -2,15 +2,16 @@ # $Id$ # +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 := $(LIB_ARCH_DIR)/$(HB_COMPILER) +LIB_DIR := $(TOP)$(ROOT)lib/$(ARCH_COMP) -include $(TOP)$(ROOT)config/global.cf include $(TOP)$(ROOT)config/c.cf include $(TOP)$(ROOT)config/prg.cf @@ -19,7 +20,7 @@ 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) + EXE_ARCH_DIR := $(TOP)$(ROOT)bin/$(HB_ARCHITECTURE) endif EXE_DIR := $(TOP)$(ROOT)bin/$(ARCH_COMP) diff --git a/harbour/config/none.cf b/harbour/config/none.cf index f68491c595..579ffd8777 100644 --- a/harbour/config/none.cf +++ b/harbour/config/none.cf @@ -2,11 +2,11 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf + ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -include $(TOP)$(ROOT)config/global.cf - ifneq ($(LIBNAME),) DIR_RULE := @$(CMDPREF)echo "The '$(LIBNAME)' library ignored." else diff --git a/harbour/config/os2-mkdir.exe b/harbour/config/os2-mkdir.exe new file mode 100644 index 0000000000000000000000000000000000000000..fd14ae0b72824f079c7780ecb13b2a2dad132695 GIT binary patch literal 18145 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 literal 0 HcmV?d00001 diff --git a/harbour/config/rules.cf b/harbour/config/rules.cf index 9b6a9c5fd3..4e1815aeaf 100644 --- a/harbour/config/rules.cf +++ b/harbour/config/rules.cf @@ -42,37 +42,26 @@ ifeq ($(LD_RULE),) LD_RULE = $(LD) $(CFLAGS) $(LD_OUT)$(subst /,$(DIRSEP),$(EXE_DIR)/$@) $(^F) $(LDFLAGS) $(HB_USER_LDFLAGS) $(LINKLIBS) endif - # Eliminate these rules. - %.c : %.y %.c : %.l -# Location of source C files -# Some DOS compilers doesn't like '/' in filenames - however the MAKE system -# requires '/' in filenames - this trick allows to solve this conflict -SOURCE_DIR := $($(HB_ARCHITECTURE)_$(HB_COMPILER)_GRANDP) -ifeq ($(SOURCE_DIR),) -SOURCE_DIR = $(GRANDP) -endif - # Rule to generate an object file from a C source file in the parent. -%$(OBJ_EXT) : $(SOURCE_DIR)%.c +%$(OBJ_EXT) : $(GRANDP)%.c $(CC_RULE) # Rule to generate an object file from a C source file. %$(OBJ_EXT) : %.c $(CC_RULE) -#rules for CPP files -%$(OBJ_EXT) : $(SOURCE_DIR)%.cpp +# Rules for CPP files +%$(OBJ_EXT) : $(GRANDP)%.cpp $(CPP_RULE) %$(OBJ_EXT) : %.cpp $(CPP_RULE) - # Rule to generate an executable file from an object file. %$(EXE_EXT) : %$(OBJ_EXT) $(LD_RULE) diff --git a/harbour/config/test.cf b/harbour/config/test.cf index 679ef6b90d..0dc42ace61 100644 --- a/harbour/config/test.cf +++ b/harbour/config/test.cf @@ -2,10 +2,11 @@ # $Id$ # +include $(TOP)$(ROOT)config/global.cf + ifneq ($(HB_ARCHITECTURE),) ifneq ($(HB_COMPILER),) -include $(TOP)$(ROOT)config/global.cf include $(TOP)$(ROOT)config/prg.cf first:: dirbase ^^^d^e^s^c^e^n^d^^^ diff --git a/harbour/examples/superlib/superlib.dif b/harbour/examples/superlib/superlib.dif index deceb88465..23cf74e6ad 100644 --- a/harbour/examples/superlib/superlib.dif +++ b/harbour/examples/superlib/superlib.dif @@ -1,15 +1,20 @@ diff -u superori/between.c superpat/between.c --- superori/between.c 1993-08-19 10:28:38.000000000 +0200 -+++ superpat/between.c 2009-06-18 07:36:43.000000000 +0200 -@@ -14,7 +14,7 @@ ++++ superpat/between.c 2009-08-01 11:37:11.000000000 +0200 +@@ -14,10 +14,10 @@ #include "extend.h" -CLIPPER takeout() +HB_FUNC( TAKEOUT ) { - char *string; - char *delim; +- char *string; +- char *delim; ++ const char *string; ++ const char *delim; + char *result; + char *empty = 0; + @@ -63,7 +63,7 @@ if (strend >= strstart && (fnd)) { @@ -168,16 +173,19 @@ diff -u superori/mline.c superpat/mline.c } diff -u superori/nextls.c superpat/nextls.c --- superori/nextls.c 1993-09-27 09:42:08.000000000 +0100 -+++ superpat/nextls.c 2009-06-18 07:36:11.000000000 +0200 -@@ -2,7 +2,7 @@ ++++ superpat/nextls.c 2009-08-01 11:37:43.000000000 +0200 +@@ -2,9 +2,9 @@ /*ÄÄÄÄÄÄÄÄÄÄget next line, return nil if noneÄÄÄÄÄÄÄÄÄÄÄÄ*/ -CLIPPER nextls() +HB_FUNC( NEXTLS ) { - char *string = _parc(1); +- char *string = _parc(1); ++ const char *string = _parc(1); unsigned int strlen = _parclen(1); + int offset = _parni(2); + char a141 = 141; diff -u superori/r_hcode.prg superpat/r_hcode.prg --- superori/r_hcode.prg 1993-10-08 11:30:40.000000000 +0100 +++ superpat/r_hcode.prg 2009-06-10 08:44:26.000000000 +0200 @@ -1212,16 +1220,19 @@ diff -u superori/s_scmod.prg superpat/s_scmod.prg if cTempFile==cAlias diff -u superori/s_scrbuf.c superpat/s_scrbuf.c --- superori/s_scrbuf.c 1992-11-02 17:15:40.000000000 +0100 -+++ superpat/s_scrbuf.c 2009-06-18 07:35:03.000000000 +0200 -@@ -1,7 +1,7 @@ ++++ superpat/s_scrbuf.c 2009-08-01 11:38:22.000000000 +0200 +@@ -1,9 +1,9 @@ #include "extend.h" -CLIPPER getscrow() +HB_FUNC( GETSCROW ) { - char *inscreenstring; /* saved screen */ +- char *inscreenstring; /* saved screen */ ++ const char *inscreenstring; /* saved screen */ char *ret_scr; + + int top,left,bottom,right,i; @@ -20,7 +20,7 @@ getrow = _parni(6)-1; top = top*80; @@ -1231,15 +1242,18 @@ diff -u superori/s_scrbuf.c superpat/s_scrbuf.c for(i=getrow*cols*2; i< (getrow+1)*cols*2;i++) ret_scr[count++] = inscreenstring[i]; -@@ -28,7 +28,7 @@ +@@ -28,9 +28,9 @@ _xfree(ret_scr); } -CLIPPER getsccol() +HB_FUNC( GETSCCOL ) { - char *inscreenstring; /* saved screen */ +- char *inscreenstring; /* saved screen */ ++ const char *inscreenstring; /* saved screen */ char *ret_scr; + + int top,left,bottom,right,i; @@ -47,7 +47,7 @@ rows = bottom-top+1; getcol = _parni(6)-1; @@ -1249,15 +1263,20 @@ diff -u superori/s_scrbuf.c superpat/s_scrbuf.c lastcol = (cols*(rows-1)+(getcol)+1)*2 ; for(i=getcol*2; i< lastcol ;i+=(cols*2)) -@@ -60,7 +60,7 @@ +@@ -60,10 +60,10 @@ } -CLIPPER ssprinkle() +HB_FUNC( SSPRINKLE ) { - char *oldscreen; /* saved screen */ - char *newscreen; +- char *oldscreen; /* saved screen */ +- char *newscreen; ++ const char *oldscreen; /* saved screen */ ++ const char *newscreen; + char *outscreen; + + int every,scrlen,i,columns,attpos,charpos; @@ -74,7 +74,7 @@ every = _parni(3); scrlen = _parclen(1); diff --git a/harbour/make_gnu.bat b/harbour/make_gnu.bat index 07bf522eb2..54986e6d72 100644 --- a/harbour/make_gnu.bat +++ b/harbour/make_gnu.bat @@ -39,6 +39,8 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp if not "%OS%" == "Windows_NT" goto HELP rem Order is significant + call :COMP_DET_ONE arm-wince-mingw32ce-gcc.exe mingwarm wce arm-wince-mingw32ce- + call :COMP_DET_ONE arm-mingw32ce-gcc.exe mingwarm wce arm-mingw32ce- call :COMP_DET_ONE cygstart.exe cygwin win call :COMP_DET_ONE gcc.exe mingw win call :COMP_DET_ONE wpp386.exe watcom win @@ -49,8 +51,6 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp call :COMP_DET_ONE pocc.exe pocc win call :COMP_DET_ONE xcc.exe xcc win call :COMP_DET_ONE x86_64-w64-mingw32-gcc.exe mingw64 win x86_64-w64-mingw32- - call :COMP_DET_ONE arm-wince-mingw32ce-gcc.exe mingwarm wce arm-wince-mingw32ce- - call :COMP_DET_ONE arm-mingw32ce-gcc.exe mingwarm wce arm-mingw32ce- if "%HB_COMPILER%" == "" ( echo HB_COMPILER couldn't be automatically determined. && goto HELP ) diff --git a/harbour/source/rtl/hbinet.c b/harbour/source/rtl/hbinet.c index 138055d4dc..8310132dfe 100644 --- a/harbour/source/rtl/hbinet.c +++ b/harbour/source/rtl/hbinet.c @@ -317,7 +317,8 @@ HB_FUNC( HB_INETERRORDESC ) case HB_INET_ERR_CLOSEDCONN : hb_retc_const( "Connection closed" ); return; case HB_INET_ERR_CLOSEDSOCKET : hb_retc_const( "Closed socket" ); return; case HB_INET_ERR_BUFFOVERRUN : hb_retc_const( "Buffer overrun" ); return; - default: hb_retc_const( hb_socketErrorStr( socket->iErrorCode ) ); + default: + hb_retc( hb_socketErrorStr( socket->iErrorCode ) ); } } else