Tue, 09 Jun 2026 18:50:13 +0200
fix AppDelegate source file case (Cocoa)
|
1158
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1 | #!/bin/sh |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
2 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3 | # the directory where the executed Makefile is |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
4 | dir="$1" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
5 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
6 | # extra flags to add to the compile recipe (if you want to use extra |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
7 | # flags for the dependency resolution, set CFLAGS environment variable) |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
8 | extra_flags="$2" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
9 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
10 | # additional source prefix in case the recipes are for a included Makefile |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
11 | src_prefix="$3" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
12 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
13 | # the target directory for the object files (default: ../build/$dir/) |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
14 | target="$4" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
15 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
16 | # the object file extension to use (default: $(OBJ_EXT) from the config.mk) |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
17 | obj_ext="$5" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
18 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
19 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
20 | if [ -z "$dir" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
21 | echo "Usage: $0 <src_dir>" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
22 | exit 1 |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
23 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
24 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
25 | if [ -z "$target" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
26 | target="../build/$dir/" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
27 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
28 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
29 | if [ -z "$obj_ext" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
30 | obj_ext='$(OBJ_EXT)' |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
31 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
32 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
33 | if [ -d "$dir" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
34 | : |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
35 | else |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
36 | echo "'$dir' is not a directory" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
37 | exit 1 |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
38 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
39 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
40 | if [ -z "$CC" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
41 | for cc in gcc clang ; do |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
42 | if command -v "$cc" > /dev/null ; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
43 | CC="$cc" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
44 | break |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
45 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
46 | done |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
47 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
48 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
49 | if [ -z "$CC" ]; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
50 | echo "No suitable compiler found to generate make rules" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
51 | exit 1 |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
52 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
53 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
54 | if command -v sed > /dev/null ; then |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
55 | : |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
56 | else |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
57 | echo "You need the 'sed' program for this script to work." |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
58 | exit 1 |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
59 | fi |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
60 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
61 | # cleanup include paths to only depend on non-system headers |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
62 | cflags=`echo $CFLAGS | sed 's/-I\//-isystem \//g'` |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
63 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
64 | # switch into the directory of the executed Makefile and generate the recipes |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
65 | cd "$dir" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
66 | |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
67 | mv ${src_prefix}Makefile ${src_prefix}Makefile.old |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
68 | sed '/FORCE:/q' ${src_prefix}Makefile.old > ${src_prefix}Makefile |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
69 | echo >> ${src_prefix}Makefile |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
70 | for file in `ls ${src_prefix}*.c` ; do |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
71 | "$CC" -MT "$target$(basename $file .c)$obj_ext" -MM $cflags "$file" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
72 | printf '\t$(CC) -o $@ $(CFLAGS) %s -c $<\n\n' "$extra_flags" |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
73 | done >> ${src_prefix}Makefile |
|
96c202d45fbb
add build dependencies and a script for generating them
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
74 | rm ${src_prefix}Makefile.old |