From 93e1f182c4ff4caa6b7f80188300eacf2485fff3 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 3 Feb 2011 08:20:28 +0000 Subject: [PATCH] 2011-02-03 09:18 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * include/hbthread.h * include/hbdefs.h * include/hbsetup.h * include/hbatomic.h * include/hbfloat.h * src/vm/task.c * src/common/hbgete.c * src/common/hbver.c * src/common/hbprintf.c * src/rtl/gtcrs/gtcrs.h * src/rtl/hbsocket.c * utils/hbmk2/hbmk2.prg * config/detplat.mk * config/global.mk * config/detect.mk + config/minix + config/minix/libs.mk + config/minix/gcc.mk + config/minix/ack.mk + config/minix/global.mk + Added Harbour port for minix 3 operating system. ; Created by Tamas Tevesz. Many thanks! --- harbour/ChangeLog | 24 ++++++++++++++++ harbour/config/detect.mk | 4 +-- harbour/config/detplat.mk | 4 +++ harbour/config/global.mk | 15 ++++++++++ harbour/config/minix/ack.mk | 46 ++++++++++++++++++++++++++++++ harbour/config/minix/gcc.mk | 51 ++++++++++++++++++++++++++++++++++ harbour/config/minix/global.mk | 19 +++++++++++++ harbour/config/minix/libs.mk | 31 +++++++++++++++++++++ harbour/include/hbatomic.h | 2 +- harbour/include/hbdefs.h | 2 +- harbour/include/hbfloat.h | 4 +-- harbour/include/hbsetup.h | 9 +++++- harbour/include/hbthread.h | 2 +- harbour/src/common/hbgete.c | 2 +- harbour/src/common/hbprintf.c | 4 +-- harbour/src/common/hbver.c | 10 +++++++ harbour/src/rtl/gtcrs/gtcrs.h | 4 +-- harbour/src/rtl/hbsocket.c | 14 +++++++++- harbour/src/vm/task.c | 2 +- harbour/utils/hbmk2/hbmk2.prg | 21 +++++++++++--- 20 files changed, 251 insertions(+), 19 deletions(-) create mode 100644 harbour/config/minix/ack.mk create mode 100644 harbour/config/minix/gcc.mk create mode 100644 harbour/config/minix/global.mk create mode 100644 harbour/config/minix/libs.mk diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6a8f06276c..8917cf6d83 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,30 @@ The license applies to all entries newer than 2009-04-28. */ +2011-02-03 09:18 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * include/hbthread.h + * include/hbdefs.h + * include/hbsetup.h + * include/hbatomic.h + * include/hbfloat.h + * src/vm/task.c + * src/common/hbgete.c + * src/common/hbver.c + * src/common/hbprintf.c + * src/rtl/gtcrs/gtcrs.h + * src/rtl/hbsocket.c + * utils/hbmk2/hbmk2.prg + * config/detplat.mk + * config/global.mk + * config/detect.mk + + config/minix + + config/minix/libs.mk + + config/minix/gcc.mk + + config/minix/ack.mk + + config/minix/global.mk + + Added Harbour port for minix 3 operating system. + ; Created by Tamas Tevesz. Many thanks! + 2011-02-02 22:21 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) - examples/hbextern - Deleted hbextern generator tool. Long time not used and diff --git a/harbour/config/detect.mk b/harbour/config/detect.mk index aedea28fc1..883cf4cb0a 100644 --- a/harbour/config/detect.mk +++ b/harbour/config/detect.mk @@ -101,7 +101,7 @@ include $(TOP)$(ROOT)config/detfun.mk _DET_DSP_NAME := curses _DET_VAR_INC_ := HB_INC_CURSES _DET_VAR_HAS_ := HB_HAS_CURSES -_DET_FLT_PLAT := !os2 +_DET_FLT_PLAT := !os2 !minix _DET_FLT_COMP := _DET_INC_DEFP := /usr/include /usr/include/ncurses /usr/local/include /sw/include /opt/local/include /boot/develop/headers/3rdparty _DET_INC_HEAD := /curses.h @@ -119,7 +119,7 @@ _DET_VAR_INC_ := HB_INC_X11 _DET_VAR_HAS_ := HB_HAS_X11 _DET_FLT_PLAT := _DET_FLT_COMP := -_DET_INC_DEFP := /usr/include /usr/local/include /usr/X11R6/include /usr/pkg/include +_DET_INC_DEFP := /usr/include /usr/local/include /usr/X11R6/include /usr/pkg/include /usr/pkg/X11R6/include _DET_INC_HEAD := /X11/Xlib.h include $(TOP)$(ROOT)config/detfun.mk diff --git a/harbour/config/detplat.mk b/harbour/config/detplat.mk index 235f4c946a..7dcc083f4f 100644 --- a/harbour/config/detplat.mk +++ b/harbour/config/detplat.mk @@ -69,6 +69,10 @@ ifneq ($(findstring Haiku,$(_DETPLAT_STR)),) endif ifneq ($(findstring QNX,$(_DETPLAT_STR)),) HB_HOST_PLAT := qnx +else +ifneq ($(findstring Minix,$(_DETPLAT_STR)),) + HB_HOST_PLAT := minix +endif endif endif endif diff --git a/harbour/config/global.mk b/harbour/config/global.mk index fd3a275502..dc133edecf 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -1048,6 +1048,18 @@ ifeq ($(HB_COMPILER),) HB_COMPILER := watcom endif endif + else + ifeq ($(HB_PLATFORM),minix) + HB_COMP_PATH := $(call find_in_path,gcc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := gcc + else + HB_COMP_PATH := $(call find_in_path,cc) + ifneq ($(HB_COMP_PATH),) + HB_COMPILER := ack + endif + endif + endif endif endif endif @@ -1378,6 +1390,9 @@ ifneq ($(HB_HOST_PLAT)$(HB_HOST_CPU),$(HB_PLATFORM)$(HB_CPU)) else ifeq ($(HB_PLATFORM),cygwin) HB_PRGFLAGS += -D__PLATFORM__CYGWIN -D__PLATFORM__UNIX + ifeq ($(HB_PLATFORM),minix) + HB_PRGFLAGS += -D__PLATFORM__MINIX -D__PLATFORM__UNIX + endif endif endif endif diff --git a/harbour/config/minix/ack.mk b/harbour/config/minix/ack.mk new file mode 100644 index 0000000000..c4bdbb1ce3 --- /dev/null +++ b/harbour/config/minix/ack.mk @@ -0,0 +1,46 @@ +# +# $Id$ +# + +## XXX: completely untested + +ifeq ($(HB_BUILD_MODE),cpp) + $(error ! C++ mode is not yet supported on $(HB_PLATFORM) with $(HB_COMPILER)) + HB_CMP := CC +else + HB_CMP := cc +endif + +HB_BUILD_SHARED := no +HB_BUILD_DYN := no + +OBJ_EXT := .o +LIB_PREF := lib +LIB_EXT := .a + +CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) +CC_IN := -c +CC_OUT := -o + +CFLAGS += -D_MINIX=1 -D_POSIX_SOURCE=1 -I. -I$(HB_HOST_INC) + +ifeq ($(HB_BUILD_OPTIM),no) + CFLAGS += -O0 +endif + +ifeq ($(HB_BUILD_DEBUG),yes) + CFLAGS += -g +endif + +LD := $(CC) +LD_OUT := -o + +LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) + +LDFLAGS += $(LIBPATHS) + +AR := $(HB_CCPREFIX)ar +AR_RULE = ( $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) $(ARSTRIP) ) || ( $(RM) $(LIB_DIR)/$@ && $(FALSE) ) + +include $(TOP)$(ROOT)config/rules.mk diff --git a/harbour/config/minix/gcc.mk b/harbour/config/minix/gcc.mk new file mode 100644 index 0000000000..fe462fb8e7 --- /dev/null +++ b/harbour/config/minix/gcc.mk @@ -0,0 +1,51 @@ +# +# $Id$ +# + +ifeq ($(HB_CMP),) + ifeq ($(HB_BUILD_MODE),cpp) + HB_CMP := g++ + else + HB_CMP := gcc + endif +endif + +HB_BUILD_SHARED := no +HB_BUILD_DYN := no + +OBJ_EXT := .o +LIB_PREF := lib +LIB_EXT := .a + +CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX) +CC_IN := -c +CC_OUT := -o + +CFLAGS += -D_MINIX=1 -D_POSIX_SOURCE=1 -I. -I$(HB_HOST_INC) + +ifneq ($(HB_BUILD_WARN),no) + CFLAGS += -W -Wall +else + CFLAGS += -Wimplicit-int -Wimplicit-function-declaration -Wmissing-braces -Wreturn-type -Wformat +endif + +ifneq ($(HB_BUILD_OPTIM),no) + CFLAGS += -O3 +endif + +ifeq ($(HB_BUILD_DEBUG),yes) + CFLAGS += -g +endif + +LD := $(CC) +LD_OUT := -o + +LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir)) +LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) + +LDFLAGS += $(LIBPATHS) + +AR := $(HB_CCPREFIX)ar +AR_RULE = ( $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) $(ARSTRIP) ) || ( $(RM) $(LIB_DIR)/$@ && $(FALSE) ) + +include $(TOP)$(ROOT)config/rules.mk diff --git a/harbour/config/minix/global.mk b/harbour/config/minix/global.mk new file mode 100644 index 0000000000..87c4385d34 --- /dev/null +++ b/harbour/config/minix/global.mk @@ -0,0 +1,19 @@ +# +# $Id$ +# + +all : first + +BIN_EXT := +DYN_EXT := .so +DYN_PREF := lib + +HB_GT_LIBS += gttrm + +ifneq ($(filter $(HB_BUILD_STRIP),all lib),) + ARSTRIP = && strip -S $(LIB_DIR)/$@ +endif +ifneq ($(filter $(HB_BUILD_STRIP),all bin),) + LDSTRIP := -s + DYSTRIP := -s +endif diff --git a/harbour/config/minix/libs.mk b/harbour/config/minix/libs.mk new file mode 100644 index 0000000000..866f71135f --- /dev/null +++ b/harbour/config/minix/libs.mk @@ -0,0 +1,31 @@ +# +# $Id$ +# + +SYSLIBPATHS := /usr/lib /usr/pkg/lib + +ifneq ($(HB_LINKING_RTL),) + ifeq ($(HB_LIBNAME_CURSES),) + HB_LIBNAME_CURSES := ncurses + endif + ifneq ($(HB_HAS_CURSES),) + SYSLIBS += $(HB_LIBNAME_CURSES) + endif + ifneq ($(HB_HAS_SLANG),) + SYSLIBS += slang + endif + ifneq ($(HB_HAS_X11),) + SYSLIBS += X11 + SYSLIBPATHS += /usr/pkg/X11R6/lib + endif + ifneq ($(HB_HAS_PCRE),) + ifeq ($(HB_HAS_PCRE_LOCAL),) + SYSLIBS += pcre + endif + endif + ifeq ($(HB_HAS_ZLIB_LOCAL),) + SYSLIBS += z + endif +endif + +SYSLIBS += m diff --git a/harbour/include/hbatomic.h b/harbour/include/hbatomic.h index 617e3ce089..019e71256a 100644 --- a/harbour/include/hbatomic.h +++ b/harbour/include/hbatomic.h @@ -65,7 +65,7 @@ #if defined( __SVR4 ) # include #endif -#if defined( HB_OS_UNIX ) && !defined( __WATCOMC__ ) +#if defined( HB_OS_UNIX ) && !( defined( __WATCOMC__ ) || defined( HB_OS_MINIX ) ) # include #endif diff --git a/harbour/include/hbdefs.h b/harbour/include/hbdefs.h index e47c0a6812..8160d72dd8 100644 --- a/harbour/include/hbdefs.h +++ b/harbour/include/hbdefs.h @@ -75,7 +75,7 @@ defined( HB_OS_LINUX ) || defined( HB_OS_DARWIN ) || \ defined( HB_OS_BSD ) || defined( HB_OS_SUNOS ) || \ defined( HB_OS_BEOS ) || defined( HB_OS_QNX ) || \ - defined( HB_OS_VXWORKS ) ) ) + defined( HB_OS_VXWORKS ) || defined( HB_OS_MINIX ) ) ) #include /* NOTE: Hack to avoid collision between stdint.h and unistd.h. [vszakats] */ # if defined( HB_OS_VXWORKS ) && defined( _INTPTR ) && !defined( _INTPTR_T ) diff --git a/harbour/include/hbfloat.h b/harbour/include/hbfloat.h index 05d35d5a66..602d6e7971 100644 --- a/harbour/include/hbfloat.h +++ b/harbour/include/hbfloat.h @@ -75,7 +75,7 @@ /* _LIB_VERSION_TYPE _LIB_VERSION = _XOPEN_; */ #else # include -# if defined( __BORLANDC__ ) || defined( __WATCOMC__ ) || defined( _MSC_VER ) +# if defined( __BORLANDC__ ) || defined( __WATCOMC__ ) || defined( _MSC_VER ) || defined( HB_OS_MINIX ) # include # elif defined( HB_OS_SUNOS ) # include /* for finite() */ @@ -193,7 +193,7 @@ # if defined( __RSXNT__ ) || defined( __EMX__ ) || \ defined( __XCC__ ) || defined( __POCC__ ) || \ - defined( __MINGW32__ ) || defined( HB_OS_HPUX ) + defined( __MINGW32__ ) || defined( HB_OS_HPUX ) || defined( HB_OS_MINIX ) # define hb_isfinite( d ) isfinite( d ) # elif defined( _MSC_VER ) # define hb_isfinite( d ) _finite( ( double ) d ) diff --git a/harbour/include/hbsetup.h b/harbour/include/hbsetup.h index 75c62c737d..c443e4507c 100644 --- a/harbour/include/hbsetup.h +++ b/harbour/include/hbsetup.h @@ -416,6 +416,12 @@ #endif #endif +#ifndef HB_OS_MINIX + #if defined( __minix ) + #define HB_OS_MINIX + #endif +#endif + #ifndef HB_OS_UNIX #if defined( HB_OS_LINUX ) || \ defined( HB_OS_DARWIN ) || \ @@ -426,7 +432,8 @@ defined( HB_OS_VXWORKS ) || \ defined( HB_OS_BEOS ) || \ defined( HB_OS_SYMBIAN ) || \ - defined( HB_OS_CYGWIN ) + defined( HB_OS_CYGWIN ) || \ + defined( HB_OS_MINIX ) #define HB_OS_UNIX #endif #endif diff --git a/harbour/include/hbthread.h b/harbour/include/hbthread.h index 6bffff515d..a7fb84a209 100644 --- a/harbour/include/hbthread.h +++ b/harbour/include/hbthread.h @@ -59,7 +59,7 @@ #if defined( HB_TASK_THREAD ) /* Harbour tasks explicitly requested */ #elif ( defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) ) || \ - defined( HB_OS_DOS ) + defined( HB_OS_DOS ) || defined( HB_OS_MINIX ) # define HB_TASK_THREAD #elif defined( HB_OS_LINUX ) || defined( HB_OS_DARWIN ) || \ defined( HB_OS_SUNOS ) || defined( HB_OS_HPUX ) || \ diff --git a/harbour/src/common/hbgete.c b/harbour/src/common/hbgete.c index be65a001bb..56ffca8ffe 100644 --- a/harbour/src/common/hbgete.c +++ b/harbour/src/common/hbgete.c @@ -217,7 +217,7 @@ HB_BOOL hb_setenv( const char * szName, const char * szValue ) defined( HB_OS_SUNOS ) || defined( HB_OS_BSD ) || \ defined( HB_OS_DARWIN ) || defined( HB_OS_BEOS ) || \ defined( HB_OS_QNX ) || defined( HB_OS_VXWORKS ) || \ - defined( HB_OS_CYGWIN ) + defined( HB_OS_CYGWIN ) || defined( HB_OS_MINIX ) if( szValue ) return setenv( szName, szValue, 1 ) == 0; diff --git a/harbour/src/common/hbprintf.c b/harbour/src/common/hbprintf.c index f17306ba8d..60ce7ef870 100644 --- a/harbour/src/common/hbprintf.c +++ b/harbour/src/common/hbprintf.c @@ -113,7 +113,7 @@ optimized. #if ( defined( __BORLANDC__ ) && __BORLANDC__ < 1410 ) || \ ( defined( __WATCOMC__ ) && __WATCOMC__ < 1270 ) || \ defined( HB_OS_QNX ) || defined( HB_OS_SYMBIAN ) || \ - defined( __DCC__ ) || \ + defined( __DCC__ ) || defined( __ACK__ ) || \ ( defined( __DJGPP__ ) && \ ( __DJGPP__ < 2 || ( __DJGPP__ == 2 && __DJGPP_MINOR__ <= 3 ) ) ) || \ ( defined( _MSC_VER ) && \ @@ -166,7 +166,7 @@ optimized. # if defined( __WATCOMC__ ) || defined( __MINGW32CE__ ) || defined( HB_OS_CYGWIN ) || \ defined( HB_OS_BEOS ) || defined( HB_OS_IPHONE ) || defined( HB_OS_SYMBIAN ) || \ defined( __OpenBSD__ ) || defined( __NetBSD__ ) || defined( __DragonFly__ ) || \ - ( defined( HB_OS_WIN_CE ) && defined( __POCC__ ) ) + ( defined( HB_OS_WIN_CE ) && defined( __POCC__ ) ) || defined( HB_OS_MINIX ) # define _HB_WRAP_MODFL_ # define _MODFD( x, p ) _hb_modfl( x, p ) # else diff --git a/harbour/src/common/hbver.c b/harbour/src/common/hbver.c index d4b1af93a8..bcf573cdc1 100644 --- a/harbour/src/common/hbver.c +++ b/harbour/src/common/hbver.c @@ -451,7 +451,12 @@ char * hb_verPlatform( void ) struct utsname un; uname( &un ); +#if defined( HB_OS_MINIX ) + hb_snprintf( pszPlatform, PLATFORM_BUF_SIZE + 1, "%s Release %s Version %s %s", + un.sysname, un.release, un.version, un.machine ); +#else hb_snprintf( pszPlatform, PLATFORM_BUF_SIZE + 1, "%s %s %s", un.sysname, un.release, un.machine ); +#endif } #else @@ -933,6 +938,11 @@ char * hb_verCompiler( void ) iVerPatch = __SUNPRO_CC & 0xf; #endif +#elif defined( __ACK__ ) + + pszName = "Amsterdam Compiler Kit"; + iVerMajor = iVerMinor = iVerPatch = iVerMicro = 0; + #else pszName = ( char * ) NULL; diff --git a/harbour/src/rtl/gtcrs/gtcrs.h b/harbour/src/rtl/gtcrs/gtcrs.h index 6dc8ace53b..0f471c9e6b 100644 --- a/harbour/src/rtl/gtcrs/gtcrs.h +++ b/harbour/src/rtl/gtcrs/gtcrs.h @@ -89,7 +89,7 @@ #include #include #include -#if ( defined( HB_OS_LINUX ) || defined( HB_OS_BSD ) ) && !defined( __WATCOMC__ ) +#if ( defined( HB_OS_LINUX ) || defined( HB_OS_BSD ) || defined( HB_OS_MINIX )) && !defined( __WATCOMC__ ) # if defined( HB_OS_LINUX ) # include /* for openpty and forkpty */ # elif defined( HB_OS_DARWIN ) || defined( __NetBSD__ ) || defined( __OpenBSD__ ) @@ -99,7 +99,7 @@ # define tigetnum(id) tgetnum(id) # define tigetstr(id) tgetstr(id, NULL) # endif -# elif defined( HB_OS_BSD ) +# elif defined( HB_OS_BSD ) || defined( HB_OS_MINIX ) # include /* for openpty and forkpty */ # endif # include /* for login_tty */ diff --git a/harbour/src/rtl/hbsocket.c b/harbour/src/rtl/hbsocket.c index fe2458f392..95ed9a9b9b 100644 --- a/harbour/src/rtl/hbsocket.c +++ b/harbour/src/rtl/hbsocket.c @@ -123,7 +123,7 @@ # define HB_HAS_SOCKADDR_STORAGE # define HB_HAS_ADDRINFO # endif -# if !defined( __WATCOMC__ ) && !defined( HB_OS_BEOS ) +# if !defined( __WATCOMC__ ) && !defined( HB_OS_BEOS ) && !defined( HB_OS_MINIX ) # define HB_HAS_INET6 # if !defined( HB_OS_VXWORKS ) # define HB_HAS_INET6_ADDR_CONST @@ -1074,9 +1074,11 @@ static void hb_socketSetOsError( int err ) case ENOTCONN: uiErr = HB_SOCKET_ERR_NOTCONN; break; +#if defined( ECONNABORTED ) case ECONNABORTED: uiErr = HB_SOCKET_ERR_CONNABORTED; break; +#endif case ECONNRESET: uiErr = HB_SOCKET_ERR_CONNRESET; break; @@ -1089,9 +1091,11 @@ static void hb_socketSetOsError( int err ) case ENETDOWN: uiErr = HB_SOCKET_ERR_NETDOWN; break; +#if defined( ENETRESET ) case ENETRESET: uiErr = HB_SOCKET_ERR_NETRESET; break; +#endif case EINPROGRESS: uiErr = HB_SOCKET_ERR_INPROGRESS; break; @@ -1192,9 +1196,11 @@ static void hb_socketSetOsError( int err ) uiErr = HB_SOCKET_ERR_TOOMANYREFS; break; #endif +#if defined( EHOSTDOWN ) case EHOSTDOWN: uiErr = HB_SOCKET_ERR_HOSTDOWN; break; +#endif case EHOSTUNREACH: uiErr = HB_SOCKET_ERR_HOSTUNREACH; break; @@ -1206,9 +1212,11 @@ static void hb_socketSetOsError( int err ) uiErr = HB_SOCKET_ERR_USERS; break; #endif +#if defined( EDQUOT ) case EDQUOT: uiErr = HB_SOCKET_ERR_DQUOT; break; +#endif #if defined( ESTALE ) case ESTALE: uiErr = HB_SOCKET_ERR_STALE; @@ -2500,10 +2508,14 @@ int hb_socketSetKeepAlive( HB_SOCKET sd, HB_BOOL fKeepAlive ) int hb_socketSetBroadcast( HB_SOCKET sd, HB_BOOL fBroadcast ) { +#if defined( SO_BROADCAST ) int val = fBroadcast ? 1 : 0, ret; ret = setsockopt( sd, SOL_SOCKET, SO_BROADCAST, ( const char * ) &val, sizeof( val ) ); hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() ); return ret; +#else + return ENOTSUP; +#endif } int hb_socketSetSndBufSize( HB_SOCKET sd, int iSize ) diff --git a/harbour/src/vm/task.c b/harbour/src/vm/task.c index acb0099b47..862a63de0e 100644 --- a/harbour/src/vm/task.c +++ b/harbour/src/vm/task.c @@ -74,7 +74,7 @@ #endif #if !defined( HB_HAS_UCONTEXT ) -# if defined( HB_OS_LINUX ) && !defined( __WATCOMC__ ) +# if ( defined( HB_OS_LINUX ) && !defined( __WATCOMC__ ) ) || defined( HB_OS_MINIX ) # define HB_HAS_UCONTEXT # endif #endif diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 13d32a5975..14fb38cbdb 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -1294,7 +1294,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) cBin_CompPRG := "harbour" + l_cHBPOSTFIX DO CASE - CASE HBMK_ISPLAT( "darwin|bsd|hpux|sunos|beos|qnx|vxworks|symbian|linux|cygwin" ) + CASE HBMK_ISPLAT( "darwin|bsd|hpux|sunos|beos|qnx|vxworks|symbian|linux|cygwin|minix" ) DO CASE CASE hbmk[ _HBMK_cPLAT ] == "linux" aCOMPSUP := { "gcc", "clang", "icc", "watcom", "sunpro", "open64" } @@ -1308,6 +1308,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) aCOMPSUP := { "gcc", "diab" } CASE hbmk[ _HBMK_cPLAT ] == "aix" aCOMPSUP := { "gcc", "icc" } + case hbmk[ _HBMK_cPLAT ] == "minix" + aCOMPSUP := { "gcc", "ack" } OTHERWISE aCOMPSUP := { "gcc" } ENDCASE @@ -1597,7 +1599,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF Empty( hbmk[ _HBMK_cCOMP ] ) .OR. hbmk[ _HBMK_cCOMP ] == "bld" IF Len( aCOMPSUP ) == 1 hbmk[ _HBMK_cCOMP ] := aCOMPSUP[ 1 ] - ELSEIF HBMK_ISPLAT( "darwin|bsd|hpux|sunos|beos|qnx|vxworks|linux|cygwin" ) .OR. ; + ELSEIF HBMK_ISPLAT( "darwin|bsd|hpux|sunos|beos|qnx|vxworks|linux|cygwin|minix" ) .OR. ; hbmk[ _HBMK_cCOMP ] == "bld" hbmk[ _HBMK_cCOMP ] := hb_Version( HB_VERSION_BUILD_COMP ) IF AScan( aCOMPSUP, { |tmp | tmp == hbmk[ _HBMK_cCOMP ] } ) == 0 @@ -3133,7 +3135,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) ( hbmk[ _HBMK_cPLAT ] == "vxworks" .AND. hbmk[ _HBMK_cCOMP ] == "gcc" ) .OR. ; ( hbmk[ _HBMK_cPLAT ] == "symbian" .AND. hbmk[ _HBMK_cCOMP ] == "gcc" ) .OR. ; ( hbmk[ _HBMK_cPLAT ] == "cygwin" .AND. hbmk[ _HBMK_cCOMP ] == "gcc" ) .OR. ; - ( hbmk[ _HBMK_cPLAT ] == "linux" .AND. hbmk[ _HBMK_cCOMP ] == "open64" ) + ( hbmk[ _HBMK_cPLAT ] == "linux" .AND. hbmk[ _HBMK_cCOMP ] == "open64" ) .OR. ; + ( hbmk[ _HBMK_cPLAT ] == "minix" .AND. hbmk[ _HBMK_cCOMP ] == "gcc" ) #if defined( __PLATFORM__UNIX ) hbmk[ _HBMK_nCmd_Esc ] := _ESC_NIX @@ -3218,6 +3221,10 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) AAdd( hbmk[ _HBMK_aOPTC ], "-D_C99" ) AAdd( hbmk[ _HBMK_aOPTC ], "-D_HAS_C9X" ) ENDIF + IF hbmk[ _HBMK_cPLAT ] == "minix" + AAdd( hbmk[ _HBMK_aOPTC ], "-D_MINIX=1" ) + AAdd( hbmk[ _HBMK_aOPTC ], "-D_POSIX_SOURCE=1" ) + ENDIF cOpt_CompC += " {FC}" IF ! Empty( hbmk[ _HBMK_cWorkDir ] ) /* Symbian gcc cross-compiler (on Windows) crashes if compiling multiple files at once */ @@ -3349,7 +3356,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF ! HBMK_ISPLAT( "beos|vxworks" ) AAdd( l_aLIBSYS, "m" ) IF hbmk[ _HBMK_lMT ] - IF !( hbmk[ _HBMK_cPLAT ] == "qnx" ) + IF ! HBMK_ISPLAT( "qnx|minix" ) AAdd( l_aLIBSYS, "pthread" ) ENDIF ENDIF @@ -3371,6 +3378,9 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) AAdd( l_aLIBSYS, "network" ) CASE hbmk[ _HBMK_cPLAT ] == "qnx" AAdd( l_aLIBSYS, "socket" ) + CASE hbmk[ _HBMK_cPLAT ] == "minix" + AAddNew( hbmk[ _HBMK_aLIBPATH ], "/usr/lib" ) + AAddNew( hbmk[ _HBMK_aLIBPATH ], "/usr/pkg/lib" ) ENDCASE IF ! Empty( cLIB_BASE_PCRE ) .AND. ! hb_FileExists( _HBLIB_FULLPATH( cLIB_BASE_PCRE ) ) @@ -3408,6 +3418,9 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF hbmk[ _HBMK_cPLAT ] == "linux" .AND. hb_DirExists( "/usr/X11R6/lib64" ) AAddNew( hbmk[ _HBMK_aLIBPATH ], "/usr/X11R6/lib64" ) ENDIF + IF hbmk[ _HBMK_cPLAT ] == "minix" .AND. hb_DirExists( "/usr/pkg/X11R6/lib" ) + AAddNew( hbmk[ _HBMK_aLIBPATH ], "/usr/pkg/X11R6/lib" ) + ENDIF AAddNew( hbmk[ _HBMK_aLIBPATH ], "/usr/X11R6/lib" ) AAdd( l_aLIBSYS, "X11" ) ENDIF