From f4890ec375830cc35d883759f9c00cfae2b69c6e Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 19 Mar 2016 19:26:26 +0000 Subject: [PATCH] Make it workable on OpenBSD - Additional LMMS_BUILD flag. - Disallow on plugins -Wl,-no-undefined which triggers undefined references. - Make sure X11 headers are found. Lib ossaudio is needed only for OpenBSD redundant expression removal simplify condition for detection OS 'kind' seems the last commit brought an issue on OSx travis test .... --- CMakeLists.txt | 4 ++-- cmake/modules/DetectMachine.cmake | 2 ++ include/lmms_math.h | 2 +- include/versioninfo.h | 4 ++++ plugins/LadspaEffect/calf/CMakeLists.txt | 4 ++-- plugins/LadspaEffect/caps/CMakeLists.txt | 4 ++-- plugins/LadspaEffect/cmt/CMakeLists.txt | 4 ++-- plugins/LadspaEffect/swh/CMakeLists.txt | 2 +- plugins/LadspaEffect/tap/CMakeLists.txt | 2 +- plugins/zynaddsubfx/CMakeLists.txt | 8 +++++--- plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.h | 2 ++ src/CMakeLists.txt | 4 ++++ src/lmmsconfig.h.in | 1 + 13 files changed, 29 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a11b3b59..fc6f3c895 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -386,9 +386,9 @@ If(WANT_GIG) ENDIF(WANT_GIG) # check for pthreads -IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) +IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD) FIND_PACKAGE(Threads) -ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) +ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD) # check for WINE IF(WANT_VST) diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index c0d6cba34..b5fb573fd 100644 --- a/cmake/modules/DetectMachine.cmake +++ b/cmake/modules/DetectMachine.cmake @@ -2,6 +2,8 @@ IF(WIN32) SET(LMMS_BUILD_WIN32 1) ELSEIF(APPLE) SET(LMMS_BUILD_APPLE 1) +ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") + SET(LMMS_BUILD_OPENBSD 1) ELSEIF(HAIKU) SET(LMMS_BUILD_HAIKU 1) ELSE() diff --git a/include/lmms_math.h b/include/lmms_math.h index b4d8995a0..28a3ce863 100644 --- a/include/lmms_math.h +++ b/include/lmms_math.h @@ -34,7 +34,7 @@ #include using namespace std; -#if defined (LMMS_BUILD_WIN32) || defined (LMMS_BUILD_APPLE) || defined(LMMS_BUILD_HAIKU) || defined (__FreeBSD__) +#if defined (LMMS_BUILD_WIN32) || defined (LMMS_BUILD_APPLE) || defined(LMMS_BUILD_HAIKU) || defined (__FreeBSD__) || defined(__OpenBSD__) #ifndef isnanf #define isnanf(x) isnan(x) #endif diff --git a/include/versioninfo.h b/include/versioninfo.h index 58f7a79e9..8477a61c0 100644 --- a/include/versioninfo.h +++ b/include/versioninfo.h @@ -24,6 +24,10 @@ #define PLATFORM "OS X" #endif +#ifdef LMMS_BUILD_OPENBSD +#define PLATFORM "OpenBSD" +#endif + #ifdef LMMS_BUILD_WIN32 #define PLATFORM "win32" #endif diff --git a/plugins/LadspaEffect/calf/CMakeLists.txt b/plugins/LadspaEffect/calf/CMakeLists.txt index 3bd4ae0f8..02e8a2d93 100644 --- a/plugins/LadspaEffect/calf/CMakeLists.txt +++ b/plugins/LadspaEffect/calf/CMakeLists.txt @@ -15,7 +15,7 @@ SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 -finline-functions ${IN IF(LMMS_BUILD_WIN32) ADD_CUSTOM_COMMAND(TARGET calf POST_BUILD COMMAND "${STRIP}" "$") ENDIF(LMMS_BUILD_WIN32) -IF(NOT LMMS_BUILD_APPLE) +IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES(calf PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") -ENDIF(NOT LMMS_BUILD_APPLE) +ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) diff --git a/plugins/LadspaEffect/caps/CMakeLists.txt b/plugins/LadspaEffect/caps/CMakeLists.txt index cb4ce1a00..eb9c6f7eb 100644 --- a/plugins/LadspaEffect/caps/CMakeLists.txt +++ b/plugins/LadspaEffect/caps/CMakeLists.txt @@ -11,9 +11,9 @@ SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O2 -funroll-loops -Wno-wri IF(LMMS_BUILD_WIN32) ADD_CUSTOM_COMMAND(TARGET caps POST_BUILD COMMAND "${STRIP}" \"$\") ENDIF(LMMS_BUILD_WIN32) -IF(NOT LMMS_BUILD_APPLE) +IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") -ENDIF(NOT LMMS_BUILD_APPLE) +ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) IF(LMMS_BUILD_LINUX) SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS}") diff --git a/plugins/LadspaEffect/cmt/CMakeLists.txt b/plugins/LadspaEffect/cmt/CMakeLists.txt index 81bb13dc2..cb48b414d 100644 --- a/plugins/LadspaEffect/cmt/CMakeLists.txt +++ b/plugins/LadspaEffect/cmt/CMakeLists.txt @@ -12,7 +12,7 @@ ELSE(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES(cmt PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC") ENDIF(LMMS_BUILD_WIN32) -IF(NOT LMMS_BUILD_APPLE) +IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES(cmt PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") -ENDIF(NOT LMMS_BUILD_APPLE) +ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) diff --git a/plugins/LadspaEffect/swh/CMakeLists.txt b/plugins/LadspaEffect/swh/CMakeLists.txt index e140b1793..fb203c6da 100644 --- a/plugins/LadspaEffect/swh/CMakeLists.txt +++ b/plugins/LadspaEffect/swh/CMakeLists.txt @@ -21,7 +21,7 @@ FOREACH(_item ${PLUGIN_SOURCES}) ENDIF(LMMS_BUILD_WIN32) IF(LMMS_BUILD_APPLE) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm") - ELSE(LMMS_BUILD_APPLE) + ELSEIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm") ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU) diff --git a/plugins/LadspaEffect/tap/CMakeLists.txt b/plugins/LadspaEffect/tap/CMakeLists.txt index 499dbf046..b8d451e6d 100644 --- a/plugins/LadspaEffect/tap/CMakeLists.txt +++ b/plugins/LadspaEffect/tap/CMakeLists.txt @@ -11,7 +11,7 @@ FOREACH(_item ${PLUGIN_SOURCES}) ENDIF(LMMS_BUILD_WIN32) IF(LMMS_BUILD_APPLE) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm") - ELSE(LMMS_BUILD_APPLE) + ELSEIF(NOT LMMS_BUILD_OPENBSD) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm") ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU) diff --git a/plugins/zynaddsubfx/CMakeLists.txt b/plugins/zynaddsubfx/CMakeLists.txt index fa96b9f32..b550db6e2 100644 --- a/plugins/zynaddsubfx/CMakeLists.txt +++ b/plugins/zynaddsubfx/CMakeLists.txt @@ -2,11 +2,13 @@ INCLUDE(BuildPlugin) # definitions for ZynAddSubFX -IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) +IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD) + FIND_PACKAGE(X11) + INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR}) ADD_DEFINITIONS(-DOS_LINUX) -ELSE(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) +ELSE() ADD_DEFINITIONS(-DOS_WINDOWS) -ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) +ENDIF() # do not conflict with LMMS' Controller class ADD_DEFINITIONS(-DController=ZynController) diff --git a/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.h b/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.h index 45d6f84fc..0e67f0367 100644 --- a/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.h +++ b/plugins/zynaddsubfx/zynaddsubfx/src/Misc/Util.h @@ -104,7 +104,9 @@ inline void sprng(prng_t p) /* * The random generator (0.0f..1.0f) */ +#ifndef INT32_MAX # define INT32_MAX (2147483647) +#endif #define RND (prng() / (INT32_MAX * 1.0f)) //Linear Interpolation diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d1a4a60d..0a1388de3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -106,6 +106,10 @@ IF(LMMS_BUILD_APPLE) SET(EXTRA_LIBRARIES "-framework CoreMIDI") ENDIF() +if(LMMS_HAVE_OSS AND LMMS_BUILD_OPENBSD) + SET(EXTRA_LIBRARIES "-lossaudio") +endif() + SET(LMMS_REQUIRED_LIBS ${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} diff --git a/src/lmmsconfig.h.in b/src/lmmsconfig.h.in index 3d48d8372..9fcdfc176 100644 --- a/src/lmmsconfig.h.in +++ b/src/lmmsconfig.h.in @@ -2,6 +2,7 @@ #cmakedefine LMMS_BUILD_WIN32 #cmakedefine LMMS_BUILD_WIN64 #cmakedefine LMMS_BUILD_APPLE +#cmakedefine LMMS_BUILD_OPENBSD #cmakedefine LMMS_BUILD_HAIKU #cmakedefine LMMS_HOST_X86