Better dependency checking.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1504 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2005-02-01 15:18:16 +00:00
parent 58cba1e5b4
commit f9ab3ae49a
7 changed files with 260 additions and 96 deletions
+16 -14
View File
@@ -67,21 +67,24 @@ build_do_recursive() {
build_recurse
}
# Build dependancy information for one file
build_dependancies() {
# Build dependency information for one file
build_dependencies() {
eval $ECHON \$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}\$BUILD_REC_PATH
eval eval \\\$MKDEPEND \"\${${BUILD_PROJECT}_CFLAGS}\" \"\\\$1\"
eval eval \\\$MKDEPEND \"\${${BUILD_PROJECT}_CFLAGS}\" \"\\\$1\" | \
grep -v '#'
}
# Recursively build dependancy information
build_rec_dependancies() {
# Recursively build dependency information
build_rec_dependencies() {
local DEPEND_FILE EXTRA_OFILES
echo "Building dependancy information..." 1>&2
echo "Building dependency information..." 1>&2
BUILD_WORK_ESC=`escape_string "$BUILD_WORK"`
export BUILD_WORK_ESC
eval DEPEND_FILE="\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}.depend"
# Remove the old dependency file, if it exists.
# The .tmp file is used to detect interrupted dependency builds.
rm -f -- "$DEPEND_FILE".tmp "$DEPEND_FILE"
@@ -93,14 +96,13 @@ build_rec_dependancies() {
BUILD_FILES_VAR=${BUILD_PROJECT}_CFILES
OFILES=`build_do_recursive build_collect_o_files :`
eval DEPEND_FILE="\$BUILD_WORK/.depend.\${${BUILD_PROJECT}_NAME}"
{
eval $ECHON "\$BUILD_WORK_ESC/target-\${${BUILD_PROJECT}_NAME}:"
for OFILE in $OFILES $EXTRA_OFILES; do
$ECHON " $OFILE"
done
echo
build_do_recursive build_dependancies :
build_do_recursive build_dependencies :
} > "$DEPEND_FILE".tmp
mv -f -- "$DEPEND_FILE".tmp "$DEPEND_FILE"
}
@@ -166,7 +168,7 @@ build_compile() {
eval "${TARGET}_pre_build"
eval CFLAGS="\${${BUILD_PROJECT}_CFLAGS}" \
LDFLAGS="\${${BUILD_PROJECT}_LDFLAGS}" \
DEPEND_FILE="\$BUILD_WORK/.depend.\${${BUILD_PROJECT}_NAME%/}" \
DEPEND_FILE="\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}.depend" \
\$MAKE -f Makefile.build \"\$BUILD_WORK/target-\${${BUILD_PROJECT}_NAME}\"
eval "${TARGET}_post_build"
}
@@ -184,7 +186,7 @@ build_clean_dir() {
build_clean() {
local DEPEND_FILE
eval DEPEND_FILE="\$BUILD_WORK/.depend.\${${BUILD_PROJECT}_NAME%/}"
eval DEPEND_FILE="\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}.depend"
rm -f "$DEPEND_FILE" "$BUILD_WORK/build.vars" \
"$BUILD_WORK/config.state" "$BUILD_WORK/config_unix.h"
BUILD_FILES_VAR=${BUILD_PROJECT}_CFILES
@@ -220,10 +222,10 @@ build_check_config() {
# Description: check if the necessary .depend file is present,
# if not, build it.
build_check_dependencies() {
eval DEPEND_FILE="\$BUILD_WORK/.depend.\${${BUILD_PROJECT}_NAME}"
eval DEPEND_FILE="\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}.depend"
[ ! -e "$DEPEND_FILE" -o -n "$BUILD_RUN_DEPEND" ] || return
build_rec_dependancies || exit $?
build_rec_dependencies || exit $?
}
# Description: check if the program is compiled, and otherwise compile
@@ -313,7 +315,7 @@ build_install() {
eval "${TARGET}_pre_install"
local LIB LIBS LIBDIR
echo "Installing system-dependant data..." 1>&2
echo "Installing system-dependent data..." 1>&2
eval LIBS="\${${BUILD_PROJECT}_INSTALL_LIBS}"
eval LIBDIR="\${${BUILD_PROJECT}_INSTALL_LIBDIR%/}/"
mkdirhier "$LIBDIR" 0755
@@ -326,7 +328,7 @@ build_install() {
done
local SHARE SHARED SHAREDIR
echo "Installing system-independant data..." 1>&2
echo "Installing system-independent data..." 1>&2
eval SHARED="\${${BUILD_PROJECT}_INSTALL_SHARED}"
eval SHAREDIR="\${${BUILD_PROJECT}_INSTALL_SHAREDIR%/}/"
mkdirhier "$SHAREDIR" 0755