WIP on module instantiation.
Rather than the skeleton dir shipping with a couple of ready-made modules, one for each type of project, it would make much more sense and be much more flexible to instead provide a script to instantiate modules as needed.
This commit is contained in:
parent
31c4a78918
commit
9e8d1e4c15
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/@NAME@/TopHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
// standard includes, or includes needed for type declarations
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/@NAME@/TopSource.cpp
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
// Below are all the includes used throughout the application.
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,38 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# @NAME@
|
||||
# @NAME@_BUILT
|
||||
#
|
||||
|
||||
if [ -z ${@NAME@_BUILT} ]
|
||||
then
|
||||
@NAME@="obj/@NAME@"
|
||||
EXTRAS="@TODO@" # cflags, libs
|
||||
|
||||
echo "Building application ${@NAME@}..."
|
||||
|
||||
source src/cppapp/build.monolithic
|
||||
|
||||
MODIFIED=0
|
||||
for test in ${MONOLITHIC_TESTS} ${SRC}
|
||||
do
|
||||
if [ ${test} -nt ${@NAME@} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
echo " Compiling..."
|
||||
|
||||
do_cmd ${CXX} ${CFLAGS} -o "${@NAME@}" ${SRC} ${EXTRAS} || return 1
|
||||
|
||||
print_success "Application built"
|
||||
else
|
||||
print_success "Application up to date"
|
||||
fi
|
||||
|
||||
@NAME@_BUILT=1
|
||||
|
||||
fi
|
|
@ -0,0 +1 @@
|
|||
source src/@NAME@/build.app
|
|
@ -0,0 +1 @@
|
|||
source src/@NAME@/build.install-app
|
|
@ -0,0 +1,9 @@
|
|||
build_target app
|
||||
|
||||
# make paths (this is for Gentoo in particular)
|
||||
build_dir_tree "${BINDIR}" || return 1
|
||||
|
||||
# install binary
|
||||
echo "Installing binaries into '${BINDIR}'"
|
||||
install_file "${@NAME@}" "${BINDIR}" 0755 || return 1
|
||||
print_success "Done"
|
|
@ -0,0 +1,15 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# @NAME@_MONOLITHIC
|
||||
#
|
||||
|
||||
if [ -z "${@NAME@_MONOLITHIC}" ]
|
||||
then
|
||||
SRC="obj/@NAME@.cpp"
|
||||
|
||||
MONOLITHIC_TESTS="src/@NAME@/build.app src/@NAME@/build.monolithic"
|
||||
MONOLITHIC_SOURCE="$(echo src/@NAME@/TopHeader.h) $(echo src/@NAME@/TopSource.cpp)"
|
||||
make_monolithic ${SRC} C || return 1
|
||||
|
||||
@NAME@_MONOLITHIC=1
|
||||
MONOLITHIC_DOC="${MONOLITHIC_DOC} ${SRC}"
|
||||
fi
|
|
@ -0,0 +1,21 @@
|
|||
if [ $# -ne 0 ]
|
||||
then
|
||||
print_failure "Too many arguments. None required for this module."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -e src/${NAME} ]
|
||||
then
|
||||
print_failure "src/${NAME} already exists."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Instantiating module src/${NAME}..."
|
||||
|
||||
do_cmd mkdir src/${NAME} || exit 1
|
||||
do_cmd cp ${TEMPLATE}/* src/${NAME} || exit 1
|
||||
do_cmd rm src/${NAME}/instantiate || exit 1
|
||||
|
||||
do_cmd find src/${NAME} -type f -exec sed -e "s,@NAME@,${NAME},g" -i {} \; || exit 1
|
||||
print_success "Module instantiated."
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/cpplib/BottomHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,14 @@
|
|||
/* @P@/src/cpplib/TopHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#ifndef HEADER_@PC@
|
||||
#define HEADER_@PC@
|
||||
|
||||
// standard includes, or includes needed for type declarations
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,13 @@
|
|||
/* @P@/src/cpplib/TopSource.cpp
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#include "@HEADER_NAME@"
|
||||
|
||||
// Below are all the includes used throughout the library.
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1 @@
|
|||
source src/cpplib/build.lib
|
|
@ -0,0 +1 @@
|
|||
source src/cpplib/build.install-lib
|
|
@ -0,0 +1,34 @@
|
|||
build_target lib
|
||||
|
||||
# make paths (this is for Gentoo in particular)
|
||||
build_dir_tree "${LIBDIR}" || return 1
|
||||
build_dir_tree "${PKGCONFDIR}" || return 1
|
||||
build_dir_tree "${INCLUDEDIR}" || return 1
|
||||
|
||||
# install library
|
||||
echo "Installing libraries into '${LIBDIR}'"
|
||||
install_file ${LIBCPP} ${LIBDIR} 0755 || return 1
|
||||
BASE="${LIBCPP_BASE}.so"
|
||||
MAJOR="${BASE}.${SOMAJOR}"
|
||||
MINOR="${MAJOR}.${SOMINOR}"
|
||||
MICRO="${MINOR}.${SOMICRO}"
|
||||
install_symlink "${MINOR}" "${MICRO}" "${LIBDIR}"
|
||||
install_symlink "${MAJOR}" "${MINOR}" "${LIBDIR}"
|
||||
install_symlink "${BASE}" "${MAJOR}" "${LIBDIR}"
|
||||
|
||||
# install header
|
||||
echo "Installing header file '${LIBCPP_HEADER}' into ${INCLUDEDIR}"
|
||||
install_header ${LIBCPP_HEADER} ${INCLUDEDIR} 0644 || return 1
|
||||
|
||||
# install pkgconfig file
|
||||
echo "Installing package config file into ${PKGCONFDIR}"
|
||||
PKGCONFFILE=${PKGCONFDIR}/@P@.pc
|
||||
do_cmd rm -f ${PKGCONFFILE}
|
||||
do_cmd_redir ${PKGCONFFILE} sed \
|
||||
-e "s,@VERSION@,${VERSION}," \
|
||||
-e "s,@LIBDIR@,${FINALLIBDIR}," \
|
||||
-e "s,@INCLUDEDIR@,${FINALINCLUDEDIR}," \
|
||||
src/cpplib/pkgconf.in
|
||||
do_cmd chmod 0644 ${PKGCONFFILE}
|
||||
print_success "Done"
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# LIBCPP
|
||||
# LIBCPP_BUILT
|
||||
# LIBCPP_HEADER
|
||||
# LIBCPP_BASE
|
||||
|
||||
if [ -z ${LIBCPP_BUILT} ]
|
||||
then
|
||||
|
||||
LIB_BASE="@P@"
|
||||
LIB="obj/${LIB_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}"
|
||||
SO_LIBS="-lstdc++ -lc"
|
||||
|
||||
echo "Building library ${LIB}..."
|
||||
|
||||
source src/cpplib/build.monolithic
|
||||
|
||||
MODIFIED=0
|
||||
for test in ${MONOLITHIC_TESTS} ${HDR} ${SRC}
|
||||
do
|
||||
if [ ${test} -nt ${LIB} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
echo " Compiling"
|
||||
|
||||
SONAME="${LIB_BASE}.so.${SOMAJOR}.${SOMINOR}"
|
||||
do_cmd ${CXX} ${CFLAGS} -shared -fpic -o "${LIB}" \
|
||||
-Wl,-soname,${SONAME} \
|
||||
${SRC} ${SO_LIBS} || return 1
|
||||
|
||||
# make tests work
|
||||
do_cmd ln -sf $(basename ${LIB}) obj/${SONAME} || return 1
|
||||
|
||||
print_success "Library built"
|
||||
else
|
||||
print_success "Library up to date"
|
||||
fi
|
||||
|
||||
LIBCPP=${LIB}
|
||||
LIBCPP_BUILT=1
|
||||
LIBCPP_HEADER=${HDR}
|
||||
LIBCPP_BASE=${LIB_BASE}
|
||||
|
||||
fi
|
|
@ -0,0 +1,18 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# LIBCPP_MONOLITHIC
|
||||
|
||||
if [ -z "${LIBCPP_MONOLITHIC}" ]
|
||||
then
|
||||
SRC="obj/lib.cpp"
|
||||
HDR="obj/@HEADER_NAME@"
|
||||
|
||||
MONOLITHIC_TESTS="src/cpplib/build.lib src/cpplib/build.monolithic"
|
||||
MONOLITHIC_SOURCE="$(echo src/cpplib/{TopHeader,BottomHeader}.h)"
|
||||
make_monolithic ${HDR} C || return 1
|
||||
|
||||
MONOLITHIC_SOURCE="$(echo src/cpplib/TopSource.cpp)"
|
||||
make_monolithic ${SRC} C || return 1
|
||||
|
||||
LIBCPP_MONOLITHIC=1
|
||||
MONOLITHIC_DOC="${MONOLITHIC_DOC} ${HDR}"
|
||||
fi
|
|
@ -0,0 +1,20 @@
|
|||
# @P@/src/lib/cpplib/pkgconf.in
|
||||
#
|
||||
# Metadata file for pkg-config
|
||||
# ( http://www.freedesktop.org/software/pkgconfig/ )
|
||||
#
|
||||
# (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
# COPYING for details.
|
||||
#
|
||||
|
||||
# Name, description
|
||||
Name: @TODO@
|
||||
Description: @TODO@
|
||||
Version: @VERSION@
|
||||
|
||||
# Requirements
|
||||
Requires:
|
||||
|
||||
# Compilation information
|
||||
Libs: -L@LIBDIR@ @PMINUSL@
|
||||
Cflags: -I@INCLUDEDIR@
|
|
@ -0,0 +1 @@
|
|||
source src/tests/build.tests
|
|
@ -0,0 +1,39 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# TESTS_BUILT
|
||||
#
|
||||
|
||||
build_target lib
|
||||
LIBS="${LIBCPP}"
|
||||
|
||||
if [ -z ${TESTS_BUILT} ]
|
||||
then
|
||||
echo "Building test programs..."
|
||||
do_cmd mkdir -p obj/tests || return 1
|
||||
|
||||
for SRC in src/tests/*.cpp
|
||||
do
|
||||
TEST="obj/tests/$(basename ${SRC} | sed -e 's,.cpp$,,')"
|
||||
MODIFIED=0
|
||||
for file in ${LIBCPP} ${SRC}
|
||||
do
|
||||
if [ ${file} -nt ${TEST} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
do_cmd ${CXX} -Iobj ${CFLAGS} -o ${TEST} ${SRC} ${LIBS} || return 1
|
||||
print_success "Built ${TEST}"
|
||||
else
|
||||
print_success "${TEST} is up to date"
|
||||
fi
|
||||
done
|
||||
|
||||
print_success "All tests built"
|
||||
|
||||
TESTS_BUILT=1
|
||||
fi
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/* @P@/src/tests/???.cpp
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#include "@HEADER_NAME@"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if(argc == 2 && !strcmp(argv[1], "--print-summary")) {
|
||||
std::cout << "One line summary.\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(argc == 1) {
|
||||
// empty argument list
|
||||
}
|
||||
|
||||
int ret = 0;
|
||||
try {
|
||||
// TODO
|
||||
}
|
||||
catch(std::exception& e) {
|
||||
std::cerr << e.what() << std::endl;
|
||||
ret = 1;
|
||||
}
|
||||
catch(...) {
|
||||
std::cerr << "Unknown exception caught." << std::endl;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/capp/TopHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
// standard includes, or includes needed for type declarations
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/capp/TopSource.c
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
// Below are all the includes used throughout the application.
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,40 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# APPC
|
||||
# APPC_BUILT
|
||||
#
|
||||
|
||||
if [ -z ${APPC_BUILT} ]
|
||||
then
|
||||
APP="obj/@P@"
|
||||
LIBS=""
|
||||
|
||||
echo "Building application ${APP}..."
|
||||
|
||||
source src/capp/build.monolithic
|
||||
|
||||
MODIFIED=0
|
||||
for test in ${MONOLITHIC_TESTS} ${SRC}
|
||||
do
|
||||
if [ ${test} -nt ${APP} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
echo " Compiling"
|
||||
|
||||
do_cmd ${CC} ${CFLAGS} -o "${APP}" \
|
||||
${SRC} ${LIBS} || return 1
|
||||
|
||||
print_success "Application built"
|
||||
else
|
||||
print_success "Application up to date"
|
||||
fi
|
||||
|
||||
APPC=${APP}
|
||||
APPC_BUILT=1
|
||||
|
||||
fi
|
|
@ -0,0 +1 @@
|
|||
source src/capp/build.app
|
|
@ -0,0 +1 @@
|
|||
source src/capp/build.install-app
|
|
@ -0,0 +1,9 @@
|
|||
build_target app
|
||||
|
||||
# make paths (this is for Gentoo in particular)
|
||||
build_dir_tree "${BINDIR}" || return 1
|
||||
|
||||
# install binary
|
||||
echo "Installing binaries into '${BINDIR}'"
|
||||
install_file "${APPC}" "${BINDIR}" 0755 || return 1
|
||||
print_success "Done"
|
|
@ -0,0 +1,15 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# APPC_MONOLITHIC
|
||||
#
|
||||
|
||||
if [ -z "${APPC_MONOLITHIC}" ]
|
||||
then
|
||||
SRC="obj/app.c"
|
||||
|
||||
MONOLITHIC_TESTS="src/capp/build.app src/capp/build.monolithic"
|
||||
MONOLITHIC_SOURCE="$(echo src/capp/TopHeader.h) $(echo src/capp/TopSource.c)"
|
||||
make_monolithic ${SRC} C || return 1
|
||||
|
||||
APPC_MONOLITHIC=1
|
||||
MONOLITHIC_DOC="${MONOLITHIC_DOC} ${SRC}"
|
||||
fi
|
|
@ -0,0 +1,11 @@
|
|||
/* @P@/src/clib/BottomHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,14 @@
|
|||
/* @P@/src/clib/TopHeader.h
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#ifndef HEADER_lib@PC@
|
||||
#define HEADER_lib@PC@
|
||||
|
||||
// standard includes, or includes needed for type declarations
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,13 @@
|
|||
/* @P@/src/clib/TopSource.c
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#include "@HEADER_NAME@"
|
||||
|
||||
// Below are all the includes used throughout the library.
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1 @@
|
|||
source src/clib/build.lib
|
|
@ -0,0 +1 @@
|
|||
source src/clib/build.install-lib
|
|
@ -0,0 +1,34 @@
|
|||
build_target lib
|
||||
|
||||
# make paths (this is for Gentoo in particular)
|
||||
build_dir_tree "${LIBDIR}" || return 1
|
||||
build_dir_tree "${PKGCONFDIR}" || return 1
|
||||
build_dir_tree "${INCLUDEDIR}" || return 1
|
||||
|
||||
# install library
|
||||
echo "Installing libraries into '${LIBDIR}'"
|
||||
install_file ${LIBC} ${LIBDIR} 0755 || return 1
|
||||
BASE="${LIBC_BASE}.so"
|
||||
MAJOR="${BASE}.${SOMAJOR}"
|
||||
MINOR="${MAJOR}.${SOMINOR}"
|
||||
MICRO="${MINOR}.${SOMICRO}"
|
||||
install_symlink "${MINOR}" "${MICRO}" "${LIBDIR}"
|
||||
install_symlink "${MAJOR}" "${MINOR}" "${LIBDIR}"
|
||||
install_symlink "${BASE}" "${MAJOR}" "${LIBDIR}"
|
||||
|
||||
# install header
|
||||
echo "Installing header file '${LIBC_HEADER}' into ${INCLUDEDIR}"
|
||||
install_header ${LIBC_HEADER} ${INCLUDEDIR} 0644 || return 1
|
||||
|
||||
# install pkgconfig file
|
||||
echo "Installing package config file into ${PKGCONFDIR}"
|
||||
PKGCONFFILE=${PKGCONFDIR}/@P@.pc
|
||||
do_cmd rm -f ${PKGCONFFILE}
|
||||
do_cmd_redir ${PKGCONFFILE} sed \
|
||||
-e "s,@VERSION@,${VERSION}," \
|
||||
-e "s,@LIBDIR@,${FINALLIBDIR}," \
|
||||
-e "s,@INCLUDEDIR@,${FINALINCLUDEDIR}," \
|
||||
src/clib/pkgconf.in
|
||||
do_cmd chmod 0644 ${PKGCONFFILE}
|
||||
print_success "Done"
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# LIBC
|
||||
# LIBC_BUILT
|
||||
# LIBC_HEADER
|
||||
# LIBC_BASE
|
||||
|
||||
if [ -z ${LIBC_BUILT} ]
|
||||
then
|
||||
|
||||
LIB_BASE="@P@"
|
||||
LIB="obj/${LIB_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}"
|
||||
SO_LIBS="-lc"
|
||||
|
||||
echo "Building library ${LIB}..."
|
||||
|
||||
source src/clib/build.monolithic
|
||||
|
||||
MODIFIED=0
|
||||
for test in ${MONOLITHIC_TESTS} ${HDR} ${SRC}
|
||||
do
|
||||
if [ ${test} -nt ${LIB} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
echo " Compiling"
|
||||
|
||||
SONAME="${LIB_BASE}.so.${SOMAJOR}.${SOMINOR}"
|
||||
do_cmd ${CC} ${CFLAGS} -shared -fpic -o "${LIB}" \
|
||||
-Wl,-soname,${SONAME} \
|
||||
${SRC} ${SO_LIBS} || return 1
|
||||
|
||||
# make tests work
|
||||
do_cmd ln -sf $(basename ${LIB}) obj/${SONAME} || return 1
|
||||
|
||||
print_success "Library built"
|
||||
else
|
||||
print_success "Library up to date"
|
||||
fi
|
||||
|
||||
LIBC=${LIB}
|
||||
LIBC_BUILT=1
|
||||
LIBC_HEADER=${HDR}
|
||||
LIBC_BASE=${LIB_BASE}
|
||||
|
||||
fi
|
|
@ -0,0 +1,18 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# LIBC_MONOLITHIC
|
||||
|
||||
if [ -z "${LIBC_MONOLITHIC}" ]
|
||||
then
|
||||
SRC="obj/lib.c"
|
||||
HDR="obj/@HEADER_NAME@"
|
||||
|
||||
MONOLITHIC_TESTS="src/clib/build.lib src/clib/build.monolithic"
|
||||
MONOLITHIC_SOURCE="$(echo src/clib/{TopHeader,BottomHeader}.h)"
|
||||
make_monolithic ${HDR} C || return 1
|
||||
|
||||
MONOLITHIC_SOURCE="$(echo src/clib/TopSource.c)"
|
||||
make_monolithic ${SRC} C || return 1
|
||||
|
||||
LIBC_MONOLITHIC=1
|
||||
MONOLITHIC_DOC="${MONOLITHIC_DOC} ${HDR}"
|
||||
fi
|
|
@ -0,0 +1,20 @@
|
|||
# @P@/src/lib/clib/pkgconf.in
|
||||
#
|
||||
# Metadata file for pkg-config
|
||||
# ( http://www.freedesktop.org/software/pkgconfig/ )
|
||||
#
|
||||
# (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
# COPYING for details.
|
||||
#
|
||||
|
||||
# Name, description
|
||||
Name: @TODO@
|
||||
Description: @TODO@
|
||||
Version: @VERSION@
|
||||
|
||||
# Requirements
|
||||
Requires:
|
||||
|
||||
# Compilation information
|
||||
Libs: -L@LIBDIR@ @PMINUSL@
|
||||
Cflags: -I@INCLUDEDIR@
|
|
@ -0,0 +1 @@
|
|||
source src/tests/build.tests
|
|
@ -0,0 +1,39 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# TESTS_BUILT
|
||||
#
|
||||
|
||||
build_target lib
|
||||
LIBS="${LIBCPP}"
|
||||
|
||||
if [ -z ${TESTS_BUILT} ]
|
||||
then
|
||||
echo "Building test programs..."
|
||||
do_cmd mkdir -p obj/tests || return 1
|
||||
|
||||
for SRC in src/tests/*.cpp
|
||||
do
|
||||
TEST="obj/tests/$(basename ${SRC} | sed -e 's,.cpp$,,')"
|
||||
MODIFIED=0
|
||||
for file in ${LIBCPP} ${SRC}
|
||||
do
|
||||
if [ ${file} -nt ${TEST} ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
do_cmd ${CXX} -Iobj ${CFLAGS} -o ${TEST} ${SRC} ${LIBS} || return 1
|
||||
print_success "Built ${TEST}"
|
||||
else
|
||||
print_success "${TEST} is up to date"
|
||||
fi
|
||||
done
|
||||
|
||||
print_success "All tests built"
|
||||
|
||||
TESTS_BUILT=1
|
||||
fi
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/* @P@/src/tests/???.cpp
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
#include "@HEADER_NAME@"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if(argc == 2 && !strcmp(argv[1], "--print-summary")) {
|
||||
std::cout << "One line summary.\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(argc == 1) {
|
||||
// empty argument list
|
||||
}
|
||||
|
||||
int ret = 0;
|
||||
try {
|
||||
// TODO
|
||||
}
|
||||
catch(std::exception& e) {
|
||||
std::cerr << e.what() << std::endl;
|
||||
ret = 1;
|
||||
}
|
||||
catch(...) {
|
||||
std::cerr << "Unknown exception caught." << std::endl;
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1,145 @@
|
|||
# @P@/src/docs/Doxyfile.in
|
||||
#
|
||||
# (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
# COPYING for more information / terms of license.
|
||||
#
|
||||
|
||||
PROJECT_NAME = @P@
|
||||
OUTPUT_DIRECTORY =
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ABBREVIATE_BRIEF =
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = YES
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
MULTILINE_CPP_IS_BRIEF = YES
|
||||
DETAILS_AT_TOP = YES
|
||||
INHERIT_DOCS = YES
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 4
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
SUBGROUPING = YES
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = NO
|
||||
EXTRACT_LOCAL_METHODS = NO
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = YES
|
||||
HIDE_IN_BODY_DOCS = NO
|
||||
INTERNAL_DOCS = NO
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = NO
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
SORT_BRIEF_DOCS = NO
|
||||
SORT_BY_SCOPE_NAME = NO
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = NO
|
||||
SHOW_DIRECTORIES = NO
|
||||
FILE_VERSION_FILTER =
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_NO_PARAMDOC = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
FILE_PATTERNS =
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH = src/docs
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
VERBATIM_HEADERS = NO
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = html
|
||||
HTML_FILE_EXTENSION = .html
|
||||
HTML_HEADER =
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
GENERATE_LATEX = NO
|
||||
GENERATE_RTF = NO
|
||||
GENERATE_MAN = NO
|
||||
GENERATE_XML = NO
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
GENERATE_PERLMOD = NO
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED = DOXYGEN
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
CLASS_DIAGRAMS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
GROUP_GRAPHS = NO
|
||||
UML_LOOK = NO
|
||||
TEMPLATE_RELATIONS = NO
|
||||
INCLUDE_GRAPH = NO
|
||||
INCLUDED_BY_GRAPH = NO
|
||||
CALL_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DIRECTORY_GRAPH = NO
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
DOT_TRANSPARENT = YES
|
||||
DOT_MULTI_TARGETS = YES
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
SEARCHENGINE = NO
|
|
@ -0,0 +1,13 @@
|
|||
/* @P@/src/docs/MainPage.dox
|
||||
*
|
||||
* (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
* COPYING for more information / terms of license.
|
||||
*/
|
||||
|
||||
/*! \mainpage
|
||||
|
||||
*/
|
||||
|
||||
/* options for text editors
|
||||
kate: replace-trailing-space-save true; space-indent true; tab-width 4;
|
||||
*/
|
|
@ -0,0 +1 @@
|
|||
source src/docs/build.docs
|
|
@ -0,0 +1,41 @@
|
|||
# These are external variables, and shouldn't clash with anything else
|
||||
# DOCS_BUILT
|
||||
#
|
||||
|
||||
MONOLITHIC_DOC="${MONOLITHIC_DOC} $(echo src/docs/*.dox)"
|
||||
build_target monolithic
|
||||
|
||||
if [ -z ${DOCS_BUILT} ]
|
||||
then
|
||||
echo "Building documentation with Doxygen..."
|
||||
|
||||
DOXYFILE=obj/Doxyfile
|
||||
|
||||
if [ ! -e ${DOXYFILE} ]
|
||||
then
|
||||
do_cmd cp src/docs/Doxyfile.in ${DOXYFILE} || return 1
|
||||
echo "INPUT = ${MONOLITHIC_DOC}" >> ${DOXYFILE}
|
||||
echo "PROJECT_NUMBER = ${VERSION}" >> ${DOXYFILE}
|
||||
fi
|
||||
|
||||
MODIFIED=0
|
||||
for file in ${MONOLITHIC_DOC}
|
||||
do
|
||||
if [ ${file} -nt html/index.html ]
|
||||
then
|
||||
MODIFIED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${MODIFIED} -ne 0 ]
|
||||
then
|
||||
do_cmd doxygen ${DOXYFILE} || return 1
|
||||
print_success "Documentation built"
|
||||
else
|
||||
print_success "Documentation is up to date"
|
||||
fi
|
||||
|
||||
DOCS_BUILT=1
|
||||
fi
|
||||
|
|
@ -0,0 +1 @@
|
|||
source src/docs/build.install-docs
|
|
@ -0,0 +1,19 @@
|
|||
build_target docs
|
||||
|
||||
# create documentation directories
|
||||
echo "Installing documentation into ${DOCSDIR}"
|
||||
build_dir_tree "${DOCSDIR}/html" || return 1
|
||||
|
||||
# copy across the Doxygen-generated documentation
|
||||
for file in html/*
|
||||
do
|
||||
install_file ${file} ${DOCSDIR}/html 0644 || return 1
|
||||
done
|
||||
|
||||
# copy across the generic files
|
||||
for file in COPYING README
|
||||
do
|
||||
install_file ${file} ${DOCSDIR} 0644 || return 1
|
||||
done
|
||||
|
||||
print_success "Documentation installed"
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
# @P@/scripts/module-create.sh
|
||||
#
|
||||
# (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
||||
# COPYING for more information / terms of license.
|
||||
#
|
||||
|
||||
# Creates a new source module.
|
||||
|
||||
|
||||
|
||||
# Get the directory of the repository (needed to include functions file)
|
||||
cd $(dirname $0)
|
||||
cd $(dirname $(pwd))
|
||||
[ -z "${VERBOSE}" ] && VERBOSE="0"
|
||||
source scripts/functions.sh || exit 1
|
||||
|
||||
|
||||
|
||||
# Get arguments.
|
||||
if [ $# -lt 3 ]
|
||||
then
|
||||
echo "Usage: scripts/module-create.sh <lang> <type> <name> [args]"
|
||||
echo " available modules:"
|
||||
for i in scripts/build.*
|
||||
do
|
||||
echo $i | sed "s,scripts/build\.\([^.]*\)\.\(.*\), lang: \1 type: \2,"
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
LANG=$1
|
||||
shift
|
||||
TYPE=$1
|
||||
shift
|
||||
NAME=$1
|
||||
shift
|
||||
TEMPLATE=scripts/build.${LANG}.${TYPE}
|
||||
|
||||
if [ ! -e ${TEMPLATE}/instantiate ]
|
||||
then
|
||||
echo "No such module type."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source ${TEMPLATE}/instantiate
|
||||
|
Loading…
Reference in New Issue