blob: 002ce6a4839ce01fd10e4f7f6e2f20c9c4578dd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
#!/bin/sh
# Build script
# Copyright (c) 2002 Serge van den Boom
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# This file contains functions for the general building procedure.
# You shouldn't need to change this file if your project changes.
# Read in the functions we need
. build/unix/build_functions
if [ -z "$BUILD_WORK" ]; then
BUILD_WORK=.
export BUILD_WORK
fi
# Read in the config settings that affect the build, if present.
# Don't reread for every dir when recursing.
if [ -r "$BUILD_WORK/build.vars" ]; then
. "$BUILD_WORK/build.vars"
fi
# Read in the Makeproject file
. ./Makeproject
for VAR in TARGETS "$BUILD_PROJECT_NAME" "$BUILD_PROJECT_OBJS"; do
eval VALUE="\$$VAR"
if [ -z "$VALUE" ]; then
echo "$VAR needs to be defined in the top Makeproject file"
exit 1
fi
done
##############################################
### Everything below is parsing user input ###
TOPDIR="$PWD"
export TOPDIR
if [ $# -lt 1 ]; then
usage 1>&2
exit 1;
fi
# Load the configuration functions
. build/unix/build.config
BUILD_THREADS=""
for i in "$@"; do
shift
if [ "`printf "%s" "$i" | cut -c1-2`" = "-j" ]; then
num="`printf "%s" "$i" | cut -c3-`"
if [ -z "$num" ] || [ "$num" -gt 0 ] 2>/dev/null; then
BUILD_THREADS="-j$num"
else
usage 1>&2
exit 1
fi
else
set -- "$@" "$i"
fi
done
case "$1" in
cleanall)
build_cleanall
exit $?
;;
distclean)
build_distclean
exit $?
;;
esac
unset TARGET
for TEMP in $TARGETS; do
if [ "$1" = "$TEMP" ]; then
TARGET="$1"
break
fi
done
if [ -z "$TARGET" ]; then
echo "Invalid target; choose one from:"
echo " $TARGETS"
exit 1
fi
BUILD_PROJECT="$TARGET"
export TARGET BUILD_PROJECT ECHON
export PREPROC_C MKDEP_C COMPILE_C PREPROC_CXX MKDEP_CXX COMPILE_CXX PREPROC_OBJC MKDEP_OBJC COMPILE_OBJC WINDRES LINK
export "${BUILD_PROJECT}_CFLAGS" "${BUILD_PROJECT}_CXXFLAGS" "${BUILD_PROJECT}_LDFLAGS"
# Add trailing / from objs dir
eval ${BUILD_PROJECT}_OBJS=\${${BUILD_PROJECT}_OBJS%/}/
export "${BUILD_PROJECT}_OBJS"
if [ $# -lt 2 ]; then
build_check_config
build_check_dependencies
build_compile $BUILD_THREADS
exit $?
fi
case "$2" in
clean)
build_clean
;;
config)
build_config
build_process_config
;;
reprocess_config)
build_reconfig
;;
depend)
build_check_config
build_depend
;;
install)
build_check_config
build_check_dependencies
build_check_compile $BUILD_THREADS
build_install
;;
*)
usage 1>&2
exit 1;
;;
esac
|