Re: [dev] Build system: redo
Thank you very much Sergey Matveev. I have studied your proposed redo files for st and learned a lot. Here are my new and improved (you had a bug in default.o.do in that you forgot to depend on $src) redo files for st. Please take a look and tell me what you think.
Note that there are neither 'options' nor 'all' targets for simplicity--I don't that they are very useful. The redo command has the -x and -v options if you want more details. Also, I de-automated your automatic generation of the source (.c) and object (.o) files because it didn't work properly as you discussed in your message. If it's going to be automatic, I want it to work automatically.
---- config.rc ----
CC=${CC:-cc}
VERSION=0.8.4
PREFIX=/usr/local
MANPREFIX=${PREFIX}/share/man
X11INC=/usr/X11R6/include
X11LIB=/usr/X11R6/lib
PKG_CONFIG=pkg-config
INCS="-I${X11INC}"
INCS="$INCS `${PKG_CONFIG} --cflags fontconfig`"
INCS="$INCS `${PKG_CONFIG} --cflags freetype2`"
LIBS="-L${X11LIB} -lm -lrt -lX11 -lutil -lXft"
LIBS="$LIBS `${PKG_CONFIG} --libs fontconfig`"
LIBS="$LIBS `${PKG_CONFIG} --libs freetype2`"
STCPPFLAGS="-DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600"
STCFLAGS="${INCS} ${STCPPFLAGS} ${CPPFLAGS} ${CFLAGS}"
STLDFLAGS="${LIBS} ${LDFLAGS}"
OBJ="st.o x.o"
---- clean.do ----
redo-ifchange config.rc
. ./config.rc
rm -f st $OBJ st-${VERSION}.tar.gz
---- default.o.do ----
src=$2.c
redo-ifchange $src config.rc `sed -n 's/#include "\(.*\)"$/\1/p' $src`
. ./config.rc
printf 'recompiling %s\n' $2.c >&2
$CC $STCFLAGS -o $3 -c $2.c
---- st.do ----
redo-ifchange config.rc
. ./config.rc
redo-ifchange $OBJ
printf 'relinking\n' >&2
$CC -o $3 $OBJ $STLDFLAGS
Received on Sun Jan 03 2021 - 19:07:12 CET
This archive was generated by hypermail 2.3.0
: Sun Jan 03 2021 - 19:48:07 CET