#! /bin/sh set -e TARGET_PKGS='binutils libbfd-dev' main() { case "${1}" in clean) clean ;; *) get_config_values configure_build ;; esac } msg() { printf 'binutils config: ' printf "${@}" printf '\n' } get_config_values() { if [ -z "${PKG_TARGET_ARCH}" ]; then msg 'Error: No target architecture specified.' >&2 exit 1 fi # FIXME: Lookup GNU system type. export PKG_TARGET_ARCH_GNU=arm-cortex_a8-linux-gnu } configure_build() { # Generate a sed script to edit files. _ss= for _name in TARGET_ARCH TARGET_ARCH_GNU; do _ss="${_ss}s&@PKG_${_name}@&$(eval echo \$\{PKG_${_name}\})&;" done # Write a build makefile with the configuration values. sed "${_ss}" build.in >build chmod a+x build msg '"build" file generated.' # Write metadata for - packages. for _pkg in ${TARGET_PKGS}; do mkdir -p "${_pkg}-${PKG_TARGET_ARCH}.pkg" sed "${_ss}" "${_pkg}.pkg.in/control" \ >"${_pkg}-${PKG_TARGET_ARCH}.pkg/control" msg 'Metadata for package "%s" generated.' \ "${_pkg}-${PKG_TARGET_ARCH}" done } clean() { # Remove generated build makefile. rm -f build # Remove generated metadata for - packages. for _pkg in ${TARGET_PKGS}; do rm -Rf "${_pkg}"-*-*-*.pkg/ done } main "${@}"