Upgrade to new build system

This commit is contained in:
Laurence Withers 2007-02-05 13:05:10 +00:00
parent 171eb2c63d
commit 1744e42270
6 changed files with 32 additions and 15 deletions

6
README
View File

@ -1,6 +1,6 @@
libCStreamedXML http://www.lwithers.me.uk/projects/libCStreamedXML/ libCStreamedXML http://www.lwithers.me.uk/projects/libCStreamedXML/
======================================================================== ========================================================================
(c)2006, Laurence Withers, <l@lwithers.me.uk>. (c)2006-2007, Laurence Withers, <l@lwithers.me.uk>.
Released under the GNU GPLv2. See file COPYING or Released under the GNU GPLv2. See file COPYING or
http://www.gnu.org/copyleft/gpl.html for details. http://www.gnu.org/copyleft/gpl.html for details.
@ -11,6 +11,8 @@ To build: ./make.sh
To install: ./make.sh install To install: ./make.sh install
This library has no dependencies other than the C library. This library has no dependencies other than the C library.
You might want to edit 'config' first. You might want to edit 'config' first. You might also want to set
'INSTALL_PREFIX', which is prepended onto the destination of any
installed file.
@TODO@ @TODO@

2
config
View File

@ -2,7 +2,7 @@
# 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
# #
# (c)2006, Laurence Withers, <l@lwithers.me.uk>. # (c)2007, Laurence Withers, <l@lwithers.me.uk>.
# Released under the GNU GPLv2. See file COPYING or # Released under the GNU GPLv2. See file COPYING or
# http://www.gnu.org/copyleft/gpl.html for details. # http://www.gnu.org/copyleft/gpl.html for details.
# #

