diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | build-essential.pkg.in/control | 14 | ||||
-rw-r--r-- | build-essential.pkg.in/docs (renamed from build-essential.pkg/docs) | 0 | ||||
-rw-r--r-- | build-essential.pkg/control | 7 | ||||
-rwxr-xr-x | config | 64 | ||||
-rw-r--r-- | targets.in | 4 |
6 files changed, 85 insertions, 7 deletions
@@ -4,6 +4,9 @@ *~ Session.vim +# Generated files +build-essential-*-*-*.pkg/ + # Work area tmp/ diff --git a/build-essential.pkg.in/control b/build-essential.pkg.in/control new file mode 100644 index 0000000..d9e84ef --- /dev/null +++ b/build-essential.pkg.in/control @@ -0,0 +1,14 @@ +Architecture: all +Platform: all +Depends: + libc.6-dev, + binutils-@PKG_TARGET_ARCH@, + gcc-@PKG_TARGET_ARCH@, + g++-@PKG_TARGET_ARCH@, + gmake, + opkbuild, + opkhelper +Recommends: fakeroot +Description: Metapackage for building packages for @PKG_TARGET_ARCH@ + This package depends on packages that are considered necessary for building + software packages for @PKG_TARGET_ARCH@. diff --git a/build-essential.pkg/docs b/build-essential.pkg.in/docs index e69de29..e69de29 100644 --- a/build-essential.pkg/docs +++ b/build-essential.pkg.in/docs diff --git a/build-essential.pkg/control b/build-essential.pkg/control deleted file mode 100644 index ebd0afc..0000000 --- a/build-essential.pkg/control +++ /dev/null @@ -1,7 +0,0 @@ -Architecture: all -Platform: all -Depends: libc.6-dev, binutils, gcc, g++, gmake, opkbuild, opkhelper -Recommends: fakeroot -Description: Metapackage for package building - This package depends on packages that are considered necessary for building - software packages. @@ -0,0 +1,64 @@ +#!/bin/sh + +set -e + +TPL_PKGS='build-essential' + +main() +{ + case "${1}" in + 'clean') + clean + ;; + '') + if [ -z "${PKG_TARGETS}" ]; then + PKG_TARGETS="$(cat targets.in)" + fi + for arch in ${PKG_TARGETS}; do + PKG_TARGET_ARCH="${arch}" configure_build + done + ;; + esac +} + +msg() +{ + printf 'build-essential config: ' + printf "${@}" + printf '\n' +} + +configure_build() +{ + local ss= + local name= + local pkg= + + # Generate a sed script to edit files. + ss='' + for name in TARGET_ARCH; do + ss="${ss}s&@PKG_${name}@&$(eval echo \$\{PKG_${name}\})&;" + done + + # Write metadata for <pkgbase>-<target> packages. + for pkg in ${TPL_PKGS}; do + mkdir -p "${pkg}-${PKG_TARGET_ARCH}.pkg" + sed "${ss}" "${pkg}.pkg.in/control" \ + >"${pkg}-${PKG_TARGET_ARCH}.pkg/control" + cp "${pkg}.pkg.in/docs" "${pkg}-${PKG_TARGET_ARCH}.pkg/docs" + msg 'Metadata for package "%s" generated.' \ + "${pkg}-${PKG_TARGET_ARCH}" + done +} + +clean() +{ + local pkg= + + # Remove generated metadata for <pkgbase>-<target> packages. + for pkg in ${TPL_PKGS}; do + rm -Rf "${pkg}"-*-*-*.pkg/ + done +} + +main "${@}" diff --git a/targets.in b/targets.in new file mode 100644 index 0000000..d2bfce2 --- /dev/null +++ b/targets.in @@ -0,0 +1,4 @@ +core-linux-eglibc +i686-linux-eglibc +i686-kfreebsd-eglibc +cortexa8-linux-eglibc |