apenwarr-redo/docs/cookbook/c/hello world.list.od
Avery Pennarun bdb8d8a27d redoconf: better handling of required vs optional detectors.
CC.rc was the only "mandatory" detection, which was weird and
inconsistent.  Instead, make it optional like the others, and have it
set a HAVE_CC variable appropriately (and have CXX.rc work the same
way).  Then, add a default.required.rc.od that checks the HAVE_* for
any variable and aborts if it is not available.

This allows us to fix confusing behaviour in allconfig.do, which would
try every compiler on the system, but redo would print a (non-fatal)
error message (and prevent redo-stamp optimization) when CC.rc failed
for any non-working compilers.  Now CC.rc just politely reports that it
didn't find a compiler.  Then we change all.rc.od to make CC.rc
mandatory.

Reported-by: Nathaniel Filardo <nwfilardo@gmail.com>
2019-02-23 16:51:25 -05:00

29 lines
596 B
Text

# This script is run from the output dir.
# The source dir is at $S.
. ./redoconf.rc
rc_include all.rc
redo-ifchange "$S/sources"
(
cd "$S"
echo "main.c"
echo "monotime.c"
echo "when.c" # auto-generated source
echo "flagtest.c" # source with different compiler flags
if [ -n "$CXX" ]; then
echo "slow.cc"
fi
# This is unnecessarily fancy.
# We're just using it as an example of
# how to dynamically generate a .list
# file.
for d in lib*/*.list lib*/*.list.od; do
[ -e "$d" ] && echo "${d%%.*}.so"
done | uniq
printf '%s\n' "$LIBGTK2" "$LIBQT4"
) >$3
redo-stamp <$3