diff options
author | P. J. McDermott <pjm@nac.net> | 2012-11-07 19:54:36 (EST) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2012-11-07 19:54:36 (EST) |
commit | 02ff44fe4d963f290347568833846b7d8b5db854 (patch) | |
tree | 92c60a8e7d6b1b37b179222ba4c406790f4985da | |
parent | ccebed718e6a3d87ce34b7ae0e33c488ec268232 (diff) |
Improve the archtab generation kludge.
-rw-r--r-- | .gitignore | 1 | ||||
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | mkarchtab.in | 79 | ||||
-rwxr-xr-x | testsetup.sh | 169 |
4 files changed, 85 insertions, 169 deletions
@@ -6,6 +6,7 @@ Session.vim # Generated files Makefile +mkarchtab src/*[^.]?? lib/*.sm lib/*/*.sm @@ -36,6 +36,7 @@ quiet='false' missing_deps='false' dep_cmds=' sh +make ' dep_libs=' libopkbuild.1 @@ -317,6 +318,10 @@ write_makefiles() mkdir -p "${_dir}" sed "${_sed_script}" "${srcdir}/${_dir}/Makefile.in" >"${_dir}/Makefile" done + + # New and improved kludge to generate an architecture table for testing. + # TODO: Remove when no longer used. + sed "${_sed_script}" "${srcdir}/mkarchtab.in" >'mkarchtab' } main "${@}" diff --git a/mkarchtab.in b/mkarchtab.in new file mode 100644 index 0000000..a31a8e3 --- /dev/null +++ b/mkarchtab.in @@ -0,0 +1,79 @@ +#!@make@ -f +# opkhelper +# mkarchtab.in +# Input makefile to generate an architecture table for testing. +# +# Copyright (C) 2012 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +package_name = @package_name@ +package_version= @package_version@ + +srcdir = @srcdir@ +prefix = @prefix@ +bindir = @bindir@ +libdir = @libdir@ +datadir = @datadir@ +mandir = @mandir@ +libopkhelper = @libopkhelper@ +libopkbuild_1 = @libopkbuild_1@ + +DESTDIR = / + +archtab = @archtab@ + +# New and improved kludge to generate an architecture table for testing. +# Now 10% less horrible! +default: + @printf 'Generating build system architecture data...\n' + @mkdir -p '${archtab}' || \ + { printf 'Error: Cannot make architecture table directory\n'; exit 1;} + @# core-linux-eglibc + @mkdir -p '${archtab}/core-linux-eglibc' || \ + { printf 'Error: Cannot make architecture table directory\n'; exit 1;} + @printf 'x86_64-unknown-linux-gnu\n' \ + >'${archtab}/core-linux-eglibc/autoconf' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @printf 'x86\ni386\n' \ + >'${archtab}/core-linux-eglibc/kbuild' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @# i686-linux-eglibc + @mkdir -p '${archtab}/i686-linux-eglibc' || \ + { printf 'Error: Cannot make architecture table directory\n'; exit 1;} + @printf 'i686-unknown-linux-gnu\n' \ + >'${archtab}/i686-linux-eglibc/autoconf' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @printf 'x86\ni386\n' \ + >'${archtab}/i686-linux-eglibc/kbuild' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @# i686-kfreebsd-eglibc + @mkdir -p '${archtab}/i686-kfreebsd-eglibc' || \ + { printf 'Error: Cannot make architecture table directory\n'; exit 1;} + @printf 'i686-unknown-freebsd9.0\n' \ + >'${archtab}/i686-kfreebsd-eglibc/autoconf' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @printf 'x86\ni386\n' \ + >'${archtab}/i686-kfreebsd-eglibc/kbuild' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @# cortexa8-linux-eglibc + @mkdir -p '${archtab}/cortexa8-linux-eglibc' || \ + { printf 'Error: Cannot make architecture table directory\n'; exit 1;} + @printf 'arm-cortex_a8-linux-gnueabi\n' \ + >'${archtab}/cortexa8-linux-eglibc/autoconf' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @printf 'arm\n' \ + >'${archtab}/cortexa8-linux-eglibc/kbuild' || \ + { printf 'Error: Cannot write architecture data\n'; exit 1;} + @printf 'Done!\n' diff --git a/testsetup.sh b/testsetup.sh deleted file mode 100755 index 4599fcb..0000000 --- a/testsetup.sh +++ /dev/null @@ -1,169 +0,0 @@ -#! /bin/sh -# -# opkhelper -# testsetup -# Generates configuration and data files to test opkhelper. -# -# Copyright (C) 2012 Patrick "P. J." McDermott -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -prefix='' -datadir='' -sysconfdir='' - -long_opts_with_args=' -prefix -libdir -' - -main() -{ - parse_options "${@}" - shift ${optind} - - [ -z "${prefix}" ] && prefix='/usr/local' - [ -z "${libdir}" ] && libdir="${prefix}/share" - - if [ ${#} -ne 0 ]; then - print_usage - exit 1 - fi - - printf 'Generating build system architecture data...\n' - - archtab="${libdir}/archtab" - mkdir -p "${archtab}" || \ - error 'Cannot make architecture table directory' - - # core-linux-eglibc - mkdir "${archtab}/core-linux-eglibc" || \ - error 'Cannot make architecture table directory' - printf 'x86_64-unknown-linux-gnu\n' \ - >"${archtab}/core-linux-eglibc/autoconf" || \ - error 'Cannot write architecture data' - printf 'x86\ni386\n' \ - >"${archtab}/core-linux-eglibc/kbuild" || \ - error 'Cannot write architecture data' - - # i686-linux-eglibc - mkdir "${archtab}/i686-linux-eglibc" || \ - error 'Cannot make architecture table directory' - printf 'i686-unknown-linux-gnu\n' \ - >"${archtab}/i686-linux-eglibc/autoconf" || \ - error 'Cannot write architecture data' - printf 'x86\ni386\n' \ - >"${archtab}/i686-linux-eglibc/kbuild" || \ - error 'Cannot write architecture data' - - # i686-kfreebsd-eglibc - mkdir "${archtab}/i686-kfreebsd-eglibc" || \ - error 'Cannot make architecture table directory' - printf 'i686-unknown-freebsd9.0\n' \ - >"${archtab}/i686-kfreebsd-eglibc/autoconf" || \ - error 'Cannot write architecture data' - printf 'x86\ni386\n' \ - >"${archtab}/i686-kfreebsd-eglibc/kbuild" || \ - error 'Cannot write architecture data' - - # cortexa8-linux-eglibc - mkdir "${archtab}/cortexa8-linux-eglibc" || \ - error 'Cannot make architecture table directory' - printf 'arm-cortex_a8-linux-gnueabi\n' \ - >"${archtab}/cortexa8-linux-eglibc/autoconf" || \ - error 'Cannot write architecture data' - printf 'arm\n' \ - >"${archtab}/cortexa8-linux-eglibc/kbuild" || \ - error 'Cannot write architecture data' - - printf 'Done!\n' -} - -print_usage() -{ - printf 'Usage: %s [OPTION]... build-arch build-plat\n' "${0}" -} - -parse_options() -{ - optind=0 - - for _opt; do - - # Handle arguments of "--opt arg" options. - if [ -n "${_prev}" ]; then - eval "${_prev}"=\"\$\{_opt\}\" - _prev='' - continue - fi - - # Detect "--opt=arg" and "--opt arg" options. - case "${_opt}" in - *=*) - _optarg="${_opt#*=}" - _opt="${_opt%=*}" - _optarg_set='true' - ;; - *) - _optarg_set='false' - ;; - esac - - # Handle short and long options. - case "${_opt}" in - --) - break - ;; - esac - - # Anything beyond this point should be a long option. - case "${_opt}" in - --*) - _opt="${_opt#--}" - _opts="${long_opts_with_args}" - _type='option' - ;; - *) - break - ;; - esac - - grep "^${_opt}\$" >/dev/null 2>&1 <<EOF -"${_opts}" -EOF - if [ ${?} -ne 0 ]; then - printf 'invalid %s name: %s\n' "${_type}" "${_opt}" >&2 - exit 1 - fi - if ${_optarg_set}; then - _opt="$(printf '%s' "${_opt}" | tr -c '[a-z0-9]' '_')" - eval "${_opt}"=\"\$\{_optarg\}\" - else - _prev="${_opt}" - fi - - optind=$(($optind + 1)) - - done -} - -error() -{ - printf '%s: Error: ' "${0##*/}" - printf "${@}" - printf '\n' - exit 1 -} - -main "${@}" |