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

View File

@ -1,25 +1,28 @@
if [ $# -ne 0 ]
if [ $# -lt 1 ]
then
print_failure "Unexpected extra parameters."
print_failure "You must specify the library modules to link against."
exit 1
fi
if [ -e src/${NAME} ]
then
print_failure "src/${NAME} already exists."
TEST_LIBS=$@
for lib in ${TEST_LIBS}
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
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_cmd cp ${TEMPLATE}/* src/${NAME} || exit 1
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."
do_parameter_subst TEST_LIBS LINK_LIBS TEST_HEADERS
true
# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4

View File

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

View File

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

View File

@ -1,25 +1,28 @@
if [ $# -ne 0 ]
if [ $# -lt 1 ]
then
print_failure "Unexpected extra parameters."
print_failure "You must specify the library modules to link against."
exit 1
fi
if [ -e src/${NAME} ]
then
print_failure "src/${NAME} already exists."
TEST_LIBS=$@
for lib in ${TEST_LIBS}
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
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_cmd cp ${TEMPLATE}/* src/${NAME} || exit 1
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."
do_parameter_subst TEST_LIBS LINK_LIBS TEST_HEADERS
true
# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4

View File

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

View File

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