#! /bin/sh
unalias cd rm mkdir mv 2> /dev/null
CPPEXT=".cc"
export CPPEXT
cd /tmp
rm -rf prototype
mkdir prototype
cd prototype
mkdir test
cd test
makeproto
mkdir test
mkdir libtest
# Of course, you should normally use an editor for this one:
mv Makedefs.h Makedefs.h.tmp
sed s%'^[# ]*LIBFLAGS+=.*$%LIBFLAGS+=-L$(BASEDIR)/lib%' Makedefs.h.tmp > Makedefs.h
rm Makedefs.h.tmp
cd test
makeproto main
# Another "editor" session:
mv Makefile Makefile.tmp
sed -e 's%^[# ]*SHAREDLIBS=$%SHAREDLIBS=-ltest%' -e 's%^[# ]*INCLUDEFLAGS=$%INCLUDEFLAGS=-I/tmp -I.%' Makefile.tmp > Makefile
rm Makefile.tmp
echo 'extern void subtest(void);' > test.cc
echo 'int main(void) { subtest(); return 0; }' >> test.cc
echo 'extern void test(void);' > test.h
mkdir s1
cd s1
makeproto sub
mkdir s2
cd s2
makeproto sub
echo '#include "test.h"' > test.cc
echo 'void subtest(void) { test(); }' >> test.cc
cd ../../../libtest
makeproto lib
echo '#define _G_CLOG_CONFLICT 1' > test.cc
echo '#include <iostream>' >> test.cc
echo 'void test(void) { cerr << "Test successful!" << endl; }' >> test.cc
cd ../test
$MAKE
LD_LIBRARY_PATH=../lib ./test
cd /tmp
rm -rf prototype