29
make.sh
View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# libCStreamedXML/make.sh # libCStreamedXML/make.sh
# #
# (c)2006, Laurence Withers, <l@lwithers.me.uk>. # (c)2006-2007, Laurence Withers, <l@lwithers.me.uk>.
# Released under the GNU GPLv2. See file COPYING or # Released under the GNU GPLv2. See file COPYING or
# http://www.gnu.org/copyleft/gpl.html for details. # http://www.gnu.org/copyleft/gpl.html for details.
# #
@ -48,6 +48,8 @@ OUTPUT_DIRS="obj html"
# MONOLITHIC_TESTS if any file mentioned in this list is newer # MONOLITHIC_TESTS if any file mentioned in this list is newer
# than the output file, then we recreate it # than the output file, then we recreate it
# MONOLITHIC_SOURCE a list (in order) of the source files # MONOLITHIC_SOURCE a list (in order) of the source files
# MONOLITHIC_OPTIONS will #define the options to match the respective
# environment variables.
# #
# Recognised formats are: # Recognised formats are:
# none no special processing happens before each file # none no special processing happens before each file
@ -68,13 +70,16 @@ make_monolithic() {
# extract options # extract options
HASHLINE=0 HASHLINE=0
VERDEFINE=0 VERDEFINE=0
HASHDEFINE=0
if [ "$2" == "C" ] if [ "$2" == "C" ]
then then
HASHLINE=1 HASHLINE=1
VERDEFINE=1 VERDEFINE=1
HASHDEFINE=1
elif [ "$2" == "Ch" ] elif [ "$2" == "Ch" ]
then then
HASHLINE=1 HASHLINE=1
HASHDEFINE=1
elif [ "$2" == "none" ] elif [ "$2" == "none" ]
then then
HASHLINE=0 # dummy command HASHLINE=0 # dummy command
@ -115,6 +120,14 @@ make_monolithic() {
do_cmd_redir ${MONOLITHIC_OUT} echo "#define VEREXTRA \"${VEREXTRA}\"" || return 1 do_cmd_redir ${MONOLITHIC_OUT} echo "#define VEREXTRA \"${VEREXTRA}\"" || return 1
fi fi
if [ ${HASHDEFINE} -ne 0 ]
then
for opt in ${MONOLITHIC_OPTIONS}
do
do_cmd_redir ${MONOLITHIC_OUT} echo "#define ${opt} ${!opt}" || return 1
done
fi
for FILE in ${MONOLITHIC_SOURCE} for FILE in ${MONOLITHIC_SOURCE}
do do
if [ ${HASHLINE} -ne 0 ] if [ ${HASHLINE} -ne 0 ]
@ -142,7 +155,7 @@ build_dir_tree() {
return 1 return 1
fi fi
local DIR="$1" local DIR="${INSTALL_PREFIX}$1"
# if the directory already exists, return success # if the directory already exists, return success
[ -d "${DIR}" ] && return 0 [ -d "${DIR}" ] && return 0
@ -180,8 +193,8 @@ build_dir_tree() {
# second is the destination. The third is the octal mode. # second is the destination. The third is the octal mode.
install_file() { install_file() {
# figure out if $2 is a directory or not # figure out if $2 is a directory or not
DEST_FILE="$2" DEST_FILE="${INSTALL_PREFIX}$2"
[ -d "$2" ] && DEST_FILE="$2/$(basename $1)" [ -d "$2" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
echo " Installing: '$1' -> '$2'" echo " Installing: '$1' -> '$2'"
do_cmd cp -fP "$1" "${DEST_FILE}" || return 1 do_cmd cp -fP "$1" "${DEST_FILE}" || return 1
@ -195,8 +208,8 @@ install_file() {
# This will install a header file. It is basically similar to # This will install a header file. It is basically similar to
# install_file(), only we strip out the #line directives. # install_file(), only we strip out the #line directives.
install_header() { install_header() {
DEST_FILE="$2" DEST_FILE="${INSTALL_PREFIX}$2"
[ -d "$2" ] && DEST_FILE="$2/$(basename $1)" [ -d "$2" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
echo " Installing header: '$1' -> '$2'" echo " Installing header: '$1' -> '$2'"
do_cmd rm -f ${DEST_FILE} || exit 1 do_cmd rm -f ${DEST_FILE} || exit 1
@ -212,9 +225,9 @@ install_header() {
# second the symlink's source filename, and the third is the directory # second the symlink's source filename, and the third is the directory
# in which to create the symlink. # in which to create the symlink.
install_symlink() { install_symlink() {
echo " Installing symlink: '$3/$2' -> '$1'" echo " Installing symlink: '$3/$2' -> '${INSTALL_PREFIX}$1'"
( do_cmd cd $3; ln -sf $2 $1 ) || return 1 ( do_cmd cd $3; ln -sf $2 ${INSTALL_PREFIX}$1 ) || return 1
return 0 return 0
} }

2
scripts/.gitignore vendored
View File

@ -1,12 +1,14 @@
build.app.c build.app.c
build.app.c++ build.app.c++
build.app.c++-qt build.app.c++-qt
build.app.sh
build.docs.doxygen build.docs.doxygen
build.files.none build.files.none
build.firmware.gpasm build.firmware.gpasm
build.firmware.sdcc build.firmware.sdcc
build.lib.c build.lib.c
build.lib.c++ build.lib.c++
build.module.c
build.tests.c build.tests.c
build.tests.c++ build.tests.c++
module-create.sh module-create.sh

View File

@ -1,6 +1,6 @@
# libCStreamedXML/src/docs/Doxyfile.in # libCStreamedXML/src/docs/Doxyfile.in
# #
# (c)2006, Laurence Withers, <l@lwithers.me.uk>. # (c)2007, Laurence Withers, <l@lwithers.me.uk>.
# Released under the GNU GPLv2. See file COPYING or # Released under the GNU GPLv2. See file COPYING or
# http://www.gnu.org/copyleft/gpl.html for details. # http://www.gnu.org/copyleft/gpl.html for details.
# #

View File

@ -1,6 +1,6 @@
/* libCStreamedXML/src/tests/???.c /* libCStreamedXML/src/tests/???.c
* *
* (c)2006, Laurence Withers, <l@lwithers.me.uk>. * (c)2007, Laurence Withers, <l@lwithers.me.uk>.
* Released under the GNU GPLv2. See file COPYING or * Released under the GNU GPLv2. See file COPYING or
* http://www.gnu.org/copyleft/gpl.html for details. * http://www.gnu.org/copyleft/gpl.html for details.
*/ */