Further work in progress on build system -- port over test modules.

This commit is contained in:
Laurence Withers 2006-07-26 19:30:26 +01:00
parent 2e63a2f2fe
commit 6f0cbc059d
7 changed files with 57 additions and 50 deletions

View File

@ -2,11 +2,11 @@
# @NAME@_BUILT # @NAME@_BUILT
# #
#@TODO@ build_target libs || return 1 build_target @TEST_LIBS@ || return 1
if [ -z ${@NAME@_BUILT} ] if [ -z ${@CNAME@_BUILT} ]
then then
LIBS="" # @TODO@ internal libs LIBS="@LINK_LIBS@"
EXTRAS="" # @TODO@ libs, cflags EXTRAS="" # @TODO@ libs, cflags
echo "Building test programs..." echo "Building test programs..."
@ -36,7 +36,7 @@ then
print_success "All tests built" print_success "All tests built"
@NAME@_BUILT=1 @CNAME@_BUILT=1
fi fi
# kate: @KATE_MODELINE@ # kate: @KATE_MODELINE@

View File

@ -1,25 +1,28 @@
if [ $# -ne 0 ] if [ $# -lt 1 ]
then then
print_failure "Unexpected extra parameters." print_failure "You must specify the library modules to link against."
exit 1 exit 1
fi fi
if [ -e src/${NAME} ] TEST_LIBS=$@
then for lib in ${TEST_LIBS}
print_failure "src/${NAME} already exists." do
cname="$(get_cname ${lib})"
LINK_LIBS="\${${cname}} ${LINK_LIBS}"
if [ ! -e ../${lib}/build.lib ]
then
print_failure "src/${lib} is not a library"
exit 1 exit 1
fi fi
echo "Instantiating module src/${NAME}..." # HACK -- we need to extract the library's header name
do_cmd export ${cname}_MONOLITHIC="1"
do_cmd source ../${lib}/build.monolithic || exit 1
TEST_HEADERS="#include \"${HDR}\"\n${TEST_HEADERS}"
done
do_cmd mkdir src/${NAME} || exit 1 do_parameter_subst TEST_LIBS LINK_LIBS TEST_HEADERS
do_cmd cp ${TEMPLATE}/* src/${NAME} || exit 1 true
do_cmd cd src/${NAME} || exit 1
do_cmd rm instantiate || exit 1
do_cmd find . -type f -exec sed -e "s,@NAME@,${NAME},g" -i {} \; || exit 1
do_cmd grep "@TODO@" * || exit 1
print_success "Module instantiated."
# kate: replace-trailing-space-save true; space-indent true; tab-width 4; # kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4 # vim: expandtab:ts=4:sw=4

View File

@ -5,8 +5,7 @@
* http://www.gnu.org/copyleft/gpl.html for details. * http://www.gnu.org/copyleft/gpl.html for details.
*/ */
@TODO@ includes @TEST_HEADERS@
#include <iostream> #include <iostream>
@ -39,6 +38,6 @@ int main(int argc, char* argv[])
} }
/* options for text editors /* options for text editors
kate: replace-trailing-space-save true; space-indent true; tab-width 4; kate: @KATE_MODELINE@
vim: expandtab:ts=4:sw=4 vim: @VIM_MODELINE@
*/ */

View File

@ -2,17 +2,17 @@
# @NAME@_BUILT # @NAME@_BUILT
# #
#@TODO@ build_target libs || return 1 build_target @TEST_LIBS@ || return 1
if [ -z ${@NAME@_BUILT} ] if [ -z ${@CNAME@_BUILT} ]
then then
LIBS="" # @TODO@ internal libs LIBS="@LINK_LIBS@"
EXTRAS="" # @TODO@ libs, cflags EXTRAS="" # @TODO@ libs, cflags
echo "Building test programs..." echo "Building test programs..."
do_cmd mkdir -p obj/tests || return 1 do_cmd mkdir -p obj/tests || return 1
for SRC in src/@NAME@/*.c for SRC in src/@NAME@/*.cpp
do do
TEST="obj/tests/$(basename ${SRC} | sed -e 's,.c$,,')" TEST="obj/tests/$(basename ${SRC} | sed -e 's,.c$,,')"
MODIFIED=0 MODIFIED=0
@ -36,7 +36,7 @@ then
print_success "All tests built" print_success "All tests built"
@NAME@_BUILT=1 @CNAME@_BUILT=1
fi fi
# kate: @KATE_MODELINE@ # kate: @KATE_MODELINE@

View File

@ -1,25 +1,28 @@
if [ $# -ne 0 ] if [ $# -lt 1 ]
then then
print_failure "Unexpected extra parameters." print_failure "You must specify the library modules to link against."
exit 1 exit 1
fi fi
if [ -e src/${NAME} ] TEST_LIBS=$@
then for lib in ${TEST_LIBS}
print_failure "src/${NAME} already exists." do
cname="$(get_cname ${lib})"
LINK_LIBS="\${${cname}} ${LINK_LIBS}"
if [ ! -e ../${lib}/build.lib ]
then
print_failure "src/${lib} is not a library"
exit 1 exit 1
fi fi
echo "Instantiating module src/${NAME}..." # HACK -- we need to extract the library's header name
do_cmd export ${cname}_MONOLITHIC="1"
do_cmd source ../${lib}/build.monolithic || exit 1
TEST_HEADERS="#include \"${HDR}\"\n${TEST_HEADERS}"
done
do_cmd mkdir src/${NAME} || exit 1 do_parameter_subst TEST_LIBS LINK_LIBS TEST_HEADERS
do_cmd cp ${TEMPLATE}/* src/${NAME} || exit 1 true
do_cmd cd src/${NAME} || exit 1
do_cmd rm instantiate || exit 1
do_cmd find . -type f -exec sed -e "s,@NAME@,${NAME},g" -i {} \; || exit 1
do_cmd grep "@TODO@" * || exit 1
print_success "Module instantiated."
# kate: replace-trailing-space-save true; space-indent true; tab-width 4; # kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4 # vim: expandtab:ts=4:sw=4

View File

@ -5,9 +5,8 @@
* http://www.gnu.org/copyleft/gpl.html for details. * http://www.gnu.org/copyleft/gpl.html for details.
*/ */
@TODO@ includes @TEST_HEADERS@
#include <iostream>
#include "stdio.h"
@ -23,12 +22,13 @@ int main(int argc, char* argv[])
} }
int ret = 0; int ret = 0;
// TODO // TODO
return ret; return ret;
} }
/* options for text editors /* options for text editors
kate: replace-trailing-space-save true; space-indent true; tab-width 4; kate: @KATE_MODELINE@
vim: expandtab:ts=4:sw=4 vim: @VIM_MODELINE@
*/ */

View File

@ -14,6 +14,7 @@
cd $(dirname $0) cd $(dirname $0)
cd $(dirname $(pwd)) cd $(dirname $(pwd))
P=$(basename $(pwd)) P=$(basename $(pwd))
TOP=$(pwd)
[ -z "${VERBOSE}" ] && VERBOSE="0" [ -z "${VERBOSE}" ] && VERBOSE="0"
source scripts/functions.sh || exit 1 source scripts/functions.sh || exit 1
@ -76,6 +77,7 @@ then
fi fi
cleanup() { cleanup() {
cd ${TOP}
rm -rf "src/${NAME}" rm -rf "src/${NAME}"
print_failure "Removed 'src/${NAME}'" print_failure "Removed 'src/${NAME}'"
exit 1 exit 1