- some items in meson were missing a dependency on udev
- libdl does not exist on FreeBSD, dlopen is in libc
- no linux/types.h on FreeBSD
- stdarg.h included when variadic functions are used
- and other fixes
---
 include/linux/input.h         | 11 +++++++++++
 meson.build                   |  9 +++++++--
 src/evdev.h                   |  1 +
 src/libinput-private.h        |  1 +
 src/libinput-util.h           |  4 ++++
 src/libinput.c                |  1 +
 src/libinput.h                |  1 +
 test/litest.c                 | 27 +++++++++++++++++++++++++--
 test/litest.h                 |  1 +
 test/test-log.c               |  1 +
 test/test-misc.c              |  1 +
 test/test-pointer.c           |  2 ++
 test/test-tablet.c            |  1 +
 tools/libinput-debug-events.c |  1 +
 tools/libinput-debug-gui.c    |  1 +
 tools/ptraccel-debug.c        |  8 +++++++-
 16 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/include/linux/input.h b/include/linux/input.h
index 06316b27..95134d8e 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -11,7 +11,18 @@
 #include <sys/time.h>
 #include <sys/ioctl.h>
 #include <sys/types.h>
+#ifdef __FreeBSD__
+#define __u8 uint8_t
+#define __u16 uint16_t
+#define __u32 uint32_t
+#define __u64 uint64_t
+#define __s16 int16_t
+#define __s32 int32_t
+#define _IOC_READ IOC_OUT
+#define _IOC_WRITE IOC_IN
+#else
 #include <linux/types.h>
+#endif
 
 #include "input-event-codes.h"
 
diff --git a/meson.build b/meson.build
index 13c6a27f..5d9db605 100644
--- a/meson.build
+++ b/meson.build
@@ -145,7 +145,9 @@ src_libfilter = [
                'src/filter.h',
                'src/filter-private.h'
 ]
-libfilter = static_library('filter', src_libfilter)
+libfilter = static_library('filter', src_libfilter,
+                          dependencies : dep_udev,
+                          include_directories : includes_include)
 dep_libfilter = declare_dependency(link_with : libfilter)
 
 ############ libinput.so ############
@@ -598,7 +600,7 @@ if get_option('tests')
                'test/litest.c'
        ]
 
