summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2014-02-09 15:47:16 (GMT)
committerTony Theodore <tonyt@logyst.com>2014-02-09 15:47:16 (GMT)
commit837ecd6648a20d41d4438c192af469b168156535 (patch)
tree2b26388f81051e90fa7641cc2c00f0158b5d8f43 /tools
parent57fa8e075ed02e7f062dceefce8c8342d3e23e82 (diff)
downloadmxe-837ecd6648a20d41d4438c192af469b168156535.zip
mxe-837ecd6648a20d41d4438c192af469b168156535.tar.gz
mxe-837ecd6648a20d41d4438c192af469b168156535.tar.bz2
Makefile and pkgconf: move external tools separate directory
Diffstat (limited to 'tools')
-rw-r--r--tools/__gmsl919
-rwxr-xr-xtools/config.guess1558
-rw-r--r--tools/gmsl89
-rw-r--r--tools/gmsl-tests730
4 files changed, 0 insertions, 3296 deletions
diff --git a/tools/__gmsl b/tools/__gmsl
deleted file mode 100644
index 90a9d69..0000000
--- a/tools/__gmsl
+++ /dev/null
@@ -1,919 +0,0 @@
-# ----------------------------------------------------------------------------
-#
-# GNU Make Standard Library (GMSL)
-#
-# A library of functions to be used with GNU Make's $(call) that
-# provides functionality not available in standard GNU Make.
-#
-# Copyright (c) 2005-2013 John Graham-Cumming
-#
-# This file is part of GMSL
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# Neither the name of the John Graham-Cumming nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# ----------------------------------------------------------------------------
-
-# This is the GNU Make Standard Library version number as a list with
-# three items: major, minor, revision
-
-gmsl_version := 1 1 3
-
-# Used to output warnings and error from the library, it's possible to
-# disable any warnings or errors by overriding these definitions
-# manually or by setting GMSL_NO_WARNINGS or GMSL_NO_ERRORS
-
-__gmsl_name := GNU Make Standard Library
-__gmsl_warning = $(warning $(__gmsl_name): $1)
-__gmsl_error = $(error $(__gmsl_name): $1)
-
-ifdef GMSL_NO_WARNINGS
-__gmsl_warning :=
-endif
-ifdef GMSL_NO_ERRORS
-__gmsl_error :=
-endif
-
-# If GMSL_TRACE is enabled then calls to the library functions are
-# traced to stdout using warning messages with their arguments
-
-ifdef GMSL_TRACE
-__gmsl_tr1 = $(warning $0('$1'))
-__gmsl_tr2 = $(warning $0('$1','$2'))
-__gmsl_tr3 = $(warning $0('$1','$2','$3'))
-else
-__gmsl_tr1 :=
-__gmsl_tr2 :=
-__gmsl_tr3 :=
-endif
-
-# See if spaces are valid in variable names (this was the case until
-# GNU Make 3.82)
-ifeq ($(MAKE_VERSION),3.82)
-__gmsl_spaced_vars := $(false)
-else
-__gmsl_spaced_vars := $(true)
-endif
-
-# Figure out whether we have $(eval) or not (GNU Make 3.80 and above)
-# if we do not then output a warning message, if we do then some
-# functions will be enabled.
-
-__gmsl_have_eval := $(false)
-__gmsl_ignore := $(eval __gmsl_have_eval := $(true))
-
-# If this is being run with Electric Cloud's emake then warn that
-# their $(eval) support is incomplete in 1.x, 2.x, 3.x, 4.x and 5.0,
-# 5.1, 5.2 and 5.3
-
-ifdef ECLOUD_BUILD_ID
-__gmsl_emake_major := $(word 1,$(subst ., ,$(EMAKE_VERSION)))
-__gmsl_emake_minor := $(word 2,$(subst ., ,$(EMAKE_VERSION)))
-ifneq ("$(findstring $(__gmsl_emake_major),1 2 3 4)$(findstring $(__gmsl_emake_major)$(__gmsl_emake_minor),50 51 52 53)","")
-$(warning You are using a version of Electric Cloud's emake which has incomplete $$(eval) support)
-__gmsl_have_eval := $(false)
-endif
-endif
-
-# See if we have $(lastword) (GNU Make 3.81 and above)
-
-__gmsl_have_lastword := $(lastword $(false) $(true))
-
-# See if we have native or and and (GNU Make 3.81 and above)
-
-__gmsl_have_or := $(if $(filter-out undefined, \
- $(origin or)),$(call or,$(true),$(false)))
-__gmsl_have_and := $(if $(filter-out undefined, \
- $(origin and)),$(call and,$(true),$(true)))
-
-ifneq ($(__gmsl_have_eval),$(true))
-$(call __gmsl_warning,Your make version $(MAKE_VERSION) does not support $$$$(eval): some functions disabled)
-endif
-
-__gmsl_dollar := $$
-__gmsl_hash := \#
-
-# ----------------------------------------------------------------------------
-# Function: gmsl_compatible
-# Arguments: List containing the desired library version number (maj min rev)
-# Returns: $(true) if this version of the library is compatible
-# with the requested version number, otherwise $(false)
-# ----------------------------------------------------------------------------
-gmsl_compatible = $(strip \
- $(if $(call gt,$(word 1,$1),$(word 1,$(gmsl_version))), \
- $(false), \
- $(if $(call lt,$(word 1,$1),$(word 1,$(gmsl_version))), \
- $(true), \
- $(if $(call gt,$(word 2,$1),$(word 2,$(gmsl_version))), \
- $(false), \
- $(if $(call lt,$(word 2,$1),$(word 2,$(gmsl_version))), \
- $(true), \
- $(call lte,$(word 3,$1),$(word 3,$(gmsl_version))))))))
-
-# ###########################################################################
-# LOGICAL OPERATORS
-# ###########################################################################
-
-# not is defined in gmsl
-
-# ----------------------------------------------------------------------------
-# Function: and
-# Arguments: Two boolean values
-# Returns: Returns $(true) if both of the booleans are true
-# ----------------------------------------------------------------------------
-ifneq ($(__gmsl_have_and),$(true))
-and = $(__gmsl_tr2)$(if $1,$(if $2,$(true),$(false)),$(false))
-endif
-
-# ----------------------------------------------------------------------------
-# Function: or
-# Arguments: Two boolean values
-# Returns: Returns $(true) if either of the booleans is true
-# ----------------------------------------------------------------------------
-ifneq ($(__gmsl_have_or),$(true))
-or = $(__gmsl_tr2)$(if $1$2,$(true),$(false))
-endif
-
-# ----------------------------------------------------------------------------
-# Function: xor
-# Arguments: Two boolean values
-# Returns: Returns $(true) if exactly one of the booleans is true
-# ----------------------------------------------------------------------------
-xor = $(__gmsl_tr2)$(if $1,$(if $2,$(false),$(true)),$(if $2,$(true),$(false)))
-
-# ----------------------------------------------------------------------------
-# Function: nand
-# Arguments: Two boolean values
-# Returns: Returns value of 'not and'
-# ----------------------------------------------------------------------------
-nand = $(__gmsl_tr2)$(if $1,$(if $2,$(false),$(true)),$(true))
-
-# ----------------------------------------------------------------------------
-# Function: nor
-# Arguments: Two boolean values
-# Returns: Returns value of 'not or'
-# ----------------------------------------------------------------------------
-nor = $(__gmsl_tr2)$(if $1$2,$(false),$(true))
-
-# ----------------------------------------------------------------------------
-# Function: xnor
-# Arguments: Two boolean values
-# Returns: Returns value of 'not xor'
-# ----------------------------------------------------------------------------
-xnor =$(__gmsl_tr2)$(if $1,$(if $2,$(true),$(false)),$(if $2,$(false),$(true)))
-
-# ###########################################################################
-# LIST MANIPULATION FUNCTIONS
-# ###########################################################################
-
-# ----------------------------------------------------------------------------
-# Function: first (same as LISP's car, or head)
-# Arguments: 1: A list
-# Returns: Returns the first element of a list
-# ----------------------------------------------------------------------------
-first = $(__gmsl_tr1)$(firstword $1)
-
-# ----------------------------------------------------------------------------
-# Function: last
-# Arguments: 1: A list
-# Returns: Returns the last element of a list
-# ----------------------------------------------------------------------------
-ifeq ($(__gmsl_have_lastword),$(true))
-last = $(__gmsl_tr1)$(lastword $1)
-else
-last = $(__gmsl_tr1)$(if $1,$(word $(words $1),$1))
-endif
-
-# ----------------------------------------------------------------------------
-# Function: rest (same as LISP's cdr, or tail)
-# Arguments: 1: A list
-# Returns: Returns the list with the first element removed
-# ----------------------------------------------------------------------------
-rest = $(__gmsl_tr1)$(wordlist 2,$(words $1),$1)
-
-# ----------------------------------------------------------------------------
-# Function: chop
-# Arguments: 1: A list
-# Returns: Returns the list with the last element removed
-# ----------------------------------------------------------------------------
-chop = $(__gmsl_tr1)$(wordlist 2,$(words $1),x $1)
-
-# ----------------------------------------------------------------------------
-# Function: map
-# Arguments: 1: Name of function to $(call) for each element of list
-# 2: List to iterate over calling the function in 1
-# Returns: The list after calling the function on each element
-# ----------------------------------------------------------------------------
-map = $(__gmsl_tr2)$(strip $(foreach a,$2,$(call $1,$a)))
-
-# ----------------------------------------------------------------------------
-# Function: pairmap
-# Arguments: 1: Name of function to $(call) for each pair of elements
-# 2: List to iterate over calling the function in 1
-# 3: Second list to iterate over calling the function in 1
-# Returns: The list after calling the function on each pair of elements
-# ----------------------------------------------------------------------------
-pairmap = $(strip $(__gmsl_tr3)\
- $(if $2$3,$(call $1,$(call first,$2),$(call first,$3)) \
- $(call pairmap,$1,$(call rest,$2),$(call rest,$3))))
-
-# ----------------------------------------------------------------------------
-# Function: leq
-# Arguments: 1: A list to compare against...
-# 2: ...this list
-# Returns: Returns $(true) if the two lists are identical
-# ----------------------------------------------------------------------------
-leq = $(__gmsl_tr2)$(strip $(if $(call seq,$(words $1),$(words $2)), \
- $(call __gmsl_list_equal,$1,$2),$(false)))
-
-__gmsl_list_equal = $(if $(strip $1), \
- $(if $(call seq,$(call first,$1),$(call first,$2)), \
- $(call __gmsl_list_equal, \
- $(call rest,$1), \
- $(call rest,$2)), \
- $(false)), \
- $(true))
-
-# ----------------------------------------------------------------------------
-# Function: lne
-# Arguments: 1: A list to compare against...
-# 2: ...this list
-# Returns: Returns $(true) if the two lists are different
-# ----------------------------------------------------------------------------
-lne = $(__gmsl_tr2)$(call not,$(call leq,$1,$2))
-
-# ----------------------------------------------------------------------------
-# Function: reverse
-# Arguments: 1: A list to reverse
-# Returns: The list with its elements in reverse order
-# ----------------------------------------------------------------------------
-reverse =$(__gmsl_tr1)$(strip $(if $1,$(call reverse,$(call rest,$1)) \
- $(call first,$1)))
-
-# ----------------------------------------------------------------------------
-# Function: uniq
-# Arguments: 1: A list from which to remove repeated elements
-# Returns: The list with duplicate elements removed without reordering
-# ----------------------------------------------------------------------------
-uniq = $(strip $(__gmsl_tr1) $(if $1,$(firstword $1) \
- $(call uniq,$(filter-out $(firstword $1),$1))))
-
-# ----------------------------------------------------------------------------
-# Function: length
-# Arguments: 1: A list
-# Returns: The number of elements in the list
-# ----------------------------------------------------------------------------
-length = $(__gmsl_tr1)$(words $1)
-
-# ###########################################################################
-# STRING MANIPULATION FUNCTIONS
-# ###########################################################################
-
-# Helper function that translates any GNU Make 'true' value (i.e. a
-# non-empty string) to our $(true)
-
-__gmsl_make_bool = $(if $(strip $1),$(true),$(false))
-
-# ----------------------------------------------------------------------------
-# Function: seq
-# Arguments: 1: A string to compare against...
-# 2: ...this string
-# Returns: Returns $(true) if the two strings are identical
-# ----------------------------------------------------------------------------
-seq = $(__gmsl_tr2)$(if $(subst x$1,,x$2)$(subst x$2,,x$1),$(false),$(true))
-
-# ----------------------------------------------------------------------------
-# Function: sne
-# Arguments: 1: A string to compare against...
-# 2: ...this string
-# Returns: Returns $(true) if the two strings are not the same
-# ----------------------------------------------------------------------------
-sne = $(__gmsl_tr2)$(call not,$(call seq,$1,$2))
-
-# ----------------------------------------------------------------------------
-# Function: split
-# Arguments: 1: The character to split on
-# 2: A string to split
-# Returns: Splits a string into a list separated by spaces at the split
-# character in the first argument
-# ----------------------------------------------------------------------------
-split = $(__gmsl_tr2)$(strip $(subst $1, ,$2))
-
-# ----------------------------------------------------------------------------
-# Function: merge
-# Arguments: 1: The character to put between fields
-# 2: A list to merge into a string
-# Returns: Merges a list into a single string, list elements are separated
-# by the character in the first argument
-# ----------------------------------------------------------------------------
-merge = $(__gmsl_tr2)$(strip $(if $2, \
- $(if $(call seq,1,$(words $2)), \
- $2,$(call first,$2)$1$(call merge,$1,$(call rest,$2)))))
-
-ifdef __gmsl_have_eval
-# ----------------------------------------------------------------------------
-# Function: tr
-# Arguments: 1: The list of characters to translate from
-# 2: The list of characters to translate to
-# 3: The text to translate
-# Returns: Returns the text after translating characters
-# ----------------------------------------------------------------------------
-tr = $(strip $(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3) \
- $(eval __gmsl_t := $3) \
- $(foreach c, \
- $(join $(addsuffix :,$1),$2), \
- $(eval __gmsl_t := \
- $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)), \
- $(__gmsl_t))))$(__gmsl_t))
-
-# Common character classes for use with the tr function. Each of
-# these is actually a variable declaration and must be wrapped with
-# $() or ${} to be used.
-
-[A-Z] := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #
-[a-z] := a b c d e f g h i j k l m n o p q r s t u v w x y z #
-[0-9] := 0 1 2 3 4 5 6 7 8 9 #
-[A-F] := A B C D E F #
-
-# ----------------------------------------------------------------------------
-# Function: uc
-# Arguments: 1: Text to upper case
-# Returns: Returns the text in upper case
-# ----------------------------------------------------------------------------
-uc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$([a-z]),$([A-Z]),$1)
-
-# ----------------------------------------------------------------------------
-# Function: lc
-# Arguments: 1: Text to lower case
-# Returns: Returns the text in lower case
-# ----------------------------------------------------------------------------
-lc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$([A-Z]),$([a-z]),$1)
-
-# ----------------------------------------------------------------------------
-# Function: strlen
-# Arguments: 1: A string
-# Returns: Returns the length of the string
-# ----------------------------------------------------------------------------
-__gmsl_characters := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-__gmsl_characters += a b c d e f g h i j k l m n o p q r s t u v w x y z
-__gmsl_characters += 0 1 2 3 4 5 6 7 8 9
-__gmsl_characters += ` ~ ! @ \# $$ % ^ & * ( ) - _ = +
-__gmsl_characters += { } [ ] \ : ; ' " < > , . / ? |
-
-# This results in __gmsl_space containing just a space
-
-__gmsl_space :=
-__gmsl_space +=
-
-strlen = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(strip $(eval __temp := $(subst $(__gmsl_space),x,$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,x,$(__temp))))$(eval __temp := $(subst x,x ,$(__temp)))$(words $(__temp)))
-
-# This results in __gmsl_newline containing just a newline
-
-define __gmsl_newline
-
-
-endef
-
-# This results in __gmsl_tab containing a tab
-
-__gmsl_tab := #
-
-# ----------------------------------------------------------------------------
-# Function: substr
-# Arguments: 1: A string
-# 2: Start position (first character is 1)
-# 3: End position (inclusive)
-# Returns: A substring.
-# Note: The string in $1 must not contain a §
-# ----------------------------------------------------------------------------
-
-substr = $(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3)$(strip $(eval __temp := $$(subst $$(__gmsl_space),§ ,$$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,$$a$$(__gmsl_space),$(__temp))))$(eval __temp := $(wordlist $2,$3,$(__temp))))$(subst §,$(__gmsl_space),$(subst $(__gmsl_space),,$(__temp)))
-
-endif # __gmsl_have_eval
-
-# ###########################################################################
-# SET MANIPULATION FUNCTIONS
-# ###########################################################################
-
-# Sets are represented by sorted, deduplicated lists. To create a set
-# from a list use set_create, or start with the empty_set and
-# set_insert individual elements
-
-# This is the empty set
-empty_set :=
-
-# ----------------------------------------------------------------------------
-# Function: set_create
-# Arguments: 1: A list of set elements
-# Returns: Returns the newly created set
-# ----------------------------------------------------------------------------
-set_create = $(__gmsl_tr1)$(sort $1)
-
-# ----------------------------------------------------------------------------
-# Function: set_insert
-# Arguments: 1: A single element to add to a set
-# 2: A set
-# Returns: Returns the set with the element added
-# ----------------------------------------------------------------------------
-set_insert = $(__gmsl_tr2)$(sort $1 $2)
-
-# ----------------------------------------------------------------------------
-# Function: set_remove
-# Arguments: 1: A single element to remove from a set
-# 2: A set
-# Returns: Returns the set with the element removed
-# ----------------------------------------------------------------------------
-set_remove = $(__gmsl_tr2)$(filter-out $1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: set_is_member
-# Arguments: 1: A single element
-# 2: A set
-# Returns: Returns $(true) if the element is in the set
-# ----------------------------------------------------------------------------
-set_is_member = $(__gmsl_tr2)$(if $(filter $1,$2),$(true),$(false))
-
-# ----------------------------------------------------------------------------
-# Function: set_union
-# Arguments: 1: A set
-# 2: Another set
-# Returns: Returns the union of the two sets
-# ----------------------------------------------------------------------------
-set_union = $(__gmsl_tr2)$(sort $1 $2)
-
-# ----------------------------------------------------------------------------
-# Function: set_intersection
-# Arguments: 1: A set
-# 2: Another set
-# Returns: Returns the intersection of the two sets
-# ----------------------------------------------------------------------------
-set_intersection = $(__gmsl_tr2)$(filter $1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: set_is_subset
-# Arguments: 1: A set
-# 2: Another set
-# Returns: Returns $(true) if the first set is a subset of the second
-# ----------------------------------------------------------------------------
-set_is_subset = $(__gmsl_tr2)$(call set_equal,$(call set_intersection,$1,$2),$1)
-
-# ----------------------------------------------------------------------------
-# Function: set_equal
-# Arguments: 1: A set
-# 2: Another set
-# Returns: Returns $(true) if the two sets are identical
-# ----------------------------------------------------------------------------
-set_equal = $(__gmsl_tr2)$(call seq,$1,$2)
-
-# ###########################################################################
-# ARITHMETIC LIBRARY
-# ###########################################################################
-
-# Integers a represented by lists with the equivalent number of x's.
-# For example the number 4 is x x x x. The maximum integer that the
-# library can handle as _input_ is __gmsl_input_int which is defined
-# here as 65536
-
-__gmsl_sixteen := x x x x x x x x x x x x x x x x
-__gmsl_input_int := $(foreach a,$(__gmsl_sixteen), \
- $(foreach b,$(__gmsl_sixteen), \
- $(foreach c,$(__gmsl_sixteen), \
- $(__gmsl_sixteen)))))
-
-# ----------------------------------------------------------------------------
-# Function: int_decode
-# Arguments: 1: A number of x's representation
-# Returns: Returns the integer for human consumption that is represented
-# by the string of x's
-# ----------------------------------------------------------------------------
-int_decode = $(__gmsl_tr1)$(words $1)
-
-# ----------------------------------------------------------------------------
-# Function: int_encode
-# Arguments: 1: A number in human-readable integer form
-# Returns: Returns the integer encoded as a string of x's
-# ----------------------------------------------------------------------------
-int_encode = $(__gmsl_tr1)$(wordlist 1,$1,$(__gmsl_input_int))
-
-# The arithmetic library functions come in two forms: one form of each
-# function takes integers as arguments and the other form takes the
-# encoded form (x's created by a call to int_encode). For example,
-# there are two plus functions:
-#
-# plus Called with integer arguments and returns an integer
-# int_plus Called with encoded arguments and returns an encoded result
-#
-# plus will be slower than int_plus because its arguments and result
-# have to be translated between the x's format and integers. If doing
-# a complex calculation use the int_* forms with a single encoding of
-# inputs and single decoding of the output. For simple calculations
-# the direct forms can be used.
-
-# Helper function used to wrap an int_* function into a function that
-# takes a pair of integers, perhaps a function and returns an integer
-# result
-__gmsl_int_wrap = $(call int_decode,$(call $1,$(call int_encode,$2),$(call int_encode,$3)))
-__gmsl_int_wrap1 = $(call int_decode,$(call $1,$(call int_encode,$2)))
-__gmsl_int_wrap2 = $(call $1,$(call int_encode,$2),$(call int_encode,$3))
-
-# ----------------------------------------------------------------------------
-# Function: int_plus
-# Arguments: 1: A number in x's representation
-# 2: Another number in x's represntation
-# Returns: Returns the sum of the two numbers in x's representation
-# ----------------------------------------------------------------------------
-int_plus = $(strip $(__gmsl_tr2)$1 $2)
-
-# ----------------------------------------------------------------------------
-# Function: plus (wrapped version of int_plus)
-# Arguments: 1: An integer
-# 2: Another integer
-# Returns: Returns the sum of the two integers
-# ----------------------------------------------------------------------------
-plus = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_plus,$1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: int_subtract
-# Arguments: 1: A number in x's representation
-# 2: Another number in x's represntation
-# Returns: Returns the difference of the two numbers in x's representation,
-# or outputs an error on a numeric underflow
-# ----------------------------------------------------------------------------
-int_subtract = $(strip $(__gmsl_tr2)$(if $(call int_gte,$1,$2), \
- $(filter-out xx,$(join $1,$2)), \
- $(call __gmsl_warning,Subtraction underflow)))
-
-# ----------------------------------------------------------------------------
-# Function: subtract (wrapped version of int_subtract)
-# Arguments: 1: An integer
-# 2: Another integer
-# Returns: Returns the difference of the two integers,
-# or outputs an error on a numeric underflow
-# ----------------------------------------------------------------------------
-subtract = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_subtract,$1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: int_multiply
-# Arguments: 1: A number in x's representation
-# 2: Another number in x's represntation
-# Returns: Returns the product of the two numbers in x's representation
-# ----------------------------------------------------------------------------
-int_multiply = $(strip $(__gmsl_tr2)$(foreach a,$1,$2))
-
-# ----------------------------------------------------------------------------
-# Function: multiply (wrapped version of int_multiply)
-# Arguments: 1: An integer
-# 2: Another integer
-# Returns: Returns the product of the two integers
-# ----------------------------------------------------------------------------
-multiply = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_multiply,$1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: int_divide
-# Arguments: 1: A number in x's representation
-# 2: Another number in x's represntation
-# Returns: Returns the result of integer division of argument 1 divided
-# by argument 2 in x's representation
-# ----------------------------------------------------------------------------
-int_divide = $(__gmsl_tr2)$(strip $(if $2, \
- $(if $(call int_gte,$1,$2), \
- x $(call int_divide,$(call int_subtract,$1,$2),$2),), \
- $(call __gmsl_error,Division by zero)))
-
-# ----------------------------------------------------------------------------
-# Function: divide (wrapped version of int_divide)
-# Arguments: 1: An integer
-# 2: Another integer
-# Returns: Returns the integer division of the first argument by the second
-# ----------------------------------------------------------------------------
-divide = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_divide,$1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: int_max, int_min
-# Arguments: 1: A number in x's representation
-# 2: Another number in x's represntation
-# Returns: Returns the maximum or minimum of its arguments in x's
-# representation
-# ----------------------------------------------------------------------------
-int_max = $(__gmsl_tr2)$(subst xx,x,$(join $1,$2))
-int_min = $(__gmsl_tr2)$(subst xx,x,$(filter xx,$(join $1,$2)))
-
-# ----------------------------------------------------------------------------
-# Function: max, min
-# Arguments: 1: An integer
-# 2: Another integer
-# Returns: Returns the maximum or minimum of its integer arguments
-# ----------------------------------------------------------------------------
-max = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_max,$1,$2)
-min = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_min,$1,$2)
-
-# ----------------------------------------------------------------------------
-# Function: int_gt, int_gte, int_lt, int_lte, int_eq, int_ne
-# Arguments: Two x's representation numbers to be compared
-# Returns: $(true) or $(false)
-#
-# int_gt First argument greater than second argument
-# int_gte First argument greater than or equal to second argument
-# int_lt First argument less than second argument
-# int_lte First argument less than or equal to second argument
-# int_eq First argument is numerically equal to the second argument
-# int_ne First argument is not numerically equal to the second argument
-# ----------------------------------------------------------------------------
-int_gt = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(filter-out $(words $2), \
- $(words $(call int_max,$1,$2))))
-int_gte = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(call int_gt,$1,$2)$(call int_eq,$1,$2))
-int_lt = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(filter-out $(words $1), \
- $(words $(call int_max,$1,$2))))
-int_lte = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(call int_lt,$1,$2)$(call int_eq,$1,$2))
-int_eq = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(filter $(words $1),$(words $2)))
-int_ne = $(__gmsl_tr2)$(call __gmsl_make_bool, \
- $(filter-out $(words $1),$(words $2)))
-
-# ----------------------------------------------------------------------------
-# Function: gt, gte, lt, lte, eq, ne
-# Arguments: Two integers to be compared
-# Returns: $(true) or $(false)
-#
-# gt First argument greater than second argument
-# gte First argument greater than or equal to second argument
-# lt First argument less than second argument
-# lte First argument less than or equal to second argument
-# eq First argument is numerically equal to the second argument
-# ne First argument is not numerically equal to the second argument
-# ----------------------------------------------------------------------------
-gt = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_gt,$1,$2)
-gte = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_gte,$1,$2)
-lt = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_lt,$1,$2)
-lte = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_lte,$1,$2)
-eq = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_eq,$1,$2)
-ne = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_ne,$1,$2)
-
-# increment adds 1 to its argument, decrement subtracts 1. Note that
-# decrement does not range check and hence will not underflow, but
-# will incorrectly say that 0 - 1 = 0
-
-# ----------------------------------------------------------------------------
-# Function: int_inc
-# Arguments: 1: A number in x's representation
-# Returns: The number incremented by 1 in x's representation
-# ----------------------------------------------------------------------------
-int_inc = $(strip $(__gmsl_tr1)$1 x)
-
-# ----------------------------------------------------------------------------
-# Function: inc
-# Arguments: 1: An integer
-# Returns: The argument incremented by 1
-# ----------------------------------------------------------------------------
-inc = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_inc,$1)
-
-# ----------------------------------------------------------------------------
-# Function: int_dec
-# Arguments: 1: A number in x's representation
-# Returns: The number decremented by 1 in x's representation
-# ----------------------------------------------------------------------------
-int_dec = $(__gmsl_tr1)$(strip $(if $(call sne,0,$(words $1)), \
- $(wordlist 2,$(words $1),$1), \
- $(call __gmsl_warning,Decrement underflow)))
-
-# ----------------------------------------------------------------------------
-# Function: dec
-# Arguments: 1: An integer
-# Returns: The argument decremented by 1
-# ----------------------------------------------------------------------------
-dec = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_dec,$1)
-
-# double doubles its argument, and halve halves it
-
-# ----------------------------------------------------------------------------
-# Function: int_double
-# Arguments: 1: A number in x's representation
-# Returns: The number doubled (i.e. * 2) and returned in x's representation
-# ----------------------------------------------------------------------------
-int_double = $(strip $(__gmsl_tr1)$1 $1)
-
-# ----------------------------------------------------------------------------
-# Function: double
-# Arguments: 1: An integer
-# Returns: The integer times 2
-# ----------------------------------------------------------------------------
-double = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_double,$1)
-
-# ----------------------------------------------------------------------------
-# Function: int_halve
-# Arguments: 1: A number in x's representation
-# Returns: The number halved (i.e. / 2) and returned in x's representation
-# ----------------------------------------------------------------------------
-int_halve = $(__gmsl_tr1)$(strip $(subst xx,x,$(filter-out xy x y, \
- $(join $1,$(foreach a,$1,y x)))))
-
-# ----------------------------------------------------------------------------
-# Function: halve
-# Arguments: 1: An integer
-# Returns: The integer divided by 2
-# ----------------------------------------------------------------------------
-halve = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_halve,$1)
-
-# ----------------------------------------------------------------------------
-# Function: sequence
-# Arguments: 1: An integer
-# 2: An integer
-# Returns: The sequence [arg1, arg2] of integers if arg1 < arg2 or
-# [arg2, arg1] if arg2 > arg1. If arg1 == arg1 return [arg1]
-# ----------------------------------------------------------------------------
-sequence = $(__gmsl_tr2)$(strip $(if $(call lte,$1,$2), \
- $(call __gmsl_sequence_up,$1,$2), \
- $(call __gmsl_sequence_dn,$2,$1)))
-
-__gmsl_sequence_up = $(if $(call seq,$1,$2),$1,$1 $(call __gmsl_sequence_up,$(call inc,$1),$2))
-__gmsl_sequence_dn = $(if $(call seq,$1,$2),$1,$2 $(call __gmsl_sequence_dn,$1,$(call dec,$2)))
-
-ifdef __gmsl_have_eval
-# ###########################################################################
-# ASSOCIATIVE ARRAYS
-# ###########################################################################
-
-# Magic string that is very unlikely to appear in a key or value
-
-__gmsl_aa_magic := faf192c8efbc25c27992c5bc5add390393d583c6
-
-# ----------------------------------------------------------------------------
-# Function: set
-# Arguments: 1: Name of associative array
-# 2: The key value to associate
-# 3: The value associated with the key
-# Returns: Nothing
-# ----------------------------------------------------------------------------
-set = $(__gmsl_tr3)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2$3)$(eval __gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1 := $3)
-
-# Only used internally by memoize function
-
-__gmsl_set = $(call set,$1,$2,$3)$3
-
-# ----------------------------------------------------------------------------
-# Function: get
-# Arguments: 1: Name of associative array
-# 2: The key to retrieve
-# Returns: The value stored in the array for that key
-# ----------------------------------------------------------------------------
-get = $(strip $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(__gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1))
-
-# ----------------------------------------------------------------------------
-# Function: keys
-# Arguments: 1: Name of associative array
-# Returns: Returns a list of all defined keys in the array
-# ----------------------------------------------------------------------------
-keys = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(sort $(patsubst __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,%, \
- $(filter __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,$(.VARIABLES))))
-
-# ----------------------------------------------------------------------------
-# Function: defined
-# Arguments: 1: Name of associative array
-# 2: The key to test
-# Returns: Returns true if the key is defined (i.e. not empty)
-# ----------------------------------------------------------------------------
-defined = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(call sne,$(call get,$1,$2),)
-
-endif # __gmsl_have_eval
-
-ifdef __gmsl_have_eval
-# ###########################################################################
-# NAMED STACKS
-# ###########################################################################
-
-# ----------------------------------------------------------------------------
-# Function: push
-# Arguments: 1: Name of stack
-# 2: Value to push onto the top of the stack (must not contain
-# a space)
-# Returns: None
-# ----------------------------------------------------------------------------
-push = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(eval __gmsl_stack_$1 := $2 $(if $(filter-out undefined,\
- $(origin __gmsl_stack_$1)),$(__gmsl_stack_$1)))
-
-# ----------------------------------------------------------------------------
-# Function: pop
-# Arguments: 1: Name of stack
-# Returns: Top element from the stack after removing it
-# ----------------------------------------------------------------------------
-pop = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(strip $(if $(filter-out undefined,$(origin __gmsl_stack_$1)), \
- $(call first,$(__gmsl_stack_$1)) \
- $(eval __gmsl_stack_$1 := $(call rest,$(__gmsl_stack_$1)))))
-
-# ----------------------------------------------------------------------------
-# Function: peek
-# Arguments: 1: Name of stack
-# Returns: Top element from the stack without removing it
-# ----------------------------------------------------------------------------
-peek = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(call first,$(__gmsl_stack_$1))
-
-# ----------------------------------------------------------------------------
-# Function: depth
-# Arguments: 1: Name of stack
-# Returns: Number of items on the stack
-# ----------------------------------------------------------------------------
-depth = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(words $(__gmsl_stack_$1))
-
-endif # __gmsl_have_eval
-
-ifdef __gmsl_have_eval
-# ###########################################################################
-# STRING CACHE
-# ###########################################################################
-
-# ----------------------------------------------------------------------------
-# Function: memoize
-# Arguments: 1. Name of the function to be called if the string
-# has not been previously seen
-# 2. A string
-# Returns: Returns the result of a memo function (which the user must
-# define) on the passed in string and remembers the result.
-#
-# Example: Set memo = $(shell echo "$1" | md5sum) to make a cache
-# of MD5 hashes of strings. $(call memoize,memo,foo bar baz)
-# ----------------------------------------------------------------------------
-__gmsl_memoize = $(subst $(__gmsl_space),§,$1)cc2af1bb7c4482f2ba75e338b963d3e7$(subst $(__gmsl_space),§,$2)
-memoize = $(__gmsl_tr2)$(strip $(if $(call defined,__gmsl_m,$(__gmsl_memoize)),\
- $(call get,__gmsl_m,$(__gmsl_memoize)), \
- $(call __gmsl_set,__gmsl_m,$(__gmsl_memoize),$(call $1,$2))))
-
-endif # __gmsl_have_eval
-
-# ###########################################################################
-# DEBUGGING FACILITIES
-# ###########################################################################
-
-# ----------------------------------------------------------------------------
-# Target: gmsl-print-%
-# Arguments: The % should be replaced by the name of a variable that you
-# wish to print out.
-# Action: Echos the name of the variable that matches the % and its value.
-# For example, 'make gmsl-print-SHELL' will output the value of
-# the SHELL variable
-# ----------------------------------------------------------------------------
-gmsl-print-%: ; @echo $* = $($*)
-
-# ----------------------------------------------------------------------------
-# Function: assert
-# Arguments: 1: A boolean that must be true or the assertion will fail
-# 2: The message to print with the assertion
-# Returns: None
-# ----------------------------------------------------------------------------
-assert = $(if $1,,$(call __gmsl_error,Assertion failure: $2))
-
-# ----------------------------------------------------------------------------
-# Function: assert_exists
-# Arguments: 1: Name of file that must exist, if it is missing an assertion
-# will be generated
-# Returns: None
-# ----------------------------------------------------------------------------
-assert_exists = $(call assert,$(wildcard $1),file '$1' missing)
-
-# ----------------------------------------------------------------------------
-# Function: assert_no_dollar
-# Arguments: 1: Name of a function being executd
-# 2: Arguments to check
-# Returns: None
-# ----------------------------------------------------------------------------
-assert_no_dollar = $(call __gmsl_tr2)$(call assert,$(call not,$(findstring $(__gmsl_dollar),$2)),$1 called with a dollar sign in argument)
-
-# ----------------------------------------------------------------------------
-# Function: assert_no_space
-# Arguments: 1: Name of a function being executd
-# 2: Arguments to check
-# Returns: None
-# ----------------------------------------------------------------------------
-ifeq ($(__gmsl_spaced_vars),$(false))
-assert_no_space = $(call assert,$(call not,$(findstring $(__gmsl_aa_magic),$(subst $(__gmsl_space),$(__gmsl_aa_magic),$2))),$1 called with a space in argument)
-else
-assert_no_space =
-endif
diff --git a/tools/config.guess b/tools/config.guess
deleted file mode 100755
index b79252d..0000000
--- a/tools/config.guess
+++ /dev/null
@@ -1,1558 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
-
-timestamp='2013-06-10'
-
-# This file 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.
-#
-# 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/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program. This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-#
-# Originally written by Per Bothner.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-#
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
-
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-case "${UNAME_SYSTEM}" in
-Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
-
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
- #include <features.h>
- #if defined(__UCLIBC__)
- LIBC=uclibc
- #elif defined(__dietlibc__)
- LIBC=dietlibc
- #else
- LIBC=gnu
- #endif
- EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- ;;
-esac
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:Bitrig:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH="x86_64"
- fi
- fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- *:Interix*:*)
- case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- aarch64_be:Linux:*:*)
- UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- else
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
- else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
- fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
- crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
- frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
- ;;
- or1k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- or32:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
- exit ;;
- ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
- exit ;;
- ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- exit ;;
- x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
- fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
- x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
-esac
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/tools/gmsl b/tools/gmsl
deleted file mode 100644
index b4e907b..0000000
--- a/tools/gmsl
+++ /dev/null
@@ -1,89 +0,0 @@
-# ----------------------------------------------------------------------------
-#
-# GNU Make Standard Library (GMSL)
-#
-# A library of functions to be used with GNU Make's $(call) that
-# provides functionality not available in standard GNU Make.
-#
-# Copyright (c) 2005-2013 John Graham-Cumming
-#
-# This file is part of GMSL
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# Neither the name of the John Graham-Cumming nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# ----------------------------------------------------------------------------
-
-# Determine if the library has already been included and if so don't
-# bother including it again
-
-ifndef __gmsl_included
-
-# Standard definitions for true and false. true is any non-empty
-# string, false is an empty string. These are intended for use with
-# $(if).
-
-true := T
-false :=
-
-# ----------------------------------------------------------------------------
-# Function: not
-# Arguments: 1: A boolean value
-# Returns: Returns the opposite of the arg. (true -> false, false -> true)
-# ----------------------------------------------------------------------------
-not = $(if $1,$(false),$(true))
-
-# Prevent reinclusion of the library
-
-__gmsl_included := $(true)
-
-# Try to determine where this file is located. If the caller did
-# include /foo/gmsl then extract the /foo/ so that __gmsl gets
-# included transparently
-
-ifneq ($(MAKEFILE_LIST),)
-__gmsl_root := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-
-# If there are any spaces in the path in __gmsl_root then give up
-
-ifeq (1,$(words $(__gmsl_root)))
-__gmsl_root := $(patsubst %gmsl,%,$(__gmsl_root))
-else
-__gmsl_root :=
-endif
-
-include $(__gmsl_root)__gmsl
-
-else
-
-include __gmsl
-
-endif
-
-endif # __gmsl_included
-
diff --git a/tools/gmsl-tests b/tools/gmsl-tests
deleted file mode 100644
index 1f96481..0000000
--- a/tools/gmsl-tests
+++ /dev/null
@@ -1,730 +0,0 @@
-# ----------------------------------------------------------------------------
-#
-# GNU Make Standard Library (GMSL) Test Suite
-#
-# Test suite for the GMSL
-#
-# Copyright (c) 2005-2013 John Graham-Cumming
-#
-# This file is part of GMSL
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# Neither the name of the John Graham-Cumming nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# ----------------------------------------------------------------------------
-
-.PHONY: all
-all:
- @echo
- @echo Test Summary
- @echo ------------
- @echo "$(call int_decode,$(passed)) tests passed; $(call int_decode,$(failed)) tests failed"
-
-include gmsl
-
-passed :=
-failed :=
-
-ECHO := /bin/echo
-
-start_test = $(shell $(ECHO) -n "Testing '$1': " >&2)$(eval current_test := OK)
-stop_test = $(shell $(ECHO) " $(current_test)" >&2)
-test_pass = .$(eval passed := $(call int_inc,$(passed)))
-test_fail = X$(eval failed := $(call int_inc,$(failed)))$(eval current_test := ERROR '$1' != '$2')
-test_assert = $(if $(filter undefined,$(origin 2)),$(eval 2 :=))$(shell $(ECHO) -n $(if $(call seq,$1,$2),$(call test_pass,$1,$2),$(call test_fail,$1,$2)) >&2)
-
-$(call start_test,not)
-$(call test_assert,$(call not,$(true)),$(false))
-$(call test_assert,$(call not,$(false)),$(true))
-$(call stop_test)
-
-$(call start_test,or)
-$(call test_assert,$(call or,$(true),$(true)),$(true))
-$(call test_assert,$(call or,$(true),$(false)),$(true))
-$(call test_assert,$(call or,$(false),$(true)),$(true))
-$(call test_assert,$(call or,$(false),$(false)),$(false))
-$(call stop_test)
-
-$(call start_test,and)
-$(call test_assert,$(call and,$(true),$(true)),$(true))
-$(call test_assert,$(call and,$(true),$(false)),$(false))
-$(call test_assert,$(call and,$(false),$(true)),$(false))
-$(call test_assert,$(call and,$(false),$(false)),$(false))
-$(call stop_test)
-
-$(call start_test,xor)
-$(call test_assert,$(call xor,$(true),$(true)),$(false))
-$(call test_assert,$(call xor,$(true),$(false)),$(true))
-$(call test_assert,$(call xor,$(false),$(true)),$(true))
-$(call test_assert,$(call xor,$(false),$(false)),$(false))
-$(call stop_test)
-
-$(call start_test,nand)
-$(call test_assert,$(call nand,$(true),$(true)),$(false))
-$(call test_assert,$(call nand,$(true),$(false)),$(true))
-$(call test_assert,$(call nand,$(false),$(true)),$(true))
-$(call test_assert,$(call nand,$(false),$(false)),$(true))
-$(call stop_test)
-
-$(call start_test,nor)
-$(call test_assert,$(call nor,$(true),$(true)),$(false))
-$(call test_assert,$(call nor,$(true),$(false)),$(false))
-$(call test_assert,$(call nor,$(false),$(true)),$(false))
-$(call test_assert,$(call nor,$(false),$(false)),$(true))
-$(call stop_test)
-
-$(call start_test,xnor)
-$(call test_assert,$(call xnor,$(true),$(true)),$(true))
-$(call test_assert,$(call xnor,$(true),$(false)),$(false))
-$(call test_assert,$(call xnor,$(false),$(true)),$(false))
-$(call test_assert,$(call xnor,$(false),$(false)),$(true))
-$(call stop_test)
-
-$(call start_test,first)
-$(call test_assert,$(call first,1 2 3),1)
-$(call test_assert,$(call first,1),1)
-$(call test_assert,$(call first,),)
-$(call stop_test)
-
-$(call start_test,last)
-$(call test_assert,$(call last,1 2 3),3)
-$(call test_assert,$(call last,1),1)
-$(call test_assert,$(call last,),)
-$(call stop_test)
-
-$(call start_test,rest)
-$(call test_assert,$(call rest,1 2 3),2 3)
-$(call test_assert,$(call rest,1),)
-$(call test_assert,$(call rest,),)
-$(call stop_test)
-
-$(call start_test,chop)
-$(call test_assert,$(call chop,1 2 3),1 2)
-$(call test_assert,$(call chop,1 2 3 4),1 2 3)
-$(call test_assert,$(call chop,1),)
-$(call test_assert,$(call chop,),)
-$(call stop_test)
-
-$(call start_test,length)
-$(call test_assert,$(call length,1 2 3),3)
-$(call test_assert,$(call length,1 2 3 4),4)
-$(call test_assert,$(call length,1),1)
-$(call test_assert,$(call length,),0)
-$(call stop_test)
-
-$(call start_test,map)
-$(call test_assert,$(call map,origin,__undefined map MAKE),undefined file default)
-$(call test_assert,$(call map,origin,),)
-$(call stop_test)
-
-joinem = $1$2
-$(call start_test,pairmap)
-$(call test_assert,$(call pairmap,addsuffix,2 1 3,a b c),a2 b1 c3)
-$(call test_assert,$(call pairmap,addprefix,2 1 3,a b c d),2a 1b 3c d)
-$(call test_assert,$(call pairmap,addprefix,2 1 3 4,a b c),2a 1b 3c)
-$(call test_assert,$(call pairmap,joinem,2 1 3 4,a b c),2a 1b 3c 4)
-$(call stop_test)
-
-$(call start_test,seq)
-$(call test_assert,$(call seq,abc,abc),T)
-$(call test_assert,$(call seq,x,),)
-$(call test_assert,$(call seq,,x),)
-$(call test_assert,$(call seq,x,x),T)
-$(call test_assert,$(call seq,a%c,abc),)
-$(call test_assert,$(call seq,abc,a%c),)
-$(call test_assert,$(call seq,abc,ABC),)
-$(call test_assert,$(call seq,abc,),)
-$(call test_assert,$(call seq,,),T)
-$(call test_assert,$(call seq,a b c,a b c),T)
-$(call test_assert,$(call seq,aa% bb% cc,aa% bb% cc),T)
-$(call test_assert,$(call seq,aa% bb% cc,aa% bb cc),)
-$(call test_assert,$(call seq,aa% bb% cc,xx yy zz),)
-$(call test_assert,$(call seq,x x,),)
-$(call test_assert,$(call seq, xx x,x xx),)
-$(call test_assert,$(call seq, , ),T)
-$(call test_assert,$(call seq,, ),)
-$(call test_assert,$(call seq, ,),)
-$(call test_assert,$(call seq,y,xy),)
-$(call stop_test)
-
-$(call start_test,sne)
-$(call test_assert,$(call sne,abc,abc),)
-$(call test_assert,$(call sne,x,),T)
-$(call test_assert,$(call sne,,x),T)
-$(call test_assert,$(call sne,x,x),)
-$(call test_assert,$(call sne,abc,ABC),T)
-$(call test_assert,$(call sne,abc,),T)
-$(call test_assert,$(call sne,,),)
-$(call test_assert,$(call sne,a b c,a b c),)
-$(call test_assert,$(call sne,aa% bb% cc,aa% bb% cc),)
-$(call test_assert,$(call sne,aa% bb% cc,aa% bb cc),T)
-$(call stop_test)
-
-$(call start_test,strlen)
-$(call test_assert,$(call strlen,),0)
-$(call test_assert,$(call strlen,a),1)
-$(call test_assert,$(call strlen,a b),3)
-$(call test_assert,$(call strlen,a ),2)
-$(call test_assert,$(call strlen, a),2)
-$(call test_assert,$(call strlen, ),2)
-$(call test_assert,$(call strlen, ),3)
-$(call test_assert,$(call strlen, ),4)
-$(call stop_test)
-
-$(call start_test,substr)
-$(call test_assert,$(call substr,xyz,1,1),x)
-$(call test_assert,$(call substr,xyz,1,2),xy)
-$(call test_assert,$(call substr,xyz,2,3),yz)
-$(call test_assert,$(call substr,some string,1,1),s)
-$(call test_assert,$(call substr,some string,1,2),so)
-$(call test_assert,$(call substr,some string,1,3),som)
-$(call test_assert,$(call substr,some string,1,4),some)
-$(call test_assert,$(call substr,some string,1,5),some )
-$(call test_assert,$(call substr,some string,1,6),some s)
-$(call test_assert,$(call substr,some string,5,5), )
-$(call test_assert,$(call substr,some string,5,6), s)
-$(call test_assert,$(call substr,some string,5,7), st)
-$(call test_assert,$(call substr,some string,5,8), str)
-$(call test_assert,$(call substr,some string,1,100),some string)
-$(call stop_test)
-
-$(call start_test,lc)
-$(call test_assert,$(call lc,The Quick Brown Fox),the quick brown fox)
-$(call test_assert,$(call lc,the1 quick2 brown3 fox4),the1 quick2 brown3 fox4)
-$(call test_assert,$(call lc,The_),the_)
-$(call test_assert,$(call lc,),)
-$(call stop_test)
-
-$(call start_test,uc)
-$(call test_assert,$(call uc,The Quick Brown Fox),THE QUICK BROWN FOX)
-$(call test_assert,$(call uc,the1 quick2 brown3 fox4),THE1 QUICK2 BROWN3 FOX4)
-$(call test_assert,$(call uc,The_),THE_)
-$(call test_assert,$(call uc,),)
-$(call stop_test)
-
-$(call start_test,tr)
-$(call test_assert,$(call tr,A B C,1 2 3,CAPITAL),31PIT1L)
-$(call test_assert,$(call tr,a b c,1 2 3,CAPITAL),CAPITAL)
-$(call test_assert,$(call tr,E L I,3 1 1,I AM ELITE),1 AM 311T3)
-$(call stop_test)
-
-$(call start_test,leq)
-$(call test_assert,$(call leq,1 2 3,1 2 3),T)
-$(call test_assert,$(call leq,1 2 3,1 2 3 4),)
-$(call test_assert,$(call leq,1 2 3 4,1 2 3),)
-$(call test_assert,$(call leq,1,1),T)
-$(call test_assert,$(call leq,,),T)
-$(call stop_test)
-
-$(call start_test,lne)
-$(call test_assert,$(call lne,1 2 3,1 2 3),)
-$(call test_assert,$(call lne,1 2 3,1 2 3 4),T)
-$(call test_assert,$(call lne,1 2 3 4,1 2 3),T)
-$(call test_assert,$(call lne,1,1),)
-$(call test_assert,$(call lne,,),)
-$(call stop_test)
-
-$(call start_test,empty_set)
-$(call test_assert,$(empty_set),)
-$(call test_assert,$(empty_set),$(call set_create,))
-$(call stop_test)
-
-$(call start_test,set_create)
-$(call test_assert,$(call set_create,),)
-$(call test_assert,$(call set_create,1 2 2 3),1 2 3)
-$(call test_assert,$(call set_create,2 1 1 2 2 3),1 2 3)
-$(call test_assert,$(call set_create,1),1)
-$(call stop_test)
-
-$(call start_test,set_insert)
-$(call test_assert,$(call set_insert,1,$(empty_set)),1)
-$(call test_assert,$(call set_insert,1,$(call set_create,1)),1)
-$(call test_assert,$(call set_insert,1,$(call set_create,1 2)),1 2)
-$(call test_assert,$(call set_insert,0,$(call set_create,1 2)),0 1 2)
-$(call stop_test)
-
-$(call start_test,set_remove)
-$(call test_assert,$(call set_remove,1,$(empty_set)),$(empty_set))
-$(call test_assert,$(call set_remove,1,$(call set_create,1 2)),2)
-$(call test_assert,$(call set_remove,1,$(call set_create,1 11 2)),11 2)
-$(call test_assert,$(call set_remove,0,$(call set_create,1 2)),1 2)
-$(call stop_test)
-
-$(call start_test,set_is_member)
-$(call test_assert,$(call set_is_member,1,$(empty_set)),)
-$(call test_assert,$(call set_is_member,1,$(call set_create,2 3)),)
-$(call test_assert,$(call set_is_member,1,$(call set_create,1 2 3)),T)
-$(call test_assert,$(call set_is_member,1,$(call set_create,1)),T)
-$(call stop_test)
-
-$(call start_test,set_union)
-$(call test_assert,$(call set_union,,),)
-$(call test_assert,$(call set_union,1 2,),1 2)
-$(call test_assert,$(call set_union,,3 4),3 4)
-$(call test_assert,$(call set_union,1 2,3 4),1 2 3 4)
-$(call test_assert,$(call set_union,1 2 3,3 4 5),1 2 3 4 5)
-$(call stop_test)
-
-$(call start_test,set_intersection)
-$(call test_assert,$(call set_intersection,,),)
-$(call test_assert,$(call set_intersection,1 2,),)
-$(call test_assert,$(call set_intersection,,3 4),)
-$(call test_assert,$(call set_intersection,1 2,3 4),)
-$(call test_assert,$(call set_intersection,1 2 3 4,3 4 5),3 4)
-$(call stop_test)
-
-$(call start_test,set_is_subset)
-$(call test_assert,$(call set_is_subset,,),T)
-$(call test_assert,$(call set_is_subset,1 2,),)
-$(call test_assert,$(call set_is_subset,,3 4),T)
-$(call test_assert,$(call set_is_subset,1 2,3 4),)
-$(call test_assert,$(call set_is_subset,1 2,1 2 3 4 5),T)
-$(call test_assert,$(call set_is_subset,1 2,1 2),T)
-$(call test_assert,$(call set_is_subset,1 2,1 3 4 5),)
-$(call stop_test)
-
-$(call start_test,set_equal)
-$(call test_assert,$(call set_equal,,),T)
-$(call test_assert,$(call set_equal,1,),)
-$(call test_assert,$(call set_equal,,1),)
-$(call test_assert,$(call set_equal,1,1),T)
-$(call test_assert,$(call set_equal,1 2,),)
-$(call test_assert,$(call set_equal,,1 2),)
-$(call test_assert,$(call set_equal,1 2,1 2 3),)
-$(call stop_test)
-
-$(call start_test,int_encode)
-$(call test_assert,$(call int_encode,0),)
-$(call test_assert,$(call int_encode,1),x)
-$(call test_assert,$(call int_encode,2),x x)
-$(call test_assert,$(call int_encode,10),x x x x x x x x x x)
-$(call stop_test)
-
-$(call start_test,int_decode)
-$(call test_assert,$(call int_decode,),0)
-$(call test_assert,$(call int_decode,x),1)
-$(call test_assert,$(call int_decode,x x),2)
-$(call test_assert,$(call int_decode,x x x x x x x x x x),10)
-$(call stop_test)
-
-$(call start_test,int_plus)
-$(call test_assert,$(call int_plus,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,7))
-$(call test_assert,$(call int_plus,$(call int_encode,0),$(call int_encode,4)),$(call int_encode,4))
-$(call test_assert,$(call int_plus,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,3))
-$(call test_assert,$(call int_plus,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_plus,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,1))
-$(call stop_test)
-
-$(call start_test,plus)
-$(call test_assert,$(call plus,3,4),7)
-$(call test_assert,$(call plus,4,3),7)
-$(call test_assert,$(call plus,0,4),4)
-$(call test_assert,$(call plus,3,0),3)
-$(call test_assert,$(call plus,0,0),0)
-$(call stop_test)
-
-__gmsl_warning = $1
-$(call start_test,int_subtract)
-$(call test_assert,$(call int_subtract,$(call int_encode,3),$(call int_encode,4)),Subtraction underflow)
-$(call test_assert,$(call int_subtract,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,1))
-$(call test_assert,$(call int_subtract,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,3))
-$(call test_assert,$(call int_subtract,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_subtract,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,1))
-$(call stop_test)
-
-__gmsl_warning = x x x x x x x x x x
-$(call start_test,subtract)
-$(call test_assert,$(call subtract,3,4),10)
-$(call test_assert,$(call subtract,4,3),1)
-$(call test_assert,$(call subtract,3,0),3)
-$(call test_assert,$(call subtract,0,0),0)
-$(call stop_test)
-
-$(call start_test,int_multiply)
-$(call test_assert,$(call int_multiply,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,12))
-$(call test_assert,$(call int_multiply,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,12))
-$(call test_assert,$(call int_multiply,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_multiply,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_multiply,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,0))
-$(call stop_test)
-
-$(call start_test,multiply)
-$(call test_assert,$(call multiply,3,4),12)
-$(call test_assert,$(call multiply,4,3),12)
-$(call test_assert,$(call multiply,3,0),0)
-$(call test_assert,$(call multiply,0,3),0)
-$(call test_assert,$(call multiply,0,0),0)
-$(call stop_test)
-
-__gmsl_error = $1
-$(call start_test,int_divide)
-$(call test_assert,$(call int_divide,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,0))
-$(call test_assert,$(call int_divide,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,1))
-$(call test_assert,$(call int_divide,$(call int_encode,31),$(call int_encode,3)),$(call int_encode,10))
-$(call test_assert,$(call int_divide,$(call int_encode,30),$(call int_encode,3)),$(call int_encode,10))
-$(call test_assert,$(call int_divide,$(call int_encode,29),$(call int_encode,3)),$(call int_encode,9))
-$(call test_assert,$(call int_divide,$(call int_encode,0),$(call int_encode,1)),$(call int_encode,0))
-$(call test_assert,$(call int_divide,$(call int_encode,1),$(call int_encode,0)),Division by zero)
-$(call stop_test)
-
-__gmsl_error = x x x x x x x x x x
-$(call start_test,divide)
-$(call test_assert,$(call divide,3,4),0)
-$(call test_assert,$(call divide,4,3),1)
-$(call test_assert,$(call divide,21,2),10)
-$(call test_assert,$(call divide,20,2),10)
-$(call test_assert,$(call divide,19,2),9)
-$(call test_assert,$(call divide,1,0),10)
-$(call stop_test)
-
-$(call start_test,associative array)
-$(call test_assert,$(call get,myarray,key1),)
-$(call test_assert,$(call set,myarray,key1,value1),)
-$(call test_assert,$(call get,myarray,key1),value1)
-$(call test_assert,$(call get,myarray,key2),)
-$(call test_assert,$(call get,myarray1,key1),)
-$(call test_assert,$(call defined,myarray,key1),T)
-$(call test_assert,$(call defined,myarray,key2),)
-$(call test_assert,$(call defined,myarray1,key1),)
-$(call test_assert,$(call set,myarray,key2,value2),)
-$(call test_assert,$(call keys,myarray),key1 key2)
-$(call test_assert,$(call keys,myarray1),)
-$(call test_assert,$(call set,foo,bar_baz,bob),)
-$(call test_assert,$(call set,foo_bar,baz,alice),)
-$(call test_assert,$(call get,foo,bar_baz),bob)
-$(call test_assert,$(call get,foo_bar,baz),alice)
-$(call test_assert,$(call set,foo,bar,baz/baz),)
-$(call test_assert,$(call get,foo,bar),baz/baz)
-$(call test-assert,$(call set,foo,bar-baz,baz),)
-$(call test_assert,$(call get,foo,bar-baz),baz)
-$(call set,foo,bar-baz,baz)
-$(call set,foo,bar,baz/baz)
-$(call stop_test)
-
-$(call start_test,named stack)
-$(call test_assert,$(call pop,mystack),)
-$(call test_assert,$(call push,mystack,e2))
-$(call push,mystack,e1)
-$(call test_assert,$(call pop,mystack),e1)
-$(call test_assert,$(call pop,mystack),e2)
-$(call push,mystack,f3)
-$(call push,mystack,f1)
-$(call test_assert,$(call pop,mystack),f1)
-$(call push,mystack,f2)
-$(call test_assert,$(call peek,mystack),f2)
-$(call test_assert,$(call depth,mystack),2)
-$(call test_assert,$(call pop,mystack),f2)
-$(call test_assert,$(call depth,mystack),1)
-$(call test_assert,$(call pop,myotherstack),)
-$(call stop_test)
-
-$(call start_test,reverse)
-$(call test_assert,$(call reverse,),)
-$(call test_assert,$(call reverse,1),1)
-$(call test_assert,$(call reverse,1 2),2 1)
-$(call test_assert,$(call reverse,1 2 3),3 2 1)
-$(call stop_test)
-
-$(call start_test,uniq)
-$(call test_assert,$(call uniq,),)
-$(call test_assert,$(call uniq,a),a)
-$(call test_assert,$(call uniq,a a),a)
-$(call test_assert,$(call uniq,a aa),a aa)
-$(call test_assert,$(call uniq,a aa a),a aa)
-$(call test_assert,$(call uniq,a b ba ab b a a ba a),a b ba ab)
-$(call stop_test)
-
-c:=,
-$(call start_test,split)
-$(call test_assert,$(call split,$c,comma$cseparated$cstring),comma separated string)
-$(call test_assert,$(call split,*,star*field*record),star field record)
-$(call test_assert,$(call split,*,star*),star)
-$(call test_assert,$(call split,*,star*field),star field)
-$(call test_assert,$(call split,*,star****field),star field)
-$(call test_assert,$(call split,*,),)
-$(call stop_test)
-
-$(call start_test,merge)
-$(call test_assert,$(call merge,$c,list of things),list$cof$cthings)
-$(call test_assert,$(call merge,*,list of things),list*of*things)
-$(call test_assert,$(call merge,*,list),list)
-$(call test_assert,$(call merge,*,),)
-$(call stop_test)
-
-$(call start_test,int_max)
-$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,1)),$(call int_encode,2))
-$(call test_assert,$(call int_max,$(call int_encode,1),$(call int_encode,2)),$(call int_encode,2))
-$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,0)),$(call int_encode,2))
-$(call test_assert,$(call int_max,$(call int_encode,0),$(call int_encode,2)),$(call int_encode,2))
-$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,2)),$(call int_encode,2))
-$(call test_assert,$(call int_max,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
-$(call stop_test)
-
-$(call start_test,max)
-$(call test_assert,$(call max,2,1),2)
-$(call test_assert,$(call max,1,2),2)
-$(call test_assert,$(call max,2,0),2)
-$(call test_assert,$(call max,0,2),2)
-$(call test_assert,$(call max,2,2),2)
-$(call test_assert,$(call max,0,0),0)
-$(call stop_test)
-
-$(call start_test,int_min)
-$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,1)),$(call int_encode,1))
-$(call test_assert,$(call int_min,$(call int_encode,1),$(call int_encode,2)),$(call int_encode,1))
-$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_min,$(call int_encode,0),$(call int_encode,2)),$(call int_encode,0))
-$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,2)),$(call int_encode,2))
-$(call test_assert,$(call int_min,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
-$(call stop_test)
-
-$(call start_test,min)
-$(call test_assert,$(call min,2,1),1)
-$(call test_assert,$(call min,1,2),1)
-$(call test_assert,$(call min,2,0),0)
-$(call test_assert,$(call min,0,2),0)
-$(call test_assert,$(call min,2,2),2)
-$(call test_assert,$(call min,0,0),0)
-$(call stop_test)
-
-__gmsl_error = $1
-$(call start_test,assert functions)
-$(call test_assert,$(call assert,$(true),ignore),)
-$(call test_assert,$(call assert,$(false),failed),Assertion failure: failed)
-$(call test_assert,$(call assert_exists,gmsl-tests),)
-$(call test_assert,$(call assert_exists,MISSING-gmsl-tests),Assertion failure: file 'MISSING-gmsl-tests' missing)
-$(call stop_test)
-
-$(call start_test,int_inc)
-$(call test_assert,$(call int_inc,$(call int_encode,0)),$(call int_encode,1))
-$(call test_assert,$(call int_inc,$(call int_encode,1)),$(call int_encode,2))
-$(call test_assert,$(call int_inc,$(call int_encode,4)),$(call int_encode,5))
-$(call test_assert,$(call int_inc,$(call int_encode,10)),$(call int_encode,11))
-$(call stop_test)
-
-$(call start_test,inc)
-$(call test_assert,$(call inc,0),1)
-$(call test_assert,$(call inc,1),2)
-$(call test_assert,$(call inc,4),5)
-$(call test_assert,$(call inc,10),11)
-$(call stop_test)
-
-__gmsl_warning = $1
-$(call start_test,int_dec)
-$(call test_assert,$(call int_dec,$(call int_encode,0)),Decrement underflow)
-$(call test_assert,$(call int_dec,$(call int_encode,1)),$(call int_encode,0))
-$(call test_assert,$(call int_dec,$(call int_encode,4)),$(call int_encode,3))
-$(call test_assert,$(call int_dec,$(call int_encode,10)),$(call int_encode,9))
-$(call stop_test)
-
-__gmsl_warning = x x x x x x x x x x
-$(call start_test,dec)
-$(call test_assert,$(call dec,0),10)
-$(call test_assert,$(call dec,1),0)
-$(call test_assert,$(call dec,4),3)
-$(call test_assert,$(call dec,10),9)
-$(call stop_test)
-
-$(call start_test,int_double)
-$(call test_assert,$(call int_double,$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_double,$(call int_encode,1)),$(call int_encode,2))
-$(call test_assert,$(call int_double,$(call int_encode,4)),$(call int_encode,8))
-$(call stop_test)
-
-$(call start_test,double)
-$(call test_assert,$(call double,0),0)
-$(call test_assert,$(call double,1),2)
-$(call test_assert,$(call double,4),8)
-$(call stop_test)
-
-$(call start_test,int_halve)
-$(call test_assert,$(call int_halve,$(call int_encode,0)),$(call int_encode,0))
-$(call test_assert,$(call int_halve,$(call int_encode,2)),$(call int_encode,1))
-$(call test_assert,$(call int_halve,$(call int_encode,8)),$(call int_encode,4))
-$(call test_assert,$(call int_halve,$(call int_encode,7)),$(call int_encode,3))
-$(call stop_test)
-
-$(call start_test,halve)
-$(call test_assert,$(call halve,0),0)
-$(call test_assert,$(call halve,2),1)
-$(call test_assert,$(call halve,8),4)
-$(call test_assert,$(call halve,7),3)
-$(call stop_test)
-
-$(call start_test,gt)
-$(call test_assert,$(call gt,2,3),)
-$(call test_assert,$(call gt,3,2),$(true))
-$(call test_assert,$(call gt,2,2),)
-$(call stop_test)
-
-$(call start_test,gte)
-$(call test_assert,$(call gte,2,3),)
-$(call test_assert,$(call gte,3,2),$(true))
-$(call test_assert,$(call gte,2,2),$(true))
-$(call stop_test)
-
-$(call start_test,lt)
-$(call test_assert,$(call lt,2,3),$(true))
-$(call test_assert,$(call lt,3,2),)
-$(call test_assert,$(call lt,2,2),)
-$(call stop_test)
-
-$(call start_test,lte)
-$(call test_assert,$(call lte,2,3),$(true))
-$(call test_assert,$(call lte,3,2),)
-$(call test_assert,$(call lte,2,2),$(true))
-$(call stop_test)
-
-$(call start_test,eq)
-$(call test_assert,$(call eq,2,3),)
-$(call test_assert,$(call eq,3,2),)
-$(call test_assert,$(call eq,2,2),$(true))
-$(call stop_test)
-
-$(call start_test,ne)
-$(call test_assert,$(call ne,2,3),$(true))
-$(call test_assert,$(call ne,3,2),$(true))
-$(call test_assert,$(call ne,2,2),)
-$(call stop_test)
-
-$(call start_test,int_gt)
-$(call test_assert,$(call int_gt,$(call int_encode,2),$(call int_encode,3)),)
-$(call test_assert,$(call int_gt,$(call int_encode,3),$(call int_encode,2)),$(true))
-$(call test_assert,$(call int_gt,$(call int_encode,2),$(call int_encode,2)),)
-$(call stop_test)
-
-$(call start_test,int_gte)
-$(call test_assert,$(call int_gte,$(call int_encode,2),$(call int_encode,3)),)
-$(call test_assert,$(call int_gte,$(call int_encode,3),$(call int_encode,2)),$(true))
-$(call test_assert,$(call int_gte,$(call int_encode,2),$(call int_encode,2)),$(true))
-$(call stop_test)
-
-$(call start_test,int_lt)
-$(call test_assert,$(call int_lt,$(call int_encode,2),$(call int_encode,3)),$(true))
-$(call test_assert,$(call int_lt,$(call int_encode,3),$(call int_encode,2)),)
-$(call test_assert,$(call int_lt,$(call int_encode,2),$(call int_encode,2)),)
-$(call stop_test)
-
-$(call start_test,int_lte)
-$(call test_assert,$(call int_lte,$(call int_encode,2),$(call int_encode,3)),$(true))
-$(call test_assert,$(call int_lte,$(call int_encode,3),$(call int_encode,2)),)
-$(call test_assert,$(call int_lte,$(call int_encode,2),$(call int_encode,2)),$(true))
-$(call stop_test)
-
-$(call start_test,int_eq)
-$(call test_assert,$(call int_eq,$(call int_encode,2),$(call int_encode,3)),)
-$(call test_assert,$(call int_eq,$(call int_encode,3),$(call int_encode,2)),)
-$(call test_assert,$(call int_eq,$(call int_encode,2),$(call int_encode,2)),$(true))
-$(call stop_test)
-
-$(call start_test,int_ne)
-$(call test_assert,$(call int_ne,$(call int_encode,2),$(call int_encode,3)),$(true))
-$(call test_assert,$(call int_ne,$(call int_encode,3),$(call int_encode,2)),$(true))
-$(call test_assert,$(call int_ne,$(call int_encode,2),$(call int_encode,2)),)
-$(call stop_test)
-
-$(call start_test,sequence)
-$(call test_assert,$(call sequence,0,0),0)
-$(call test_assert,$(call sequence,1,1),1)
-$(call test_assert,$(call sequence,10,10),10)
-$(call test_assert,$(call sequence,0,1),0 1)
-$(call test_assert,$(call sequence,0,2),0 1 2)
-$(call test_assert,$(call sequence,1,2),1 2)
-$(call test_assert,$(call sequence,1,4),1 2 3 4)
-$(call test_assert,$(call sequence,10,20),10 11 12 13 14 15 16 17 18 19 20)
-$(call test_assert,$(call sequence,1,0),1 0)
-$(call test_assert,$(call sequence,2,1),2 1)
-$(call test_assert,$(call sequence,3,1),3 2 1)
-$(call test_assert,$(call sequence,20,10),20 19 18 17 16 15 14 13 12 11 10)
-$(call stop_test)
-
-$(call start_test,memoize)
-memo_counter = $(call int_encode,0)
-memo = $(eval memo_counter := $(call int_inc,$(memo_counter)))$(firstword $1)
-$(call test_assert,$(call int_decode,$(memo_counter)),0)
-$(call test_assert,$(call memoize,memo,hello john),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),1)
-$(call test_assert,$(call memoize,memo,hello john),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),1)
-$(call test_assert,$(call memoize,memo,hello john how are you),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),2)
-$(call test_assert,$(call memoize,memo,john),john)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-$(call test_assert,$(call memoize,memo,hello john),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-$(call test_assert,$(call memoize,memo,hello john how are you),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-$(call test_assert,$(call memoize,memo,john),john)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-md5_counter = $(call int_encode,0)
-ifneq ("$(shell echo -n hello | md5sum 2> /dev/null)","")
-md5_program := md5sum
-endif
-ifneq ("$(shell md5 -s hello 2> /dev/null)","")
-md5_program := md5
-endif
-ifeq ("$(md5_program)","")
-$(error Can't find suitable MD5 program. Tried md5sum and md5)
-endif
-md5 = $(eval md5_counter = $(call int_inc,$(md5_counter)))$(firstword $(shell echo "$1" | $(md5_program)))
-$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-$(call test_assert,$(call int_decode,$(md5_counter)),1)
-$(call test_assert,$(call memoize,memo,hello john),hello)
-$(call test_assert,$(call int_decode,$(memo_counter)),3)
-$(call test_assert,$(call int_decode,$(md5_counter)),1)
-$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
-$(call test_assert,$(call int_decode,$(md5_counter)),1)
-$(call test_assert,$(call memoize,md5,hello john how are you),fd9b9651aa9f92d3d6d15a60bf5ccf15)
-$(call test_assert,$(call int_decode,$(md5_counter)),2)
-$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
-$(call test_assert,$(call int_decode,$(md5_counter)),2)
-$(call test_assert,$(call memoize,md5,hello john how are you),fd9b9651aa9f92d3d6d15a60bf5ccf15)
-$(call test_assert,$(call int_decode,$(md5_counter)),2)
-$(call stop_test)
-
-$(call start_test,gmsl_compatible)
-$(call test_assert,$(call gmsl_compatible,$(gmsl_version)),$(true))
-$(call test_assert,$(call gmsl_compatible,0 9 0),$(true))
-$(call test_assert,$(call gmsl_compatible,0 0 1),$(true))
-$(call test_assert,$(call gmsl_compatible,0 0 0),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 8),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 8),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 10),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 11),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 12),$(true))
-$(call test_assert,$(call gmsl_compatible,1 0 13),$(true))
-$(call test_assert,$(call gmsl_compatible,1 1 0),$(true))
-$(call test_assert,$(call gmsl_compatible,1 1 1),$(true))
-$(call test_assert,$(call gmsl_compatible,1 1 2),$(true))
-$(call test_assert,$(call gmsl_compatible,1 1 3),$(true))
-$(call test_assert,$(call gmsl_compatible,1 1 4),)
-$(call test_assert,$(call gmsl_compatible,1 2 0),)
-$(call test_assert,$(call gmsl_compatible,2 0 0),)
-$(call stop_test)
- \ No newline at end of file