Upgrade build system

This commit is contained in:
Laurence Withers 2007-05-22 09:56:52 +00:00
parent 1fc5324e73
commit 81564487a4
12 changed files with 55 additions and 35 deletions

6
README
View File

@ -1,6 +1,6 @@
libiso8601 libiso8601
======================================================================== ========================================================================
(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.
@ -10,6 +10,8 @@ Really Quick Instructions
To build: ./make.sh To build: ./make.sh
To install: ./make.sh install To install: ./make.sh install
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.
# #

50
make.sh
View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/sh
# libiso8601/make.sh # libiso8601/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.
# #
@ -22,10 +22,6 @@ source "config" # don't fail on error, since last command in config might return
# Get version information # Get version information
source version || exit 1 source version || exit 1
VERSION="${VERMAJOR}.${VERMINOR}.${VERMICRO}" VERSION="${VERMAJOR}.${VERMINOR}.${VERMICRO}"
if [ ! -z "${VEREXTRA}" ]
then
VERSION="${VERSION}-${VEREXTRA}"
fi
@ -48,6 +44,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,18 +66,21 @@ 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
else else
print_failure "make_monolithic() called with unknown format $2" print_failure "make_monolithic() called with unknown format $2"
return 1 return 1
fi fi
@ -115,6 +116,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,6 +151,10 @@ build_dir_tree() {
return 1 return 1
fi fi
build_dir_tree_recurse "${INSTALL_PREFIX}$1"
}
build_dir_tree_recurse() {
local DIR="$1" local DIR="$1"
# if the directory already exists, return success # if the directory already exists, return success
@ -160,8 +173,9 @@ build_dir_tree() {
mkdir "${DIR}" >& /dev/null mkdir "${DIR}" >& /dev/null
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
build_dir_tree $(dirname "${DIR}") || return 1 build_dir_tree_recurse $(dirname "${DIR}") || return 1
mkdir "${DIR}" echo " Creating directory '${DIR}'"
do_cmd mkdir "${DIR}"
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
print_failure "Failed to create directory '${DIR}'" print_failure "Failed to create directory '${DIR}'"
@ -180,10 +194,10 @@ 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 "${DEST_FILE}" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
echo " Installing: '$1' -> '$2'" echo " Installing: '$1' -> '${DEST_FILE}'"
do_cmd cp -fP "$1" "${DEST_FILE}" || return 1 do_cmd cp -fP "$1" "${DEST_FILE}" || return 1
do_cmd chmod "$3" "${DEST_FILE}" || return 1 do_cmd chmod "$3" "${DEST_FILE}" || return 1
@ -195,10 +209,10 @@ 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 "${DEST_FILE}" ] && DEST_FILE="${INSTALL_PREFIX}$2/$(basename $1)"
echo " Installing header: '$1' -> '$2'" echo " Installing: '$1' -> '${DEST_FILE}'"
do_cmd rm -f ${DEST_FILE} || exit 1 do_cmd rm -f ${DEST_FILE} || exit 1
do_cmd_redir ${DEST_FILE} sed -e "s,^#line.*,," $1 || exit 1 do_cmd_redir ${DEST_FILE} sed -e "s,^#line.*,," $1 || exit 1
do_cmd chmod "$3" "${DEST_FILE}" || return 1 do_cmd chmod "$3" "${DEST_FILE}" || return 1
@ -212,9 +226,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: '${INSTALL_PREFIX}$3/$1' -> '$2'"
( do_cmd cd $3; ln -sf $2 $1 ) || return 1 ( do_cmd ln -sf $2 ${INSTALL_PREFIX}$3/$1 ) || return 1
return 0 return 0
} }

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
# libiso8601/test.sh # libiso8601/test.sh
# #
# (c)2006, Laurence Withers, <l@lwithers.me.uk>. # (c)2006, Laurence Withers, <l@lwithers.me.uk>.

5
scripts/.gitignore vendored
View File

@ -1,13 +1,18 @@
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++
config-printflags.sh
module-create.sh module-create.sh
release.sh release.sh
version.sh

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
# libiso8601/scripts/functions.sh # libiso8601/scripts/functions.sh
# #
# (c)2006, Laurence Withers, <l@lwithers.me.uk>. # (c)2006, Laurence Withers, <l@lwithers.me.uk>.

View File

@ -22,7 +22,7 @@ install_header ${libiso8601_HEADER} ${INCLUDEDIR} 0644 || return 1
# install config script # install config script
echo "Installing config script into ${BINDIR}" echo "Installing config script into ${BINDIR}"
CONFFILE="${BINDIR}/libiso8601-config" CONFFILE="${INSTALL_PREFIX}${BINDIR}/libiso8601-config"
do_cmd rm -f "${CONFFILE}" do_cmd rm -f "${CONFFILE}"
do_cmd_redir "${CONFFILE}" sed \ do_cmd_redir "${CONFFILE}" sed \

View File

@ -13,8 +13,8 @@ then
libiso8601="obj/${libiso8601_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}" libiso8601="obj/${libiso8601_BASE}.so.${SOMAJOR}.${SOMINOR}.${SOMICRO}"
libiso8601_DEP_CFLAGS="" libiso8601_DEP_CFLAGS=""
libiso8601_DEP_LIBS="" libiso8601_DEP_LIBS="-lrt"
SO_EXTRA="${libiso8601_DEP_CFLAGS} ${libiso8601_DEP_LIBS} -lrt -lc" SO_EXTRA="${libiso8601_DEP_CFLAGS} ${libiso8601_DEP_LIBS} -lc"
echo "Building library ${libiso8601}..." echo "Building library ${libiso8601}..."

View File

@ -90,6 +90,7 @@ done
[ "${echo_exec_prefix}" == "yes" ] && echo "${exec_prefix}" [ "${echo_exec_prefix}" == "yes" ] && echo "${exec_prefix}"
[ "${echo_cflags}" == "yes" ] && echo "${dep_cflags} ${includes}" [ "${echo_cflags}" == "yes" ] && echo "${dep_cflags} ${includes}"
[ "${echo_libs}" == "yes" ] && echo "${dep_libs} -L${lib_dir} -liso8601" [ "${echo_libs}" == "yes" ] && echo "${dep_libs} -L${lib_dir} -liso8601"
true

View File

@ -1,6 +1,6 @@
# libiso8601/src/libiso8601/soversion # libiso8601/src/libiso8601/soversion
# #
# (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 @@
/* libiso8601/src/tests/???.c /* libiso8601/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.
*/ */
@ -22,10 +22,10 @@ int main(int argc, char* argv[])
} }
if(argc == 1) { if(argc == 1) {
// empty argument list /* empty argument list */
} }
// TODO /* TODO */
return ret; return ret;
} }

View File

@ -1,6 +1,6 @@
# libiso8601/version # libiso8601/version
# #
# (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.
# #
@ -8,12 +8,10 @@
# VERSION contains the full version number of the library, which is # VERSION contains the full version number of the library, which is
# expected to be in 'major.minor.micro' format. It can optionally be # expected to be in 'major.minor.micro' format.
# suffixed with a string.
VERMAJOR=0 VERMAJOR=0
VERMINOR=0 VERMINOR=0
VERMICRO=2 VERMICRO=3
VEREXTRA=""
# 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