mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-24 17:18:51 +02:00
502 lines
16 KiB
Plaintext
502 lines
16 KiB
Plaintext
From 08ae0dddbb35169bb3afad02198f707de81a3306 Mon Sep 17 00:00:00 2001
|
|
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
|
Date: Sat, 25 Jan 2025 14:21:51 +1000
|
|
Subject: Fix for Haiku
|
|
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index a355317..077294a 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -100,7 +100,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Android")
|
|
endif()
|
|
|
|
# We only support Vulkan on Unix, macOS (by MoltenVK), Android and Windows.
|
|
-if(ANDROID OR WIN32 OR (UNIX AND NOT ARM_NO_VULKAN))
|
|
+if(ANDROID OR WIN32 OR (UNIX AND NOT HAIKU AND NOT ARM_NO_VULKAN))
|
|
set(VULKAN ON)
|
|
endif()
|
|
|
|
@@ -192,7 +192,7 @@ if(USE_CCACHE)
|
|
include(ccache)
|
|
endif()
|
|
|
|
-if(UNIX AND NOT (APPLE OR ANDROID) AND VULKAN)
|
|
+if(UNIX AND NOT (APPLE OR ANDROID OR HAIKU) AND VULKAN)
|
|
if(USING_X11_VULKAN)
|
|
message("Using X11 for Vulkan")
|
|
find_package(X11)
|
|
@@ -956,7 +956,7 @@ if(USE_FFMPEG)
|
|
endif()
|
|
elseif(MACOSX)
|
|
set(PLATFORM_ARCH "macosx/universal")
|
|
- elseif(LINUX)
|
|
+ elseif(LINUX)
|
|
if(ARMV7)
|
|
set(PLATFORM_ARCH "linux/armv7")
|
|
elseif(ARM64)
|
|
@@ -974,6 +974,12 @@ if(USE_FFMPEG)
|
|
elseif(X86)
|
|
set(PLATFORM_ARCH "linux/x86")
|
|
endif()
|
|
+ elseif(HAIKU)
|
|
+ if(X86_64)
|
|
+ set(PLATFORM_ARCH "haiku/x86_64")
|
|
+ elseif(X86)
|
|
+ set(PLATFORM_ARCH "haiku/x86")
|
|
+ endif()
|
|
elseif(WIN32)
|
|
if(X86_64)
|
|
set(PLATFORM_ARCH "Windows/x86_64")
|
|
@@ -1345,7 +1351,7 @@ elseif(IOS AND NOT LIBRETRO)
|
|
set(nativeExtraLibs ${nativeExtraLibs} "-weak_framework GameController")
|
|
endif()
|
|
|
|
- if(NOT ICONV_LIBRARY)
|
|
+ if(NOT ICONV_LIBRARY OR HAIKU)
|
|
set(nativeExtraLibs ${nativeExtraLibs} iconv)
|
|
endif()
|
|
|
|
@@ -1609,7 +1615,7 @@ add_library(native STATIC
|
|
ext/jpge/jpge.h
|
|
)
|
|
|
|
-if(LINUX AND NOT ANDROID)
|
|
+if(LINUX AND NOT ANDROID AND NOT HAIKU)
|
|
set(RT_LIB rt)
|
|
endif()
|
|
|
|
@@ -1627,6 +1633,8 @@ if(ANDROID)
|
|
target_link_libraries(native log EGL OpenSLES)
|
|
elseif(WIN32)
|
|
target_link_libraries(native ws2_32 winmm)
|
|
+elseif(HAIKU)
|
|
+ target_link_libraries(native network)
|
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "^(DragonFly|FreeBSD|NetBSD)$")
|
|
target_link_libraries(native execinfo)
|
|
endif()
|
|
@@ -2466,12 +2474,15 @@ if(FFmpeg_FOUND)
|
|
endif()
|
|
|
|
# Discord integration
|
|
-if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO)
|
|
+if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO AND NOT HAIKU)
|
|
add_definitions(-DUSE_DISCORD=1)
|
|
target_link_libraries(${CoreLibName} discord-rpc)
|
|
endif()
|
|
|
|
# miniUPnPc integration (MiniUPnPc supposed to works on any POSIX system, not sure if some of these are redundant/not needed tho)
|
|
+if(HAIKU)
|
|
+ target_link_libraries(${CoreLibName} miniupnpc)
|
|
+else()
|
|
if(USE_MINIUPNPC)
|
|
if(USE_SYSTEM_MINIUPNPC)
|
|
find_package(MINIUPNPC REQUIRED)
|
|
@@ -2551,6 +2562,7 @@ if(USE_MINIUPNPC)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
+endif()
|
|
|
|
setup_target_project(${CoreLibName} Core)
|
|
|
|
@@ -2676,6 +2688,10 @@ set(WindowsFiles
|
|
|
|
list(APPEND LinkCommon ${CoreLibName} ${CMAKE_THREAD_LIBS_INIT})
|
|
|
|
+if(HAIKU)
|
|
+ list(APPEND LinkCommon network)
|
|
+endif()
|
|
+
|
|
if(WIN32)
|
|
list(APPEND LinkCommon kernel32 user32 gdi32 shell32 comctl32 dsound xinput d3d9 winmm dinput8 ole32 winspool ksuser dwmapi mf uxtheme mfplat mfreadwrite mfuuid shlwapi)
|
|
#setup_target_project(${TargetBin} Windows)
|
|
diff --git a/Common/Swap.h b/Common/Swap.h
|
|
index 3a5d8ac..f68142f 100644
|
|
--- a/Common/Swap.h
|
|
+++ b/Common/Swap.h
|
|
@@ -68,6 +68,8 @@ inline unsigned short bswap16(unsigned short x) { return _byteswap_ushort(x); }
|
|
#elif defined(__DragonFly__) || defined(__FreeBSD__) || \
|
|
defined(__NetBSD__) || defined(__OpenBSD__)
|
|
#include <sys/endian.h>
|
|
+#elif defined(__HAIKU__)
|
|
+#include <endian.h>
|
|
# ifdef __OpenBSD__
|
|
#define bswap16 swap16
|
|
#define bswap32 swap32
|
|
diff --git a/Common/Thread/ThreadUtil.cpp b/Common/Thread/ThreadUtil.cpp
|
|
index 0e0badb..a380710 100644
|
|
--- a/Common/Thread/ThreadUtil.cpp
|
|
+++ b/Common/Thread/ThreadUtil.cpp
|
|
@@ -57,8 +57,10 @@ void RegisterAttachDetach(AttachDetachFunc attach, AttachDetachFunc detach) {
|
|
#include <pthread.h>
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
+#ifndef __HAIKU__
|
|
#include <sys/syscall.h>
|
|
#endif
|
|
+#endif
|
|
|
|
#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
|
#include <pthread_np.h>
|
|
diff --git a/Core/Config.cpp b/Core/Config.cpp
|
|
index 14a8c98..3683de8 100644
|
|
--- a/Core/Config.cpp
|
|
+++ b/Core/Config.cpp
|
|
@@ -360,7 +360,7 @@ static const ConfigSetting cpuSettings[] = {
|
|
|
|
static int DefaultInternalResolution() {
|
|
// Auto on Windows and Linux, 2x on large screens and iOS, 1x elsewhere.
|
|
-#if defined(USING_WIN_UI) || defined(USING_QT_UI)
|
|
+#if defined(USING_WIN_UI) || defined(USING_QT_UI) || defined(__HAIKU__)
|
|
return 0;
|
|
#elif PPSSPP_PLATFORM(IOS)
|
|
return 2;
|
|
@@ -624,7 +624,11 @@ static const ConfigSetting graphicsSettings[] = {
|
|
ConfigSetting("InternalResolution", &g_Config.iInternalResolution, &DefaultInternalResolution, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
ConfigSetting("AndroidHwScale", &g_Config.iAndroidHwScale, &DefaultAndroidHwScale, CfgFlag::DEFAULT),
|
|
ConfigSetting("HighQualityDepth", &g_Config.bHighQualityDepth, true, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
+#ifdef __HAIKU__
|
|
+ ConfigSetting("FrameSkip", &g_Config.iFrameSkip, 2, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
+#else
|
|
ConfigSetting("FrameSkip", &g_Config.iFrameSkip, 0, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
+#endif
|
|
ConfigSetting("FrameSkipType", &g_Config.iFrameSkipType, 0, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
ConfigSetting("AutoFrameSkip", &g_Config.bAutoFrameSkip, IsVREnabled(), CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
ConfigSetting("StereoRendering", &g_Config.bStereoRendering, false, CfgFlag::PER_GAME),
|
|
@@ -638,10 +642,17 @@ static const ConfigSetting graphicsSettings[] = {
|
|
#endif
|
|
|
|
// Most low-performance (and many high performance) mobile GPUs do not support aniso anyway so defaulting to 4 is fine.
|
|
+#ifdef __HAIKU__
|
|
+ ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 0, CfgFlag::PER_GAME),
|
|
+#else
|
|
ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 4, CfgFlag::PER_GAME),
|
|
+#endif
|
|
ConfigSetting("MultiSampleLevel", &g_Config.iMultiSampleLevel, 0, CfgFlag::PER_GAME), // Number of samples is 1 << iMultiSampleLevel
|
|
-
|
|
+#ifdef __HAIKU__
|
|
+ ConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, true, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
+#else
|
|
ConfigSetting("TextureBackoffCache", &g_Config.bTextureBackoffCache, false, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
|
+#endif
|
|
ConfigSetting("VertexDecJit", &g_Config.bVertexDecoderJit, &DefaultCodeGen, CfgFlag::DONT_SAVE | CfgFlag::REPORT),
|
|
|
|
#ifndef MOBILE_DEVICE
|
|
diff --git a/Core/HLE/proAdhoc.cpp b/Core/HLE/proAdhoc.cpp
|
|
index 759e3a9..f4bb38a 100644
|
|
--- a/Core/HLE/proAdhoc.cpp
|
|
+++ b/Core/HLE/proAdhoc.cpp
|
|
@@ -2086,7 +2086,7 @@ int setUDPConnReset(int udpsock, bool enabled) {
|
|
return -1;
|
|
}
|
|
|
|
-#if !defined(TCP_KEEPIDLE) && !PPSSPP_PLATFORM(SWITCH)
|
|
+#if !defined(TCP_KEEPIDLE) && !PPSSPP_PLATFORM(SWITCH) && !defined(__HAIKU__)
|
|
#define TCP_KEEPIDLE TCP_KEEPALIVE //TCP_KEEPIDLE on Linux is equivalent to TCP_KEEPALIVE on macOS
|
|
#endif
|
|
// VS 2017 compatibility
|
|
@@ -2106,12 +2106,14 @@ int setSockKeepAlive(int sock, bool keepalive, const int keepinvl, const int kee
|
|
if (result == 0 && keepalive) {
|
|
if (getsockopt(sock, SOL_SOCKET, SO_TYPE, (char*)&optval, (socklen_t*)&optlen) == 0 && optval == SOCK_STREAM) {
|
|
optlen = sizeof(optval);
|
|
+#ifndef __HAIKU__
|
|
optval = keepidle; //180 sec
|
|
- setsockopt(sock, IPPROTO_TCP, TCP_KEEPIDLE, (char*)&optval, optlen);
|
|
+ setsockopt(sock, IPPROTO_TCP, TCP_KEEPIDLE, (char*)&optval, optlen);
|
|
optval = keepinvl; //60 sec
|
|
setsockopt(sock, IPPROTO_TCP, TCP_KEEPINTVL, (char*)&optval, optlen);
|
|
optval = keepcnt; //20
|
|
setsockopt(sock, IPPROTO_TCP, TCP_KEEPCNT, (char*)&optval, optlen);
|
|
+#endif
|
|
}
|
|
}
|
|
#endif // !PPSSPP_PLATFORM(SWITCH) && !PPSSPP_PLATFORM(OPENBSD)
|
|
diff --git a/Core/Instance.cpp b/Core/Instance.cpp
|
|
index fcb350f..746ff83 100644
|
|
--- a/Core/Instance.cpp
|
|
+++ b/Core/Instance.cpp
|
|
@@ -81,7 +81,7 @@ static bool UpdateInstanceCounter(void (*callback)(volatile InstanceInfo *)) {
|
|
UnmapViewOfFile(buf);
|
|
|
|
return result;
|
|
-#elif PPSSPP_PLATFORM(ANDROID) || defined(__LIBRETRO__) || PPSSPP_PLATFORM(SWITCH)
|
|
+#elif PPSSPP_PLATFORM(ANDROID) || defined(__LIBRETRO__) || PPSSPP_PLATFORM(SWITCH) || defined(__HAIKU__)
|
|
// TODO: replace shm_open & shm_unlink with ashmem or android-shmem
|
|
return false;
|
|
#else
|
|
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
|
|
index c172f43..d537540 100644
|
|
--- a/SDL/SDLMain.cpp
|
|
+++ b/SDL/SDLMain.cpp
|
|
@@ -393,6 +393,9 @@ void System_LaunchUrl(LaunchUrlType urlType, const char *url) {
|
|
ShellExecute(NULL, L"open", wurl.c_str(), NULL, NULL, SW_SHOWNORMAL);
|
|
#elif defined(__APPLE__)
|
|
OSXOpenURL(url);
|
|
+#elif defined(__HAIKU__)
|
|
+ std::string command = std::string("open \"") + url + std::string("\"");
|
|
+ system(command.c_str());
|
|
#else
|
|
std::string command = std::string("xdg-open ") + url;
|
|
int err = system(command.c_str());
|
|
@@ -412,6 +415,9 @@ void System_LaunchUrl(LaunchUrlType urlType, const char *url) {
|
|
#elif defined(__APPLE__)
|
|
std::string mailToURL = std::string("mailto:") + url;
|
|
OSXOpenURL(mailToURL.c_str());
|
|
+#elif defined(__HAIKU__)
|
|
+ std::string command = std::string("open mailto:") + url;
|
|
+ system(command.c_str());
|
|
#else
|
|
std::string command = std::string("xdg-email ") + url;
|
|
int err = system(command.c_str());
|
|
@@ -431,6 +437,8 @@ std::string System_GetProperty(SystemProperty prop) {
|
|
return "SDL:Windows";
|
|
#elif __linux__
|
|
return "SDL:Linux";
|
|
+#elif __HAIKU__
|
|
+ return "SDL:Haiku";
|
|
#elif __APPLE__
|
|
return "SDL:macOS";
|
|
#elif PPSSPP_PLATFORM(SWITCH)
|
|
@@ -1145,6 +1153,16 @@ int main(int argc, char *argv[]) {
|
|
|
|
TimeInit();
|
|
|
|
+#ifdef __HAIKU__
|
|
+ char *binpath = realpath(argv[0], NULL);
|
|
+ if (binpath != NULL) {
|
|
+ char *appdir = strrchr(binpath, '/');
|
|
+ *appdir = '\0';
|
|
+ chdir(binpath);
|
|
+ free(binpath);
|
|
+ }
|
|
+#endif
|
|
+
|
|
#ifdef HAVE_LIBNX
|
|
socketInitializeDefault();
|
|
nxlinkStdio();
|
|
diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp
|
|
index 4c035ca..23ecbb0 100644
|
|
--- a/UI/NativeApp.cpp
|
|
+++ b/UI/NativeApp.cpp
|
|
@@ -486,6 +486,9 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch
|
|
#elif PPSSPP_PLATFORM(SWITCH)
|
|
g_Config.memStickDirectory = g_Config.internalDataDirectory / "config/ppsspp";
|
|
g_Config.flash0Directory = g_Config.internalDataDirectory / "assets/flash0";
|
|
+#elif defined(__HAIKU__)
|
|
+ g_Config.memStickDirectory = Path(getenv("HOME")) / "/config/settings/ppsspp/";
|
|
+ g_Config.flash0Directory = File::GetExeDirectory() / "/assets/flash0/";
|
|
#elif !PPSSPP_PLATFORM(WINDOWS)
|
|
std::string config;
|
|
if (getenv("XDG_CONFIG_HOME") != NULL)
|
|
diff --git a/cmake/Modules/FindFFmpeg.cmake b/cmake/Modules/FindFFmpeg.cmake
|
|
index 648c0ba..cf5bd49 100644
|
|
--- a/cmake/Modules/FindFFmpeg.cmake
|
|
+++ b/cmake/Modules/FindFFmpeg.cmake
|
|
@@ -33,7 +33,6 @@ set(_FFmpeg_ALL_COMPONENTS
|
|
avfilter
|
|
avformat
|
|
avutil
|
|
- postproc
|
|
swresample
|
|
swscale
|
|
)
|
|
@@ -42,7 +41,6 @@ set(_FFmpeg_DEPS_avcodec avutil)
|
|
set(_FFmpeg_DEPS_avdevice avcodec avformat avutil)
|
|
set(_FFmpeg_DEPS_avfilter avutil)
|
|
set(_FFmpeg_DEPS_avformat avcodec avutil)
|
|
-set(_FFmpeg_DEPS_postproc avutil)
|
|
set(_FFmpeg_DEPS_swresample avutil)
|
|
set(_FFmpeg_DEPS_swscale avutil)
|
|
|
|
@@ -68,6 +66,8 @@ function(find_ffmpeg LIBNAME)
|
|
${FFMPEG_DIR}/include/lib${LIBNAME}
|
|
${FFMPEG_DIR}/include/ffmpeg
|
|
${FFMPEG_DIR}/include
|
|
+ ${FFMPEG_DIR}/headers/x86/${LIBNAME}
|
|
+ ${FFMPEG_DIR}/headers
|
|
NO_DEFAULT_PATH
|
|
NO_CMAKE_FIND_ROOT_PATH
|
|
)
|
|
@@ -75,6 +75,7 @@ function(find_ffmpeg LIBNAME)
|
|
${FFMPEG_DIR}
|
|
${FFMPEG_DIR}/lib
|
|
${FFMPEG_DIR}/lib${LIBNAME}
|
|
+ ${FFMPEG_DIR}/lib/x86/${LIBNAME}
|
|
NO_DEFAULT_PATH
|
|
NO_CMAKE_FIND_ROOT_PATH
|
|
)
|
|
diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt
|
|
index b0aa7ad..f32cebc 100644
|
|
--- a/ext/CMakeLists.txt
|
|
+++ b/ext/CMakeLists.txt
|
|
@@ -36,7 +36,7 @@ add_subdirectory(rcheevos-build)
|
|
if(NOT HTTPS_NOT_AVAILABLE)
|
|
add_subdirectory(naett-build)
|
|
endif()
|
|
-if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO)
|
|
+if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO AND NOT HAIKU)
|
|
add_subdirectory(discord-rpc-build)
|
|
endif()
|
|
|
|
diff --git a/ext/armips/ext/filesystem/include/ghc/filesystem.hpp b/ext/armips/ext/filesystem/include/ghc/filesystem.hpp
|
|
index 5cd76ae..0d0d5cb 100644
|
|
--- a/ext/armips/ext/filesystem/include/ghc/filesystem.hpp
|
|
+++ b/ext/armips/ext/filesystem/include/ghc/filesystem.hpp
|
|
@@ -51,6 +51,8 @@
|
|
#define GHC_OS_MACOS
|
|
#elif defined(__linux__)
|
|
#define GHC_OS_LINUX
|
|
+#elif defined(__HAIKU__)
|
|
+#define GHC_OS_HAIKU
|
|
#if defined(__ANDROID__)
|
|
#define GHC_OS_ANDROID
|
|
#endif
|
|
diff --git a/ext/cityhash/city.h b/ext/cityhash/city.h
|
|
index 94499ce..1b80a5e 100644
|
|
--- a/ext/cityhash/city.h
|
|
+++ b/ext/cityhash/city.h
|
|
@@ -67,7 +67,11 @@
|
|
#include <utility>
|
|
|
|
typedef uint8_t uint8;
|
|
+#if defined(__HAIKU__)
|
|
+#include <SupportDefs.h>
|
|
+#else
|
|
typedef uint32_t uint32;
|
|
+#endif // Haiku
|
|
typedef uint64_t uint64;
|
|
typedef std::pair<uint64, uint64> uint128;
|
|
|
|
diff --git a/ext/xxhash.h b/ext/xxhash.h
|
|
index aeecc38..34852f7 100644
|
|
--- a/ext/xxhash.h
|
|
+++ b/ext/xxhash.h
|
|
@@ -1544,6 +1544,11 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
|
|
# define XXH_ASSERT(c) ((void)0)
|
|
#endif
|
|
|
|
+#ifdef __HAIKU__
|
|
+#undef static_assert
|
|
+#define static_assert _Static_assert
|
|
+#endif
|
|
+
|
|
/* note: use after variable declarations */
|
|
#ifndef XXH_STATIC_ASSERT
|
|
# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */
|
|
diff --git a/ffmpeg/haiku-build.sh b/ffmpeg/haiku-build.sh
|
|
new file mode 100755
|
|
index 0000000..b1934b6
|
|
--- /dev/null
|
|
+++ b/ffmpeg/haiku-build.sh
|
|
@@ -0,0 +1,106 @@
|
|
+#!/bin/sh
|
|
+
|
|
+rm -f config.h
|
|
+echo "Building for Haiku"
|
|
+
|
|
+set -e
|
|
+
|
|
+ARCH=$(getarch)
|
|
+
|
|
+GENERAL="
|
|
+ --disable-shared \
|
|
+ --enable-static"
|
|
+
|
|
+MODULES="\
|
|
+ --disable-avdevice \
|
|
+ --disable-filters \
|
|
+ --disable-programs \
|
|
+ --disable-network \
|
|
+ --disable-avfilter \
|
|
+ --disable-postproc \
|
|
+ --disable-encoders \
|
|
+ --disable-doc \
|
|
+ --disable-ffplay \
|
|
+ --disable-ffprobe \
|
|
+ --disable-ffserver \
|
|
+ --disable-ffmpeg"
|
|
+
|
|
+VIDEO_DECODERS="\
|
|
+ --enable-decoder=h264 \
|
|
+ --enable-decoder=mpeg4 \
|
|
+ --enable-decoder=h263 \
|
|
+ --enable-decoder=h263p \
|
|
+ --enable-decoder=mpeg2video \
|
|
+ --enable-decoder=mjpeg \
|
|
+ --enable-decoder=mjpegb"
|
|
+
|
|
+AUDIO_DECODERS="\
|
|
+ --enable-decoder=aac \
|
|
+ --enable-decoder=aac_latm \
|
|
+ --enable-decoder=atrac3 \
|
|
+ --enable-decoder=atrac3p \
|
|
+ --enable-decoder=mp3 \
|
|
+ --enable-decoder=pcm_s16le \
|
|
+ --enable-decoder=pcm_s8"
|
|
+
|
|
+DEMUXERS="\
|
|
+ --enable-demuxer=h264 \
|
|
+ --enable-demuxer=h263 \
|
|
+ --enable-demuxer=m4v \
|
|
+ --enable-demuxer=mpegps \
|
|
+ --enable-demuxer=mpegvideo \
|
|
+ --enable-demuxer=avi \
|
|
+ --enable-demuxer=mp3 \
|
|
+ --enable-demuxer=aac \
|
|
+ --enable-demuxer=pmp \
|
|
+ --enable-demuxer=oma \
|
|
+ --enable-demuxer=pcm_s16le \
|
|
+ --enable-demuxer=pcm_s8 \
|
|
+ --enable-demuxer=wav"
|
|
+
|
|
+VIDEO_ENCODERS="\
|
|
+ --enable-encoder=ffv1 \
|
|
+ --enable-encoder=huffyuv \
|
|
+ --enable-encoder=mpeg4"
|
|
+
|
|
+AUDIO_ENCODERS="\
|
|
+ --enable-encoder=pcm_s16le"
|
|
+
|
|
+MUXERS="\
|
|
+ --enable-muxer=avi"
|
|
+
|
|
+PARSERS="\
|
|
+ --enable-parser=h264 \
|
|
+ --enable-parser=mpeg4video \
|
|
+ --enable-parser=mpegvideo \
|
|
+ --enable-parser=aac \
|
|
+ --enable-parser=aac_latm \
|
|
+ --enable-parser=mpegaudio"
|
|
+
|
|
+PROTOCOLS="\
|
|
+ --enable-protocol=file"
|
|
+
|
|
+export LDFLAGS="-fPIC"
|
|
+
|
|
+./configure \
|
|
+ --prefix=./haiku/${ARCH} \
|
|
+ ${GENERAL} \
|
|
+ --extra-cflags="-O3 -fPIC" \
|
|
+ --extra-cxxflags="-O3 -fPIC" \
|
|
+ --extra-ldflags="-fPIC -liconv" \
|
|
+ --enable-zlib \
|
|
+ --disable-yasm \
|
|
+ --disable-inline-asm \
|
|
+ --disable-everything \
|
|
+ ${MODULES} \
|
|
+ ${VIDEO_DECODERS} \
|
|
+ ${AUDIO_DECODERS} \
|
|
+ ${VIDEO_ENCODERS} \
|
|
+ ${AUDIO_ENCODERS} \
|
|
+ ${DEMUXERS} \
|
|
+ ${MUXERS} \
|
|
+ ${PARSERS} \
|
|
+ ${PROTOCOLS}
|
|
+
|
|
+make clean
|
|
+make install
|
|
--
|
|
2.45.2
|
|
|