From 34a77f7822126263fed5c72aedaa65b58fee94ac Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 07 Dec 2015 12:07:15 -0500 Subject: Merge branch 'feature/use-shld' --- (limited to 'lib/archplat.sh') diff --git a/lib/archplat.sh b/lib/archplat.sh deleted file mode 100644 index d7b1424..0000000 --- a/lib/archplat.sh +++ /dev/null @@ -1,147 +0,0 @@ -# Functions for matching architectures and platforms -# -# Copyright (C) 2012 Patrick "P. J." McDermott -# -# This file is part of the ProteanOS Development Kit. -# -# The ProteanOS Development Kit 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 3 of the -# License, or (at your option) any later version. -# -# The ProteanOS Development Kit 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 the ProteanOS Development Kit. If not, see -# . - -[ "x${_ARCHPLAT_SM+set}" = 'xset' ] && return 0 -_ARCHPLAT_SM=1 - -match_arch() -{ - local arch="${1}" - local arch_field="${2}" - local a= - local a_ere= - - for a in ${arch_field}; do - - # "all" == "all" - if [ "${arch}" = 'all' ]; then - if [ "${a}" = 'all' ]; then - return 0 - else - continue - fi - fi - - # "foo-bar-baz" == "any" - if [ "${a}" = 'any' ]; then - return 0 - fi - - # Generate an ERE to match hyphenated architectures. - a_ere="$(printf '%s\n' "${a}" | sed \ - 's/^any-/[^-]+-/;s/-any-/-[^-]+-/g;s/-any$/-[^-]+/g')" - - # "foo-bar-baz" == "foo-any-any" - if echo "${arch}" | grep -E "${a_ere}" >/dev/null 2>&1; then - return 0 - fi - - done - - # Nothing matched. - return 1 -} - -match_plat() -{ - local plat="${1}" - local plat_field="${2}" - local p= - - for p in ${plat_field}; do - if [ "x${plat}" = 'xall' ]; then - if [ "x${p}" = 'xall' ]; then - return 0 - else - continue - fi - fi - if [ "x${p}" = 'xany' ]; then - return 0 - fi - if [ "x${p}" = "x${plat}" ]; then - return 0 - fi - done - - return 1 -} - -arch_is_concerned() -{ - local host_arch="${1}" - local arches="${2}" - local arch= - local not_arch= - local seen_arch= - - if [ "x${arches}" = 'x' ]; then - return 0 - else - seen_arch=1 - for arch in ${arches}; do - not_arch="${arch#!}" - if [ "x${not_arch}" != "x${arch}" ]; then - if match_arch "${host_arch}" "${not_arch}" - then - seen_arch=1 - break - elif [ "x${host_arch}" != 'xall' ]; then - seen_arch=0 - fi - elif match_arch "${host_arch}" "${arch}"; then - seen_arch=0 - break - fi - done - return ${seen_arch} - fi -} - -plat_is_concerned() -{ - local host_plat="${1}" - local plats="${2}" - local plat= - local not_plat= - local seen_plat= - - if [ "x${plats}" = 'x' ]; then - return 0 - else - seen_plat=1 - for plat in ${plats}; do - not_plat="${plat#!}" - if [ "x${not_plat}" != "x${plat}" ]; then - if match_plat "${host_plat}" "${not_plat}" - then - seen_plat=1 - break - elif [ "x${host_plat}" != 'xall' ]; then - seen_plat=0 - fi - elif match_plat "${host_plat}" "${plat}"; then - seen_plat=0 - break - fi - done - return ${seen_plat} - fi -} -- cgit v0.9.1