1#!/bin/sh -e
2
3. package/info
4
5echo '#'
6echo '# This file has been generated by tools/gen-deps.sh'
7echo '#'
8echo
9
10for dir in src/include/${package} src/* ; do
11  for file in $(ls -1 $dir | grep -- \\.h$) ; do
12    {
13      grep -F -- "#include <${package}/" < ${dir}/$file | cut -d'<' -f2 | cut -d'>' -f1 ;
14      grep -- '#include ".*\.h"' < ${dir}/$file | cut -d'"' -f2
15    } | sort -u | {
16      deps=
17      while read dep ; do
18        if echo $dep | grep -q "^${package}/" ; then
19          deps="$deps src/include/$dep"
20        elif test -f "${dir}/$dep" ; then
21          deps="$deps ${dir}/$dep"
22        else
23          deps="$deps src/include-local/$dep"
24        fi
25      done
26      if test -n "$deps" ; then
27        echo "${dir}/${file}:${deps}"
28      fi
29    }
30  done
31done
32
33for dir in src/* ; do
34  for file in $(ls -1 $dir | grep -- \\.c$) ; do
35    {
36      grep -F -- "#include <${package}/" < ${dir}/$file | cut -d'<' -f2 | cut -d'>' -f1 ;
37      grep -- '#include ".*\.h"' < ${dir}/$file | cut -d'"' -f2
38    } | sort -u | {
39      deps=" ${dir}/$file"
40      while read dep ; do
41        if echo $dep | grep -q "^${package}/" ; then
42          deps="$deps src/include/$dep"
43        elif test -f "${dir}/$dep" ; then
44          deps="$deps ${dir}/$dep"
45        else
46          deps="$deps src/include-local/$dep"
47        fi
48      done
49      o=$(echo $file | sed s/\\.c$/.o/)
50      lo=$(echo $file | sed s/\\.c$/.lo/)
51      echo "${dir}/${o} ${dir}/${lo}:${deps}"
52    }
53  done
54done
55echo
56
57for dir in $(ls -1 src | grep -v ^include) ; do
58  for file in $(ls -1 src/$dir/deps-lib) ; do
59    deps=
60    libs=
61    while read dep ; do
62      if echo $dep | grep -q -e ^-l -e '^\${.*_LIB}' ; then
63        libs="$libs $dep"
64      else
65        deps="$deps src/$dir/$dep"
66      fi
67    done < src/$dir/deps-lib/$file
68    echo 'ifeq ($(strip $(STATIC_LIBS_ARE_PIC)),)'
69    echo "lib${file}.a.xyzzy:$deps"
70    echo else
71    echo "lib${file}.a.xyzzy:$(echo "$deps" | sed 's/\.o/.lo/g')"
72    echo endif
73    echo "lib${file}.so.xyzzy: EXTRA_LIBS :=$libs"
74    echo "lib${file}.so.xyzzy:$(echo "$deps" | sed 's/\.o/.lo/g')"
75  done
76
77  for file in $(ls -1 src/$dir/deps-exe) ; do
78    deps=
79    libs=
80    while read dep ; do
81      if echo $dep | grep -q -- \\.o$ ; then
82        dep="src/$dir/$dep"
83      fi
84      if echo $dep | grep -q -e ^-l -e '^\${.*_LIB}' ; then
85        libs="$libs $dep"
86      else
87        deps="$deps $dep"
88      fi
89    done < src/$dir/deps-exe/$file
90    echo "$file: EXTRA_LIBS :=$libs"
91    echo "$file: src/$dir/$file.o$deps"
92  done
93done
94