diff --git a/cli/configure b/cli/configure
index e5af0b4..d2bb5ee 100755
--- a/cli/configure
+++ b/cli/configure
@@ -35,9 +35,6 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS="../librtbuf/librtbuf.la -lreadline"
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR="/usr/local/lib"
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
for SRC in $SOURCES; do
SRC_LO=$(c2lo $SRC)
echo >> ${CONFIG_MK}
@@ -58,3 +55,10 @@ echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -shared \${LDFLAGS} \${OBJECTS} \
echo >> ${CONFIG_MK}
echo "$PROG: $LIBRARY $PROG_OBJECTS" >> ${CONFIG_MK}
echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} \${LDFLAGS} ${PROG_OBJECTS} ${LIBRARY} -o $PROG" >> ${CONFIG_MK}
+
+echo >> ${CONFIG_MK}
+echo "install: $LIBRARY $PROG" >> ${CONFIG_MK}
+echo "\t\${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 -d \${LIBDIR}" >> ${CONFIG_MK}
+echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $LIBRARY \${LIBDIR}" >> ${CONFIG_MK}
+echo "\t\${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 -d \${BINDIR}" >> ${CONFIG_MK}
+echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $PROG \${BINDIR}/$PROG" >> ${CONFIG_MK}
diff --git a/config.subr b/config.subr
index 0424aaa..4596820 100644
--- a/config.subr
+++ b/config.subr
@@ -79,6 +79,16 @@ if test -z "$PREFIX"; then
fi
echo "PREFIX = $PREFIX" >> ${CONFIG_MK}
+if test -z "$OWNER"; then
+ OWNER="$(stat $PREFIX | cut -d\ -f 5)"
+fi
+echo "OWNER = $OWNER" >> ${CONFIG_MK}
+
+if test -z "$GROUP"; then
+ GROUP="$(stat $PREFIX | cut -d\ -f 6)"
+fi
+echo "GROUP = $GROUP" >> ${CONFIG_MK}
+
if test -z "$BINDIR"; then
BINDIR=${PREFIX}/bin
fi
@@ -88,3 +98,38 @@ if test -z "$LIBDIR"; then
LIBDIR=${PREFIX}/lib
fi
echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
+
+if test -z "$RTBUF_LIBDIR"; then
+ RTBUF_LIBDIR=${LIBDIR}/rtbuf/${VER}
+fi
+echo "RTBUF_LIBDIR = $RTBUF_LIBDIR" >> ${CONFIG_MK}
+
+rtbuf_library() {
+ RTBUF_MODULE_LIBDIR="${RTBUF_LIBDIR}/$1"
+ echo "RTBUF_MODULE_LIBDIR = $RTBUF_MODULE_LIBDIR" >> ${CONFIG_MK}
+
+ LIBRARIES=
+
+ for SRC in $SOURCES; do
+ SRC_LO="$(c2lo "$SRC")"
+ echo >> ${CONFIG_MK}
+ lo_rule "$SRC" >> ${CONFIG_MK}
+ echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
+
+ SRC_LA="$(c2la "$SRC")"
+ echo >> ${CONFIG_MK}
+ echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
+ echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath ${RTBUF_MODULE_LIBDIR}" >> ${CONFIG_MK}
+ LIBRARIES="$LIBRARIES $SRC_LA"
+ done
+
+ echo >> ${CONFIG_MK}
+ echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+
+ echo >> ${CONFIG_MK}
+ echo "install:${LIBRARIES}" >> ${CONFIG_MK}
+ for LIB in $LIBRARIES; do
+ echo "\t\${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 -d \${RTBUF_MODULE_LIBDIR}" >> ${CONFIG_MK}
+ echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $LIB \${RTBUF_MODULE_LIBDIR}/$LIB" >> ${CONFIG_MK}
+ done
+}
diff --git a/gtk3/configure b/gtk3/configure
index 3dbf17b..ee4cd83 100755
--- a/gtk3/configure
+++ b/gtk3/configure
@@ -44,3 +44,8 @@ done
echo >> ${CONFIG_MK}
echo "$PROG: $OBJECTS" >> ${CONFIG_MK}
echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} \${LDFLAGS} ${OBJECTS} ${LIBS} -o $PROG" >> ${CONFIG_MK}
+
+echo >> ${CONFIG_MK}
+echo "install: $PROG" >> ${CONFIG_MK}
+echo "\t\${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 -d \${BINDIR}" >> ${CONFIG_MK}
+echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $PROG \${BINDIR}/$PROG" >> ${CONFIG_MK}
diff --git a/lib/configure b/lib/configure
index 8794035..f5e90a6 100755
--- a/lib/configure
+++ b/lib/configure
@@ -70,12 +70,12 @@ for SRC in $SOURCES; do
done
echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+echo "libraries:${LIBRARIES} ${TYPES}" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "install: ${LIBRARIES} subdirs-install" >> ${CONFIG_MK}
for LIB in $LIBRARIES; do
- echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o root -g wheel -m 0755 $LIB \${LIBDIR}" >> ${CONFIG_MK}
+ echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $LIB \${LIBDIR}" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
@@ -91,7 +91,7 @@ for DIR in $DIRS; do
done
echo >> ${CONFIG_MK}
-echo "subdirs-install:" >> ${CONFIG_MK}
+echo "subdirs-install: libraries" >> ${CONFIG_MK}
for DIR in $DIRS; do
echo "\t\${MAKE} -C \${PWD}/$DIR install" >> ${CONFIG_MK}
done
diff --git a/lib/dynamic/configure b/lib/dynamic/configure
index f3d63a2..aaaf64f 100755
--- a/lib/dynamic/configure
+++ b/lib/dynamic/configure
@@ -25,23 +25,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS=""
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library dynamic
diff --git a/lib/glfw3/configure b/lib/glfw3/configure
index 0d616cd..58df28e 100755
--- a/lib/glfw3/configure
+++ b/lib/glfw3/configure
@@ -28,24 +28,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS="$(pkg-config --libs glfw3)"
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library glfw3
diff --git a/lib/portaudio/configure b/lib/portaudio/configure
index 6205135..e139973 100755
--- a/lib/portaudio/configure
+++ b/lib/portaudio/configure
@@ -28,24 +28,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS="$(pkg-config --libs portaudio-2.0)"
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library portaudio
diff --git a/lib/reverb/configure b/lib/reverb/configure
index f3d63a2..1108d48 100755
--- a/lib/reverb/configure
+++ b/lib/reverb/configure
@@ -25,23 +25,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS=""
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library reverb
diff --git a/lib/signal/configure b/lib/signal/configure
index f3d63a2..0c2863c 100755
--- a/lib/signal/configure
+++ b/lib/signal/configure
@@ -25,23 +25,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS=""
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library signal
diff --git a/lib/sndio/configure b/lib/sndio/configure
index aa7937d..26217ef 100755
--- a/lib/sndio/configure
+++ b/lib/sndio/configure
@@ -25,23 +25,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS="-lsndio"
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library sndio
diff --git a/lib/synth/configure b/lib/synth/configure
index f3d63a2..18015d1 100755
--- a/lib/synth/configure
+++ b/lib/synth/configure
@@ -25,23 +25,4 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS=""
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib/rtbuf/$VER/dynamic
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
-LIBRARIES=
-
-for SRC in $SOURCES; do
- SRC_LO="$(c2lo "$SRC")"
- echo >> ${CONFIG_MK}
- lo_rule "$SRC" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=compile \${CC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
-
- SRC_LA="$(c2la "$SRC")"
- echo >> ${CONFIG_MK}
- echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
- echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -no-undefined -module \${LDFLAGS} $SRC_LO \${LIBS} -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
- LIBRARIES="$LIBRARIES $SRC_LA"
-done
-
-echo >> ${CONFIG_MK}
-echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
+rtbuf_library synth
diff --git a/librtbuf/configure b/librtbuf/configure
index f580756..0bce1f4 100755
--- a/librtbuf/configure
+++ b/librtbuf/configure
@@ -31,9 +31,6 @@ echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
LIBS=""
echo "LIBS = $LIBS" >> ${CONFIG_MK}
-LIBDIR=/usr/local/lib
-echo "LIBDIR = $LIBDIR" >> ${CONFIG_MK}
-
for SRC in $SOURCES; do
SRC_LO="$(c2lo "$SRC")"
echo >> ${CONFIG_MK}
@@ -47,4 +44,5 @@ echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} \${LDFLAGS} $OBJECTS \${LIBS} -o
echo >> ${CONFIG_MK}
echo "install: $LIB" >> ${CONFIG_MK}
-echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o root -g wheel -m 0755 $LIB \${LIBDIR}" >> ${CONFIG_MK}
+echo "\t\${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 -d \${LIBDIR}" >> ${CONFIG_MK}
+echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $LIB \${LIBDIR}" >> ${CONFIG_MK}
diff --git a/librtbuf/data.c b/librtbuf/data.c
index 7c62dd0..54d0ba2 100644
--- a/librtbuf/data.c
+++ b/librtbuf/data.c
@@ -114,7 +114,7 @@ void data_delete (s_data_alloc *da, void *data)
assert(da->t);
octets = ((da->t->bits + 7) / 8);
assert(da->mem <= data);
- assert(data < da->mem + da->max * octets);
+ assert((char*) data < (char*) da->mem + da->max * octets);
if (da->clean)
da->clean(data);
bzero(data, octets);