12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
CPPFLAGS="$CPPFLAGS $($OBJFW_CONFIG --cppflags)"
OBJC="$($OBJFW_CONFIG --objc)"
OBJCFLAGS="$OBJCFLAGS $($OBJFW_CONFIG --objcflags)"
LIBS="$LIBS $($OBJFW_CONFIG --libs)"
LDFLAGS="$LDFLAGS $($OBJFW_CONFIG --ldflags)"
if test x"$1" = "x" -o x"$2" = "x"; then
echo "Syntax: objfw-compile outname source1.m source2.m ..."
exit 1
fi
status_compiling() {
printf "\033[K\033[0;33mCompiling \033[1;33m$1\033[0;33m...\033[0m\r"
}
status_compiled() {
|
|
|
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
CPPFLAGS="$CPPFLAGS $($OBJFW_CONFIG --cppflags)"
OBJC="$($OBJFW_CONFIG --objc)"
OBJCFLAGS="$OBJCFLAGS $($OBJFW_CONFIG --objcflags)"
LIBS="$LIBS $($OBJFW_CONFIG --libs)"
LDFLAGS="$LDFLAGS $($OBJFW_CONFIG --ldflags)"
if test x"$1" = "x"; then
echo "Syntax: objfw-compile -o outname source1.m source2.m ..."
exit 1
fi
status_compiling() {
printf "\033[K\033[0;33mCompiling \033[1;33m$1\033[0;33m...\033[0m\r"
}
status_compiled() {
|
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
|
}
status_link_failed() {
printf "\033[K\033[0;31mFailed to link \033[1;31m$1\033[0;31m!"
printf "\033[0m\n"
exit $2
}
out="$1"
objs=""
link="no"
shift
case "$out" in
*.c | *.C | *.cpp | *.cxx | *.C | *.h | *.m | *.mm | *.M)
echo "The first paramter must be the output name!" 1>&2
exit 1
;;
esac
while test x"$1" != "x"; do
case "$1" in
*.m)
obj="${1%.m}.o"
objs="$objs $obj"
build="no"
deps=$($OBJC -E -M $CPPFLAGS $ENV_CPPFLAGS $1 | \
sed 's/.*: //' | sed 's/\\//g')
if test -f "$obj"; then
|
>
|
|
>
>
|
<
>
>
>
>
>
>
|
>
|
>
|
|
>
>
>
>
>
|
>
>
|
>
>
>
>
>
>
>
>
>
>
|
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
|
}
status_link_failed() {
printf "\033[K\033[0;31mFailed to link \033[1;31m$1\033[0;31m!"
printf "\033[0m\n"
exit $2
}
flags_done="no"
out=""
objs=""
link="no"
out_prefix=""
out_suffix=""
while test x"$1" != "x"; do
case "$1" in
-o|--out)
shift
out="$1"
;;
-l|--lib)
if test x"flags_done" = x"yes"; then
printf "The --lib flag needs to be specified "
printf "before any source file!\n"
exit 1
fi
shift
if ! echo "$1" | grep "^[0-9]\+\.[0-9]\+" >/dev/null
then
echo "$1 is not a valid library version!"
exit 1
fi
export LIB_MAJOR="${1%.*}"
export LIB_MINOR="${1#*.}"
OBJCFLAGS="$OBJCFLAGS $($OBJFW_CONFIG --lib-cflags)"
LDFLAGS="$LDFLAGS $($OBJFW_CONFIG --lib-ldflags)"
out_prefix="$($OBJFW_CONFIG --lib-prefix)"
out_suffix="$($OBJFW_CONFIG --lib-suffix)"
;;
-*)
echo "Unknown option: $1"
exit 1
;;
*.m)
flags_done="yes"
obj="${1%.m}.o"
objs="$objs $obj"
build="no"
deps=$($OBJC -E -M $CPPFLAGS $ENV_CPPFLAGS $1 | \
sed 's/.*: //' | sed 's/\\//g')
if test -f "$obj"; then
|
88
89
90
91
92
93
94
95
96
97
98
99
100
|
exit 1
;;
esac
shift
done
if test ! -f "$out" -o x"$link" = x"yes"; then
status_linking $out
$OBJC -o $out $objs $LIBS $ENV_LIBS $LDFLAGS $ENV_LDFLAGS || \
status_link_failed $out $?
status_linked $out
fi
|
>
>
>
>
>
|
|
|
|
|
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
exit 1
;;
esac
shift
done
if test x"$out" = x""; then
echo "No output name specified! Use -o or --out!"
exit 1
fi
if test ! -f "$out_prefix$out$out_suffix" -o x"$link" = x"yes"; then
status_linking $out_prefix$out$out_suffix
$OBJC -o $out_prefix$out$out_suffix $objs $LIBS $ENV_LIBS $LDFLAGS \
$ENV_LDFLAGS || status_link_failed $out $?
status_linked $out_prefix$out$out_suffix
fi
|