Experimental new redoconf C/C++ build/autoconfiguration system.

To test it out, try this:
	./do -j10 build
	cd docs/cookbook/c
	redo -j10 test

It should detect all the compilers on your system and make three
separate builds for each one: normal, debug, and optimized.  Then it
tries to run a test program under each one.

If there are windows cross compilers and you also have 'wine'
installed, it'll try running the test program under wine as well.

redoconf currently has no documentation other than the example program.
We'll fix that later.
This commit is contained in:
Avery Pennarun 2019-02-03 01:14:51 -05:00
commit 6dae51f4d2
67 changed files with 1777 additions and 1 deletions

36
redoconf/link-shlib.od Normal file
View file

@ -0,0 +1,36 @@
. ./redoconf.rc
rc_include _all.rc rc/shlib.rc
# Tricky quoting: see _compile.od for details.
if [ "$HAVE_SHLIB" = 1 ]; then
cat >$3 <<-EOF
#!/bin/sh -e
LINK=$(shquote "$LINK")
LDFLAGS=$(shquote "$LDFLAGS")
OPTFLAGS=$(shquote "$OPTFLAGS")
LIBS=$(shquote "$LIBS")
o="\$1"
ob="\${o#*/}"
shift
IFS="$NL"
set -f
\$LINK -shared -o "\$o" \\
-Wl,-soname,"\$ob" \\
\$LDFLAGS \$OPTFLAGS \\
"\$@" \\
\$LIBS
EOF
else
# If no shared library support and we try to build one,
# compensate by building a static library instead in the
# same place.
cat >$3 <<-EOF
#!/bin/sh -e
o="\$1"
shift
rm -f "\$o"
ar q "\$o" "\$@"
EOF
fi
chmod a+x "$3"
redo-stamp <$3