diff options
Diffstat (limited to 'scripts/gen-deps')
| -rwxr-xr-x | scripts/gen-deps | 79 |
1 files changed, 28 insertions, 51 deletions
diff --git a/scripts/gen-deps b/scripts/gen-deps index 9a9ad6e..f45707c 100755 --- a/scripts/gen-deps +++ b/scripts/gen-deps @@ -1,60 +1,37 @@ #!/bin/sh -gencommon () { - lint="build/${path}/${s%.*}${1}.l" - dep="build/${path}/${s%.*}${1}.d" - obj="build/${path}/${s%.*}${1}" +PREFIX= +COMPILE=COMPILE +LINT=LINT +BUILD=build/ - echo "${dep}:" >> deps.mk - echo "-include ${dep}" >> deps.mk - echo "${obj}: ${s}" >> deps.mk -} - -genlink () { - gencommon ".ld" - if [ ${kern} ]; then - echo " \$(GENLINK) ${s} | \$(STRIPLINK) > ${obj}" >> deps.mk - else - echo " \$(GENLINK) ${s} | \$(STRIPLINK) | \$(KERN_INFO) > ${obj}" >> deps.mk; - fi -} - -genrule () { - gencommon "${1}" - echo " \$(COMPILE) ${flags} -c ${s} -o ${obj}" >> deps.mk - - echo "${lint}: ${s}" >> deps.mk - echo " \$(LINT) ${flags} -c ${s} -o /dev/null" >> deps.mk -} - -case "${1}" in - --kernel) - kern=1 - path=kernel - flags='$(KERN_FLAGS)' - ;; - --init) - path=init - flags='$(INIT_FLAGS)' - ;; -esac +while getopts "p:c:b:l:" opt; do + case "$opt" in + p) PREFIX="$OPTARG"_;; + c) COMPILE="$OPTARG";; + l) LINT="$OPTARG";; + b) BUILD=build/"$OPTARG";; + *) echo "unrecognised option -$OPTARG" >&2; exit 1;; + esac +done -case "${2}" in - --compile) - suffix=.o - func=genrule - ;; - --link) - suffix=.ld - func=genlink -esac +shift $((OPTIND - 1)) # create all subdirectories -mkdir -p $(echo "${3}" | xargs -n 1 dirname | uniq | sed 's|^|build/init/|g') -mkdir -p $(echo "${3}" | xargs -n 1 dirname | uniq | sed 's|^|build/kernel/|g') +mkdir -p $(echo "${@}" | tr ' ' '\n' | sed "s|[^/]*$||;s|^|${BUILD}/|" | uniq) -for s in ${3} +for s in ${@} do - ${func} ${suffix} - echo ${obj} + obj="${BUILD}/${s%.*}.o" + lint="${obj}.l" + dep="${obj}.d" + + echo "${PREFIX}OBJS += ${obj}" >> deps.mk + echo "${PREFIX}LINTS += ${lint}" >> deps.mk + echo "${dep}:" >> deps.mk + echo "-include ${dep}" >> deps.mk + echo "${obj}: ${s}" >> deps.mk + echo " \$(${COMPILE}) -c ${s} -o ${obj}" >> deps.mk + echo "${lint}: ${s}" >> deps.mk + echo " \$(${LINT}) -c ${s} -o /dev/null" >> deps.mk done |
