Hash :
f1c8d317
Author :
Thomas de Grivel
Date :
2021-02-21T00:44:47
wip remove autotools
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
#!/bin/sh
set -e
. ../config.subr
TYPE_SOURCES="$(ls *_type.c | tr '\n' ' ')"
SOURCES="$(ls *.c | grep -Ev '_type.c$' | tr '\n' ' ')"
DIRS="$(ls -d */)"
if test -d /usr/local/include; then
CPPFLAGS="-I/usr/local/include"
fi
CPPFLAGS="$CPPFLAGS"
echo "CPPFLAGS = $CPPFLAGS" >> ${CONFIG_MK}
if [ x"$DEBUG" = x"yes" ]; then
CFLAGS="-DDEBUG -O0 -ggdb"
else
CFLAGS="-DNDEBUG -O3"
fi
CFLAGS="$CFLAGS -W -Wall -Werror -std=c89 -pedantic"
echo "CFLAGS = $CFLAGS" >> ${CONFIG_MK}
LDFLAGS=""
echo "LDFLAGS = $LDFLAGS" >> ${CONFIG_MK}
TYPES=
for TYPE_SRC in $TYPE_SOURCES; do
TYPE_PROG="$(c2prog "$TYPE_SRC")"
TYPE_H="${TYPE_PROG}.h"
TYPES="$TYPES $TYPE_H"
echo > "$TYPE_H"
done
echo >> ${CONFIG_MK}
echo "types:${TYPES}" >> ${CONFIG_MK}
for TYPE_SRC in $TYPE_SOURCES; do
TYPE_PROG="$(c2prog "$TYPE_SRC")"
TYPE_H="${TYPE_PROG}.h"
echo >> ${CONFIG_MK}
prog_rule "$TYPE_SRC" >> ${CONFIG_MK}
echo "\t\${CC} \${CPPFLAGS} \${CFLAGS} $TYPE_SRC -o $TYPE_PROG" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "${TYPE_H}: $TYPE_PROG" >> ${CONFIG_MK}
echo "\t./$TYPE_PROG > $TYPE_H" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "CLEANFILES += $TYPE_PROG $TYPE_H" >> ${CONFIG_MK}
done
LIBDIR=/usr/local/lib
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="librtbuf_$(c2la "$SRC")"
echo >> ${CONFIG_MK}
echo "$SRC_LA: $SRC_LO" >> ${CONFIG_MK}
echo "\t${LIBTOOL} --tag=CC --mode=link \${CC} -shared \${LDFLAGS} $SRC_LO -o $SRC_LA -rpath $LIBDIR" >> ${CONFIG_MK}
LIBRARIES="$LIBRARIES $SRC_LA"
done
echo >> ${CONFIG_MK}
echo "libraries:${LIBRARIES}" >> ${CONFIG_MK}
echo >> ${CONFIG_MK}
echo "subdirs:" >> ${CONFIG_MK}
for DIR in $DIRS; do
echo "\t\${MAKE} -C $DIR" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo "subdirs-clean:" >> ${CONFIG_MK}
for DIR in $DIRS; do
echo "\t\${MAKE} -C $DIR clean" >> ${CONFIG_MK}
done
echo >> ${CONFIG_MK}
echo "subdirs-install:" >> ${CONFIG_MK}
for DIR in $DIRS; do
echo "\t\${MAKE} -C $DIR install" >> ${CONFIG_MK}
echo $PWD/$DIR
(cd $DIR && ./configure)
done
for TYPE_SRC in $TYPE_SOURCES; do
TYPE_PROG="$(c2prog "$TYPE_SRC")"
TYPE_H="${TYPE_PROG}.h"
rm "$TYPE_H"
done