From 89468ec01b015824836bca35ad5db4fc7752dce9 Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Thu, 14 Aug 2008 00:52:44 +0000 Subject: [PATCH] updated patch for cmake-2.6.1, still not complete but it's getting close to building cmake --- dev-util/cmake/cmake-2.6.1-haiku.diff | 303 ++++++++++++++++++++++++++ 1 file changed, 303 insertions(+) create mode 100644 dev-util/cmake/cmake-2.6.1-haiku.diff diff --git a/dev-util/cmake/cmake-2.6.1-haiku.diff b/dev-util/cmake/cmake-2.6.1-haiku.diff new file mode 100644 index 000000000..f29e996da --- /dev/null +++ b/dev-util/cmake/cmake-2.6.1-haiku.diff @@ -0,0 +1,303 @@ +diff -ur cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in +--- cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in 2008-08-01 15:34:50.000000000 +0000 ++++ cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in 2008-08-13 16:07:41.000000000 +0000 +@@ -50,6 +50,10 @@ + PRINT *, 'INFO:platform[IRIX]' + #elif defined(__hpux) || defined(__hpux__) + PRINT *, 'INFO:platform[HP-UX]' ++#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) ++ PRINT *, 'INFO:platform[Haiku]' ++! Haiku also defines __BEOS__ so we must ++! put it prior to the check for __BEOS__ + #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) + PRINT *, 'INFO:platform[BeOS]' + #elif defined(__QNX__) || defined(__QNXNTO__) +Only in cmake-2.6.1-haiku/Modules: CMakeFortranCompilerId.F90.in~ +diff -ur cmake-2.6.1/Modules/CMakePlatformId.h.in cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in +--- cmake-2.6.1/Modules/CMakePlatformId.h.in 2008-08-01 15:34:50.000000000 +0000 ++++ cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in 2008-08-13 16:07:41.000000000 +0000 +@@ -35,6 +35,11 @@ + #elif defined(__hpux) || defined(__hpux__) + # define PLATFORM_ID "HP-UX" + ++#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU) ++# define PLATFORM_ID "Haiku" ++! Haiku also defines __BEOS__ so we must ++! put it prior to the check for __BEOS__ ++ + #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) + # define PLATFORM_ID "BeOS" + +diff -ur cmake-2.6.1/Modules/CheckForPthreads.c cmake-2.6.1-haiku/Modules/CheckForPthreads.c +--- cmake-2.6.1/Modules/CheckForPthreads.c 2008-08-01 15:34:50.000000000 +0000 ++++ cmake-2.6.1-haiku/Modules/CheckForPthreads.c 2008-08-13 16:07:41.000000000 +0000 +@@ -16,7 +16,7 @@ + pthread_create(&tid[0], 0, runner, (void*)1); + pthread_create(&tid[1], 0, runner, (void*)2); + +-#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.) ++#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) // (no usleep on BeOS 5.) + usleep(1); // for strange behavior on single-processor sun + #endif + +Only in cmake-2.6.1-haiku/Modules/Platform: Haiku.cmake +diff -ur cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx +--- cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx 2008-08-01 15:34:53.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx 2008-08-13 16:07:41.000000000 +0000 +@@ -36,7 +36,7 @@ + #endif + + #if !defined(_WIN32) && !defined(__APPLE__) \ +- && !defined(__QNXNTO__) && !defined(__BEOS__) ++ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__) + # include "cmCPackDebGenerator.h" + # include "cmCPackRPMGenerator.h" + #endif +@@ -75,7 +75,8 @@ + cmCPackOSXX11Generator::CreateGenerator); + #endif + #if !defined(_WIN32) && !defined(__APPLE__) \ +- && !defined(__QNXNTO__) && !defined(__BEOS__) ++ && !defined(__QNXNTO__) && !defined(__BEOS__)\ ++ && !defined(__HAIKU__) + this->RegisterGenerator("DEB", "Debian packages", + cmCPackDebGenerator::CreateGenerator); + this->RegisterGenerator("RPM", "RPM packages", +Only in cmake-2.6.1-haiku/Source/CPack: cmCPackGeneratorFactory.cxx~ +diff -ur cmake-2.6.1/Source/cmCTest.cxx cmake-2.6.1-haiku/Source/cmCTest.cxx +--- cmake-2.6.1/Source/cmCTest.cxx 2008-08-01 15:34:51.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/cmCTest.cxx 2008-08-13 16:07:41.000000000 +0000 +@@ -49,10 +49,15 @@ + + #include // auto_ptr + +-#if defined(__BEOS__) ++#if defined(__BEOS__) && !defined(__HAIKU__) + #include /* disable_debugger() API. */ + #endif + ++#if defined(__HAIKU__) ++#include /* disable_debugger() API. */ ++#endif ++ ++ + #define DEBUGOUT std::cout << __LINE__ << " "; std::cout + #define DEBUGERR std::cerr << __LINE__ << " "; std::cerr + +diff -ur cmake-2.6.1/Source/kwsys/DynamicLoader.cxx cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx +--- cmake-2.6.1/Source/kwsys/DynamicLoader.cxx 2008-08-01 15:34:54.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx 2008-08-13 16:07:41.000000000 +0000 +@@ -336,7 +336,7 @@ + + // --------------------------------------------------------------- + // 4. Implementation for BeOS +-#ifdef __BEOS__ ++#if defined __BEOS__ && !defined(__HAIKU__) + #include // for strerror() + #include + #include +Only in cmake-2.6.1-haiku/Source/kwsys: DynamicLoader.cxx~ +diff -ur cmake-2.6.1/Source/kwsys/ProcessUNIX.c cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c +--- cmake-2.6.1/Source/kwsys/ProcessUNIX.c 2008-08-01 15:34:54.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c 2008-08-13 16:07:42.000000000 +0000 +@@ -75,7 +75,7 @@ + typedef int kwsysProcess_ssize_t; + #endif + +-#if defined(__BEOS__) && !defined(__ZETA__) ++#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) + /* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */ + # include + static inline void kwsysProcess_usleep(unsigned int msec) +diff -ur cmake-2.6.1/Source/kwsys/SystemTools.cxx cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx +--- cmake-2.6.1/Source/kwsys/SystemTools.cxx 2008-08-01 15:34:55.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx 2008-08-13 16:07:42.000000000 +0000 +@@ -131,7 +131,12 @@ + #define _chdir chdir + #endif + +-#if defined(__BEOS__) && !defined(__ZETA__) ++#ifdef (__HAIKU__) ++#include ++#include ++#endif ++ ++#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) + #include + #include + +diff -ur cmake-2.6.1/Source/kwsys/testProcess.c cmake-2.6.1-haiku/Source/kwsys/testProcess.c +--- cmake-2.6.1/Source/kwsys/testProcess.c 2008-08-01 15:34:55.000000000 +0000 ++++ cmake-2.6.1-haiku/Source/kwsys/testProcess.c 2008-08-13 16:07:42.000000000 +0000 +@@ -34,7 +34,7 @@ + # pragma warn -8060 /* possibly incorrect assignment */ + #endif + +-#if defined(__BEOS__) && !defined(__ZETA__) ++#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) + /* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */ + # include + static inline void testProcess_usleep(unsigned int msec) +diff -ur cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt +--- cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt 2008-08-01 15:34:55.000000000 +0000 ++++ cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt 2008-08-13 16:07:42.000000000 +0000 +@@ -53,7 +53,9 @@ + ) + SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR) + IF(NOT BEOS) # No libm on BeOS. +- SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm") ++ IF(NOT HAIKU) # libm in included in libroot on Haiku ++ SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm") ++ ENDIF(NOT HAIKU) + ENDIF(NOT BEOS) + GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO) + IF(${FOO_BAR_VAR} MATCHES "BAR") +diff -ur cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c +--- cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c 2008-08-01 15:34:57.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c 2008-08-13 16:07:42.000000000 +0000 +@@ -38,6 +38,12 @@ + # define PLATFORM_AIX_V3 + #endif + ++/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */ ++/* many BeOS workarounds are no longer needed in Haiku */ ++#if defined(__HAIKU__) && defined(__BEOS__) ++undef (__BEOS__) ++#endif ++ + #if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__) + #error "O_NONBLOCK does not work on this platform" + #endif +diff -ur cmake-2.6.1/Utilities/cmcurl/curl/curl.h cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h +--- cmake-2.6.1/Utilities/cmcurl/curl/curl.h 2008-08-01 15:34:57.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h 2008-08-13 16:07:42.000000000 +0000 +@@ -1133,7 +1133,7 @@ + } + #endif + +-#ifdef __BEOS__ ++#if defined __BEOS__ || defined __HAIKU__ + #include + #endif + +diff -ur cmake-2.6.1/Utilities/cmcurl/if2ip.c cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c +--- cmake-2.6.1/Utilities/cmcurl/if2ip.c 2008-08-01 15:34:57.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c 2008-08-13 16:07:42.000000000 +0000 +@@ -39,7 +39,7 @@ + */ + #if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN__) && \ + !defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \ +- !defined(_AMIGASF) && !defined(__minix) ++ !defined(_AMIGASF) && !defined(__minix) && !defined(__HAIKU__) + + #ifdef HAVE_SYS_SOCKET_H + #include +diff -ur cmake-2.6.1/Utilities/cmcurl/select.c cmake-2.6.1-haiku/Utilities/cmcurl/select.c +--- cmake-2.6.1/Utilities/cmcurl/select.c 2008-08-01 15:34:57.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmcurl/select.c 2008-08-13 16:07:42.000000000 +0000 +@@ -39,7 +39,7 @@ + #error "We can't compile without select() support!" + #endif + +-#ifdef __BEOS__ ++#if defined __BEOS__ && !defined __HAIKU__ + /* BeOS has FD_SET defined in socket.h */ + #include + #endif +diff -ur cmake-2.6.1/Utilities/cmcurl/setup.h cmake-2.6.1-haiku/Utilities/cmcurl/setup.h +--- cmake-2.6.1/Utilities/cmcurl/setup.h 2008-08-01 15:34:57.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmcurl/setup.h 2008-08-13 16:07:42.000000000 +0000 +@@ -264,7 +264,7 @@ + + #else /* MSDOS */ + +-#ifdef __BEOS__ ++#if defined __BEOS__ && !defined __HAIKU__ + #define sclose(x) closesocket(x) + #else /* __BEOS__ */ + #define sclose(x) close(x) +diff -ur cmake-2.6.1/Utilities/cmtar/libtar.c cmake-2.6.1-haiku/Utilities/cmtar/libtar.c +--- cmake-2.6.1/Utilities/cmtar/libtar.c 2008-08-01 15:34:58.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmtar/libtar.c 2008-08-13 16:07:42.000000000 +0000 +@@ -98,8 +98,8 @@ + { + return -1; + } +- +-#if defined(__BEOS__) && !defined(__ZETA__) /* no fchmod on BeOS...do pathname instead. */ ++/* no fchmod on BeOS...do pathname instead. */ ++#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) + if ((oflags & O_CREAT) && chmod(pathname, mode & 07777)) + { + return -1; +diff -ur cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c +--- cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-08-01 15:34:58.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-08-13 16:07:42.000000000 +0000 +@@ -10,7 +10,7 @@ + + #include "xmlrpc_config.h" + +-#if defined(__BEOS__) ++#if defined(__BEOS__) && !defined(__HAIKU__) + /* Some helpful system header has char==bool, then bool.h does int==bool. */ + #define HAVE_BOOL 1 + #endif +diff -ur cmake-2.6.1/Utilities/cmzlib/zconf.h cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h +--- cmake-2.6.1/Utilities/cmzlib/zconf.h 2008-08-01 15:34:58.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h 2008-08-13 16:07:42.000000000 +0000 +@@ -237,7 +237,7 @@ + # endif + #endif + +-#if defined (__BEOS__) ++#if defined (__BEOS__) && !defined (__HAIKU__) + # ifdef ZLIB_DLL + # ifdef ZLIB_INTERNAL + # define ZEXPORT __declspec(dllexport) +diff -ur cmake-2.6.1/Utilities/cmzlib/zutil.h cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h +--- cmake-2.6.1/Utilities/cmzlib/zutil.h 2008-08-01 15:34:59.000000000 +0000 ++++ cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h 2008-08-13 16:07:42.000000000 +0000 +@@ -147,7 +147,13 @@ + # define OS_CODE 0x0f + #endif + +-#if defined(_BEOS_) || defined(RISCOS) ++/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */ ++/* many BeOS workarounds are no longer needed in Haiku */ ++#if defined(__HAIKU__) && defined(__BEOS__) ++undef (__BEOS__) ++#endif ++ ++#if defined(_BEOS_) || defined(RISCOS) + # define fdopen(fd,mode) NULL /* No fdopen() */ + #endif + +diff -ur cmake-2.6.1/bootstrap cmake-2.6.1-haiku/bootstrap +--- cmake-2.6.1/bootstrap 2008-08-01 15:34:50.000000000 +0000 ++++ cmake-2.6.1-haiku/bootstrap 2008-08-13 16:07:42.000000000 +0000 +@@ -73,6 +73,13 @@ + cmake_system_beos=false + fi + ++# Determine whether this is Haiku ++if echo "${cmake_system}" | grep Haiku >/dev/null 2>&1; then ++ cmake_system_haiku=true ++else ++ cmake_system_haiku=false ++fi ++ + # Choose the generator to use for bootstrapping. + if ${cmake_system_mingw}; then + # Bootstrapping from an MSYS prompt. +@@ -603,6 +610,11 @@ + cmake_ld_flags="${LDFLAGS} -lroot -lbe" + fi + ++# Add Haiku toolkits... ++if ${cmake_system_haiku}; then ++ cmake_ld_flags="${LDFLAGS} -lroot -lbe" ++fi ++ + # Test C compiler + cmake_c_compiler= +