-       dep_dl = cc.find_library('dl')
+       dep_dl = cc.find_library('dl', required : false)
        deps_litest = [
                dep_libinput,
                dep_check,
@@ -689,12 +691,14 @@ if get_option('tests')
        # build-test only
         executable('test-build-pedantic',
                   'test/build-pedantic.c',
+                  dependencies : [dep_udev],
                   include_directories : [includes_src, includes_include],
                   c_args : ['-std=c99', '-pedantic', '-Werror'],
                   install : false)
        # build-test only
         executable('test-build-std-gnuc90',
                   'test/build-pedantic.c',
+                  dependencies : [dep_udev],
                   include_directories : [includes_src, includes_include],
                   c_args : ['-std=gnu90', '-Werror'],
                   install : false)
@@ -707,6 +711,7 @@ if get_option('tests')
        # test including from C++
        executable('test-build-cxx',
                   'test/build-cxx.cc',
+                  dependencies : [dep_udev],
                   include_directories : [includes_src, includes_include],
                   install : false)
 
diff --git a/src/evdev.h b/src/evdev.h
index 11ed7da5..75223852 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -29,6 +29,7 @@
 #include "config.h"
 
 #include <stdbool.h>
+#include <stdarg.h>
 #include "linux/input.h"
 #include <libevdev/libevdev.h>
 
diff --git a/src/libinput-private.h b/src/libinput-private.h
index a59cb08e..d50154ef 100644
--- a/src/libinput-private.h
+++ b/src/libinput-private.h
@@ -29,6 +29,7 @@
 
 #include <errno.h>
 #include <math.h>
+#include <stdarg.h>
 
 #include "linux/input.h"
 
diff --git a/src/libinput-util.h b/src/libinput-util.h
index 57bcdbb5..a4522f6b 100644
--- a/src/libinput-util.h
+++ b/src/libinput-util.h
@@ -30,7 +30,11 @@
 #include <assert.h>
 #include <errno.h>
 #include <limits.h>
+#ifdef __FreeBSD__
+#include <xlocale.h>
+#else
 #include <locale.h>
+#endif
 #include <math.h>
 #include <stdarg.h>
 #include <stdbool.h>
diff --git a/src/libinput.c b/src/libinput.c
index 49de8f27..d85693a4 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -28,6 +28,7 @@
 #include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdarg.h>
 #include <string.h>
 #include <sys/epoll.h>
 #include <unistd.h>
diff --git a/src/libinput.h b/src/libinput.h
index 1a06bc7c..759bce91 100644
--- a/src/libinput.h
+++ b/src/libinput.h
@@ -31,6 +31,7 @@ extern "C" {
 
 #include <stdlib.h>
 #include <stdint.h>
+#include <stdarg.h>
 #include <libudev.h>
 
 #define LIBINPUT_ATTRIBUTE_PRINTF(_format, _args) \
diff --git a/test/litest.c b/test/litest.c
index 3ca319c2..c27c2369 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -36,12 +36,17 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdarg.h>
 #include <time.h>
 #include <unistd.h>
 #include "linux/input.h"
 #include <sys/ptrace.h>
 #include <sys/resource.h>
+#ifdef __linux__
 #include <sys/sendfile.h>
+#elif __FreeBSD__
+#include <sys/socket.h>
+#endif
 #include <sys/timerfd.h>
 #include <sys/wait.h>
 #include <sys/stat.h>
@@ -1031,7 +1036,13 @@ litest_copy_file(const char *dest, const char *src, 
const char *header)
                                 src,
                                 strerror(errno));
        /* lazy, just check for error and empty file copy */
-       litest_assert_int_gt(sendfile(out, in, NULL, 40960), 0);
+       litest_assert_int_gt(
+#ifdef __linux__
+                       sendfile(out, in, NULL, 40960)
+#elif __FreeBSD__
+                       sendfile(out, in, 0, 40960, NULL, NULL, 0)
+#endif
+                       , 0);
        close(out);
        close(in);
 
@@ -3536,10 +3547,17 @@ is_debugger_attached(void)
 
        if (pid == 0) {
                int ppid = getppid();
+#ifdef __linux__
                if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) {
                        waitpid(ppid, NULL, 0);
                        ptrace(PTRACE_CONT, NULL, NULL);
                        ptrace(PTRACE_DETACH, ppid, NULL, NULL);
+#elif __FreeBSD__
+               if (ptrace(PT_ATTACH, ppid, NULL, 0) == 0) {
+                       waitpid(ppid, NULL, 0);
+                       ptrace(PT_CONTINUE, ppid, NULL, 0);
+                       ptrace(PT_DETACH, ppid, NULL, 0);
+#endif
                        rc = 0;
                } else {
                        rc = 1;
@@ -3608,7 +3626,12 @@ main(int argc, char **argv)
        if (getuid() != 0) {
                fprintf(stderr,
                        "%s must be run as root.\n",
-                       program_invocation_short_name);
+#ifdef __linux__
+                       program_invocation_short_name
+#else
+                       argv[0]
+#endif
+                       );
                return 77;
        }
 
diff --git a/test/litest.h b/test/litest.h
index b7667ffe..faa469c0 100644
--- a/test/litest.h
+++ b/test/litest.h
@@ -27,6 +27,7 @@
 #define LITEST_H
 
 #include <stdbool.h>
+#include <stdarg.h>
 #include <check.h>
 #include <libevdev/libevdev.h>
 #include <libevdev/libevdev-uinput.h>
diff --git a/test/test-log.c b/test/test-log.c
index 2705a81e..02ff0185 100644
--- a/test/test-log.c
+++ b/test/test-log.c
@@ -28,6 +28,7 @@
 #include <fcntl.h>
 #include <libinput.h>
 #include <unistd.h>
+#include <stdarg.h>
 
 #include "litest.h"
 
diff --git a/test/test-misc.c b/test/test-misc.c
index 32081c03..94cbfcc1 100644
--- a/test/test-misc.c
+++ b/test/test-misc.c
@@ -29,6 +29,7 @@
 #include <libinput.h>
 #include <libinput-util.h>
 #include <unistd.h>
+#include <stdarg.h>
 
 #include "litest.h"
 #include "libinput-util.h"
diff --git a/test/test-pointer.c b/test/test-pointer.c
index 7324c0f6..14801aeb 100644
--- a/test/test-pointer.c
+++ b/test/test-pointer.c
@@ -30,7 +30,9 @@
 #include <libinput.h>
 #include <math.h>
 #include <unistd.h>
+#ifdef __linux__
 #include <values.h>
+#endif
 
 #include "libinput-util.h"
 #include "litest.h"
diff --git a/test/test-tablet.c b/test/test-tablet.c
index 218b6e40..bc089389 100644
--- a/test/test-tablet.c
+++ b/test/test-tablet.c
@@ -29,6 +29,7 @@
 #include <libinput.h>
 #include <unistd.h>
 #include <stdbool.h>
+#include <stdarg.h>
 
 #include "libinput-util.h"
 #include "evdev-tablet.h"
diff --git a/tools/libinput-debug-events.c b/tools/libinput-debug-events.c
index 56810c57..33f51d0e 100644
--- a/tools/libinput-debug-events.c
+++ b/tools/libinput-debug-events.c
@@ -29,6 +29,7 @@
 #include <getopt.h>
 #include <poll.h>
 #include <stdio.h>
+#include <stdarg.h>
 #include <signal.h>
 #include <string.h>
 #include <time.h>
diff --git a/tools/libinput-debug-gui.c b/tools/libinput-debug-gui.c
index 43ae5499..ab49ad66 100644
--- a/tools/libinput-debug-gui.c
+++ b/tools/libinput-debug-gui.c
@@ -31,6 +31,7 @@
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdarg.h>
 #include <string.h>
 #include <unistd.h>
 
diff --git a/tools/ptraccel-debug.c b/tools/ptraccel-debug.c
index 93be523f..262b8587 100644
--- a/tools/ptraccel-debug.c
+++ b/tools/ptraccel-debug.c
@@ -190,7 +190,13 @@ print_accel_func_trackpoint(struct motion_filter *filter,
 static void
 usage(void)
 {
-       printf("Usage: %s [options] [dx1] [dx2] [...] > gnuplot.data\n", 
program_invocation_short_name);
+       printf("Usage: %s [options] [dx1] [dx2] [...] > gnuplot.data\n",
+#ifdef __linux__
+                       program_invocation_short_name
+#else
+                       "ptraccel-debug"
+#endif
+                       );
        printf("\n"
               "Options:\n"
               "--mode=<motion|accel|delta|sequence> \n"
-- 
2.15.0

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to