build.zsh/build/binary.zsh

67 lines
1.4 KiB
Bash
Raw Normal View History

2014-11-05 13:32:11 +01:00
function binary.build {
write -n "${target}:"
for i in ${src[@]}; do
write -n " ${i%.*}.o"
done
write " ${depends[$target]}"
write "\t@echo '$(LD ${target})'"
write -n "\t$Q\$(CC) -o ${target} \$(LDFLAGS)"
write -n " ${src[@]//.c/.o}"
write " ${ldflags[$target]}"
2014-11-05 13:32:11 +01:00
write
for i in ${src[@]}; do
targets+=("${i%.c}.o")
type[${i%.c}.o]=ofile
auto[${i%.c}.o]=true
cflags[${i%.c}.o]="${cflags[$target]}"
2014-11-05 13:32:11 +01:00
done
}
function binary.install {
local install="${install[$target]:-\$(BINDIR)}"
local basename="${filename[$target]}"
if [[ -z "$basename" ]]; then
basename="$(basename "${target}")"
fi
2014-11-05 13:32:11 +01:00
write "${target}.install: ${target}"
write "\t@echo '$(IN "${install}/${basename}")'"
write "\t${Q}mkdir -p '\$(DESTDIR)${install}'"
write "\t${Q}install -m0755 ${target} \$(DESTDIR)${install}/${basename}"
2014-11-05 13:32:11 +01:00
write
}
function binary.uninstall {
local install="${install[$target]:-\$(BINDIR)}"
local basename="${filename[$target]}"
if [[ -z "$basename" ]]; then
basename="$(basename "${target}")"
fi
2014-11-05 13:32:11 +01:00
write "${target}.uninstall:"
write "\t@echo '$(RM ${install}/${basename})'"
write "\t${Q}rm -f '\$(DESTDIR)${install}/${basename}'"
2014-11-05 13:32:11 +01:00
write
}
function binary.clean {
for target in ${targets[@]}; do
write -n " ${target}.clean"
(
typeset -a src
src=($(echo ${sources[$target]}))
for file in ${src[@]}; do
write -n " ${file%.c}.o.clean"
done
)
done
2014-11-05 13:32:11 +01:00
write "\t@echo '$(RM ${target})'"
write "\t${Q}rm -f ${target}"
write
}