ObjFW  Diff

Differences From Artifact [580e65d425]:

To Artifact [32d4cb25d4]:


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