AM_CFLAGS = -Wno-multichar -DSYSCONFDIR=\"$(sysconfdir)\"
if BUILD_FOR_FREEBSD
AM_CPPFLAGS = -I/usr/local/include -Wno-multichar -DSYSCONFDIR=\"$(sysconfdir)\" -O2
+else
+if BUILD_FOR_OPENBSD
+ AM_CPPFLAGS = -I/usr/local/include -Wno-multichar -DSYSCONFDIR=\"$(sysconfdir)\"
else
AM_CPPFLAGS = -Wno-multichar -DSYSCONFDIR=\"$(sysconfdir)\"
endif
+endif
if USE_APPLE_ALAC
shairport_sync_SOURCES += apple_alac.cpp
uint64_t get_absolute_time_in_fp() {
uint64_t time_now_fp;
-#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN
+#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD
struct timespec tn;
// can't use CLOCK_MONOTONIC_RAW as it's not implemented in OpenWrt
clock_gettime(CLOCK_MONOTONIC, &tn);
#include "definitions.h"
#include "mdns.h"
-#if defined(__APPLE__) && defined(__MACH__)
-/* Apple OSX and iOS (Darwin). ------------------------------ */
-#include <TargetConditionals.h>
-#if TARGET_OS_MAC == 1
-/* OSX */
-#define COMPILE_FOR_OSX 1
-#endif
-#endif
-
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__CYGWIN__)
-/* Linux and FreeBSD */
-#define COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN 1
-#endif
-
// struct sockaddr_in6 is bigger than struct sockaddr. derp
#ifdef AF_INET6
#define SOCKADDR struct sockaddr_storage
AC_CHECK_LIB([rt],[clock_gettime], , AC_MSG_ERROR(librt needed))
fi
-AM_CONDITIONAL([BUILD_FOR_FREEBSD], [test "x${with_os}" = xfreebsd ])
+if test "x${with_os}" = xopenbsd ; then
+ AC_CHECK_LIB([c],[clock_gettime], , AC_MSG_ERROR(libc needed))
+fi
+
+ AM_CONDITIONAL([BUILD_FOR_FREEBSD], [test "x${with_os}" = xfreebsd ])
+
+AM_CONDITIONAL([BUILD_FOR_OPENBSD], [test "x${with_os}" = xopenbsd ])
##### Some build systems are not fully using pkg-config, so we can use the flag ${with_pkg_config} on a case-by-case basis
##### to control how to deal with them
#endif
#endif
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__CYGWIN__)
-/* Linux and FreeBSD */
-#define COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN 1
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
+#define COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD 1
#endif
// struct sockaddr_in6 is bigger than struct sockaddr. derp
time_to_wait_for_wakeup_fp *= 4 * 352; // four full 352-frame packets
time_to_wait_for_wakeup_fp /= 3; // four thirds of a packet time
-#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN
+#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD
uint64_t time_of_wakeup_fp = local_time_now + time_to_wait_for_wakeup_fp;
uint64_t sec = time_of_wakeup_fp >> 32;
uint64_t nsec = ((time_of_wakeup_fp & 0xffffffff) * 1000000000) >> 32;
if (rc)
debug(1, "Error initialising vol_mutex.");
// set the flowcontrol condition variable to wait on a monotonic clock
-#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN
+#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD
pthread_condattr_t attr;
pthread_condattr_init(&attr);
pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); // can't do this in OS X, and don't need it.
* Shairport, an Apple Airplay receiver
* Copyright (c) James Laird 2013
* All rights reserved.
- * Modifications (c) Mike Brady 2014--2017
+ * Modifications (c) Mike Brady 2014--2018
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
#include <libconfig.h>
#include <libgen.h>
#include <memory.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <popt.h>
#include <stdio.h>