Skip to content

Commit 525d4f0

Browse files
committed
Merge pull request #76 from ianpartridge/experimental/foundation
libkqueue as git submodule
2 parents 7459cde + 7b5b57c commit 525d4f0

File tree

7 files changed

+49
-24
lines changed

7 files changed

+49
-24
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "libpwq"]
22
path = libpwq
33
url = https://github.com/mheily/libpwq.git
4+
[submodule "libkqueue"]
5+
path = libkqueue
6+
url = https://github.com/ianpartridge/libkqueue.git

INSTALL

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Prepare your system
109109
2. Install dtrace (to generate provider.h)
110110
sudo apt-get install systemtap-sdt-dev
111111
3. Install libdispatch pre-reqs
112-
sudo apt-get install libblocksruntime-dev libkqueue-dev libbsd-dev
112+
sudo apt-get install libblocksruntime-dev libbsd-dev
113113

114114
Initialize git submodules:
115115
We are using git submodules to incorporate a specific revision of the

Makefile.am

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,30 @@
55
ACLOCAL_AMFLAGS = -I m4
66

77
if BUILD_OWN_PTHREAD_WORKQUEUES
8+
MAYBE_PTHREAD_WORKQUEUES = libpwq
9+
endif
10+
11+
if BUILD_OWN_KQUEUES
12+
MAYBE_KQUEUES = libkqueue
13+
endif
14+
815
SUBDIRS= \
916
dispatch \
10-
libpwq \
11-
man \
12-
os \
13-
private \
14-
src \
15-
tests
16-
else
17-
SUBDIRS= \
18-
dispatch \
19-
man \
20-
os \
17+
$(MAYBE_PTHREAD_WORKQUEUES) \
18+
$(MAYBE_KQUEUES) \
19+
man \
20+
os \
2121
private \
22-
src \
22+
src \
2323
tests
24-
endif
2524

2625
EXTRA_DIST= \
2726
README.md \
2827
LICENSE \
2928
PATCHES \
3029
autogen.sh \
31-
config/config.h \
32-
libdispatch.xcodeproj \
30+
config/config.h \
31+
libdispatch.xcodeproj \
3332
resolver \
3433
tools \
3534
xcodeconfig \

configure.ac

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,20 @@ esac
150150
AC_SEARCH_LIBS(clock_gettime, rt)
151151
AC_SEARCH_LIBS(pthread_create, pthread)
152152

153-
#
154-
# Prefer native kqueue(2); otherwise use libkqueue if present.
155-
#
156-
AC_CHECK_HEADER(sys/event.h, [],
157-
[PKG_CHECK_MODULES(KQUEUE, libkqueue)]
153+
AS_IF([test -f $srcdir/libkqueue/configure.ac],
154+
[AC_DEFINE(BUILD_OWN_KQUEUES, 1, [Define if building libkqueue from source])
155+
ac_configure_args="--disable-libkqueue-install $ac_configure_args"
156+
AC_CONFIG_SUBDIRS([libkqueue])
157+
build_own_kqueues=true],
158+
[build_own_kqueues=false
159+
AC_CHECK_HEADER(sys/event.h, [],
160+
[AC_SEARCH_LIBS([kqueue], [kqueue], [],
161+
[AC_MSG_ERROR([unable to find kqueue() function])]
162+
)]
163+
)
164+
]
158165
)
166+
AM_CONDITIONAL(BUILD_OWN_KQUEUES, $build_own_kqueues)
159167

160168
AC_CHECK_FUNCS([strlcpy getprogname], [],
161169
[PKG_CHECK_MODULES(BSD_OVERLAY, libbsd-overlay,[

libkqueue

Submodule libkqueue added at 549b826

src/Makefile.am

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,19 @@ AM_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) \
5959
-I$(top_srcdir)/private -I$(top_srcdir)/os
6060

6161
DISPATCH_CFLAGS=-Wall $(VISIBILITY_FLAGS) $(OMIT_LEAF_FP_FLAGS) \
62-
$(MARCH_FLAGS) $(KQUEUE_CFLAGS) $(BSD_OVERLAY_CFLAGS)
63-
AM_CFLAGS= $(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CBLOCKS_FLAGS)
62+
$(MARCH_FLAGS) $(BSD_OVERLAY_CFLAGS)
63+
AM_CFLAGS=$(KQUEUE_CFLAGS) $(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CBLOCKS_FLAGS)
6464
AM_OBJCFLAGS=$(DISPATCH_CFLAGS) $(CBLOCKS_FLAGS)
65-
AM_CXXFLAGS=$(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CXXBLOCKS_FLAGS)
65+
AM_CXXFLAGS=$(KQUEUE_CFLAGS) $(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CXXBLOCKS_FLAGS)
6666
AM_OBJCXXFLAGS=$(DISPATCH_CFLAGS) $(CXXBLOCKS_FLAGS)
6767

68+
if BUILD_OWN_KQUEUES
69+
KQUEUE_LIBS=$(top_builddir)/libkqueue/libkqueue.la
70+
KQUEUE_CFLAGS=-I$(top_srcdir)/libkqueue/include
71+
else
72+
KQUEUE_CFLAGS=-I/usr/local/include/kqueue
73+
endif
74+
6875
if BUILD_OWN_PTHREAD_WORKQUEUES
6976
PTHREAD_WORKQUEUE_LIBS=$(top_builddir)/libpwq/libpthread_workqueue.la
7077
PTHREAD_WORKQUEUE_CFLAGS=-I$(top_srcdir)/libpwq/include

tests/Makefile.am

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,13 @@ AM_OBJCFLAGS=$(DISPATCH_TESTS_CFLAGS) $(CBLOCKS_FLAGS)
115115
AM_CXXFLAGS=$(DISPATCH_TESTS_CFLAGS) $(CXXBLOCKS_FLAGS) $(BSD_OVERLAY_CFLAGS)
116116
AM_OBJCXXFLAGS=$(DISPATCH_TESTS_CFLAGS) $(CXXBLOCKS_FLAGS)
117117

118+
if BUILD_OWN_KQUEUES
119+
KQUEUE_LIBS=$(top_builddir)/libkqueue/libkqueue.la
120+
KQUEUE_CFLAGS=-I$(top_srcdir)/libkqueue/include
121+
else
122+
KQUEUE_CFLAGS=-I/usr/local/include/kqueue
123+
endif
124+
118125
if !BUILD_OWN_PTHREAD_WORKQUEUES
119126
if HAVE_PTHREAD_WORKQUEUES
120127
PTHREAD_WORKQUEUE_LIBS=-lpthread_workqueue

0 commit comments

Comments
 (0)