diff --git a/media-gfx/blender/blender-2.76.recipe b/media-gfx/blender/blender-2.76.recipe deleted file mode 100644 index 11f5eaba9..000000000 --- a/media-gfx/blender/blender-2.76.recipe +++ /dev/null @@ -1,94 +0,0 @@ -SUMMARY="3D Creation/Animation/Publishing System" -DESCRIPTION=" -Blender is the free and open source 3D creation suite. It supports the entirety \ -of the 3D pipeline—modeling, rigging, animation, simulation, rendering, \ -compositing and motion tracking, even video editing and game creation. \ -Advanced users employ Blender’s API for Python scripting to customize the \ -application and write specialized tools; often these are included in Blender’s \ -future releases. Blender is well suited to individuals and small studios who \ -benefit from its unified pipeline and responsive development process. -" -HOMEPAGE="http://www.blender.org" -SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz" -CHECKSUM_SHA256="5b99649a89bdcd53bef8e668fbf2be5b3e9611f52f9e9c5f7e7c814c778e5835" -REVISION="1" -LICENSE="GNU GPL v2" -COPYRIGHT="2002-2009 Blender Foundation" -ARCHITECTURES="!x86 x86_64" -PYTHON_VERSION="3.5" - -PATCHES="blender-$portVersion.patchset" - -PROVIDES=" - blender = $portVersion compat >= 2 - cmd:blender - cmd:blender_thumbnailer.py - " - -REQUIRES=" - haiku - lib:libfreetype$secondaryArchSuffix - lib:libgl$secondaryArchSuffix - lib:libglew$secondaryArchSuffix - lib:libglu$secondaryArchSuffix - lib:libjpeg$secondaryArchSuffix - lib:libpng16$secondaryArchSuffix - lib:libtiff$secondaryArchSuffix - lib:libz$secondaryArchSuffix - lib:libopenimageio$secondaryArchSuffix - lib:libpython${PYTHON_VERSION}m$secondaryArchSuffix - " - -BUILD_REQUIRES=" - haiku_devel - devel:libfreetype$secondaryArchSuffix - devel:libgl$secondaryArchSuffix - devel:libglew$secondaryArchSuffix - devel:libglu$secondaryArchSuffix - devel:libjpeg$secondaryArchSuffix - devel:libpng16$secondaryArchSuffix - devel:libtiff$secondaryArchSuffix - devel:libz$secondaryArchSuffix - devel:libopenimageio$secondaryArchSuffix - devel:libpython${PYTHON_VERSION}m$secondaryArchSuffix - " - -BUILD_PREREQUIRES=" - python3_numpy - python3_requests - cmd:python${PYTHON_VERSION} - cmd:cmake - cmd:make - cmd:gcc$secondaryArchSuffix - cmd:ld$secondaryArchSuffix - " - -BUILD() -{ - mkdir -p build_haiku - make $jobArgs BUILD_DIR=`pwd`/build_haiku \ - BUILD_CMAKE_ARGS="-DPYTHON_INCLUDE_DIR=/system/develop/headers/python${PYTHON_VERSION}m/ \ - -DPYTHON_LIBRARY=/system/lib/libpython${PYTHON_VERSION}m.so.1.0 \ - -DPYTHON_EXECUTABLE=/bin/python${PYTHON_VERSION} \ - -DWITH_CYCLES=OFF \ - -DWITH_BOOST=OFF \ - -DWITH_PYTHON_INSTALL=OFF \ - -DWITH_PYTHON_INSTALL_NUMPY=OFF \ - -DWITH_PYTHON_INSTALL_REQUESTS=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=$prefix" -} - -INSTALL() -{ - cd build_haiku - make install - - mkdir -p $binDir $dataDir $docDir $appsDir - mv $prefix/blender $prefix/blender-thumbnailer.py $binDir/ - mv $prefix/GPL-license.txt $prefix/LICENSE-bfont.ttf.txt \ - $prefix/Python-license.txt $prefix/copyright.txt $prefix/readme.html \ - $prefix/blender.svg $docDir - mv $prefix/$portVersion/* $dataDir/ - mv $prefix/blender.desktop $appsDir/ - rmdir $prefix/$portVersion -} diff --git a/media-gfx/blender/blender-2.78a.recipe b/media-gfx/blender/blender-2.78a.recipe new file mode 100644 index 000000000..b70e48cfa --- /dev/null +++ b/media-gfx/blender/blender-2.78a.recipe @@ -0,0 +1,121 @@ +SUMMARY="3D Creation/Animation/Publishing System" +DESCRIPTION="Blender is the free and open source 3D creation suite. It \ +supports the entirety of the 3D pipeline—modeling, rigging, animation, \ +simulation, rendering, compositing and motion tracking, even video editing \ +and game creation. +Advanced users employ Blender’s API for Python scripting to customize the \ +application and write specialized tools; often these are included in Blender’s \ +future releases. Blender is well suited to individuals and small studios who \ +benefit from its unified pipeline and responsive development process." +HOMEPAGE="http://www.blender.org" +COPYRIGHT="2002-2017 Blender Foundation" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz" +CHECKSUM_SHA256="014a14b1ba00c0e651f106469b2e5dd444f11be5a7af48056f0ed59de90cceaf" +PATCHES="blender-$portVersion.patchset" +ARCHITECTURES="!x86_gcc2 !x86 x86_64" + +PYTHON_VERSION="3.5" +PORT_SUBFOLDER=`echo $portVersion | sed 's/.$//'` +INSTALL_PATH="$appsDir/Blender" + +PROVIDES=" + blender = $portVersion compat >= 2 + cmd:blender + cmd:blender_thumbnailer.py + " +REQUIRES=" + haiku + lib:libfreetype + lib:libgcc_s + lib:libgl + lib:libglew + lib:libglu + lib:libgomp + lib:libhalf + lib:libiex_2_2 + lib:libilmimf_2_2 + lib:libilmthread_2_2 + lib:libimath_2_2 + lib:libjpeg + lib:libopenimageio + lib:libpng16 + lib:libsdl2_2.0 + lib:libtiff + lib:libz + lib:libpython${PYTHON_VERSION}m + " + +BUILD_REQUIRES=" + haiku_devel + devel:libfreetype + devel:libgl + devel:libglew + devel:libglu + devel:libgomp + devel:libhalf + devel:libiex_2_2 + devel:libilmimf_2_2 + devel:libilmthread_2_2 + devel:libimath_2_2 + devel:libjpeg + devel:libopenimageio + devel:libpng16 + devel:libsdl2_2.0 + devel:libtiff + devel:libz + devel:libpython${PYTHON_VERSION}m + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:git + cmd:gcc + cmd:ld + cmd:make + cmd:python${PYTHON_VERSION} + cmd:sed + #python3_numpy #maybe later + #python3_requests #maybe later + " + +BUILD() +{ + mkdir -p build_haiku + cd build_haiku + + cmake .. \ + -DPYTHON_VERSION=${PYTHON_VERSION} \ + -DPYTHON_INCLUDE_DIR=/system/develop/headers/python${PYTHON_VERSION}m/ \ + -DPYTHON_LIBRARY=/system/lib/libpython${PYTHON_VERSION}m.so.1.0 \ + -DPYTHON_EXECUTABLE=/bin/python${PYTHON_VERSION} \ + -DWITH_CYCLES:BOOL=OFF \ + -DWITH_BOOST:BOOL=OFF \ + -DWITH_PYTHON_INSTALL:BOOL=OFF \ + -DWITH_PYTHON_INSTALL_NUMPY:BOOL=OFF \ + -DWITH_PYTHON_INSTALL_REQUESTS:BOOLv=OFF \ + -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PATH \ + -DWITH_SDL:BOOL=ON \ + -DWITH_GHOST_SDL:BOOL=ON \ + -Wno-dev + + make $jobArgs +} + +INSTALL() +{ + cd build_haiku + make install + + cd $INSTALL_PATH + mkdir -p $binDir $docDir/blender + + mv GPL-license.txt GPL3-license.txt \ + LICENSE-bfont.ttf.txt jemalloc-license.txt \ + Python-license.txt copyright.txt readme.html \ + blender.svg ocio-license.txt $docDir/blender + + rm -rf blender.desktop + + strip blender +} diff --git a/media-gfx/blender/patches/blender-2.78a.patchset b/media-gfx/blender/patches/blender-2.78a.patchset new file mode 100644 index 000000000..88d13607e --- /dev/null +++ b/media-gfx/blender/patches/blender-2.78a.patchset @@ -0,0 +1,682 @@ +From ef7aeda91a0f2f5916e04cab369a744014e9d799 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Wed, 1 Feb 2017 21:55:43 +0100 +Subject: [PATCH] Haiku supporting patch + +--- + CMakeLists.txt | 4 +- + build_files/cmake/Modules/FindFftw3.cmake | 2 + + build_files/cmake/Modules/FindGLEW.cmake | 2 + + build_files/cmake/Modules/FindIcuLinux.cmake | 2 + + build_files/cmake/Modules/FindLZO.cmake | 2 + + build_files/cmake/Modules/FindOpenColorIO.cmake | 2 + + build_files/cmake/Modules/FindOpenEXR.cmake | 2 + + build_files/cmake/Modules/FindOpenImageIO.cmake | 2 + + build_files/cmake/Modules/FindOpenJPEG.cmake | 2 + + build_files/cmake/Modules/FindPCRE.cmake | 2 + + build_files/cmake/Modules/FindSDL2.cmake | 5 +- + build_files/cmake/Modules/FindSndFile.cmake | 2 + + build_files/cmake/Modules/FindXML2.cmake | 2 + + build_files/cmake/macros.cmake | 3 + + build_files/cmake/platform/platform_unix.cmake | 6 +- + extern/glog/src/config.h | 2 + + extern/glog/src/config_haiku.h | 172 +++++++++++++++++++++ + intern/guardedalloc/intern/mallocn_intern.h | 3 + + intern/libmv/libmv/numeric/numeric.h | 2 +- + source/blender/blenkernel/intern/bvhutils.c | 13 ++ + source/blender/blenkernel/intern/font.c | 14 ++ + source/blender/blenkernel/intern/particle_system.c | 14 ++ + source/blender/blenkernel/intern/subsurf_ccg.c | 15 ++ + source/blender/blenlib/BLI_sys_types.h | 2 +- + source/blender/blenlib/BLI_threads.h | 4 + + source/blender/blenlib/intern/fileops.c | 12 ++ + source/blender/blenlib/intern/storage.c | 2 +- + 27 files changed, 288 insertions(+), 7 deletions(-) + create mode 100644 extern/glog/src/config_haiku.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 578f913..73a17e6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -193,7 +193,7 @@ endif() + # Options + + # First platform spesific non-cached vars +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT (APPLE OR HAIKU)) + set(WITH_X11 ON) + endif() + +@@ -858,7 +858,7 @@ set(CC_REMOVE_STRICT_FLAGS) + + # libraries to link the binary with passed to target_link_libraries() + # known as LLIBS to scons +-set(PLATFORM_LINKLIBS "") ++set(PLATFORM_LINKLIBS "-lnetwork") + + # Added to linker flags in setup_liblinks + # - CMAKE_EXE_LINKER_FLAGS +diff --git a/build_files/cmake/Modules/FindFftw3.cmake b/build_files/cmake/Modules/FindFftw3.cmake +index 197d4aa..bb51040 100644 +--- a/build_files/cmake/Modules/FindFftw3.cmake ++++ b/build_files/cmake/Modules/FindFftw3.cmake +@@ -33,6 +33,8 @@ SET(_fftw3_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(FFTW3_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindGLEW.cmake b/build_files/cmake/Modules/FindGLEW.cmake +index 2f098d5..6910661 100644 +--- a/build_files/cmake/Modules/FindGLEW.cmake ++++ b/build_files/cmake/Modules/FindGLEW.cmake +@@ -30,6 +30,8 @@ ENDIF() + SET(_glew_SEARCH_DIRS + ${GLEW_ROOT_DIR} + /usr/local ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(GLEW_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindIcuLinux.cmake b/build_files/cmake/Modules/FindIcuLinux.cmake +index e0e5873..cca1026 100644 +--- a/build_files/cmake/Modules/FindIcuLinux.cmake ++++ b/build_files/cmake/Modules/FindIcuLinux.cmake +@@ -36,6 +36,8 @@ SET(_icu_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + # We don't need includes, only libs to link against... +diff --git a/build_files/cmake/Modules/FindLZO.cmake b/build_files/cmake/Modules/FindLZO.cmake +index a21aa0a..9086456 100644 +--- a/build_files/cmake/Modules/FindLZO.cmake ++++ b/build_files/cmake/Modules/FindLZO.cmake +@@ -33,6 +33,8 @@ SET(_lzo_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(LZO_INCLUDE_DIR lzo/lzo1x.h +diff --git a/build_files/cmake/Modules/FindOpenColorIO.cmake b/build_files/cmake/Modules/FindOpenColorIO.cmake +index bd1ecac..e7495c7 100644 +--- a/build_files/cmake/Modules/FindOpenColorIO.cmake ++++ b/build_files/cmake/Modules/FindOpenColorIO.cmake +@@ -40,6 +40,8 @@ SET(_opencolorio_SEARCH_DIRS + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt/lib/ocio ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(OPENCOLORIO_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake +index 41e60a7..021d9de 100644 +--- a/build_files/cmake/Modules/FindOpenEXR.cmake ++++ b/build_files/cmake/Modules/FindOpenEXR.cmake +@@ -52,6 +52,8 @@ SET(_openexr_SEARCH_DIRS + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt/lib/openexr ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(OPENEXR_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindOpenImageIO.cmake b/build_files/cmake/Modules/FindOpenImageIO.cmake +index 789097d..86e362d 100644 +--- a/build_files/cmake/Modules/FindOpenImageIO.cmake ++++ b/build_files/cmake/Modules/FindOpenImageIO.cmake +@@ -36,6 +36,8 @@ SET(_openimageio_SEARCH_DIRS + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt/lib/oiio ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(OPENIMAGEIO_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindOpenJPEG.cmake b/build_files/cmake/Modules/FindOpenJPEG.cmake +index d765103..48bd9e1 100644 +--- a/build_files/cmake/Modules/FindOpenJPEG.cmake ++++ b/build_files/cmake/Modules/FindOpenJPEG.cmake +@@ -33,6 +33,8 @@ SET(_openjpeg_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(OPENJPEG_INCLUDE_DIR +diff --git a/build_files/cmake/Modules/FindPCRE.cmake b/build_files/cmake/Modules/FindPCRE.cmake +index ff4b726..999d404 100644 +--- a/build_files/cmake/Modules/FindPCRE.cmake ++++ b/build_files/cmake/Modules/FindPCRE.cmake +@@ -33,6 +33,8 @@ SET(_pcre_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(PCRE_INCLUDE_DIR pcre.h +diff --git a/build_files/cmake/Modules/FindSDL2.cmake b/build_files/cmake/Modules/FindSDL2.cmake +index 2a835cf..75de7c6 100644 +--- a/build_files/cmake/Modules/FindSDL2.cmake ++++ b/build_files/cmake/Modules/FindSDL2.cmake +@@ -35,6 +35,9 @@ SET(_sdl2_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku ++ + ) + + FIND_PATH(SDL2_INCLUDE_DIR +@@ -43,7 +46,7 @@ FIND_PATH(SDL2_INCLUDE_DIR + HINTS + ${_sdl2_SEARCH_DIRS} + PATH_SUFFIXES +- include/SDL2 include ++ include/SDL2 include SDL2 + ) + + FIND_LIBRARY(SDL2_LIBRARY +diff --git a/build_files/cmake/Modules/FindSndFile.cmake b/build_files/cmake/Modules/FindSndFile.cmake +index 1b685ea..a7c2022 100644 +--- a/build_files/cmake/Modules/FindSndFile.cmake ++++ b/build_files/cmake/Modules/FindSndFile.cmake +@@ -33,6 +33,8 @@ SET(_sndfile_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(SNDFILE_INCLUDE_DIR sndfile.h +diff --git a/build_files/cmake/Modules/FindXML2.cmake b/build_files/cmake/Modules/FindXML2.cmake +index 40cc332..09237ee 100644 +--- a/build_files/cmake/Modules/FindXML2.cmake ++++ b/build_files/cmake/Modules/FindXML2.cmake +@@ -33,6 +33,8 @@ SET(_xml2_SEARCH_DIRS + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave ++ /system/lib # Haiku ++ /system/develop/headers # Haiku + ) + + FIND_PATH(XML2_INCLUDE_DIR libxml2/libxml/xpath.h +diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake +index 5a67ac9..b518956 100644 +--- a/build_files/cmake/macros.cmake ++++ b/build_files/cmake/macros.cmake +@@ -1532,6 +1532,7 @@ function(find_python_package + PATH_SUFFIXES + site-packages + dist-packages ++ vendor-packages + NO_DEFAULT_PATH + ) + +@@ -1542,6 +1543,8 @@ function(find_python_package + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', " + "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', " + "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', " ++ "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', " ++ "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', " + "\n" + "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n" + "The build will be usable, only add-ons that depend on this package won't be functional." +diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake +index e33141f..ad0d20a 100644 +--- a/build_files/cmake/platform/platform_unix.cmake ++++ b/build_files/cmake/platform/platform_unix.cmake +@@ -358,7 +358,11 @@ if(WITH_OPENSUBDIV OR WITH_CYCLES_OPENSUBDIV) + endif() + + # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed +-list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) ++if(HAIKU) ++ list(APPEND PLATFORM_LINKLIBS -lm -lnetwork) ++else() ++ list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) ++endif() + + find_package(Threads REQUIRED) + list(APPEND PLATFORM_LINKLIBS ${CMAKE_THREAD_LIBS_INIT}) +diff --git a/extern/glog/src/config.h b/extern/glog/src/config.h +index f5c9c0b..2703b7b 100644 +--- a/extern/glog/src/config.h ++++ b/extern/glog/src/config.h +@@ -14,4 +14,6 @@ + #include "windows/config.h" + #elif defined(__GNU__) + #include "config_hurd.h" ++#elif defined(__HAIKU__) ++ #include "config_haiku.h" + #endif +diff --git a/extern/glog/src/config_haiku.h b/extern/glog/src/config_haiku.h +new file mode 100644 +index 0000000..7d19272 +--- /dev/null ++++ b/extern/glog/src/config_haiku.h +@@ -0,0 +1,172 @@ ++/* src/config.h. Generated from config.h.in by configure. */ ++/* src/config.h.in. Generated from configure.ac by autoheader. */ ++ ++/* Namespace for Google classes */ ++#define GOOGLE_NAMESPACE google ++ ++/* Define if you have the `dladdr' function */ ++/* #undef HAVE_DLADDR */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_EXECINFO_H ++ ++/* Define if you have the `fcntl' function */ ++#define HAVE_FCNTL 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_GLOB_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `pthread' library (-lpthread). */ ++/* #undef HAVE_LIBPTHREAD */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_LIBUNWIND_H */ ++ ++/* define if you have google gflags library */ ++#define HAVE_LIB_GFLAGS 1 ++ ++/* define if you have google gmock library */ ++/* #undef HAVE_LIB_GMOCK */ ++ ++/* define if you have google gtest library */ ++/* #undef HAVE_LIB_GTEST */ ++ ++/* define if you have libunwind */ ++/* #undef HAVE_LIB_UNWIND */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* define if the compiler implements namespaces */ ++#define HAVE_NAMESPACES 1 ++ ++/* Define if you have the 'pread' function */ ++#define HAVE_PREAD 1 ++ ++/* Define if you have POSIX threads libraries and header files. */ ++#define HAVE_PTHREAD 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_PWD_H 1 ++ ++/* Define if you have the 'pwrite' function */ ++#define HAVE_PWRITE 1 ++ ++/* define if the compiler implements pthread_rwlock_* */ ++#define HAVE_RWLOCK 1 ++ ++/* Define if you have the `sigaltstack' function */ ++#define HAVE_SIGALTSTACK 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYSCALL_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYSLOG_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_SYSCALL_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_SYS_UCONTEXT_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_UTSNAME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_UCONTEXT_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* define if the compiler supports using expression for operator */ ++#define HAVE_USING_OPERATOR 1 ++ ++/* define if your compiler has __attribute__ */ ++#define HAVE___ATTRIBUTE__ 1 ++ ++/* define if your compiler has __builtin_expect */ ++#define HAVE___BUILTIN_EXPECT 1 ++ ++/* define if your compiler has __sync_val_compare_and_swap */ ++/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */ ++ ++/* Name of package */ ++#define PACKAGE "glog" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "opensource@google.com" ++ ++/* Define to the full name of this package. */ ++#define PACKAGE_NAME "glog" ++ ++/* Define to the full name and version of this package. */ ++#define PACKAGE_STRING "glog 0.3.2" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "glog" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "0.3.2" ++ ++/* How to access the PC from a struct ucontext */ ++/* #define PC_FROM_UCONTEXT uc_mcontext.gregs[REG_RIP] */ ++ ++/* Define to necessary symbol if this constant uses a non-standard name on ++ your system. */ ++/* #undef PTHREAD_CREATE_JOINABLE */ ++ ++/* The size of `void *', as computed by sizeof. */ ++#define SIZEOF_VOID_P 8 ++ ++/* Define to 1 if you have the ANSI C header files. */ ++/* #undef STDC_HEADERS */ ++ ++#define STDC_HEADERS 1 ++/* the namespace where STL code like vector<> is defined */ ++#define STL_NAMESPACE std ++ ++/* location of source code */ ++#define TEST_SRC_DIR "." ++ ++/* Version number of package */ ++#define VERSION "0.3.2" ++ ++/* Stops putting the code inside the Google namespace */ ++#define _END_GOOGLE_NAMESPACE_ } ++ ++/* Puts following code inside the Google namespace */ ++#define _START_GOOGLE_NAMESPACE_ namespace google { ++ ++/* isn't getting defined by configure script when clang compilers are used ++ and cuases compilation errors in stactrace/unwind modules */ ++#ifdef __clang__ ++# define NO_FRAME_POINTER ++#endif +diff --git a/intern/guardedalloc/intern/mallocn_intern.h b/intern/guardedalloc/intern/mallocn_intern.h +index 3f7e462..38abccb 100644 +--- a/intern/guardedalloc/intern/mallocn_intern.h ++++ b/intern/guardedalloc/intern/mallocn_intern.h +@@ -63,6 +63,9 @@ + #elif defined(WIN32) + # include + # define malloc_usable_size _msize ++#elif defined(__HAIKU__) ++# include ++size_t malloc_usable_size(void *ptr); + #else + # pragma message "We don't know how to use malloc_usable_size on your platform" + # undef USE_MALLOC_USABLE_SIZE +diff --git a/intern/libmv/libmv/numeric/numeric.h b/intern/libmv/libmv/numeric/numeric.h +index a42dab8..cd3c5e3 100644 +--- a/intern/libmv/libmv/numeric/numeric.h ++++ b/intern/libmv/libmv/numeric/numeric.h +@@ -35,7 +35,7 @@ + + #if !defined(__MINGW64__) + # if defined(_WIN32) || defined(__APPLE__) || \ +- defined(__FreeBSD__) || defined(__NetBSD__) ++ defined(__FreeBSD__) || defined(__NetBSD__) || defined(__HAIKU__) + static void sincos(double x, double *sinx, double *cosx) { + *sinx = sin(x); + *cosx = cos(x); +diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c +index 264d87b..93e3c88 100644 +--- a/source/blender/blenkernel/intern/bvhutils.c ++++ b/source/blender/blenkernel/intern/bvhutils.c +@@ -51,6 +51,16 @@ static ThreadRWMutex cache_rwlock = BLI_RWLOCK_INITIALIZER; + /* -------------------------------------------------------------------- */ + /** \name Local Callbacks + * \{ */ ++ ++#ifdef __HAIKU__ ++static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; ++ ++static void ++init_cache_rwlock() ++{ ++ pthread_rwlock_init(&cache_rwlock, NULL); ++} ++#endif + + /* Math stuff for ray casting on mesh faces and for nearest surface */ + +@@ -1299,6 +1309,9 @@ void bvhcache_insert(BVHCache **cache_p, BVHTree *tree, int type) + */ + void bvhcache_init(BVHCache **cache_p) + { ++#ifdef __HAIKU__ ++ pthread_once(&sInitOnce, &init_cache_rwlock); ++#endif + *cache_p = NULL; + } + +diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c +index 580842f..6c4cc40 100644 +--- a/source/blender/blenkernel/intern/font.c ++++ b/source/blender/blenkernel/intern/font.c +@@ -64,6 +64,16 @@ + + static ThreadRWMutex vfont_rwlock = BLI_RWLOCK_INITIALIZER; + ++#ifdef __HAIKU__ ++static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; ++ ++static void ++init_vfont_rwlock() ++{ ++ pthread_rwlock_init(&vfont_rwlock, NULL); ++} ++#endif ++ + /* The vfont code */ + void BKE_vfont_free_data(struct VFont *vfont) + { +@@ -655,6 +665,10 @@ bool BKE_vfont_to_curve_ex(Main *bmain, Object *ob, int mode, ListBase *r_nubase + + BLI_assert(ob->type == OB_FONT); + ++#ifdef __HAIKU__ ++ pthread_once(&sInitOnce, &init_vfont_rwlock); ++#endif ++ + /* Set font data */ + vfont = cu->vfont; + +diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c +index efaf1f9..59fab74 100644 +--- a/source/blender/blenkernel/intern/particle_system.c ++++ b/source/blender/blenkernel/intern/particle_system.c +@@ -105,6 +105,16 @@ + + static ThreadRWMutex psys_bvhtree_rwlock = BLI_RWLOCK_INITIALIZER; + ++#ifdef __HAIKU__ ++static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; ++ ++static void ++init_psys_bvhtree_rwlock() ++{ ++ pthread_rwlock_init(&psys_bvhtree_rwlock, NULL); ++} ++#endif ++ + /************************************************/ + /* Reacting to system events */ + /************************************************/ +@@ -4156,6 +4166,10 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys, cons + ParticleSettings *part = psys->part; + float cfra; + ++#ifdef __HAIKU__ ++ pthread_once(&sInitOnce, &init_psys_bvhtree_rwlock); ++#endif ++ + /* drawdata is outdated after ANY change */ + if (psys->pdd) psys->pdd->flag &= ~PARTICLE_DRAW_DATA_UPDATED; + +diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c +index 88d3311..0e862b1 100644 +--- a/source/blender/blenkernel/intern/subsurf_ccg.c ++++ b/source/blender/blenkernel/intern/subsurf_ccg.c +@@ -91,6 +91,17 @@ + static ThreadRWMutex loops_cache_rwlock = BLI_RWLOCK_INITIALIZER; + static ThreadRWMutex origindex_cache_rwlock = BLI_RWLOCK_INITIALIZER; + ++#ifdef __HAIKU__ ++static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; ++ ++static void ++init_cache_rwlock() ++{ ++ pthread_rwlock_init(&loops_cache_rwlock, NULL); ++ pthread_rwlock_init(&origindex_cache_rwlock, NULL); ++} ++#endif ++ + static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, + int drawInteriorEdges, + int useSubsurfUv, +@@ -4675,6 +4686,10 @@ static void set_ccgdm_all_geometry(CCGDerivedMesh *ccgdm, + MPoly *mpoly = NULL; + bool has_edge_cd; + ++#ifdef __HAIKU__ ++ pthread_once(&sInitOnce, &init_cache_rwlock); ++#endif ++ + edgeSize = ccgSubSurf_getEdgeSize(ss); + gridSize = ccgSubSurf_getGridSize(ss); + gridFaces = gridSize - 1; +diff --git a/source/blender/blenlib/BLI_sys_types.h b/source/blender/blenlib/BLI_sys_types.h +index 7929e1d..562bfc2 100644 +--- a/source/blender/blenlib/BLI_sys_types.h ++++ b/source/blender/blenlib/BLI_sys_types.h +@@ -47,7 +47,7 @@ + extern "C" { + #endif + +-#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__) || defined(__GNU__) ++#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(__HAIKU__) + + /* Linux-i386, Linux-Alpha, Linux-ppc */ + #include +diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h +index 0b1b4d8..a302506 100644 +--- a/source/blender/blenlib/BLI_threads.h ++++ b/source/blender/blenlib/BLI_threads.h +@@ -127,7 +127,11 @@ void BLI_spin_end(SpinLock *spin); + #define THREAD_LOCK_READ 1 + #define THREAD_LOCK_WRITE 2 + ++#ifdef __HAIKU__ ++#define BLI_RWLOCK_INITIALIZER {} ++#else + #define BLI_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER ++#endif + + typedef pthread_rwlock_t ThreadRWMutex; + +diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c +index db4b3bc..196a8ff 100644 +--- a/source/blender/blenlib/intern/fileops.c ++++ b/source/blender/blenlib/intern/fileops.c +@@ -617,6 +617,11 @@ static int recursive_operation(const char *startfrom, const char *startto, + for (i = 0; i < n; i++) { + const struct dirent * const dirent = dirlist[i]; + ++#ifdef __HAIKU__ ++ struct stat st; ++ char filename[512]; ++#endif ++ + if (FILENAME_IS_CURRPAR(dirent->d_name)) + continue; + +@@ -624,7 +629,14 @@ static int recursive_operation(const char *startfrom, const char *startto, + if (to) + join_dirfile_alloc(&to_path, &to_alloc_len, to, dirent->d_name); + ++#ifdef __HAIKU__ ++ snprintf(filename, sizeof(filename), "%s/%s", startfrom, dirent->d_name); ++ lstat(filename, &st); ++ if (S_ISDIR(st.st_mode)) { ++#else ++ + if (dirent->d_type == DT_DIR) { ++#endif + /* recursively dig into a subfolder */ + ret = recursive_operation(from_path, to_path, callback_dir_pre, callback_file, callback_dir_post); + } +diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c +index 3edc00a..30e9ab1 100644 +--- a/source/blender/blenlib/intern/storage.c ++++ b/source/blender/blenlib/intern/storage.c +@@ -37,7 +37,7 @@ + + #include + +-#if defined(__NetBSD__) || defined(__DragonFly__) || defined(__sun__) || defined(__sun) ++#if defined(__NetBSD__) || defined(__DragonFly__) || defined(__sun__) || defined(__sun) || defined(__HAIKU__) + /* Other modern unix os's should probably use this also */ + # include + # define USE_STATFS_STATVFS +-- +2.11.0 +