Necessary changes to get latest branch working on OpenBSD 5.6

This commit is contained in:
Bryan Everly
2015-04-21 14:42:06 -04:00
parent b029e78ae7
commit 8c75127a67
13 changed files with 49 additions and 14 deletions

View File

@@ -186,8 +186,10 @@ if(CMAKE_COMPILER_IS_GNUCC)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
endif()
CHECK_C_COMPILER_FLAG (-Wno-builtin-macro-redefined Wno-builtin-macro-redefined)
if(Wno-builtin-macro-redefined)
@@ -364,6 +366,16 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
set(FREEBSD TRUE)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
set(OPENBSD TRUE)
endif()
endif()
# OpenBSD
if(OPENBSD)
set(WITH_ALSA "OFF")
set(WITH_PULSE "ON")
set(WITH_WAYLAND "OFF")
endif()
# Android
@@ -631,6 +643,11 @@ if(BSD)
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
endif()
if(OPENBSD)
if(IS_DIRECTORY /usr/X11R6/include)
include_directories(/usr/X11R6/include)
endif()
endif()
endif()
# Configure files

View File

@@ -56,7 +56,7 @@
typedef UINT32 ssize_t;
typedef UINT32 mode_t;
#elif defined(__APPLE__) || defined(__FreeBSD__)
#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
#define STAT stat
#define OPEN open
#define LSEEK lseek

View File

@@ -36,7 +36,11 @@
#include <libgen.h>
#include <limits.h>
#include <unistd.h>
#include <sys/soundcard.h>
#if defined(__OpenBSD__)
#include <soundcard.h>
#else
#include <sys/soundcard.h>
#endif
#include <sys/ioctl.h>
#include <freerdp/types.h>

View File

@@ -28,7 +28,11 @@ set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp" RUNTIME_O
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} xfreerdp-client)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
if(OPENBSD)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ossaudio)
else()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
endif()
install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT client)

View File

@@ -76,7 +76,11 @@ set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS}
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} winpr freerdp)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
if(OPENBSD)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} ossaudio)
else()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
endif()
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries EXPORT FreeRDPTargets)

View File

@@ -9,7 +9,11 @@ IF(UNIX)
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
SET(OSS_HDR_NAME "sys/soundcard.h")
ELSE(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
SET(OSS_HDR_NAME "machine/soundcard.h")
IF(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
SET(OSS_HDR_NAME "soundcard.h")
ELSE(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
SET(OSS_HDR_NAME "machine/soundcard.h")
ENDIF(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
ENDIF(UNIX)

View File

@@ -52,7 +52,7 @@
#include <sys/filio.h>
#endif
#ifdef __FreeBSD__
#if defined(__FreeBSD__) || defined(__OpenBSD__)
#ifndef SOL_TCP
#define SOL_TCP IPPROTO_TCP
#endif

View File

@@ -1523,7 +1523,7 @@ char* freerdp_get_unix_timezone_identifier()
return tzid;
}
#ifdef __FreeBSD__
#if defined(__FreeBSD__) || defined(__OpenBSD__)
fp = fopen("/var/db/zoneinfo", "r");
#else
fp = fopen("/etc/timezone", "r");
@@ -1682,7 +1682,7 @@ void freerdp_time_zone_detect(TIME_ZONE_INFO* clientTimeZone)
local_time = localtime(&t);
#ifdef HAVE_TM_GMTOFF
#if defined(__FreeBSD__)
#if defined(__FreeBSD__) || defined(__OpenBSD__)
if (local_time->tm_gmtoff >= 0)
clientTimeZone->bias = (UINT32) (local_time->tm_gmtoff / 60);
else

View File

@@ -30,7 +30,7 @@ winpr_module_add(
timer.c
wait.c)
if((NOT WIN32) AND (NOT APPLE) AND (NOT ANDROID))
if((NOT WIN32) AND (NOT APPLE) AND (NOT ANDROID) AND (NOT OPENBSD))
winpr_library_add(rt)
endif()

View File

@@ -109,7 +109,7 @@ static long long ts_difftime(const struct timespec *o,
#if !defined(HAVE_PTHREAD_GNU_EXT)
#include <pthread.h>
#if defined(__FreeBSD__) || defined(sun)
#if defined(__FreeBSD__) || defined(sun) || defined(__OpenBSD__)
/*the only way to get it work is to remove the static*/
int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *timeout)
#else

View File

@@ -17,7 +17,7 @@
winpr_module_add(sysinfo.c)
if((NOT WIN32) AND (NOT APPLE) AND (NOT ANDROID))
if((NOT WIN32) AND (NOT APPLE) AND (NOT ANDROID) AND (NOT OPENBSD))
winpr_library_add(rt)
endif()

View File

@@ -106,7 +106,7 @@ static DWORD GetNumberOfProcessors()
int mib[4];
size_t length = sizeof(numCPUs);
mib[0] = CTL_HW;
#if defined(__FreeBSD__)
#if defined(__FreeBSD__) || defined(__OpenBSD__)
mib[1] = HW_NCPU;
#else
mib[1] = HW_AVAILCPU;

View File

@@ -577,9 +577,11 @@ int WSAGetLastError(void)
break;
#endif
#if defined(EPROTO)
case EPROTO:
iError = WSAECONNRESET;
break;
#endif
}
/**