summaryrefslogtreecommitdiff
path: root/fix_makefile_header_dependencies.sh
diff options
context:
space:
mode:
authorcon <qtc-commiter@nokia.com>2008-12-02 12:01:29 +0100
committercon <qtc-commiter@nokia.com>2008-12-02 12:01:29 +0100
commit05c35356abc31549c5db6eba31fb608c0365c2a0 (patch)
treebe044530104267afaff13f8943889cb97f8c8bad /fix_makefile_header_dependencies.sh
downloadqt-creator-05c35356abc31549c5db6eba31fb608c0365c2a0.tar.gz
Initial import
Diffstat (limited to 'fix_makefile_header_dependencies.sh')
-rwxr-xr-xfix_makefile_header_dependencies.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/fix_makefile_header_dependencies.sh b/fix_makefile_header_dependencies.sh
new file mode 100755
index 0000000000..eae6819a19
--- /dev/null
+++ b/fix_makefile_header_dependencies.sh
@@ -0,0 +1,52 @@
+#! /usr/bin/env bash
+
+WORKER=./fill_deps.sh
+DEPFILE=deps
+
+write_deps_file() {
+ INPUT=$1
+ ESCAPED_OUTPUT=`sed 's/\//\\\\\//g' <<<"$1"`
+
+ {
+ echo '#! /usr/bin/env bash'
+ grep '^\(CXXFLAGS\|INCPATH\|DEFINES\)' ${INPUT} \
+ | sed \
+ -e 's/$(\([^)]\+\))/${\1}/g' \
+ -e 's/"/\\"/g' \
+ -e 's/^\([^ ]\+\) *= *\(.\+\)/\1="\2"/'
+ echo
+ echo 'touch deps'
+ grep '^.$(CXX)' ${INPUT} \
+ | grep -v '$@' \
+ | sed \
+ -e 's/^\t\$(CXX)\(.\+\)$/makedepend \1 -w 1000000 -f '${DEPFILE}' -p "" -a -o .o 2>\/dev\/null/' \
+ -e 's/$(\([^)]\+\))/${\1}/g' \
+ -e 's/\\/\//g'
+ } > "${WORKER}"
+ chmod a+x "${WORKER}"
+}
+
+
+
+PWD_BACKUP=$PWD
+
+while read makefile ; do
+ dir=`dirname "${makefile}"`
+ if [ `find "${dir}" -maxdepth 1 -name '*.cpp' | wc -l 2>/dev/null` -ge 1 ]; then
+ echo "Directory: $dir"
+ cd $dir
+ rm -f "${DEPFILE}"
+ write_deps_file Makefile
+ "${WORKER}"
+ TEMPFILE=`mktemp`
+ sed 's/^.\+\/\([^\/]\+.o:\)/\1/' "${DEPFILE}" > "${TEMPFILE}"
+ mv "${TEMPFILE}" "${DEPFILE}"
+ # rm "${WORKER}"
+
+ cd ${PWD_BACKUP}
+ echo "include ${DEPFILE}" >> "${makefile}"
+ fi
+done < <(find src -name 'Makefile')
+
+cd ${PWD_BACKUP}
+