Hash :
fa2915fb
Author :
Thomas de Grivel
Date :
2022-03-07T09:36:26
fix compilation
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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
#!/bin/sh
set -e
o_rule() {
"$CC" $CPPFLAGS $CFLAGS -M "$1" || { echo "$1" | sed -e 's/^\(.*\)\.c$/\1.o: \1.c/'; }
}
lo_rule() {
o_rule "$1" | sed -e 's/[.]o:/.lo:/'
}
prog_rule() {
{ o_rule "$1" || exit 1; } | sed -e 's/[.]o:/:/'
}
c2prog() {
echo "$@" | sed -e 's/[.]c$//' -e 's/[.]c / /g'
}
c2o() {
echo "$@" | sed -e 's/[.]c$/.o/' -e 's/[.]c /.o /g'
}
c2lo() {
echo "$@" | sed -e 's/[.]c$/.lo/' -e 's/[.]c /.lo /g'
}
c2la() {
echo "$@" | sed -e 's/[.]c$/.la/' -e 's/[.]c /.la /g'
}
require_pkg_config() {
if ! which pkg-config >/dev/null; then
echo "please install pkg-config" >&2
exit 1
fi
}
CONFIG_MK=config.mk
echo "$PWD/${CONFIG_MK}"
echo "# config.mk generated by configure" > ${CONFIG_MK}
VER=0.4
echo "VER = $VER" >> ${CONFIG_MK}
if test -z "$CC"; then
if test -n $(which cc); then
CC=cc
elif test -n $(which gcc); then
CC=gcc
fi
fi
echo "CC = $CC" >> ${CONFIG_MK}
if test -z "$LIBTOOL"; then
if test -x "$(which glibtool)"; then
LIBTOOL="$(which glibtool)"
elif test -x "$(which libtool)"; then
LIBTOOL="$(which libtool)"
else
LIBTOOL=libtool
fi
fi
echo "LIBTOOL = $LIBTOOL" >> ${CONFIG_MK}
if test -z "$INSTALL"; then
if test -x "$(which install)"; then
INSTALL=install
fi
fi
echo "INSTALL = $INSTALL" >> ${CONFIG_MK}
if test -z "$PREFIX"; then
if test -d /usr/local; then
PREFIX=/usr/local
elif test -d /usr; then
PREFIX=/usr
elif test -d /opt/local; then
PREFIX=/opt/local
elif test -d /opt; then
PREFIX=/opt
fi
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
echo "BINDIR = $BINDIR" >> ${CONFIG_MK}
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_LIBRARY_LIBDIR="${RTBUF_LIBDIR}/$1"
echo "RTBUF_LIBRARY_LIBDIR = $RTBUF_LIBRARY_LIBDIR" >> ${CONFIG_MK}
LIBRARIES=
echo sources: "'$SOURCES'"
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_LIBRARY_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_LIBRARY_LIBDIR}" >> ${CONFIG_MK}
echo "\t\${LIBTOOL} --tag=CC --mode=install \${INSTALL} -o \${OWNER} -g \${GROUP} -m 0755 $LIB \${RTBUF_LIBRARY_LIBDIR}/$LIB" >> ${CONFIG_MK}
done
}
check_glfw3() {
LOG=.lib.glfw3.config.log
OLD_CFLAGS=$CFLAGS
OLD_LIBS=$LIBS
CFLAGS="$CFLAGS $(pkg-config --cflags glfw3)"
LIBS="$LIBS $(pkg-config --libs glfw3)"
echo "$CC" $CPPFLAGS $CFLAGS "${LIB_SRCDIR}/glfw3/config.c" -o /dev/null ${LDFLAGS} ${LIBS} > $LOG
if "$CC" $CPPFLAGS $CFLAGS "${LIB_SRCDIR}/glfw3/config.c" -o /dev/null ${LDFLAGS} ${LIBS} >> $LOG 2>&1; then
HAVE_GLFW3=Yes
else
HAVE_GLFW3=No
CFLAGS=$OLD_CFLAGS
LIBS=$OLD_LIBS
fi
echo "Checking library glfw3: $HAVE_GLFW3" >&2
echo "HAVE_GLFW3 = $HAVE_GLFW3" >> ${CONFIG_MK}
}
check_portaudio() {
LOG=.lib.portaudio.config.log
OLD_CFLAGS=$CFLAGS
OLD_LIBS=$LIBS
CFLAGS="$CFLAGS $(pkg-config --cflags portaudio-2.0)"
LIBS="$LIBS $(pkg-config --libs portaudio-2.0)"
echo "$CC" $CPPFLAGS $CFLAGS "${LIB_SRCDIR}/portaudio/config.c" -o /dev/null ${LDFLAGS} ${LIBS} > $LOG
if "$CC" $CPPFLAGS $CFLAGS "${LIB_SRCDIR}/portaudio/config.c" -o /dev/null ${LDFLAGS} ${LIBS} >> $LOG 2>&1; then
HAVE_PORTAUDIO=Yes
else
HAVE_PORTAUDIO=No
CFLAGS=$OLD_CFLAGS
LIBS=$OLD_LIBS
fi
echo "Checking library portaudio: $HAVE_PORTAUDIO" >&2
echo "HAVE_PORTAUDIO = $HAVE_PORTAUDIO" >> ${CONFIG_MK}
}
check_sndio() {
LOG=.lib.sndio.config.log
if "$CC" $CPPFLAGS $CFLAGS "${LIB_SRCDIR}/sndio/config.c" -o /dev/null ${LDFLAGS} -lsndio > $LOG 2>&1; then
HAVE_SNDIO=Yes
else
HAVE_SNDIO=No
fi
echo "Checking library sndio: $HAVE_SNDIO" >&2
echo "HAVE_SNDIO = $HAVE_SNDIO" >> ${CONFIG_MK}
}
type_prog() {
TYPE_SRC="$1_type.c"
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}
if ! test -f "${TYPE_H}"; then
touch "${TYPE_H}"
fi
TYPES="$TYPES $TYPE_H"
}