author | Sam Lantinga <slouken@libsdl.org> |
Mon, 16 Jul 2007 03:28:48 +0000 | |
changeset 2204 | 9f64d06fa168 |
parent 1634 | 14f302c5b32c |
child 2247 | 93994f65c74c |
child 4539 | d2517c0de52b |
permissions | -rwxr-xr-x |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 |
#!/bin/sh |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 |
# |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 |
# Generate dependencies from a list of source files |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
|
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 |
# Check to make sure our environment variables are set |
1634
14f302c5b32c
Don't hardcode the output directory
Sam Lantinga <slouken@libsdl.org>
parents:
1521
diff
changeset
|
6 |
if test x"$INCLUDE" = x -o x"$SOURCES" = x -o x"$output" = x; then |
14f302c5b32c
Don't hardcode the output directory
Sam Lantinga <slouken@libsdl.org>
parents:
1521
diff
changeset
|
7 |
echo "SOURCES, INCLUDE, and output needs to be set" |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
8 |
exit 1 |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
fi |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 |
cache_prefix=".#$$" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 |
|
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 |
generate_var() |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 |
{ |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
echo $1 | sed -e 's|^.*/||' -e 's|\.|_|g' |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 |
} |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 |
|
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 |
search_deps() |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
{ |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 |
base=`echo $1 | sed 's|/[^/]*$||'` |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 |
grep '#include "' <$1 | sed -e 's|.*"\([^"]*\)".*|\1|' | \ |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 |
while read file |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 |
do cache=${cache_prefix}_`generate_var $file` |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
if test -f $cache; then |
1391
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
24 |
: # We already ahve this cached |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
25 |
else |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
26 |
: >$cache |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
27 |
for path in $base `echo $INCLUDE | sed 's|-I||g'` |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
28 |
do dep="$path/$file" |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
29 |
if test -f "$dep"; then |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
30 |
echo " $dep \\" >>$cache |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
31 |
search_deps $dep >>$cache |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
32 |
break |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
33 |
fi |
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
34 |
done |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 |
fi |
1391
7dc446173e37
Blargle-fnargle dependencies and build rules
Sam Lantinga <slouken@libsdl.org>
parents:
1388
diff
changeset
|
36 |
cat $cache |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
37 |
done |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 |
} |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 |
|
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 |
:>${output}.new |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
41 |
for src in $SOURCES |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 |
do echo "Generating dependencies for $src" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
43 |
ext=`echo $src | sed 's|.*\.\(.*\)|\1|'` |
2204
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
44 |
if test x"$ext" = x"rc"; then |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
45 |
obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.o|g"` |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
46 |
else |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
47 |
obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.lo|g"` |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
48 |
fi |
1634
14f302c5b32c
Don't hardcode the output directory
Sam Lantinga <slouken@libsdl.org>
parents:
1521
diff
changeset
|
49 |
echo "\$(objects)/$obj: $src \\" >>${output}.new |
1388
9a9b87172b4b
Fixed build dependencies... ugh
Sam Lantinga <slouken@libsdl.org>
parents:
1361
diff
changeset
|
50 |
search_deps $src | sort | uniq >>${output}.new |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 |
case $ext in |
1416 | 52 |
c) cat >>${output}.new <<__EOF__ |
53 |
||
1521
9b9212e4810c
CFLAGS are separate from EXTRA_CFLAGS
Sam Lantinga <slouken@libsdl.org>
parents:
1493
diff
changeset
|
54 |
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ |
1416 | 55 |
|
56 |
__EOF__ |
|
57 |
;; |
|
58 |
cc) cat >>${output}.new <<__EOF__ |
|
59 |
||
1521
9b9212e4810c
CFLAGS are separate from EXTRA_CFLAGS
Sam Lantinga <slouken@libsdl.org>
parents:
1493
diff
changeset
|
60 |
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ |
1416 | 61 |
|
62 |
__EOF__ |
|
63 |
;; |
|
64 |
m) cat >>${output}.new <<__EOF__ |
|
65 |
||
1521
9b9212e4810c
CFLAGS are separate from EXTRA_CFLAGS
Sam Lantinga <slouken@libsdl.org>
parents:
1493
diff
changeset
|
66 |
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ |
1416 | 67 |
|
68 |
__EOF__ |
|
69 |
;; |
|
70 |
asm) cat >>${output}.new <<__EOF__ |
|
71 |
||
1417
24fbbedd2ad6
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
1416
diff
changeset
|
72 |
\$(LIBTOOL) --tag=CC --mode=compile \$(auxdir)/strip_fPIC.sh \$(NASM) $src -o \$@ |
1416 | 73 |
|
74 |
__EOF__ |
|
75 |
;; |
|
1459
1e8582152d44
Date: Wed, 01 Mar 2006 10:14:31 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
1417
diff
changeset
|
76 |
S) cat >>${output}.new <<__EOF__ |
1e8582152d44
Date: Wed, 01 Mar 2006 10:14:31 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
1417
diff
changeset
|
77 |
|
1521
9b9212e4810c
CFLAGS are separate from EXTRA_CFLAGS
Sam Lantinga <slouken@libsdl.org>
parents:
1493
diff
changeset
|
78 |
\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@ |
1459
1e8582152d44
Date: Wed, 01 Mar 2006 10:14:31 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
1417
diff
changeset
|
79 |
|
1e8582152d44
Date: Wed, 01 Mar 2006 10:14:31 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
1417
diff
changeset
|
80 |
__EOF__ |
1e8582152d44
Date: Wed, 01 Mar 2006 10:14:31 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
1417
diff
changeset
|
81 |
;; |
2204
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
82 |
rc) cat >>${output}.new <<__EOF__ |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
83 |
|
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
84 |
\$(WINDRES) $src \$@ |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
85 |
|
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
86 |
__EOF__ |
9f64d06fa168
Added support for building version.rc in Windows build.
Sam Lantinga <slouken@libsdl.org>
parents:
1634
diff
changeset
|
87 |
;; |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 |
*) echo "Unknown file extension: $ext";; |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 |
esac |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 |
echo "" >>${output}.new |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 |
done |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 |
mv ${output}.new ${output} |
1493
ce28f14c4502
Clean up temporary files. I'm not sure how this got removed, but whatever...
Sam Lantinga <slouken@libsdl.org>
parents:
1459
diff
changeset
|
93 |
rm -f ${cache_prefix}* |