aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen-deps
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gen-deps')
-rwxr-xr-xscripts/gen-deps43
1 files changed, 43 insertions, 0 deletions
diff --git a/scripts/gen-deps b/scripts/gen-deps
new file mode 100755
index 0000000..b764deb
--- /dev/null
+++ b/scripts/gen-deps
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+gencommon () {
+ dep="build/${s%.*}${1}.d"
+ obj="build/${s%.*}${1}"
+
+ mkdir -p $(dirname ${dep})
+
+ echo "${dep}:" >> deps.mk
+ echo "include ${dep}" >> deps.mk
+ echo "${obj}: ${s}" >> deps.mk
+
+}
+genlink () {
+ gencommon ".ld"
+ echo " \$(GENLINK) $< | \$(STRIPLINK) > \$@" >> deps.mk
+}
+
+genrule () {
+ gencommon "${1}"
+ echo " \$(COMPILE) -c \$< -o \$@" >> deps.mk
+}
+
+case "${1}" in
+ --kern)
+ suffix=.k.o
+ func=genrule
+ ;;
+ --init)
+ suffix=.i.o
+ func=genrule
+ ;;
+ --link)
+ suffix=.ld
+ func=genlink
+ ;;
+esac
+
+for s in ${2}
+do
+ ${func} ${suffix}
+ echo ${obj}
+done