Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
d63895fc
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
大约 2 年 前同步成功
通知
210
Star
8425
Fork
1598
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
245
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DeepSpeech
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
245
Issue
245
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d63895fc
编写于
6月 29, 2022
作者:
H
Hui Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
audio with kaldi
上级
aa2aad7f
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
6 addition
and
4268 deletion
+6
-4268
CMakeLists.txt
CMakeLists.txt
+2
-2
audio/.gitignore
audio/.gitignore
+0
-3
audio/CMakeLists.txt
audio/CMakeLists.txt
+0
-14
audio/audio/csrc/CMakeLists.txt
audio/audio/csrc/CMakeLists.txt
+0
-34
audio/audio/csrc/pybind/pybind.cpp
audio/audio/csrc/pybind/pybind.cpp
+0
-10
audio/audio/csrc/pybind/sox/io.cpp
audio/audio/csrc/pybind/sox/io.cpp
+0
-61
audio/audio/csrc/pybind/sox/io.h
audio/audio/csrc/pybind/sox/io.h
+0
-18
audio/audio/csrc/pybind/sox/utils.cpp
audio/audio/csrc/pybind/sox/utils.cpp
+0
-98
audio/audio/csrc/pybind/sox/utils.h
audio/audio/csrc/pybind/sox/utils.h
+0
-42
audio/third_party/CMakeLists.txt
audio/third_party/CMakeLists.txt
+0
-9
audio/third_party/patches/config.guess
audio/third_party/patches/config.guess
+0
-1754
audio/third_party/patches/config.sub
audio/third_party/patches/config.sub
+0
-1890
audio/third_party/patches/libmad.patch
audio/third_party/patches/libmad.patch
+0
-86
audio/third_party/patches/sox.patch
audio/third_party/patches/sox.patch
+0
-16
audio/third_party/sox/CMakeLists.txt
audio/third_party/sox/CMakeLists.txt
+0
-222
paddlespeech/audio/CMakeLists.txt
paddlespeech/audio/CMakeLists.txt
+3
-2
paddlespeech/audio/_internal/module_utils.py
paddlespeech/audio/_internal/module_utils.py
+0
-6
speechx/speechx/kaldi/base/kaldi-types.h
speechx/speechx/kaldi/base/kaldi-types.h
+1
-1
未找到文件。
CMakeLists.txt
浏览文件 @
d63895fc
...
@@ -44,8 +44,8 @@ find_package(Python3 COMPONENTS Interpreter Development)
...
@@ -44,8 +44,8 @@ find_package(Python3 COMPONENTS Interpreter Development)
find_package
(
pybind11 CONFIG
)
find_package
(
pybind11 CONFIG
)
message
(
STATUS
"Python_INCLUDE_DIR="
${
Python_INCLUDE_DIR
}
)
message
(
STATUS
"Python_INCLUDE_DIR="
${
Python_INCLUDE_DIR
}
)
add_subdirectory
(
paddlespeech/audio/third_party
)
add_subdirectory
(
paddlespeech/audio
)
add_subdirectory
(
paddlespeech/audio/src
)
# Summary
include
(
cmake/summary.cmake
)
include
(
cmake/summary.cmake
)
onnx_print_configuration_summary
()
onnx_print_configuration_summary
()
\ No newline at end of file
audio/.gitignore
已删除
100644 → 0
浏览文件 @
aa2aad7f
build
third_party/archives/
third_party/install/
audio/CMakeLists.txt
已删除
100644 → 0
浏览文件 @
aa2aad7f
cmake_minimum_required
(
VERSION 3.16 FATAL_ERROR
)
project
(
paddleaudio VERSION 0.1
)
string
(
FIND
"
${
CMAKE_CXX_FLAGS
}
"
"-std=c++"
env_cxx_standard
)
set
(
CMAKE_CXX_STANDARD 14
)
set
(
CMAKE_C_STANDARD 11
)
set
(
CMAKE_EXPORT_COMPILE_COMMANDS ON
)
set
(
CMAKE_POSITION_INDEPENDENT_CODE ON
)
option
(
BUILD_SOX
"Build libsox statically"
ON
)
add_subdirectory
(
third_party
)
add_subdirectory
(
audio/csrc
)
audio/audio/csrc/CMakeLists.txt
已删除
100644 → 0
浏览文件 @
aa2aad7f
find_package
(
Python3 COMPONENTS Interpreter Development
)
find_package
(
pybind11 CONFIG
)
function
(
define_extension name sources libraries
)
add_library
(
${
name
}
SHARED
${
sources
}
)
target_include_directories
(
${
name
}
PRIVATE
${
PROJECT_SOURCE_DIR
}
${
CMAKE_CURRENT_SOURCE_DIR
}
${
Python3_INCLUDE_DIRS
}
${
pybind11_INCLUDE_DIR
}
)
target_link_libraries
(
${
name
}
${
libraries
}
)
set_target_properties
(
${
name
}
PROPERTIES PREFIX
""
)
install
(
TARGETS
${
name
}
LIBRARY DESTINATION .
)
endfunction
()
if
(
BUILD_SOX
)
set
(
EXTENSION_SOURCES
pybind/pybind.cpp
pybind/sox/io.cpp
pybind/sox/utils.cpp
)
set
(
LINK_LIBRARIES
libsox
)
define_extension
(
_paddleaudio
"
${
EXTENSION_SOURCES
}
"
"
${
LINK_LIBRARIES
}
"
)
endif
()
audio/audio/csrc/pybind/pybind.cpp
已删除
100644 → 0
浏览文件 @
aa2aad7f
#include "pybind/sox/io.h"
PYBIND11_MODULE
(
_paddleaudio
,
m
)
{
m
.
def
(
"get_info_file"
,
&
paddleaudio
::
sox_io
::
get_info_file
,
"Get metadata of audio file."
);
m
.
def
(
"get_info_fileobj"
,
&
paddleaudio
::
sox_io
::
get_info_fileobj
,
"Get metadata of audio in file object."
);
}
\ No newline at end of file
audio/audio/csrc/pybind/sox/io.cpp
已删除
100644 → 0
浏览文件 @
aa2aad7f
#include "pybind/sox/io.h"
#include "pybind/sox/utils.h"
using
namespace
paddleaudio
::
sox_utils
;
namespace
paddleaudio
{
namespace
sox_io
{
auto
get_info_file
(
const
std
::
string
&
path
,
const
std
::
string
&
format
)
->
std
::
tuple
<
int64_t
,
int64_t
,
int64_t
,
int64_t
,
std
::
string
>
{
SoxFormat
sf
(
sox_open_read
(
path
.
data
(),
/*signal=*/
nullptr
,
/*encoding=*/
nullptr
,
/*filetype=*/
format
.
empty
()
?
nullptr
:
format
.
data
()));
validate_input_file
(
sf
,
path
);
return
std
::
make_tuple
(
static_cast
<
int64_t
>
(
sf
->
signal
.
rate
),
static_cast
<
int64_t
>
(
sf
->
signal
.
length
/
sf
->
signal
.
channels
),
static_cast
<
int64_t
>
(
sf
->
signal
.
channels
),
static_cast
<
int64_t
>
(
sf
->
encoding
.
bits_per_sample
),
get_encoding
(
sf
->
encoding
.
encoding
));
}
auto
get_info_fileobj
(
py
::
object
fileobj
,
const
std
::
string
&
format
)
->
std
::
tuple
<
int64_t
,
int64_t
,
int64_t
,
int64_t
,
std
::
string
>
{
const
auto
capacity
=
[
&
]()
{
const
auto
bufsiz
=
get_buffer_size
();
const
int64_t
kDefaultCapacityInBytes
=
4096
;
return
(
bufsiz
>
kDefaultCapacityInBytes
)
?
bufsiz
:
kDefaultCapacityInBytes
;
}();
std
::
string
buffer
(
capacity
,
'\0'
);
auto
*
buf
=
const_cast
<
char
*>
(
buffer
.
data
());
auto
num_read
=
read_fileobj
(
&
fileobj
,
capacity
,
buf
);
// If the file is shorter than 256, then libsox cannot read the header.
auto
buf_size
=
(
num_read
>
256
)
?
num_read
:
256
;
SoxFormat
sf
(
sox_open_mem_read
(
buf
,
buf_size
,
/*signal=*/
nullptr
,
/*encoding=*/
nullptr
,
/*filetype=*/
format
.
empty
()
?
nullptr
:
format
.
data
()));
// In case of streamed data, length can be 0
validate_input_memfile
(
sf
);
return
std
::
make_tuple
(
static_cast
<
int64_t
>
(
sf
->
signal
.
rate
),
static_cast
<
int64_t
>
(
sf
->
signal
.
length
/
sf
->
signal
.
channels
),
static_cast
<
int64_t
>
(
sf
->
signal
.
channels
),
static_cast
<
int64_t
>
(
sf
->
encoding
.
bits_per_sample
),
get_encoding
(
sf
->
encoding
.
encoding
));
}
}
// namespace paddleaudio
}
// namespace sox_io
audio/audio/csrc/pybind/sox/io.h
已删除
100644 → 0
浏览文件 @
aa2aad7f
#ifndef PADDLEAUDIO_PYBIND_SOX_IO_H
#define PADDLEAUDIO_PYBIND_SOX_IO_H
#include "pybind/sox/utils.h"
namespace
paddleaudio
{
namespace
sox_io
{
auto
get_info_file
(
const
std
::
string
&
path
,
const
std
::
string
&
format
)
->
std
::
tuple
<
int64_t
,
int64_t
,
int64_t
,
int64_t
,
std
::
string
>
;
auto
get_info_fileobj
(
py
::
object
fileobj
,
const
std
::
string
&
format
)
->
std
::
tuple
<
int64_t
,
int64_t
,
int64_t
,
int64_t
,
std
::
string
>
;
}
// namespace paddleaudio
}
// namespace sox_io
#endif
audio/audio/csrc/pybind/sox/utils.cpp
已删除
100644 → 0
浏览文件 @
aa2aad7f
#include "pybind/sox/utils.h"
#include <sstream>
namespace
paddleaudio
{
namespace
sox_utils
{
SoxFormat
::
SoxFormat
(
sox_format_t
*
fd
)
noexcept
:
fd_
(
fd
)
{}
SoxFormat
::~
SoxFormat
()
{
close
();
}
sox_format_t
*
SoxFormat
::
operator
->
()
const
noexcept
{
return
fd_
;
}
SoxFormat
::
operator
sox_format_t
*
()
const
noexcept
{
return
fd_
;
}
void
SoxFormat
::
close
()
{
if
(
fd_
!=
nullptr
)
{
sox_close
(
fd_
);
fd_
=
nullptr
;
}
}
auto
read_fileobj
(
py
::
object
*
fileobj
,
const
uint64_t
size
,
char
*
buffer
)
->
uint64_t
{
uint64_t
num_read
=
0
;
while
(
num_read
<
size
)
{
auto
request
=
size
-
num_read
;
auto
chunk
=
static_cast
<
std
::
string
>
(
static_cast
<
py
::
bytes
>
(
fileobj
->
attr
(
"read"
)(
request
)));
auto
chunk_len
=
chunk
.
length
();
if
(
chunk_len
==
0
)
{
break
;
}
if
(
chunk_len
>
request
)
{
std
::
ostringstream
message
;
message
<<
"Requested up to "
<<
request
<<
" bytes but, "
<<
"received "
<<
chunk_len
<<
" bytes. "
<<
"The given object does not confirm to read protocol of file "
"object."
;
throw
std
::
runtime_error
(
message
.
str
());
}
memcpy
(
buffer
,
chunk
.
data
(),
chunk_len
);
buffer
+=
chunk_len
;
num_read
+=
chunk_len
;
}
return
num_read
;
}
int64_t
get_buffer_size
()
{
return
sox_get_globals
()
->
bufsiz
;
}
void
validate_input_file
(
const
SoxFormat
&
sf
,
const
std
::
string
&
path
)
{
if
(
static_cast
<
sox_format_t
*>
(
sf
)
==
nullptr
)
{
throw
std
::
runtime_error
(
"Error loading audio file: failed to open file "
+
path
);
}
if
(
sf
->
encoding
.
encoding
==
SOX_ENCODING_UNKNOWN
)
{
throw
std
::
runtime_error
(
"Error loading audio file: unknown encoding."
);
}
}
void
validate_input_memfile
(
const
SoxFormat
&
sf
)
{
return
validate_input_file
(
sf
,
"<in memory buffer>"
);
}
std
::
string
get_encoding
(
sox_encoding_t
encoding
)
{
switch
(
encoding
)
{
case
SOX_ENCODING_UNKNOWN
:
return
"UNKNOWN"
;
case
SOX_ENCODING_SIGN2
:
return
"PCM_S"
;
case
SOX_ENCODING_UNSIGNED
:
return
"PCM_U"
;
case
SOX_ENCODING_FLOAT
:
return
"PCM_F"
;
case
SOX_ENCODING_FLAC
:
return
"FLAC"
;
case
SOX_ENCODING_ULAW
:
return
"ULAW"
;
case
SOX_ENCODING_ALAW
:
return
"ALAW"
;
case
SOX_ENCODING_MP3
:
return
"MP3"
;
case
SOX_ENCODING_VORBIS
:
return
"VORBIS"
;
case
SOX_ENCODING_AMR_WB
:
return
"AMR_WB"
;
case
SOX_ENCODING_AMR_NB
:
return
"AMR_NB"
;
case
SOX_ENCODING_OPUS
:
return
"OPUS"
;
case
SOX_ENCODING_GSM
:
return
"GSM"
;
default:
return
"UNKNOWN"
;
}
}
}
// namespace paddleaudio
}
// namespace sox_utils
audio/audio/csrc/pybind/sox/utils.h
已删除
100644 → 0
浏览文件 @
aa2aad7f
#ifndef PADDLEAUDIO_PYBIND_SOX_UTILS_H
#define PADDLEAUDIO_PYBIND_SOX_UTILS_H
#include <pybind11/pybind11.h>
#include <sox.h>
namespace
py
=
pybind11
;
namespace
paddleaudio
{
namespace
sox_utils
{
/// helper class to automatically close sox_format_t*
struct
SoxFormat
{
explicit
SoxFormat
(
sox_format_t
*
fd
)
noexcept
;
SoxFormat
(
const
SoxFormat
&
other
)
=
delete
;
SoxFormat
(
SoxFormat
&&
other
)
=
delete
;
SoxFormat
&
operator
=
(
const
SoxFormat
&
other
)
=
delete
;
SoxFormat
&
operator
=
(
SoxFormat
&&
other
)
=
delete
;
~
SoxFormat
();
sox_format_t
*
operator
->
()
const
noexcept
;
operator
sox_format_t
*
()
const
noexcept
;
void
close
();
private:
sox_format_t
*
fd_
;
};
auto
read_fileobj
(
py
::
object
*
fileobj
,
uint64_t
size
,
char
*
buffer
)
->
uint64_t
;
int64_t
get_buffer_size
();
void
validate_input_file
(
const
SoxFormat
&
sf
,
const
std
::
string
&
path
);
void
validate_input_memfile
(
const
SoxFormat
&
sf
);
std
::
string
get_encoding
(
sox_encoding_t
encoding
);
}
// namespace paddleaudio
}
// namespace sox_utils
#endif
audio/third_party/CMakeLists.txt
已删除
100644 → 0
浏览文件 @
aa2aad7f
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fvisibility=hidden"
)
add_library
(
libsox INTERFACE
)
if
(
BUILD_SOX
)
add_subdirectory
(
sox
)
target_include_directories
(
libsox INTERFACE
${
SOX_INCLUDE_DIR
}
)
target_link_libraries
(
libsox INTERFACE
${
SOX_LIBRARIES
}
)
endif
()
audio/third_party/patches/config.guess
已删除
100644 → 0
浏览文件 @
aa2aad7f
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2022 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp
=
'2022-01-09'
# 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 <https://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; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX. However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.
me
=
`
echo
"
$0
"
|
sed
-e
's,.*/,,'
`
usage
=
"
\
Usage:
$0
[OPTION]
Output the configuration name of the system
\`
$me
' is run on.
Options:
-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-2022 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
# Just in case it came from the environment.
GUESS
=
# 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.
tmp
=
# shellcheck disable=SC2172
trap
'test -z "$tmp" || rm -fr "$tmp"'
0 1 2 13 15
set_cc_for_build
()
{
# prevent multiple calls if $tmp is already set
test
"
$tmp
"
&&
return
0
:
"
${
TMPDIR
=/tmp
}
"
# shellcheck disable=SC2039,SC3028
{
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
"
2>/dev/null
)
;
}
||
{
tmp
=
$TMPDIR
/cg-
$$
&&
(
umask
077
&&
mkdir
"
$tmp
"
2>/dev/null
)
&&
echo
"Warning: creating insecure temp directory"
>
&2
;
}
||
{
echo
"
$me
: cannot create a temporary directory in
$TMPDIR
"
>
&2
;
exit
1
;
}
dummy
=
$tmp
/dummy
case
${
CC_FOR_BUILD
-
}
,
${
HOST_CC
-
}
,
${
CC
-
}
in
,,
)
echo
"int x;"
>
"
$dummy
.c"
for
driver
in
cc gcc c89 c99
;
do
if
(
$driver
-c
-o
"
$dummy
.o"
"
$dummy
.c"
)
>
/dev/null 2>&1
;
then
CC_FOR_BUILD
=
$driver
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
}
# 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
;
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/
*
)
LIBC
=
unknown
set_cc_for_build
cat
<<-
EOF
> "
$dummy
.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#elif defined(__GLIBC__)
LIBC=gnu
#else
#include <stdarg.h>
/* First heuristic to detect musl libc. */
#ifdef __DEFINED_va_list
LIBC=musl
#endif
#endif
EOF
cc_set_libc
=
`
$CC_FOR_BUILD
-E
"
$dummy
.c"
2>/dev/null |
grep
'^LIBC'
|
sed
's, ,,g'
`
eval
"
$cc_set_libc
"
# Second heuristic to detect musl libc.
if
[
"
$LIBC
"
=
unknown
]
&&
command
-v
ldd
>
/dev/null
&&
ldd
--version
2>&1 |
grep
-q
^musl
;
then
LIBC
=
musl
fi
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
if
[
"
$LIBC
"
=
unknown
]
;
then
LIBC
=
gnu
fi
;;
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".
UNAME_MACHINE_ARCH
=
`
(
uname
-p
2>/dev/null
||
\
/sbin/sysctl
-n
hw.machine_arch 2>/dev/null
||
\
/usr/sbin/sysctl
-n
hw.machine_arch 2>/dev/null
||
\
echo
unknown
)
`
case
$UNAME_MACHINE_ARCH
in
aarch64eb
)
machine
=
aarch64_be-unknown
;;
armeb
)
machine
=
armeb-unknown
;;
arm
*
)
machine
=
arm-unknown
;;
sh3el
)
machine
=
shl-unknown
;;
sh3eb
)
machine
=
sh-unknown
;;
sh5el
)
machine
=
sh5le-unknown
;;
earmv
*
)
arch
=
`
echo
"
$UNAME_MACHINE_ARCH
"
|
sed
-e
's,^e\(armv[0-9]\).*$,\1,'
`
endian
=
`
echo
"
$UNAME_MACHINE_ARCH
"
|
sed
-ne
's,^.*\(eb\)$,\1,p'
`
machine
=
${
arch
}${
endian
}
-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) and ABI.
case
$UNAME_MACHINE_ARCH
in
earm
*
)
os
=
netbsdelf
;;
arm
*
|
i386|m68k|ns32k|sh3
*
|
sparc|vax
)
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
# Determine ABI tags.
case
$UNAME_MACHINE_ARCH
in
earm
*
)
expr
=
's/^earmv[0-9]/-eabi/;s/eb$//'
abi
=
`
echo
"
$UNAME_MACHINE_ARCH
"
|
sed
-e
"
$expr
"
`
;;
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/[-_].*//'
|
cut
-d
.
-f1
,2
`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
GUESS
=
$machine
-
${
os
}${
release
}${
abi
-
}
;;
*
:Bitrig:
*
:
*
)
UNAME_MACHINE_ARCH
=
`
arch
|
sed
's/Bitrig.//'
`
GUESS
=
$UNAME_MACHINE_ARCH
-unknown-bitrig
$UNAME_RELEASE
;;
*
:OpenBSD:
*
:
*
)
UNAME_MACHINE_ARCH
=
`
arch
|
sed
's/OpenBSD.//'
`
GUESS
=
$UNAME_MACHINE_ARCH
-unknown-openbsd
$UNAME_RELEASE
;;
*
:SecBSD:
*
:
*
)
UNAME_MACHINE_ARCH
=
`
arch
|
sed
's/SecBSD.//'
`
GUESS
=
$UNAME_MACHINE_ARCH
-unknown-secbsd
$UNAME_RELEASE
;;
*
:LibertyBSD:
*
:
*
)
UNAME_MACHINE_ARCH
=
`
arch
|
sed
's/^.*BSD\.//'
`
GUESS
=
$UNAME_MACHINE_ARCH
-unknown-libertybsd
$UNAME_RELEASE
;;
*
:MidnightBSD:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-midnightbsd
$UNAME_RELEASE
;;
*
:ekkoBSD:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-ekkobsd
$UNAME_RELEASE
;;
*
:SolidBSD:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-solidbsd
$UNAME_RELEASE
;;
*
:OS108:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-os108_
$UNAME_RELEASE
;;
macppc:MirBSD:
*
:
*
)
GUESS
=
powerpc-unknown-mirbsd
$UNAME_RELEASE
;;
*
:MirBSD:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-mirbsd
$UNAME_RELEASE
;;
*
:Sortix:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-sortix
;;
*
:Twizzler:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-twizzler
;;
*
:Redox:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-redox
;;
mips:OSF1:
*
.
*
)
GUESS
=
mips-dec-osf1
;;
alpha:OSF1:
*
:
*
)
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
trap
''
0
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.
OSF_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/^[PVTX]//'
|
tr
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
`
GUESS
=
$UNAME_MACHINE
-dec-osf
$OSF_REL
;;
Amiga
*
:UNIX_System_V:4.0:
*
)
GUESS
=
m68k-unknown-sysv4
;;
*
:[Aa]miga[Oo][Ss]:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-amigaos
;;
*
:[Mm]orph[Oo][Ss]:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-morphos
;;
*
:OS/390:
*
:
*
)
GUESS
=
i370-ibm-openedition
;;
*
:z/VM:
*
:
*
)
GUESS
=
s390-ibm-zvmoe
;;
*
:OS400:
*
:
*
)
GUESS
=
powerpc-ibm-os400
;;
arm:RISC
*
:1.[012]
*
:
*
|
arm:riscix:1.[012]
*
:
*
)
GUESS
=
arm-acorn-riscix
$UNAME_RELEASE
;;
arm
*
:riscos:
*
:
*
|
arm
*
:RISCOS:
*
:
*
)
GUESS
=
arm-unknown-riscos
;;
SR2?01:HI-UX/MPP:
*
:
*
|
SR8000:HI-UX/MPP:
*
:
*
)
GUESS
=
hppa1.1-hitachi-hiuxmpp
;;
Pyramid
*
:OSx
*
:
*
:
*
|
MIS
*
:OSx
*
:
*
:
*
|
MIS
*
:SMP_DC-OSx
*
:
*
:
*
)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
case
`
(
/bin/universe
)
2>/dev/null
`
in
att
)
GUESS
=
pyramid-pyramid-sysv3
;;
*
)
GUESS
=
pyramid-pyramid-bsd
;;
esac
;;
NILE
*
:
*
:
*
:dcosx
)
GUESS
=
pyramid-pyramid-svr4
;;
DRS?6000:unix:4.0:6
*
)
GUESS
=
sparc-icl-nx6
;;
DRS?6000:UNIX_SV:4.2
*
:7
*
|
DRS?6000:isis:4.2
*
:7
*
)
case
`
/usr/bin/uname
-p
`
in
sparc
)
GUESS
=
sparc-icl-nx7
;;
esac
;;
s390x:SunOS:
*
:
*
)
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
$UNAME_MACHINE
-ibm-solaris2
$SUN_REL
;;
sun4H:SunOS:5.
*
:
*
)
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
sparc-hal-solaris2
$SUN_REL
;;
sun4
*
:SunOS:5.
*
:
*
|
tadpole
*
:SunOS:5.
*
:
*
)
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
sparc-sun-solaris2
$SUN_REL
;;
i86pc:AuroraUX:5.
*
:
*
|
i86xen:AuroraUX:5.
*
:
*
)
GUESS
=
i386-pc-auroraux
$UNAME_RELEASE
;;
i86pc:SunOS:5.
*
:
*
|
i86xen:SunOS:5.
*
:
*
)
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
test
"
$CC_FOR_BUILD
"
!=
no_compiler_found
;
then
if
(
echo
'#ifdef __amd64'
;
echo
IS_64BIT_ARCH
;
echo
'#endif'
)
|
\
(
CCOPTS
=
""
$CC_FOR_BUILD
-m64
-E
- 2>/dev/null
)
|
\
grep
IS_64BIT_ARCH
>
/dev/null
then
SUN_ARCH
=
x86_64
fi
fi
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
$SUN_ARCH
-pc-solaris2
$SUN_REL
;;
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.
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
sparc-sun-solaris3
$SUN_REL
;;
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'.
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/-/_/'
`
GUESS
=
sparc-sun-sunos
$SUN_REL
;;
sun3
*
:SunOS:
*
:
*
)
GUESS
=
m68k-sun-sunos
$UNAME_RELEASE
;;
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
)
GUESS
=
m68k-sun-sunos
$UNAME_RELEASE
;;
sun4
)
GUESS
=
sparc-sun-sunos
$UNAME_RELEASE
;;
esac
;;
aushp:SunOS:
*
:
*
)
GUESS
=
sparc-auspex-sunos
$UNAME_RELEASE
;;
# 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:
*
:
*
)
GUESS
=
m68k-atari-mint
$UNAME_RELEASE
;;
atari
*
:
*
MiNT:
*
:
*
|
atari
*
:
*
mint:
*
:
*
|
atarist[e]:
*
TOS:
*
:
*
)
GUESS
=
m68k-atari-mint
$UNAME_RELEASE
;;
*
falcon
*
:
*
MiNT:
*
:
*
|
*
falcon
*
:
*
mint:
*
:
*
|
*
falcon
*
:
*
TOS:
*
:
*
)
GUESS
=
m68k-atari-mint
$UNAME_RELEASE
;;
milan
*
:
*
MiNT:
*
:
*
|
milan
*
:
*
mint:
*
:
*
|
*
milan
*
:
*
TOS:
*
:
*
)
GUESS
=
m68k-milan-mint
$UNAME_RELEASE
;;
hades
*
:
*
MiNT:
*
:
*
|
hades
*
:
*
mint:
*
:
*
|
*
hades
*
:
*
TOS:
*
:
*
)
GUESS
=
m68k-hades-mint
$UNAME_RELEASE
;;
*
:
*
MiNT:
*
:
*
|
*
:
*
mint:
*
:
*
|
*
:
*
TOS:
*
:
*
)
GUESS
=
m68k-unknown-mint
$UNAME_RELEASE
;;
m68k:machten:
*
:
*
)
GUESS
=
m68k-apple-machten
$UNAME_RELEASE
;;
powerpc:machten:
*
:
*
)
GUESS
=
powerpc-apple-machten
$UNAME_RELEASE
;;
RISC
*
:Mach:
*
:
*
)
GUESS
=
mips-dec-mach_bsd4.3
;;
RISC
*
:ULTRIX:
*
:
*
)
GUESS
=
mips-dec-ultrix
$UNAME_RELEASE
;;
VAX
*
:ULTRIX
*
:
*
:
*
)
GUESS
=
vax-dec-ultrix
$UNAME_RELEASE
;;
2020:CLIX:
*
:
*
|
2430:CLIX:
*
:
*
)
GUESS
=
clipper-intergraph-clix
$UNAME_RELEASE
;;
mips:
*
:
*
:UMIPS
|
mips:
*
:
*
:RISCos
)
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
;
}
GUESS
=
mips-mips-riscos
$UNAME_RELEASE
;;
Motorola:PowerMAX_OS:
*
:
*
)
GUESS
=
powerpc-motorola-powermax
;;
Motorola:
*
:4.3:PL8-
*
)
GUESS
=
powerpc-harris-powermax
;;
Night_Hawk:
*
:
*
:PowerMAX_OS
|
Synergy:PowerMAX_OS:
*
:
*
)
GUESS
=
powerpc-harris-powermax
;;
Night_Hawk:Power_UNIX:
*
:
*
)
GUESS
=
powerpc-harris-powerunix
;;
m88k:CX/UX:7
*
:
*
)
GUESS
=
m88k-harris-cxux7
;;
m88k:
*
:4
*
:R4
*
)
GUESS
=
m88k-motorola-sysv4
;;
m88k:
*
:3
*
:R3
*
)
GUESS
=
m88k-motorola-sysv3
;;
AViiON:dgux:
*
:
*
)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR
=
`
/usr/bin/uname
-p
`
if
test
"
$UNAME_PROCESSOR
"
=
mc88100
||
test
"
$UNAME_PROCESSOR
"
=
mc88110
then
if
test
"
$TARGET_BINARY_INTERFACE
"
x
=
m88kdguxelfx
||
\
test
"
$TARGET_BINARY_INTERFACE
"
x
=
x
then
GUESS
=
m88k-dg-dgux
$UNAME_RELEASE
else
GUESS
=
m88k-dg-dguxbcs
$UNAME_RELEASE
fi
else
GUESS
=
i586-dg-dgux
$UNAME_RELEASE
fi
;;
M88
*
:DolphinOS:
*
:
*
)
# DolphinOS (SVR3)
GUESS
=
m88k-dolphin-sysv3
;;
M88
*
:
*
:R3
*
:
*
)
# Delta 88k system running SVR3
GUESS
=
m88k-motorola-sysv3
;;
XD88
*
:
*
:
*
:
*
)
# Tektronix XD88 system running UTekV (SVR3)
GUESS
=
m88k-tektronix-sysv3
;;
Tek43[0-9][0-9]:UTek:
*
:
*
)
# Tektronix 4300 system running UTek (BSD)
GUESS
=
m68k-tektronix-bsd
;;
*
:IRIX
*
:
*
:
*
)
IRIX_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/-/_/g'
`
GUESS
=
mips-sgi-irix
$IRIX_REL
;;
????????:AIX?:[12].1:2
)
# AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
GUESS
=
romp-ibm-aix
# uname -m gives an 8 hex-code CPU id
;;
# Note that: echo "'`uname -s`'" gives 'AIX '
i
*
86:AIX:
*
:
*
)
GUESS
=
i386-ibm-aix
;;
ia64:AIX:
*
:
*
)
if
test
-x
/usr/bin/oslevel
;
then
IBM_REV
=
`
/usr/bin/oslevel
`
else
IBM_REV
=
$UNAME_VERSION
.
$UNAME_RELEASE
fi
GUESS
=
$UNAME_MACHINE
-ibm-aix
$IBM_REV
;;
*
:AIX:2:3
)
if
grep
bos325 /usr/include/stdio.h
>
/dev/null 2>&1
;
then
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
GUESS
=
$SYSTEM_NAME
else
GUESS
=
rs6000-ibm-aix3.2.5
fi
elif
grep
bos324 /usr/include/stdio.h
>
/dev/null 2>&1
;
then
GUESS
=
rs6000-ibm-aix3.2.4
else
GUESS
=
rs6000-ibm-aix3.2
fi
;;
*
: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
test
-x
/usr/bin/lslpp
;
then
IBM_REV
=
`
/usr/bin/lslpp
-Lqc
bos.rte.libc |
\
awk
-F
:
'{ print $3 }'
|
sed
s/[0-9]
*
$/
0/
`
else
IBM_REV
=
$UNAME_VERSION
.
$UNAME_RELEASE
fi
GUESS
=
$IBM_ARCH
-ibm-aix
$IBM_REV
;;
*
:AIX:
*
:
*
)
GUESS
=
rs6000-ibm-aix
;;
ibmrt:4.4BSD:
*
|
romp-ibm:4.4BSD:
*
)
GUESS
=
romp-ibm-bsd4.4
;;
ibmrt:
*
BSD:
*
|
romp-ibm:BSD:
*
)
# covers RT/PC BSD and
GUESS
=
romp-ibm-bsd
$UNAME_RELEASE
# 4.3 with uname added to
;;
# report: romp-ibm BSD 4.3
*
:BOSX:
*
:
*
)
GUESS
=
rs6000-bull-bosx
;;
DPX/2?00:B.O.S.:
*
:
*
)
GUESS
=
m68k-bull-sysv3
;;
9000/[34]??:4.3bsd:1.
*
:
*
)
GUESS
=
m68k-hp-bsd
;;
hp300:4.4BSD:
*
:
*
|
9000/[34]??:4.3bsd:2.
*
:
*
)
GUESS
=
m68k-hp-bsd4.4
;;
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
test
-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
test
"
$HP_ARCH
"
=
""
;
then
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
test
"
$HP_ARCH
"
=
hppa2.0w
then
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
GUESS
=
$HP_ARCH
-hp-hpux
$HPUX_REV
;;
ia64:HP-UX:
*
:
*
)
HPUX_REV
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*.[0B]*//'
`
GUESS
=
ia64-hp-hpux
$HPUX_REV
;;
3050
*
:HI-UX:
*
:
*
)
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
;
}
GUESS
=
unknown-hitachi-hiuxwe2
;;
9000/7??:4.3bsd:
*
:
*
|
9000/8?[79]:4.3bsd:
*
:
*
)
GUESS
=
hppa1.1-hp-bsd
;;
9000/8??:4.3bsd:
*
:
*
)
GUESS
=
hppa1.0-hp-bsd
;;
*
9??
*
:MPE/iX:
*
:
*
|
*
3000
*
:MPE/iX:
*
:
*
)
GUESS
=
hppa1.0-hp-mpeix
;;
hp7??:OSF1:
*
:
*
|
hp8?[79]:OSF1:
*
:
*
)
GUESS
=
hppa1.1-hp-osf
;;
hp8??:OSF1:
*
:
*
)
GUESS
=
hppa1.0-hp-osf
;;
i
*
86:OSF1:
*
:
*
)
if
test
-x
/usr/sbin/sysversion
;
then
GUESS
=
$UNAME_MACHINE
-unknown-osf1mk
else
GUESS
=
$UNAME_MACHINE
-unknown-osf1
fi
;;
parisc
*
:Lites
*
:
*
:
*
)
GUESS
=
hppa1.1-hp-lites
;;
C1
*
:ConvexOS:
*
:
*
|
convex:ConvexOS:C1
*
:
*
)
GUESS
=
c1-convex-bsd
;;
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
*
:
*
)
GUESS
=
c34-convex-bsd
;;
C38
*
:ConvexOS:
*
:
*
|
convex:ConvexOS:C38
*
:
*
)
GUESS
=
c38-convex-bsd
;;
C4
*
:ConvexOS:
*
:
*
|
convex:ConvexOS:C4
*
:
*
)
GUESS
=
c4-convex-bsd
;;
CRAY
*
Y-MP:
*
:
*
:
*
)
CRAY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\.[^.]*$/.X/'
`
GUESS
=
ymp-cray-unicos
$CRAY_REL
;;
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:
*
:
*
:
*
)
CRAY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\.[^.]*$/.X/'
`
GUESS
=
t90-cray-unicos
$CRAY_REL
;;
CRAY
*
T3E:
*
:
*
:
*
)
CRAY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\.[^.]*$/.X/'
`
GUESS
=
alphaev5-cray-unicosmk
$CRAY_REL
;;
CRAY
*
SV1:
*
:
*
:
*
)
CRAY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\.[^.]*$/.X/'
`
GUESS
=
sv1-cray-unicos
$CRAY_REL
;;
*
:UNICOS/mp:
*
:
*
)
CRAY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/\.[^.]*$/.X/'
`
GUESS
=
craynv-cray-unicosmp
$CRAY_REL
;;
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/ /_/'
`
GUESS
=
${
FUJITSU_PROC
}
-fujitsu-
${
FUJITSU_SYS
}${
FUJITSU_REL
}
;;
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/ /_/'
`
GUESS
=
sparc-fujitsu-
${
FUJITSU_SYS
}${
FUJITSU_REL
}
;;
i
*
86:BSD/386:
*
:
*
|
i
*
86:BSD/OS:
*
:
*
|
*
:Ascend
\
Embedded/OS:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-bsdi
$UNAME_RELEASE
;;
sparc
*
:BSD/OS:
*
:
*
)
GUESS
=
sparc-unknown-bsdi
$UNAME_RELEASE
;;
*
:BSD/OS:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-bsdi
$UNAME_RELEASE
;;
arm:FreeBSD:
*
:
*
)
UNAME_PROCESSOR
=
`
uname
-p
`
set_cc_for_build
if
echo
__ARM_PCS_VFP |
$CC_FOR_BUILD
-E
- 2>/dev/null
\
|
grep
-q
__ARM_PCS_VFP
then
FREEBSD_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[-(].*//'
`
GUESS
=
$UNAME_PROCESSOR
-unknown-freebsd
$FREEBSD_REL
-gnueabi
else
FREEBSD_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[-(].*//'
`
GUESS
=
$UNAME_PROCESSOR
-unknown-freebsd
$FREEBSD_REL
-gnueabihf
fi
;;
*
:FreeBSD:
*
:
*
)
UNAME_PROCESSOR
=
`
/usr/bin/uname
-p
`
case
$UNAME_PROCESSOR
in
amd64
)
UNAME_PROCESSOR
=
x86_64
;;
i386
)
UNAME_PROCESSOR
=
i586
;;
esac
FREEBSD_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[-(].*//'
`
GUESS
=
$UNAME_PROCESSOR
-unknown-freebsd
$FREEBSD_REL
;;
i
*
:CYGWIN
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-cygwin
;;
*
:MINGW64
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-mingw64
;;
*
:MINGW
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-mingw32
;;
*
:MSYS
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-msys
;;
i
*
:PW
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-pw32
;;
*
:SerenityOS:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-serenity
;;
*
:Interix
*
:
*
)
case
$UNAME_MACHINE
in
x86
)
GUESS
=
i586-pc-interix
$UNAME_RELEASE
;;
authenticamd
|
genuineintel
|
EM64T
)
GUESS
=
x86_64-unknown-interix
$UNAME_RELEASE
;;
IA64
)
GUESS
=
ia64-unknown-interix
$UNAME_RELEASE
;;
esac
;;
i
*
:UWIN
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-uwin
;;
amd64:CYGWIN
*
:
*
:
*
|
x86_64:CYGWIN
*
:
*
:
*
)
GUESS
=
x86_64-pc-cygwin
;;
prep
*
:SunOS:5.
*
:
*
)
SUN_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[^.]*//'
`
GUESS
=
powerpcle-unknown-solaris2
$SUN_REL
;;
*
:GNU:
*
:
*
)
# the GNU system
GNU_ARCH
=
`
echo
"
$UNAME_MACHINE
"
|
sed
-e
's,[-/].*$,,'
`
GNU_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's,/.*$,,'
`
GUESS
=
$GNU_ARCH
-unknown-
$LIBC$GNU_REL
;;
*
:GNU/
*
:
*
:
*
)
# other systems with GNU libc and userland
GNU_SYS
=
`
echo
"
$UNAME_SYSTEM
"
|
sed
's,^[^/]*/,,'
|
tr
"[:upper:]"
"[:lower:]"
`
GNU_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[-(].*//'
`
GUESS
=
$UNAME_MACHINE
-unknown-
$GNU_SYS$GNU_REL
-
$LIBC
;;
*
:Minix:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-minix
;;
aarch64:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
aarch64_be:Linux:
*
:
*
)
UNAME_MACHINE
=
aarch64_be
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
alpha:Linux:
*
:
*
)
case
`
sed
-n
'/^cpu model/s/^.*: \(.*\)/\1/p'
/proc/cpuinfo 2>/dev/null
`
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
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
arc:Linux:
*
:
*
|
arceb:Linux:
*
:
*
|
arc32:Linux:
*
:
*
|
arc64:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
arm
*
:Linux:
*
:
*
)
set_cc_for_build
if
echo
__ARM_EABI__ |
$CC_FOR_BUILD
-E
- 2>/dev/null
\
|
grep
-q
__ARM_EABI__
then
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
else
if
echo
__ARM_PCS_VFP |
$CC_FOR_BUILD
-E
- 2>/dev/null
\
|
grep
-q
__ARM_PCS_VFP
then
GUESS
=
$UNAME_MACHINE
-unknown-linux-
${
LIBC
}
eabi
else
GUESS
=
$UNAME_MACHINE
-unknown-linux-
${
LIBC
}
eabihf
fi
fi
;;
avr32
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
cris:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-axis-linux-
$LIBC
;;
crisv32:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-axis-linux-
$LIBC
;;
e2k:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
frv:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
hexagon:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
i
*
86:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-linux-
$LIBC
;;
ia64:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
k1om:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
loongarch32:Linux:
*
:
*
|
loongarch64:Linux:
*
:
*
|
loongarchx32:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
m32r
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
m68
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
mips:Linux:
*
:
*
|
mips64:Linux:
*
:
*
)
set_cc_for_build
IS_GLIBC
=
0
test
x
"
${
LIBC
}
"
=
xgnu
&&
IS_GLIBC
=
1
sed
's/^ //'
<<
EOF
> "
$dummy
.c"
#undef CPU
#undef mips
#undef mipsel
#undef mips64
#undef mips64el
#if
${
IS_GLIBC
}
&& defined(_ABI64)
LIBCABI=gnuabi64
#else
#if
${
IS_GLIBC
}
&& defined(_ABIN32)
LIBCABI=gnuabin32
#else
LIBCABI=
${
LIBC
}
#endif
#endif
#if
${
IS_GLIBC
}
&& defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa64r6
#else
#if
${
IS_GLIBC
}
&& !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa32r6
#else
#if defined(__mips64)
CPU=mips64
#else
CPU=mips
#endif
#endif
#endif
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
MIPS_ENDIAN=
#else
MIPS_ENDIAN=
#endif
#endif
EOF
cc_set_vars
=
`
$CC_FOR_BUILD
-E
"
$dummy
.c"
2>/dev/null |
grep
'^CPU\|^MIPS_ENDIAN\|^LIBCABI'
`
eval
"
$cc_set_vars
"
test
"x
$CPU
"
!=
x
&&
{
echo
"
$CPU
${
MIPS_ENDIAN
}
-unknown-linux-
$LIBCABI
"
;
exit
;
}
;;
mips64el:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
openrisc
*
:Linux:
*
:
*
)
GUESS
=
or1k-unknown-linux-
$LIBC
;;
or32:Linux:
*
:
*
|
or1k
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
padre:Linux:
*
:
*
)
GUESS
=
sparc-unknown-linux-
$LIBC
;;
parisc64:Linux:
*
:
*
|
hppa64:Linux:
*
:
*
)
GUESS
=
hppa64-unknown-linux-
$LIBC
;;
parisc:Linux:
*
:
*
|
hppa:Linux:
*
:
*
)
# Look for CPU level
case
`
grep
'^cpu[^a-z]*:'
/proc/cpuinfo 2>/dev/null |
cut
-d
' '
-f2
`
in
PA7
*
)
GUESS
=
hppa1.1-unknown-linux-
$LIBC
;;
PA8
*
)
GUESS
=
hppa2.0-unknown-linux-
$LIBC
;;
*
)
GUESS
=
hppa-unknown-linux-
$LIBC
;;
esac
;;
ppc64:Linux:
*
:
*
)
GUESS
=
powerpc64-unknown-linux-
$LIBC
;;
ppc:Linux:
*
:
*
)
GUESS
=
powerpc-unknown-linux-
$LIBC
;;
ppc64le:Linux:
*
:
*
)
GUESS
=
powerpc64le-unknown-linux-
$LIBC
;;
ppcle:Linux:
*
:
*
)
GUESS
=
powerpcle-unknown-linux-
$LIBC
;;
riscv32:Linux:
*
:
*
|
riscv32be:Linux:
*
:
*
|
riscv64:Linux:
*
:
*
|
riscv64be:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
s390:Linux:
*
:
*
|
s390x:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-ibm-linux-
$LIBC
;;
sh64
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
sh
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
sparc:Linux:
*
:
*
|
sparc64:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
tile
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
vax:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-dec-linux-
$LIBC
;;
x86_64:Linux:
*
:
*
)
set_cc_for_build
LIBCABI
=
$LIBC
if
test
"
$CC_FOR_BUILD
"
!=
no_compiler_found
;
then
if
(
echo
'#ifdef __ILP32__'
;
echo
IS_X32
;
echo
'#endif'
)
|
\
(
CCOPTS
=
""
$CC_FOR_BUILD
-E
- 2>/dev/null
)
|
\
grep
IS_X32
>
/dev/null
then
LIBCABI
=
${
LIBC
}
x32
fi
fi
GUESS
=
$UNAME_MACHINE
-pc-linux-
$LIBCABI
;;
xtensa
*
:Linux:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-linux-
$LIBC
;;
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.
GUESS
=
i386-sequent-sysv4
;;
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.
GUESS
=
$UNAME_MACHINE
-pc-sysv4
.2uw
$UNAME_VERSION
;;
i
*
86:OS/2:
*
:
*
)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
GUESS
=
$UNAME_MACHINE
-pc-os2-emx
;;
i
*
86:XTS-300:
*
:STOP
)
GUESS
=
$UNAME_MACHINE
-unknown-stop
;;
i
*
86:atheos:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-atheos
;;
i
*
86:syllable:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-syllable
;;
i
*
86:LynxOS:2.
*
:
*
|
i
*
86:LynxOS:3.[01]
*
:
*
|
i
*
86:LynxOS:4.[02]
*
:
*
)
GUESS
=
i386-unknown-lynxos
$UNAME_RELEASE
;;
i
*
86:
*
DOS:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-msdosdjgpp
;;
i
*
86:
*
:4.
*
:
*
)
UNAME_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
's/\/MP$//'
`
if
grep
Novell /usr/include/link.h
>
/dev/null 2>/dev/null
;
then
GUESS
=
$UNAME_MACHINE
-univel-sysv
$UNAME_REL
else
GUESS
=
$UNAME_MACHINE
-pc-sysv
$UNAME_REL
fi
;;
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
GUESS
=
$UNAME_MACHINE
-unknown-sysv
${
UNAME_RELEASE
}${
UNAME_SYSTEM
}${
UNAME_VERSION
}
;;
i
*
86:
*
:3.2:
*
)
if
test
-f
/usr/options/cb.name
;
then
UNAME_REL
=
`
sed
-n
's/.*Version //p'
</usr/options/cb.name
`
GUESS
=
$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
GUESS
=
$UNAME_MACHINE
-pc-sco
$UNAME_REL
else
GUESS
=
$UNAME_MACHINE
-pc-sysv32
fi
;;
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 configure will decide that
# this is a cross-build.
GUESS
=
i586-pc-msdosdjgpp
;;
Intel:Mach:3
*
:
*
)
GUESS
=
i386-pc-mach3
;;
paragon:
*
:
*
:
*
)
GUESS
=
i860-intel-osf1
;;
i860:
*
:4.
*
:
*
)
# i860-SVR4
if
grep
Stardent /usr/include/sys/uadmin.h
>
/dev/null 2>&1
;
then
GUESS
=
i860-stardent-sysv
$UNAME_RELEASE
# Stardent Vistra i860-SVR4
else
# Add other i860-SVR4 vendors below as they are discovered.
GUESS
=
i860-unknown-sysv
$UNAME_RELEASE
# Unknown i860-SVR4
fi
;;
mini
*
:CTIX:SYS
*
5:
*
)
# "miniframe"
GUESS
=
m68010-convergent-sysv
;;
mc68k:UNIX:SYSTEM5:3.51m
)
GUESS
=
m68k-convergent-sysv
;;
M680?0:D-NIX:5.3:
*
)
GUESS
=
m68k-diab-dnix
;;
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
*
:
*
)
GUESS
=
m68k-unknown-lynxos
$UNAME_RELEASE
;;
mc68030:UNIX_System_V:4.
*
:
*
)
GUESS
=
m68k-atari-sysv4
;;
TSUNAMI:LynxOS:2.
*
:
*
)
GUESS
=
sparc-unknown-lynxos
$UNAME_RELEASE
;;
rs6000:LynxOS:2.
*
:
*
)
GUESS
=
rs6000-unknown-lynxos
$UNAME_RELEASE
;;
PowerPC:LynxOS:2.
*
:
*
|
PowerPC:LynxOS:3.[01]
*
:
*
|
PowerPC:LynxOS:4.[02]
*
:
*
)
GUESS
=
powerpc-unknown-lynxos
$UNAME_RELEASE
;;
SM[BE]S:UNIX_SV:
*
:
*
)
GUESS
=
mips-dde-sysv
$UNAME_RELEASE
;;
RM
*
:ReliantUNIX-
*
:
*
:
*
)
GUESS
=
mips-sni-sysv4
;;
RM
*
:SINIX-
*
:
*
:
*
)
GUESS
=
mips-sni-sysv4
;;
*
:SINIX-
*
:
*
:
*
)
if
uname
-p
2>/dev/null
>
/dev/null
;
then
UNAME_MACHINE
=
`
(
uname
-p
)
2>/dev/null
`
GUESS
=
$UNAME_MACHINE
-sni-sysv4
else
GUESS
=
ns32k-sni-sysv
fi
;;
PENTIUM:
*
:4.0
*
:
*
)
# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
GUESS
=
i586-unisys-sysv4
;;
*
:UNIX_System_V:4
*
:FTX
*
)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
GUESS
=
hppa1.1-stratus-sysv4
;;
*
:
*
:
*
:FTX
*
)
# From seanf@swdc.stratus.com.
GUESS
=
i860-stratus-sysv4
;;
i
*
86:VOS:
*
:
*
)
# From Paul.Green@stratus.com.
GUESS
=
$UNAME_MACHINE
-stratus-vos
;;
*
:VOS:
*
:
*
)
# From Paul.Green@stratus.com.
GUESS
=
hppa1.1-stratus-vos
;;
mc68
*
:A/UX:
*
:
*
)
GUESS
=
m68k-apple-aux
$UNAME_RELEASE
;;
news
*
:NEWS-OS:6
*
:
*
)
GUESS
=
mips-sony-newsos6
;;
R[34]000:
*
System_V
*
:
*
:
*
|
R4000:UNIX_SYSV:
*
:
*
|
R
*
000:UNIX_SV:
*
:
*
)
if
test
-d
/usr/nec
;
then
GUESS
=
mips-nec-sysv
$UNAME_RELEASE
else
GUESS
=
mips-unknown-sysv
$UNAME_RELEASE
fi
;;
BeBox:BeOS:
*
:
*
)
# BeOS running on hardware made by Be, PPC only.
GUESS
=
powerpc-be-beos
;;
BeMac:BeOS:
*
:
*
)
# BeOS running on Mac or Mac clone, PPC only.
GUESS
=
powerpc-apple-beos
;;
BePC:BeOS:
*
:
*
)
# BeOS running on Intel PC compatible.
GUESS
=
i586-pc-beos
;;
BePC:Haiku:
*
:
*
)
# Haiku running on Intel PC compatible.
GUESS
=
i586-pc-haiku
;;
x86_64:Haiku:
*
:
*
)
GUESS
=
x86_64-unknown-haiku
;;
SX-4:SUPER-UX:
*
:
*
)
GUESS
=
sx4-nec-superux
$UNAME_RELEASE
;;
SX-5:SUPER-UX:
*
:
*
)
GUESS
=
sx5-nec-superux
$UNAME_RELEASE
;;
SX-6:SUPER-UX:
*
:
*
)
GUESS
=
sx6-nec-superux
$UNAME_RELEASE
;;
SX-7:SUPER-UX:
*
:
*
)
GUESS
=
sx7-nec-superux
$UNAME_RELEASE
;;
SX-8:SUPER-UX:
*
:
*
)
GUESS
=
sx8-nec-superux
$UNAME_RELEASE
;;
SX-8R:SUPER-UX:
*
:
*
)
GUESS
=
sx8r-nec-superux
$UNAME_RELEASE
;;
SX-ACE:SUPER-UX:
*
:
*
)
GUESS
=
sxace-nec-superux
$UNAME_RELEASE
;;
Power
*
:Rhapsody:
*
:
*
)
GUESS
=
powerpc-apple-rhapsody
$UNAME_RELEASE
;;
*
:Rhapsody:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-apple-rhapsody
$UNAME_RELEASE
;;
arm64:Darwin:
*
:
*
)
GUESS
=
aarch64-apple-darwin
$UNAME_RELEASE
;;
*
:Darwin:
*
:
*
)
UNAME_PROCESSOR
=
`
uname
-p
`
case
$UNAME_PROCESSOR
in
unknown
)
UNAME_PROCESSOR
=
powerpc
;;
esac
if
command
-v
xcode-select
>
/dev/null 2> /dev/null
&&
\
!
xcode-select
--print-path
>
/dev/null 2> /dev/null
;
then
# Avoid executing cc if there is no toolchain installed as
# cc will be a stub that puts up a graphical alert
# prompting the user to install developer tools.
CC_FOR_BUILD
=
no_compiler_found
else
set_cc_for_build
fi
if
test
"
$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
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if
(
echo
'#ifdef __POWERPC__'
;
echo
IS_PPC
;
echo
'#endif'
)
|
\
(
CCOPTS
=
""
$CC_FOR_BUILD
-E
- 2>/dev/null
)
|
\
grep
IS_PPC
>
/dev/null
then
UNAME_PROCESSOR
=
powerpc
fi
elif
test
"
$UNAME_PROCESSOR
"
=
i386
;
then
# uname -m returns i386 or x86_64
UNAME_PROCESSOR
=
$UNAME_MACHINE
fi
GUESS
=
$UNAME_PROCESSOR
-apple-darwin
$UNAME_RELEASE
;;
*
:procnto
*
:
*
:
*
|
*
:QNX:[0123456789]
*
:
*
)
UNAME_PROCESSOR
=
`
uname
-p
`
if
test
"
$UNAME_PROCESSOR
"
=
x86
;
then
UNAME_PROCESSOR
=
i386
UNAME_MACHINE
=
pc
fi
GUESS
=
$UNAME_PROCESSOR
-
$UNAME_MACHINE
-nto-qnx
$UNAME_RELEASE
;;
*
:QNX:
*
:4
*
)
GUESS
=
i386-pc-qnx
;;
NEO-
*
:NONSTOP_KERNEL:
*
:
*
)
GUESS
=
neo-tandem-nsk
$UNAME_RELEASE
;;
NSE-
*
:NONSTOP_KERNEL:
*
:
*
)
GUESS
=
nse-tandem-nsk
$UNAME_RELEASE
;;
NSR-
*
:NONSTOP_KERNEL:
*
:
*
)
GUESS
=
nsr-tandem-nsk
$UNAME_RELEASE
;;
NSV-
*
:NONSTOP_KERNEL:
*
:
*
)
GUESS
=
nsv-tandem-nsk
$UNAME_RELEASE
;;
NSX-
*
:NONSTOP_KERNEL:
*
:
*
)
GUESS
=
nsx-tandem-nsk
$UNAME_RELEASE
;;
*
:NonStop-UX:
*
:
*
)
GUESS
=
mips-compaq-nonstopux
;;
BS2000:POSIX
*
:
*
:
*
)
GUESS
=
bs2000-siemens-sysv
;;
DS/
*
:UNIX_System_V:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-
$UNAME_SYSTEM
-
$UNAME_RELEASE
;;
*
: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
elif
test
"x
${
cputype
-
}
"
!=
x
;
then
UNAME_MACHINE
=
$cputype
fi
GUESS
=
$UNAME_MACHINE
-unknown-plan9
;;
*
:TOPS-10:
*
:
*
)
GUESS
=
pdp10-unknown-tops10
;;
*
:TENEX:
*
:
*
)
GUESS
=
pdp10-unknown-tenex
;;
KS10:TOPS-20:
*
:
*
|
KL10:TOPS-20:
*
:
*
|
TYPE4:TOPS-20:
*
:
*
)
GUESS
=
pdp10-dec-tops20
;;
XKL-1:TOPS-20:
*
:
*
|
TYPE5:TOPS-20:
*
:
*
)
GUESS
=
pdp10-xkl-tops20
;;
*
:TOPS-20:
*
:
*
)
GUESS
=
pdp10-unknown-tops20
;;
*
:ITS:
*
:
*
)
GUESS
=
pdp10-unknown-its
;;
SEI:
*
:
*
:SEIUX
)
GUESS
=
mips-sei-seiux
$UNAME_RELEASE
;;
*
:DragonFly:
*
:
*
)
DRAGONFLY_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/[-(].*//'
`
GUESS
=
$UNAME_MACHINE
-unknown-dragonfly
$DRAGONFLY_REL
;;
*
:
*
VMS:
*
:
*
)
UNAME_MACHINE
=
`
(
uname
-p
)
2>/dev/null
`
case
$UNAME_MACHINE
in
A
*
)
GUESS
=
alpha-dec-vms
;;
I
*
)
GUESS
=
ia64-dec-vms
;;
V
*
)
GUESS
=
vax-dec-vms
;;
esac
;;
*
:XENIX:
*
:SysV
)
GUESS
=
i386-pc-xenix
;;
i
*
86:skyos:
*
:
*
)
SKYOS_REL
=
`
echo
"
$UNAME_RELEASE
"
|
sed
-e
's/ .*$//'
`
GUESS
=
$UNAME_MACHINE
-pc-skyos
$SKYOS_REL
;;
i
*
86:rdos:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-rdos
;;
i
*
86:Fiwix:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-pc-fiwix
;;
*
:AROS:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-aros
;;
x86_64:VMkernel:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-esx
;;
amd64:Isilon
\
OneFS:
*
:
*
)
GUESS
=
x86_64-unknown-onefs
;;
*
:Unleashed:
*
:
*
)
GUESS
=
$UNAME_MACHINE
-unknown-unleashed
$UNAME_RELEASE
;;
esac
# Do we have a guess based on uname results?
if
test
"x
$GUESS
"
!=
x
;
then
echo
"
$GUESS
"
exit
fi
# No uname command or uname output not recognized.
set_cc_for_build
cat
>
"
$dummy
.c"
<<
EOF
#ifdef _SEQUENT_
#include <sys/types.h>
#include <sys/utsname.h>
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include <signal.h>
#if defined(_SIZE_T_) || defined(SIGLOST)
#include <sys/utsname.h>
#endif
#endif
#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 (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
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname un;
uname (&un);
printf ("vax-dec-ultrix%s
\n
", un.release); exit (0);
#else
printf ("vax-dec-ultrix
\n
"); exit (0);
#endif
#endif
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname *un;
uname (&un);
printf ("mips-dec-ultrix%s
\n
", un.release); exit (0);
#else
printf ("mips-dec-ultrix
\n
"); exit (0);
#endif
#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
;
}
echo
"
$0
: unable to guess system type"
>
&2
case
$UNAME_MACHINE
:
$UNAME_SYSTEM
in
mips:Linux
|
mips64:Linux
)
# If we got here on MIPS GNU/Linux, output extra information.
cat
>
&2
<<
EOF
NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
the system type. Please install a C compiler and try again.
EOF
;;
esac
cat
>
&2
<<
EOF
This script (version
$timestamp
), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:
https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
EOF
our_year
=
`
echo
$timestamp
|
sed
's,-.*,,'
`
thisyear
=
`
date
+%Y
`
# shellcheck disable=SC2003
script_age
=
`
expr
"
$thisyear
"
-
"
$our_year
"
`
if
test
"
$script_age
"
-lt
3
;
then
cat
>
&2
<<
EOF
If
$0
has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
provide the necessary 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
fi
exit
1
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
audio/third_party/patches/config.sub
已删除
100644 → 0
浏览文件 @
aa2aad7f
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2022 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp
=
'2022-01-03'
# 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 <https://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").
# Please send patches to <config-patches@gnu.org>.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX. However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.
me
=
`
echo
"
$0
"
|
sed
-e
's,.*/,,'
`
usage
=
"
\
Usage:
$0
[OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
Options:
-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.sub (
$timestamp
)
Copyright 1992-2022 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
;;
*
local
*
)
# First pass through any local machine types.
echo
"
$1
"
exit
;;
*
)
break
;;
esac
done
case
$#
in
0
)
echo
"
$me
: missing argument
$help
"
>
&2
exit
1
;;
1
)
;;
*
)
echo
"
$me
: too many arguments
$help
"
>
&2
exit
1
;;
esac
# Split fields of configuration type
# shellcheck disable=SC2162
saved_IFS
=
$IFS
IFS
=
"-"
read
field1 field2 field3 field4
<<
EOF
$1
EOF
IFS
=
$saved_IFS
# Separate into logical components for further validation
case
$1
in
*
-
*
-
*
-
*
-
*
)
echo
Invalid configuration
\`
"
$1
"
\'
: more than four components
>
&2
exit
1
;;
*
-
*
-
*
-
*
)
basic_machine
=
$field1
-
$field2
basic_os
=
$field3
-
$field4
;;
*
-
*
-
*
)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os
=
$field2
-
$field3
case
$maybe_os
in
nto-qnx
*
|
linux-
*
|
uclinux-uclibc
*
\
|
uclinux-gnu
*
|
kfreebsd
*
-gnu
*
|
knetbsd
*
-gnu
*
|
netbsd
*
-gnu
*
\
|
netbsd
*
-eabi
*
|
kopensolaris
*
-gnu
*
|
cloudabi
*
-eabi
*
\
|
storm-chaos
*
|
os2-emx
*
|
rtmk-nova
*
)
basic_machine
=
$field1
basic_os
=
$maybe_os
;;
android-linux
)
basic_machine
=
$field1
-unknown
basic_os
=
linux-android
;;
*
)
basic_machine
=
$field1
-
$field2
basic_os
=
$field3
;;
esac
;;
*
-
*
)
# A lone config we happen to match not fitting any pattern
case
$field1
-
$field2
in
decstation-3100
)
basic_machine
=
mips-dec
basic_os
=
;;
*
-
*
)
# Second component is usually, but not always the OS
case
$field2
in
# Prevent following clause from handling this valid os
sun
*
os
*
)
basic_machine
=
$field1
basic_os
=
$field2
;;
zephyr
*
)
basic_machine
=
$field1
-unknown
basic_os
=
$field2
;;
# Manufacturers
dec
*
|
mips
*
|
sequent
*
|
encore
*
|
pc533
*
|
sgi
*
|
sony
*
\
|
att
*
|
7300
*
|
3300
*
|
delta
*
|
motorola
*
|
sun[234]
*
\
|
unicom
*
|
ibm
*
|
next
|
hp
|
isi
*
|
apollo
|
altos
*
\
|
convergent
*
|
ncr
*
|
news
|
32
*
|
3600
*
|
3100
*
\
|
hitachi
*
|
c[123]
*
|
convex
*
|
sun
|
crds
|
omron
*
|
dg
\
|
ultra
|
tti
*
|
harris
|
dolphin
|
highlevel
|
gould
\
|
cbm
|
ns
|
masscomp
|
apple
|
axis
|
knuth
|
cray
\
|
microblaze
*
|
sim
|
cisco
\
|
oki
|
wec
|
wrs
|
winbond
)
basic_machine
=
$field1
-
$field2
basic_os
=
;;
*
)
basic_machine
=
$field1
basic_os
=
$field2
;;
esac
;;
esac
;;
*
)
# Convert single-component short-hands not valid as part of
# multi-component configurations.
case
$field1
in
386bsd
)
basic_machine
=
i386-pc
basic_os
=
bsd
;;
a29khif
)
basic_machine
=
a29k-amd
basic_os
=
udi
;;
adobe68k
)
basic_machine
=
m68010-adobe
basic_os
=
scout
;;
alliant
)
basic_machine
=
fx80-alliant
basic_os
=
;;
altos
|
altos3068
)
basic_machine
=
m68k-altos
basic_os
=
;;
am29k
)
basic_machine
=
a29k-none
basic_os
=
bsd
;;
amdahl
)
basic_machine
=
580-amdahl
basic_os
=
sysv
;;
amiga
)
basic_machine
=
m68k-unknown
basic_os
=
;;
amigaos
|
amigados
)
basic_machine
=
m68k-unknown
basic_os
=
amigaos
;;
amigaunix
|
amix
)
basic_machine
=
m68k-unknown
basic_os
=
sysv4
;;
apollo68
)
basic_machine
=
m68k-apollo
basic_os
=
sysv
;;
apollo68bsd
)
basic_machine
=
m68k-apollo
basic_os
=
bsd
;;
aros
)
basic_machine
=
i386-pc
basic_os
=
aros
;;
aux
)
basic_machine
=
m68k-apple
basic_os
=
aux
;;
balance
)
basic_machine
=
ns32k-sequent
basic_os
=
dynix
;;
blackfin
)
basic_machine
=
bfin-unknown
basic_os
=
linux
;;
cegcc
)
basic_machine
=
arm-unknown
basic_os
=
cegcc
;;
convex-c1
)
basic_machine
=
c1-convex
basic_os
=
bsd
;;
convex-c2
)
basic_machine
=
c2-convex
basic_os
=
bsd
;;
convex-c32
)
basic_machine
=
c32-convex
basic_os
=
bsd
;;
convex-c34
)
basic_machine
=
c34-convex
basic_os
=
bsd
;;
convex-c38
)
basic_machine
=
c38-convex
basic_os
=
bsd
;;
cray
)
basic_machine
=
j90-cray
basic_os
=
unicos
;;
crds
|
unos
)
basic_machine
=
m68k-crds
basic_os
=
;;
da30
)
basic_machine
=
m68k-da30
basic_os
=
;;
decstation
|
pmax
|
pmin
|
dec3100
|
decstatn
)
basic_machine
=
mips-dec
basic_os
=
;;
delta88
)
basic_machine
=
m88k-motorola
basic_os
=
sysv3
;;
dicos
)
basic_machine
=
i686-pc
basic_os
=
dicos
;;
djgpp
)
basic_machine
=
i586-pc
basic_os
=
msdosdjgpp
;;
ebmon29k
)
basic_machine
=
a29k-amd
basic_os
=
ebmon
;;
es1800
|
OSE68k
|
ose68k
|
ose
|
OSE
)
basic_machine
=
m68k-ericsson
basic_os
=
ose
;;
gmicro
)
basic_machine
=
tron-gmicro
basic_os
=
sysv
;;
go32
)
basic_machine
=
i386-pc
basic_os
=
go32
;;
h8300hms
)
basic_machine
=
h8300-hitachi
basic_os
=
hms
;;
h8300xray
)
basic_machine
=
h8300-hitachi
basic_os
=
xray
;;
h8500hms
)
basic_machine
=
h8500-hitachi
basic_os
=
hms
;;
harris
)
basic_machine
=
m88k-harris
basic_os
=
sysv3
;;
hp300
|
hp300hpux
)
basic_machine
=
m68k-hp
basic_os
=
hpux
;;
hp300bsd
)
basic_machine
=
m68k-hp
basic_os
=
bsd
;;
hppaosf
)
basic_machine
=
hppa1.1-hp
basic_os
=
osf
;;
hppro
)
basic_machine
=
hppa1.1-hp
basic_os
=
proelf
;;
i386mach
)
basic_machine
=
i386-mach
basic_os
=
mach
;;
isi68
|
isi
)
basic_machine
=
m68k-isi
basic_os
=
sysv
;;
m68knommu
)
basic_machine
=
m68k-unknown
basic_os
=
linux
;;
magnum
|
m3230
)
basic_machine
=
mips-mips
basic_os
=
sysv
;;
merlin
)
basic_machine
=
ns32k-utek
basic_os
=
sysv
;;
mingw64
)
basic_machine
=
x86_64-pc
basic_os
=
mingw64
;;
mingw32
)
basic_machine
=
i686-pc
basic_os
=
mingw32
;;
mingw32ce
)
basic_machine
=
arm-unknown
basic_os
=
mingw32ce
;;
monitor
)
basic_machine
=
m68k-rom68k
basic_os
=
coff
;;
morphos
)
basic_machine
=
powerpc-unknown
basic_os
=
morphos
;;
moxiebox
)
basic_machine
=
moxie-unknown
basic_os
=
moxiebox
;;
msdos
)
basic_machine
=
i386-pc
basic_os
=
msdos
;;
msys
)
basic_machine
=
i686-pc
basic_os
=
msys
;;
mvs
)
basic_machine
=
i370-ibm
basic_os
=
mvs
;;
nacl
)
basic_machine
=
le32-unknown
basic_os
=
nacl
;;
ncr3000
)
basic_machine
=
i486-ncr
basic_os
=
sysv4
;;
netbsd386
)
basic_machine
=
i386-pc
basic_os
=
netbsd
;;
netwinder
)
basic_machine
=
armv4l-rebel
basic_os
=
linux
;;
news
|
news700
|
news800
|
news900
)
basic_machine
=
m68k-sony
basic_os
=
newsos
;;
news1000
)
basic_machine
=
m68030-sony
basic_os
=
newsos
;;
necv70
)
basic_machine
=
v70-nec
basic_os
=
sysv
;;
nh3000
)
basic_machine
=
m68k-harris
basic_os
=
cxux
;;
nh[45]000
)
basic_machine
=
m88k-harris
basic_os
=
cxux
;;
nindy960
)
basic_machine
=
i960-intel
basic_os
=
nindy
;;
mon960
)
basic_machine
=
i960-intel
basic_os
=
mon960
;;
nonstopux
)
basic_machine
=
mips-compaq
basic_os
=
nonstopux
;;
os400
)
basic_machine
=
powerpc-ibm
basic_os
=
os400
;;
OSE68000
|
ose68000
)
basic_machine
=
m68000-ericsson
basic_os
=
ose
;;
os68k
)
basic_machine
=
m68k-none
basic_os
=
os68k
;;
paragon
)
basic_machine
=
i860-intel
basic_os
=
osf
;;
parisc
)
basic_machine
=
hppa-unknown
basic_os
=
linux
;;
psp
)
basic_machine
=
mipsallegrexel-sony
basic_os
=
psp
;;
pw32
)
basic_machine
=
i586-unknown
basic_os
=
pw32
;;
rdos
|
rdos64
)
basic_machine
=
x86_64-pc
basic_os
=
rdos
;;
rdos32
)
basic_machine
=
i386-pc
basic_os
=
rdos
;;
rom68k
)
basic_machine
=
m68k-rom68k
basic_os
=
coff
;;
sa29200
)
basic_machine
=
a29k-amd
basic_os
=
udi
;;
sei
)
basic_machine
=
mips-sei
basic_os
=
seiux
;;
sequent
)
basic_machine
=
i386-sequent
basic_os
=
;;
sps7
)
basic_machine
=
m68k-bull
basic_os
=
sysv2
;;
st2000
)
basic_machine
=
m68k-tandem
basic_os
=
;;
stratus
)
basic_machine
=
i860-stratus
basic_os
=
sysv4
;;
sun2
)
basic_machine
=
m68000-sun
basic_os
=
;;
sun2os3
)
basic_machine
=
m68000-sun
basic_os
=
sunos3
;;
sun2os4
)
basic_machine
=
m68000-sun
basic_os
=
sunos4
;;
sun3
)
basic_machine
=
m68k-sun
basic_os
=
;;
sun3os3
)
basic_machine
=
m68k-sun
basic_os
=
sunos3
;;
sun3os4
)
basic_machine
=
m68k-sun
basic_os
=
sunos4
;;
sun4
)
basic_machine
=
sparc-sun
basic_os
=
;;
sun4os3
)
basic_machine
=
sparc-sun
basic_os
=
sunos3
;;
sun4os4
)
basic_machine
=
sparc-sun
basic_os
=
sunos4
;;
sun4sol2
)
basic_machine
=
sparc-sun
basic_os
=
solaris2
;;
sun386
|
sun386i
|
roadrunner
)
basic_machine
=
i386-sun
basic_os
=
;;
sv1
)
basic_machine
=
sv1-cray
basic_os
=
unicos
;;
symmetry
)
basic_machine
=
i386-sequent
basic_os
=
dynix
;;
t3e
)
basic_machine
=
alphaev5-cray
basic_os
=
unicos
;;
t90
)
basic_machine
=
t90-cray
basic_os
=
unicos
;;
toad1
)
basic_machine
=
pdp10-xkl
basic_os
=
tops20
;;
tpf
)
basic_machine
=
s390x-ibm
basic_os
=
tpf
;;
udi29k
)
basic_machine
=
a29k-amd
basic_os
=
udi
;;
ultra3
)
basic_machine
=
a29k-nyu
basic_os
=
sym1
;;
v810
|
necv810
)
basic_machine
=
v810-nec
basic_os
=
none
;;
vaxv
)
basic_machine
=
vax-dec
basic_os
=
sysv
;;
vms
)
basic_machine
=
vax-dec
basic_os
=
vms
;;
vsta
)
basic_machine
=
i386-pc
basic_os
=
vsta
;;
vxworks960
)
basic_machine
=
i960-wrs
basic_os
=
vxworks
;;
vxworks68
)
basic_machine
=
m68k-wrs
basic_os
=
vxworks
;;
vxworks29k
)
basic_machine
=
a29k-wrs
basic_os
=
vxworks
;;
xbox
)
basic_machine
=
i686-pc
basic_os
=
mingw32
;;
ymp
)
basic_machine
=
ymp-cray
basic_os
=
unicos
;;
*
)
basic_machine
=
$1
basic_os
=
;;
esac
;;
esac
# Decode 1-component or ad-hoc basic machines
case
$basic_machine
in
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k
)
cpu
=
hppa1.1
vendor
=
winbond
;;
op50n
)
cpu
=
hppa1.1
vendor
=
oki
;;
op60c
)
cpu
=
hppa1.1
vendor
=
oki
;;
ibm
*
)
cpu
=
i370
vendor
=
ibm
;;
orion105
)
cpu
=
clipper
vendor
=
highlevel
;;
mac
|
mpw
|
mac-mpw
)
cpu
=
m68k
vendor
=
apple
;;
pmac
|
pmac-mpw
)
cpu
=
powerpc
vendor
=
apple
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
3b1
|
7300
|
7300-att
|
att-7300
|
pc7300
|
safari
|
unixpc
)
cpu
=
m68000
vendor
=
att
;;
3b
*
)
cpu
=
we32k
vendor
=
att
;;
bluegene
*
)
cpu
=
powerpc
vendor
=
ibm
basic_os
=
cnk
;;
decsystem10
*
|
dec10
*
)
cpu
=
pdp10
vendor
=
dec
basic_os
=
tops10
;;
decsystem20
*
|
dec20
*
)
cpu
=
pdp10
vendor
=
dec
basic_os
=
tops20
;;
delta
|
3300
|
motorola-3300
|
motorola-delta
\
|
3300-motorola
|
delta-motorola
)
cpu
=
m68k
vendor
=
motorola
;;
dpx2
*
)
cpu
=
m68k
vendor
=
bull
basic_os
=
sysv3
;;
encore
|
umax
|
mmax
)
cpu
=
ns32k
vendor
=
encore
;;
elxsi
)
cpu
=
elxsi
vendor
=
elxsi
basic_os
=
${
basic_os
:-
bsd
}
;;
fx2800
)
cpu
=
i860
vendor
=
alliant
;;
genix
)
cpu
=
ns32k
vendor
=
ns
;;
h3050r
*
|
hiux
*
)
cpu
=
hppa1.1
vendor
=
hitachi
basic_os
=
hiuxwe2
;;
hp3k9[0-9][0-9]
|
hp9[0-9][0-9]
)
cpu
=
hppa1.0
vendor
=
hp
;;
hp9k2[0-9][0-9]
|
hp9k31[0-9]
)
cpu
=
m68000
vendor
=
hp
;;
hp9k3[2-9][0-9]
)
cpu
=
m68k
vendor
=
hp
;;
hp9k6[0-9][0-9]
|
hp6[0-9][0-9]
)
cpu
=
hppa1.0
vendor
=
hp
;;
hp9k7[0-79][0-9]
|
hp7[0-79][0-9]
)
cpu
=
hppa1.1
vendor
=
hp
;;
hp9k78[0-9]
|
hp78[0-9]
)
# FIXME: really hppa2.0-hp
cpu
=
hppa1.1
vendor
=
hp
;;
hp9k8[67]1
|
hp8[67]1
|
hp9k80[24]
|
hp80[24]
|
hp9k8[78]9
|
hp8[78]9
|
hp9k893
|
hp893
)
# FIXME: really hppa2.0-hp
cpu
=
hppa1.1
vendor
=
hp
;;
hp9k8[0-9][13679]
|
hp8[0-9][13679]
)
cpu
=
hppa1.1
vendor
=
hp
;;
hp9k8[0-9][0-9]
|
hp8[0-9][0-9]
)
cpu
=
hppa1.0
vendor
=
hp
;;
i
*
86v32
)
cpu
=
`
echo
"
$1
"
|
sed
-e
's/86.*/86/'
`
vendor
=
pc
basic_os
=
sysv32
;;
i
*
86v4
*
)
cpu
=
`
echo
"
$1
"
|
sed
-e
's/86.*/86/'
`
vendor
=
pc
basic_os
=
sysv4
;;
i
*
86v
)
cpu
=
`
echo
"
$1
"
|
sed
-e
's/86.*/86/'
`
vendor
=
pc
basic_os
=
sysv
;;
i
*
86sol2
)
cpu
=
`
echo
"
$1
"
|
sed
-e
's/86.*/86/'
`
vendor
=
pc
basic_os
=
solaris2
;;
j90
|
j90-cray
)
cpu
=
j90
vendor
=
cray
basic_os
=
${
basic_os
:-
unicos
}
;;
iris
|
iris4d
)
cpu
=
mips
vendor
=
sgi
case
$basic_os
in
irix
*
)
;;
*
)
basic_os
=
irix4
;;
esac
;;
miniframe
)
cpu
=
m68000
vendor
=
convergent
;;
*
mint
|
mint[0-9]
*
|
*
MiNT
|
*
MiNT[0-9]
*
)
cpu
=
m68k
vendor
=
atari
basic_os
=
mint
;;
news-3600
|
risc-news
)
cpu
=
mips
vendor
=
sony
basic_os
=
newsos
;;
next
|
m
*
-next
)
cpu
=
m68k
vendor
=
next
case
$basic_os
in
openstep
*
)
;;
nextstep
*
)
;;
ns2
*
)
basic_os
=
nextstep2
;;
*
)
basic_os
=
nextstep3
;;
esac
;;
np1
)
cpu
=
np1
vendor
=
gould
;;
op50n-
*
|
op60c-
*
)
cpu
=
hppa1.1
vendor
=
oki
basic_os
=
proelf
;;
pa-hitachi
)
cpu
=
hppa1.1
vendor
=
hitachi
basic_os
=
hiuxwe2
;;
pbd
)
cpu
=
sparc
vendor
=
tti
;;
pbb
)
cpu
=
m68k
vendor
=
tti
;;
pc532
)
cpu
=
ns32k
vendor
=
pc532
;;
pn
)
cpu
=
pn
vendor
=
gould
;;
power
)
cpu
=
power
vendor
=
ibm
;;
ps2
)
cpu
=
i386
vendor
=
ibm
;;
rm
[
46]00
)
cpu
=
mips
vendor
=
siemens
;;
rtpc
|
rtpc-
*
)
cpu
=
romp
vendor
=
ibm
;;
sde
)
cpu
=
mipsisa32
vendor
=
sde
basic_os
=
${
basic_os
:-
elf
}
;;
simso-wrs
)
cpu
=
sparclite
vendor
=
wrs
basic_os
=
vxworks
;;
tower
|
tower-32
)
cpu
=
m68k
vendor
=
ncr
;;
vpp
*
|
vx|vx-
*
)
cpu
=
f301
vendor
=
fujitsu
;;
w65
)
cpu
=
w65
vendor
=
wdc
;;
w89k-
*
)
cpu
=
hppa1.1
vendor
=
winbond
basic_os
=
proelf
;;
none
)
cpu
=
none
vendor
=
none
;;
leon|leon[3-9]
)
cpu
=
sparc
vendor
=
$basic_machine
;;
leon-
*
|
leon[3-9]-
*
)
cpu
=
sparc
vendor
=
`
echo
"
$basic_machine
"
|
sed
's/-.*//'
`
;;
*
-
*
)
# shellcheck disable=SC2162
saved_IFS
=
$IFS
IFS
=
"-"
read
cpu vendor
<<
EOF
$basic_machine
EOF
IFS
=
$saved_IFS
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i
*
86
|
x86_64
)
cpu
=
$basic_machine
vendor
=
pc
;;
# These rules are duplicated from below for sake of the special case above;
# i.e. things that normalized to x86 arches should also default to "pc"
pc98
)
cpu
=
i386
vendor
=
pc
;;
x64
|
amd64
)
cpu
=
x86_64
vendor
=
pc
;;
# Recognize the basic CPU types without company name.
*
)
cpu
=
$basic_machine
vendor
=
unknown
;;
esac
unset
-v
basic_machine
# Decode basic machines in the full and proper CPU-Company form.
case
$cpu
-
$vendor
in
# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
# some cases the only manufacturer, in others, it is the most popular.
craynv-unknown
)
vendor
=
cray
basic_os
=
${
basic_os
:-
unicosmp
}
;;
c90-unknown
|
c90-cray
)
vendor
=
cray
basic_os
=
${
Basic_os
:-
unicos
}
;;
fx80-unknown
)
vendor
=
alliant
;;
romp-unknown
)
vendor
=
ibm
;;
mmix-unknown
)
vendor
=
knuth
;;
microblaze-unknown
|
microblazeel-unknown
)
vendor
=
xilinx
;;
rs6000-unknown
)
vendor
=
ibm
;;
vax-unknown
)
vendor
=
dec
;;
pdp11-unknown
)
vendor
=
dec
;;
we32k-unknown
)
vendor
=
att
;;
cydra-unknown
)
vendor
=
cydrome
;;
i370-ibm
*
)
vendor
=
ibm
;;
orion-unknown
)
vendor
=
highlevel
;;
xps-unknown
|
xps100-unknown
)
cpu
=
xps100
vendor
=
honeywell
;;
# Here we normalize CPU types with a missing or matching vendor
armh-unknown
|
armh-alt
)
cpu
=
armv7l
vendor
=
alt
basic_os
=
${
basic_os
:-
linux
-gnueabihf
}
;;
dpx20-unknown
|
dpx20-bull
)
cpu
=
rs6000
vendor
=
bull
basic_os
=
${
basic_os
:-
bosx
}
;;
# Here we normalize CPU types irrespective of the vendor
amd64-
*
)
cpu
=
x86_64
;;
blackfin-
*
)
cpu
=
bfin
basic_os
=
linux
;;
c54x-
*
)
cpu
=
tic54x
;;
c55x-
*
)
cpu
=
tic55x
;;
c6x-
*
)
cpu
=
tic6x
;;
e500v[12]-
*
)
cpu
=
powerpc
basic_os
=
${
basic_os
}
"spe"
;;
mips3
*
-
*
)
cpu
=
mips64
;;
ms1-
*
)
cpu
=
mt
;;
m68knommu-
*
)
cpu
=
m68k
basic_os
=
linux
;;
m9s12z-
*
|
m68hcs12z-
*
|
hcs12z-
*
|
s12z-
*
)
cpu
=
s12z
;;
openrisc-
*
)
cpu
=
or32
;;
parisc-
*
)
cpu
=
hppa
basic_os
=
linux
;;
pentium-
*
|
p5-
*
|
k5-
*
|
k6-
*
|
nexgen-
*
|
viac3-
*
)
cpu
=
i586
;;
pentiumpro-
*
|
p6-
*
|
6x86-
*
|
athlon-
*
|
athalon_
*
-
*
)
cpu
=
i686
;;
pentiumii-
*
|
pentium2-
*
|
pentiumiii-
*
|
pentium3-
*
)
cpu
=
i686
;;
pentium4-
*
)
cpu
=
i786
;;
pc98-
*
)
cpu
=
i386
;;
ppc-
*
|
ppcbe-
*
)
cpu
=
powerpc
;;
ppcle-
*
|
powerpclittle-
*
)
cpu
=
powerpcle
;;
ppc64-
*
)
cpu
=
powerpc64
;;
ppc64le-
*
|
powerpc64little-
*
)
cpu
=
powerpc64le
;;
sb1-
*
)
cpu
=
mipsisa64sb1
;;
sb1el-
*
)
cpu
=
mipsisa64sb1el
;;
sh5e[lb]-
*
)
cpu
=
`
echo
"
$cpu
"
|
sed
's/^\(sh.\)e\(.\)$/\1\2e/'
`
;;
spur-
*
)
cpu
=
spur
;;
strongarm-
*
|
thumb-
*
)
cpu
=
arm
;;
tx39-
*
)
cpu
=
mipstx39
;;
tx39el-
*
)
cpu
=
mipstx39el
;;
x64-
*
)
cpu
=
x86_64
;;
xscale-
*
|
xscalee[bl]-
*
)
cpu
=
`
echo
"
$cpu
"
|
sed
's/^xscale/arm/'
`
;;
arm64-
*
|
aarch64le-
*
)
cpu
=
aarch64
;;
# Recognize the canonical CPU Types that limit and/or modify the
# company names they are paired with.
cr16-
*
)
basic_os
=
${
basic_os
:-
elf
}
;;
crisv32-
*
|
etraxfs
*
-
*
)
cpu
=
crisv32
vendor
=
axis
;;
cris-
*
|
etrax
*
-
*
)
cpu
=
cris
vendor
=
axis
;;
crx-
*
)
basic_os
=
${
basic_os
:-
elf
}
;;
neo-tandem
)
cpu
=
neo
vendor
=
tandem
;;
nse-tandem
)
cpu
=
nse
vendor
=
tandem
;;
nsr-tandem
)
cpu
=
nsr
vendor
=
tandem
;;
nsv-tandem
)
cpu
=
nsv
vendor
=
tandem
;;
nsx-tandem
)
cpu
=
nsx
vendor
=
tandem
;;
mipsallegrexel-sony
)
cpu
=
mipsallegrexel
vendor
=
sony
;;
tile
*
-
*
)
basic_os
=
${
basic_os
:-
linux
-gnu
}
;;
*
)
# Recognize the canonical CPU types that are allowed with any
# company name.
case
$cpu
in
1750a
|
580
\
|
a29k
\
|
aarch64
|
aarch64_be
\
|
abacus
\
|
alpha
|
alphaev[4-8]
|
alphaev56
|
alphaev6[78]
\
|
alpha64
|
alpha64ev[4-8]
|
alpha64ev56
|
alpha64ev6[78]
\
|
alphapca5[67]
|
alpha64pca5[67]
\
|
am33_2.0
\
|
amdgcn
\
|
arc
|
arceb
|
arc32
|
arc64
\
|
arm
|
arm[lb]e
|
arme[lb]
|
armv
*
\
|
avr
|
avr32
\
|
asmjs
\
|
ba
\
|
be32
|
be64
\
|
bfin
|
bpf
|
bs2000
\
|
c[123]
*
|
c30
|
[
cjt]90
|
c4x
\
|
c8051
|
clipper
|
craynv
|
csky
|
cydra
\
|
d10v
|
d30v
|
dlx
|
dsp16xx
\
|
e2k
|
elxsi
|
epiphany
\
|
f30[01]
|
f700
|
fido
|
fr30
|
frv
|
ft32
|
fx80
\
|
h8300
|
h8500
\
|
hppa
|
hppa1.[01]
|
hppa2.0
|
hppa2.0[nw]
|
hppa64
\
|
hexagon
\
|
i370
|
i
*
86
|
i860
|
i960
|
ia16
|
ia64
\
|
ip2k
|
iq2000
\
|
k1om
\
|
le32
|
le64
\
|
lm32
\
|
loongarch32
|
loongarch64
|
loongarchx32
\
|
m32c
|
m32r
|
m32rle
\
|
m5200
|
m68000
|
m680[012346]0
|
m68360
|
m683?2
|
m68k
\
|
m6811
|
m68hc11
|
m6812
|
m68hc12
|
m68hcs12x
\
|
m88110
|
m88k
|
maxq
|
mb
|
mcore
|
mep
|
metag
\
|
microblaze
|
microblazeel
\
|
mips
|
mipsbe
|
mipseb
|
mipsel
|
mipsle
\
|
mips16
\
|
mips64
|
mips64eb
|
mips64el
\
|
mips64octeon
|
mips64octeonel
\
|
mips64orion
|
mips64orionel
\
|
mips64r5900
|
mips64r5900el
\
|
mips64vr
|
mips64vrel
\
|
mips64vr4100
|
mips64vr4100el
\
|
mips64vr4300
|
mips64vr4300el
\
|
mips64vr5000
|
mips64vr5000el
\
|
mips64vr5900
|
mips64vr5900el
\
|
mipsisa32
|
mipsisa32el
\
|
mipsisa32r2
|
mipsisa32r2el
\
|
mipsisa32r3
|
mipsisa32r3el
\
|
mipsisa32r5
|
mipsisa32r5el
\
|
mipsisa32r6
|
mipsisa32r6el
\
|
mipsisa64
|
mipsisa64el
\
|
mipsisa64r2
|
mipsisa64r2el
\
|
mipsisa64r3
|
mipsisa64r3el
\
|
mipsisa64r5
|
mipsisa64r5el
\
|
mipsisa64r6
|
mipsisa64r6el
\
|
mipsisa64sb1
|
mipsisa64sb1el
\
|
mipsisa64sr71k
|
mipsisa64sr71kel
\
|
mipsr5900
|
mipsr5900el
\
|
mipstx39
|
mipstx39el
\
|
mmix
\
|
mn10200
|
mn10300
\
|
moxie
\
|
mt
\
|
msp430
\
|
nds32
|
nds32le
|
nds32be
\
|
nfp
\
|
nios
|
nios2
|
nios2eb
|
nios2el
\
|
none
|
np1
|
ns16k
|
ns32k
|
nvptx
\
|
open8
\
|
or1k
*
\
|
or32
\
|
orion
\
|
picochip
\
|
pdp10
|
pdp11
|
pj
|
pjl
|
pn
|
power
\
|
powerpc
|
powerpc64
|
powerpc64le
|
powerpcle
|
powerpcspe
\
|
pru
\
|
pyramid
\
|
riscv
|
riscv32
|
riscv32be
|
riscv64
|
riscv64be
\
|
rl78
|
romp
|
rs6000
|
rx
\
|
s390
|
s390x
\
|
score
\
|
sh
|
shl
\
|
sh[1234]
|
sh[24]a
|
sh[24]ae[lb]
|
sh[23]e
|
she[lb]
|
sh[lb]e
\
|
sh[1234]e[lb]
|
sh[12345][lb]e
|
sh[23]ele
|
sh64
|
sh64le
\
|
sparc
|
sparc64
|
sparc64b
|
sparc64v
|
sparc86x
|
sparclet
\
|
sparclite
\
|
sparcv8
|
sparcv9
|
sparcv9b
|
sparcv9v
|
sv1
|
sx
*
\
|
spu
\
|
tahoe
\
|
thumbv7
*
\
|
tic30
|
tic4x
|
tic54x
|
tic55x
|
tic6x
|
tic80
\
|
tron
\
|
ubicom32
\
|
v70
|
v850
|
v850e
|
v850e1
|
v850es
|
v850e2
|
v850e2v3
\
|
vax
\
|
visium
\
|
w65
\
|
wasm32
|
wasm64
\
|
we32k
\
|
x86
|
x86_64
|
xc16x
|
xgate
|
xps100
\
|
xstormy16
|
xtensa
*
\
|
ymp
\
|
z8k
|
z80
)
;;
*
)
echo
Invalid configuration
\`
"
$1
"
\'
: machine
\`
"
$cpu
-
$vendor
"
\'
not recognized 1>&2
exit
1
;;
esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case
$vendor
in
digital
*
)
vendor
=
dec
;;
commodore
*
)
vendor
=
cbm
;;
*
)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if
test
x
$basic_os
!=
x
then
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# set os.
case
$basic_os
in
gnu/linux
*
)
kernel
=
linux
os
=
`
echo
"
$basic_os
"
|
sed
-e
's|gnu/linux|gnu|'
`
;;
os2-emx
)
kernel
=
os2
os
=
`
echo
"
$basic_os
"
|
sed
-e
's|os2-emx|emx|'
`
;;
nto-qnx
*
)
kernel
=
nto
os
=
`
echo
"
$basic_os
"
|
sed
-e
's|nto-qnx|qnx|'
`
;;
*
-
*
)
# shellcheck disable=SC2162
saved_IFS
=
$IFS
IFS
=
"-"
read
kernel os
<<
EOF
$basic_os
EOF
IFS
=
$saved_IFS
;;
# Default OS when just kernel was specified
nto
*
)
kernel
=
nto
os
=
`
echo
"
$basic_os
"
|
sed
-e
's|nto|qnx|'
`
;;
linux
*
)
kernel
=
linux
os
=
`
echo
"
$basic_os
"
|
sed
-e
's|linux|gnu|'
`
;;
*
)
kernel
=
os
=
$basic_os
;;
esac
# Now, normalize the OS (knowing we just have one component, it's not a kernel,
# etc.)
case
$os
in
# First match some system type aliases that might get confused
# with valid system types.
# solaris* is a basic system type, with this one exception.
auroraux
)
os
=
auroraux
;;
bluegene
*
)
os
=
cnk
;;
solaris1
|
solaris1.
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's|solaris1|sunos4|'
`
;;
solaris
)
os
=
solaris2
;;
unixware
*
)
os
=
sysv4.2uw
;;
# es1800 is here to avoid being matched by es* (a different OS)
es1800
*
)
os
=
ose
;;
# Some version numbers need modification
chorusos
*
)
os
=
chorusos
;;
isc
)
os
=
isc2.2
;;
sco6
)
os
=
sco5v6
;;
sco5
)
os
=
sco3.2v5
;;
sco4
)
os
=
sco3.2v4
;;
sco3.2.[4-9]
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's/sco3.2./sco3.2v/'
`
;;
sco
*
v
*
|
scout
)
# Don't match below
;;
sco
*
)
os
=
sco3.2v2
;;
psos
*
)
os
=
psos
;;
qnx
*
)
os
=
qnx
;;
hiux
*
)
os
=
hiuxwe2
;;
lynx
*
178
)
os
=
lynxos178
;;
lynx
*
5
)
os
=
lynxos5
;;
lynxos
*
)
# don't get caught up in next wildcard
;;
lynx
*
)
os
=
lynxos
;;
mac[0-9]
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's|mac|macos|'
`
;;
opened
*
)
os
=
openedition
;;
os400
*
)
os
=
os400
;;
sunos5
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's|sunos5|solaris2|'
`
;;
sunos6
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's|sunos6|solaris3|'
`
;;
wince
*
)
os
=
wince
;;
utek
*
)
os
=
bsd
;;
dynix
*
)
os
=
bsd
;;
acis
*
)
os
=
aos
;;
atheos
*
)
os
=
atheos
;;
syllable
*
)
os
=
syllable
;;
386bsd
)
os
=
bsd
;;
ctix
*
|
uts
*
)
os
=
sysv
;;
nova
*
)
os
=
rtmk-nova
;;
ns2
)
os
=
nextstep2
;;
# Preserve the version number of sinix5.
sinix5.
*
)
os
=
`
echo
"
$os
"
|
sed
-e
's|sinix|sysv|'
`
;;
sinix
*
)
os
=
sysv4
;;
tpf
*
)
os
=
tpf
;;
triton
*
)
os
=
sysv3
;;
oss
*
)
os
=
sysv3
;;
svr4
*
)
os
=
sysv4
;;
svr3
)
os
=
sysv3
;;
sysvr4
)
os
=
sysv4
;;
ose
*
)
os
=
ose
;;
*
mint
|
mint[0-9]
*
|
*
MiNT
|
MiNT[0-9]
*
)
os
=
mint
;;
dicos
*
)
os
=
dicos
;;
pikeos
*
)
# Until real need of OS specific support for
# particular features comes up, bare metal
# configurations are quite functional.
case
$cpu
in
arm
*
)
os
=
eabi
;;
*
)
os
=
elf
;;
esac
;;
*
)
# No normalization, but not necessarily accepted, that comes below.
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
kernel
=
case
$cpu
-
$vendor
in
score-
*
)
os
=
elf
;;
spu-
*
)
os
=
elf
;;
*
-acorn
)
os
=
riscix1.2
;;
arm
*
-rebel
)
kernel
=
linux
os
=
gnu
;;
arm
*
-semi
)
os
=
aout
;;
c4x-
*
|
tic4x-
*
)
os
=
coff
;;
c8051-
*
)
os
=
elf
;;
clipper-intergraph
)
os
=
clix
;;
hexagon-
*
)
os
=
elf
;;
tic54x-
*
)
os
=
coff
;;
tic55x-
*
)
os
=
coff
;;
tic6x-
*
)
os
=
coff
;;
# This must come before the *-dec entry.
pdp10-
*
)
os
=
tops20
;;
pdp11-
*
)
os
=
none
;;
*
-dec
|
vax-
*
)
os
=
ultrix4.2
;;
m68
*
-apollo
)
os
=
domain
;;
i386-sun
)
os
=
sunos4.0.2
;;
m68000-sun
)
os
=
sunos3
;;
m68
*
-cisco
)
os
=
aout
;;
mep-
*
)
os
=
elf
;;
mips
*
-cisco
)
os
=
elf
;;
mips
*
-
*
)
os
=
elf
;;
or32-
*
)
os
=
coff
;;
*
-tti
)
# must be before sparc entry or we get the wrong os.
os
=
sysv3
;;
sparc-
*
|
*
-sun
)
os
=
sunos4.1.1
;;
pru-
*
)
os
=
elf
;;
*
-be
)
os
=
beos
;;
*
-ibm
)
os
=
aix
;;
*
-knuth
)
os
=
mmixware
;;
*
-wec
)
os
=
proelf
;;
*
-winbond
)
os
=
proelf
;;
*
-oki
)
os
=
proelf
;;
*
-hp
)
os
=
hpux
;;
*
-hitachi
)
os
=
hiux
;;
i860-
*
|
*
-att
|
*
-ncr
|
*
-altos
|
*
-motorola
|
*
-convergent
)
os
=
sysv
;;
*
-cbm
)
os
=
amigaos
;;
*
-dg
)
os
=
dgux
;;
*
-dolphin
)
os
=
sysv3
;;
m68k-ccur
)
os
=
rtu
;;
m88k-omron
*
)
os
=
luna
;;
*
-next
)
os
=
nextstep
;;
*
-sequent
)
os
=
ptx
;;
*
-crds
)
os
=
unos
;;
*
-ns
)
os
=
genix
;;
i370-
*
)
os
=
mvs
;;
*
-gould
)
os
=
sysv
;;
*
-highlevel
)
os
=
bsd
;;
*
-encore
)
os
=
bsd
;;
*
-sgi
)
os
=
irix
;;
*
-siemens
)
os
=
sysv4
;;
*
-masscomp
)
os
=
rtu
;;
f30[01]-fujitsu
|
f700-fujitsu
)
os
=
uxpv
;;
*
-rom68k
)
os
=
coff
;;
*
-
*
bug
)
os
=
coff
;;
*
-apple
)
os
=
macos
;;
*
-atari
*
)
os
=
mint
;;
*
-wrs
)
os
=
vxworks
;;
*
)
os
=
none
;;
esac
fi
# Now, validate our (potentially fixed-up) OS.
case
$os
in
# Sometimes we do "kernel-libc", so those need to count as OSes.
musl
*
|
newlib
*
|
relibc
*
|
uclibc
*
)
;;
# Likewise for "kernel-abi"
eabi
*
|
gnueabi
*
)
;;
# VxWorks passes extra cpu info in the 4th filed.
simlinux
|
simwindows
|
spe
)
;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
gnu
*
|
android
*
|
bsd
*
|
mach
*
|
minix
*
|
genix
*
|
ultrix
*
|
irix
*
\
|
*
vms
*
|
esix
*
|
aix
*
|
cnk
*
|
sunos
|
sunos[34]
*
\
|
hpux
*
|
unos
*
|
osf
*
|
luna
*
|
dgux
*
|
auroraux
*
|
solaris
*
\
|
sym
*
|
plan9
*
|
psp
*
|
sim
*
|
xray
*
|
os68k
*
|
v88r
*
\
|
hiux
*
|
abug
|
nacl
*
|
netware
*
|
windows
*
\
|
os9
*
|
macos
*
|
osx
*
|
ios
*
\
|
mpw
*
|
magic
*
|
mmixware
*
|
mon960
*
|
lnews
*
\
|
amigaos
*
|
amigados
*
|
msdos
*
|
newsos
*
|
unicos
*
|
aof
*
\
|
aos
*
|
aros
*
|
cloudabi
*
|
sortix
*
|
twizzler
*
\
|
nindy
*
|
vxsim
*
|
vxworks
*
|
ebmon
*
|
hms
*
|
mvs
*
\
|
clix
*
|
riscos
*
|
uniplus
*
|
iris
*
|
isc
*
|
rtu
*
|
xenix
*
\
|
mirbsd
*
|
netbsd
*
|
dicos
*
|
openedition
*
|
ose
*
\
|
bitrig
*
|
openbsd
*
|
secbsd
*
|
solidbsd
*
|
libertybsd
*
|
os108
*
\
|
ekkobsd
*
|
freebsd
*
|
riscix
*
|
lynxos
*
|
os400
*
\
|
bosx
*
|
nextstep
*
|
cxux
*
|
aout
*
|
elf
*
|
oabi
*
\
|
ptx
*
|
coff
*
|
ecoff
*
|
winnt
*
|
domain
*
|
vsta
*
\
|
udi
*
|
lites
*
|
ieee
*
|
go32
*
|
aux
*
|
hcos
*
\
|
chorusrdb
*
|
cegcc
*
|
glidix
*
|
serenity
*
\
|
cygwin
*
|
msys
*
|
pe
*
|
moss
*
|
proelf
*
|
rtems
*
\
|
midipix
*
|
mingw32
*
|
mingw64
*
|
mint
*
\
|
uxpv
*
|
beos
*
|
mpeix
*
|
udk
*
|
moxiebox
*
\
|
interix
*
|
uwin
*
|
mks
*
|
rhapsody
*
|
darwin
*
\
|
openstep
*
|
oskit
*
|
conix
*
|
pw32
*
|
nonstopux
*
\
|
storm-chaos
*
|
tops10
*
|
tenex
*
|
tops20
*
|
its
*
\
|
os2
*
|
vos
*
|
palmos
*
|
uclinux
*
|
nucleus
*
|
morphos
*
\
|
scout
*
|
superux
*
|
sysv
*
|
rtmk
*
|
tpf
*
|
windiss
*
\
|
powermax
*
|
dnix
*
|
nx6
|
nx7
|
sei
*
|
dragonfly
*
\
|
skyos
*
|
haiku
*
|
rdos
*
|
toppers
*
|
drops
*
|
es
*
\
|
onefs
*
|
tirtos
*
|
phoenix
*
|
fuchsia
*
|
redox
*
|
bme
*
\
|
midnightbsd
*
|
amdhsa
*
|
unleashed
*
|
emscripten
*
|
wasi
*
\
|
nsk
*
|
powerunix
*
|
genode
*
|
zvmoe
*
|
qnx
*
|
emx
*
|
zephyr
*
\
|
fiwix
*
)
;;
# This one is extra strict with allowed versions
sco3.2v2
|
sco3.2v[4-9]
*
|
sco5v6
*
)
# Don't forget version if it is 3.2v4 or newer.
;;
none
)
;;
*
)
echo
Invalid configuration
\`
"
$1
"
\'
: OS
\`
"
$os
"
\'
not recognized 1>&2
exit
1
;;
esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
case
$kernel
-
$os
in
linux-gnu
*
|
linux-dietlibc
*
|
linux-android
*
|
linux-newlib
*
\
|
linux-musl
*
|
linux-relibc
*
|
linux-uclibc
*
)
;;
uclinux-uclibc
*
)
;;
-dietlibc
*
|
-newlib
*
|
-musl
*
|
-relibc
*
|
-uclibc
*
)
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo
"Invalid configuration
\`
$1
': libc
\`
$os
' needs explicit kernel."
1>&2
exit
1
;;
kfreebsd
*
-gnu
*
|
kopensolaris
*
-gnu
*
)
;;
vxworks-simlinux
|
vxworks-simwindows
|
vxworks-spe
)
;;
nto-qnx
*
)
;;
os2-emx
)
;;
*
-eabi
*
|
*
-gnueabi
*
)
;;
-
*
)
# Blank kernel with real OS is always fine.
;;
*
-
*
)
echo
"Invalid configuration
\`
$1
': Kernel
\`
$kernel
' not known to work with OS
\`
$os
'."
1>&2
exit
1
;;
esac
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case
$vendor
in
unknown
)
case
$cpu
-
$os
in
*
-riscix
*
)
vendor
=
acorn
;;
*
-sunos
*
)
vendor
=
sun
;;
*
-cnk
*
|
*
-aix
*
)
vendor
=
ibm
;;
*
-beos
*
)
vendor
=
be
;;
*
-hpux
*
)
vendor
=
hp
;;
*
-mpeix
*
)
vendor
=
hp
;;
*
-hiux
*
)
vendor
=
hitachi
;;
*
-unos
*
)
vendor
=
crds
;;
*
-dgux
*
)
vendor
=
dg
;;
*
-luna
*
)
vendor
=
omron
;;
*
-genix
*
)
vendor
=
ns
;;
*
-clix
*
)
vendor
=
intergraph
;;
*
-mvs
*
|
*
-opened
*
)
vendor
=
ibm
;;
*
-os400
*
)
vendor
=
ibm
;;
s390-
*
|
s390x-
*
)
vendor
=
ibm
;;
*
-ptx
*
)
vendor
=
sequent
;;
*
-tpf
*
)
vendor
=
ibm
;;
*
-vxsim
*
|
*
-vxworks
*
|
*
-windiss
*
)
vendor
=
wrs
;;
*
-aux
*
)
vendor
=
apple
;;
*
-hms
*
)
vendor
=
hitachi
;;
*
-mpw
*
|
*
-macos
*
)
vendor
=
apple
;;
*
-
*
mint
|
*
-mint
[
0-9]
*
|
*
-
*
MiNT
|
*
-MiNT
[
0-9]
*
)
vendor
=
atari
;;
*
-vos
*
)
vendor
=
stratus
;;
esac
;;
esac
echo
"
$cpu
-
$vendor
-
${
kernel
:+
$kernel
-
}
$os
"
exit
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
audio/third_party/patches/libmad.patch
已删除
100644 → 0
浏览文件 @
aa2aad7f
See the followings for the origin of this patch
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libmad.html
http://www.linuxfromscratch.org/patches/blfs/svn/libmad-0.15.1b-fixes-1.patch
--- src/libmad/configure 2004-02-05 09:34:07.000000000 +0000
+++ src/libmad/configure.new 2020-06-30 21:10:28.528018931 +0000
@@ -19083,71 +19083,7 @@
if test "$GCC" = yes
then
- if test -z "$arch"
- then
- case "$host" in
- i386-*) ;;
- i?86-*) arch="-march=i486" ;;
- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
- powerpc-*) ;;
- mips*-agenda-*) arch="-mcpu=vr4100" ;;
- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
- esac
- fi
-
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
- optimize="$optimize -fforce-mem"
- optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -fthread-jumps"
- optimize="$optimize -fcse-follow-jumps"
- optimize="$optimize -fcse-skip-blocks"
- : #x optimize="$optimize -frerun-cse-after-loop"
- : #x optimize="$optimize -frerun-loop-opt"
- : #x optimize="$optimize -fgcse"
- optimize="$optimize -fexpensive-optimizations"
- optimize="$optimize -fregmove"
- : #* optimize="$optimize -fdelayed-branch"
- : #x optimize="$optimize -fschedule-insns"
- optimize="$optimize -fschedule-insns2"
- : #? optimize="$optimize -ffunction-sections"
- : #? optimize="$optimize -fcaller-saves"
- : #> optimize="$optimize -funroll-loops"
- : #> optimize="$optimize -funroll-all-loops"
- : #x optimize="$optimize -fmove-all-movables"
- : #x optimize="$optimize -freduce-all-givs"
- : #? optimize="$optimize -fstrict-aliasing"
- : #* optimize="$optimize -fstructure-noalias"
-
- case "$host" in
- arm*-*)
- optimize="$optimize -fstrength-reduce"
- ;;
- mips*-*)
- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -finline-functions"
- ;;
- i?86-*)
- optimize="$optimize -fstrength-reduce"
- ;;
- powerpc-apple-*)
- # this triggers an internal compiler error with gcc2
- : #optimize="$optimize -fstrength-reduce"
-
- # this is really only beneficial with gcc3
- : #optimize="$optimize -finline-functions"
- ;;
- *)
- # this sometimes provokes bugs in gcc 2.95.2
- : #optimize="$optimize -fstrength-reduce"
- ;;
- esac
- ;;
- esac
+ optimize="-O2"
fi
case "$host" in
@@ -21497,6 +21433,7 @@
then
case "$host" in
i?86-*) FPM="INTEL" ;;
+ x86_64*) FPM="64BIT" ;;
arm*-*) FPM="ARM" ;;
mips*-*) FPM="MIPS" ;;
sparc*-*) FPM="SPARC" ;;
audio/third_party/patches/sox.patch
已删除
100644 → 0
浏览文件 @
aa2aad7f
See https://github.com/pytorch/audio/pull/1297
diff -ru sox/src/formats.c sox/src/formats.c
--- sox/src/formats.c 2014-10-26 19:55:50.000000000 -0700
+++ sox/src/formats.c 2021-02-22 16:01:02.833144070 -0800
@@ -333,6 +333,10 @@
assert(ft);
if (!ft->fp)
return sox_false;
- fstat(fileno((FILE*)ft->fp), &st);
+ int fd = fileno((FILE*)ft->fp);
+ if (fd < 0)
+ return sox_false;
+ if (fstat(fd, &st) < 0)
+ return sox_false;
return ((st.st_mode & S_IFMT) == S_IFREG);
}
audio/third_party/sox/CMakeLists.txt
已删除
100644 → 0
浏览文件 @
aa2aad7f
find_package
(
PkgConfig REQUIRED
)
include
(
ExternalProject
)
set
(
INSTALL_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/../install
)
set
(
ARCHIVE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/../archives
)
set
(
patch_dir
${
PROJECT_SOURCE_DIR
}
/third_party/patches
)
set
(
COMMON_ARGS --quiet --disable-shared --enable-static --prefix=
${
INSTALL_DIR
}
--with-pic --disable-dependency-tracking --disable-debug --disable-examples --disable-doc
)
# To pass custom environment variables to ExternalProject_Add command,
# we need to do `${CMAKE_COMMAND} -E env ${envs} <COMMANAD>`.
# https://stackoverflow.com/a/62437353
# We constrcut the custom environment variables here
set
(
envs
"PKG_CONFIG_PATH=
${
INSTALL_DIR
}
/lib/pkgconfig"
"LDFLAGS=-L
${
INSTALL_DIR
}
/lib $ENV{LDFLAGS}"
"CFLAGS=-I
${
INSTALL_DIR
}
/include -fvisibility=hidden $ENV{CFLAGS}"
)
ExternalProject_Add
(
mad
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz
URL_HASH SHA256=bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690
PATCH_COMMAND patch <
${
patch_dir
}
/libmad.patch && cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/mad/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/mad/configure
${
COMMON_ARGS
}
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
amr
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz
URL_HASH SHA256=2c006cb9d5f651bfb5e60156dbff6af3c9d35c7bbcc9015308c0aff1e14cd341
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/amr/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/amr/configure
${
COMMON_ARGS
}
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
lame
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
URL_HASH SHA256=24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/lame/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/lame/configure
${
COMMON_ARGS
}
--enable-nasm
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
ogg
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.3.tar.gz
URL_HASH SHA256=c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/ogg/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/ogg/configure
${
COMMON_ARGS
}
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
flac
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS ogg
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://ftp.osuosl.org/pub/xiph/releases/flac/flac-1.3.2.tar.xz
URL_HASH SHA256=91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/flac/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/flac/configure
${
COMMON_ARGS
}
--with-ogg --disable-cpplibs
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
vorbis
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS ogg
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.6.tar.gz
URL_HASH SHA256=6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/vorbis/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/vorbis/configure
${
COMMON_ARGS
}
--with-ogg
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
opus
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS ogg
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://ftp.osuosl.org/pub/xiph/releases/opus/opus-1.3.1.tar.gz
URL_HASH SHA256=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/opus/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/opus/configure
${
COMMON_ARGS
}
--with-ogg
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
ExternalProject_Add
(
opusfile
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS opus
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://ftp.osuosl.org/pub/xiph/releases/opus/opusfile-0.12.tar.gz
URL_HASH SHA256=118d8601c12dd6a44f52423e68ca9083cc9f2bfe72da7a8c1acb22a80ae3550b
PATCH_COMMAND cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/opusfile/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/opusfile/configure
${
COMMON_ARGS
}
--disable-http
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
set
(
SOX_OPTIONS
--disable-openmp
--with-amrnb
--with-amrwb
--with-flac
--with-lame
--with-mad
--with-oggvorbis
--with-opus
--without-alsa
--without-ao
--without-coreaudio
--without-oss
--without-id3tag
--without-ladspa
--without-magic
--without-png
--without-pulseaudio
--without-sndfile
--without-sndio
--without-sunaudio
--without-waveaudio
--without-wavpack
--without-twolame
)
set
(
SOX_LIBRARIES
${
INSTALL_DIR
}
/lib/libsox.a
${
INSTALL_DIR
}
/lib/libopencore-amrnb.a
${
INSTALL_DIR
}
/lib/libopencore-amrwb.a
${
INSTALL_DIR
}
/lib/libmad.a
${
INSTALL_DIR
}
/lib/libmp3lame.a
${
INSTALL_DIR
}
/lib/libFLAC.a
${
INSTALL_DIR
}
/lib/libopusfile.a
${
INSTALL_DIR
}
/lib/libopus.a
${
INSTALL_DIR
}
/lib/libvorbisenc.a
${
INSTALL_DIR
}
/lib/libvorbisfile.a
${
INSTALL_DIR
}
/lib/libvorbis.a
${
INSTALL_DIR
}
/lib/libogg.a
)
ExternalProject_Add
(
sox
PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
DEPENDS ogg flac vorbis opusfile lame mad amr
DOWNLOAD_DIR
${
ARCHIVE_DIR
}
URL https://downloads.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.bz2
URL_HASH SHA256=81a6956d4330e75b5827316e44ae381e6f1e8928003c6aa45896da9041ea149c
PATCH_COMMAND patch -p1 <
${
patch_dir
}
/sox.patch && cp
${
patch_dir
}
/config.guess
${
patch_dir
}
/config.sub
${
CMAKE_CURRENT_BINARY_DIR
}
/src/sox/
CONFIGURE_COMMAND
${
CMAKE_COMMAND
}
-E env
${
envs
}
${
CMAKE_CURRENT_BINARY_DIR
}
/src/sox/configure
${
COMMON_ARGS
}
${
SOX_OPTIONS
}
BUILD_BYPRODUCTS
${
SOX_LIBRARIES
}
DOWNLOAD_NO_PROGRESS ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
LOG_MERGED_STDOUTERR ON
LOG_OUTPUT_ON_FAILURE ON
)
add_dependencies
(
libsox sox
)
set
(
SOX_INCLUDE_DIR
${
INSTALL_DIR
}
/include PARENT_SCOPE
)
set
(
SOX_LIBRARIES
${
SOX_LIBRARIES
}
PARENT_SCOPE
)
paddlespeech/audio/CMakeLists.txt
浏览文件 @
d63895fc
...
@@ -31,9 +31,10 @@ option(BUILD_SOX "Build libsox statically" ON)
...
@@ -31,9 +31,10 @@ option(BUILD_SOX "Build libsox statically" ON)
add_definitions
(
"-DCOMPILE_WITHOUT_OPENFST"
)
add_definitions
(
"-DCOMPILE_WITHOUT_OPENFST"
)
include
(
openblas
)
include
(
openblas
)
include
(
pybind
)
#
include(pybind)
include_directories
(
${
CMAKE_CURRENT_SOURCE_DIR
}
${
CMAKE_CURRENT_SOURCE_DIR
}
/third_party/kaldi
)
include_directories
(
${
CMAKE_CURRENT_SOURCE_DIR
}
${
CMAKE_CURRENT_SOURCE_DIR
}
/third_party/kaldi
)
include_directories
(
/usr/include/python3.7m
)
include_directories
(
/usr/include/python3.7m
)
add_subdirectory
(
third_party
)
add_subdirectory
(
third_party
)
add_subdirectory
(
c
src
)
add_subdirectory
(
src
)
paddlespeech/audio/_internal/module_utils.py
浏览文件 @
d63895fc
...
@@ -108,12 +108,9 @@ def is_soundfile_available():
...
@@ -108,12 +108,9 @@ def is_soundfile_available():
def
requires_soundfile
():
def
requires_soundfile
():
if
is_soundfile_available
():
if
is_soundfile_available
():
def
decorator
(
func
):
def
decorator
(
func
):
return
func
return
func
else
:
else
:
def
decorator
(
func
):
def
decorator
(
func
):
@
wraps
(
func
)
@
wraps
(
func
)
def
wrapped
(
*
args
,
**
kwargs
):
def
wrapped
(
*
args
,
**
kwargs
):
...
@@ -131,12 +128,9 @@ def is_sox_available():
...
@@ -131,12 +128,9 @@ def is_sox_available():
def
requires_sox
():
def
requires_sox
():
if
is_sox_available
():
if
is_sox_available
():
def
decorator
(
func
):
def
decorator
(
func
):
return
func
return
func
else
:
else
:
def
decorator
(
func
):
def
decorator
(
func
):
@
wraps
(
func
)
@
wraps
(
func
)
def
wrapped
(
*
args
,
**
kwargs
):
def
wrapped
(
*
args
,
**
kwargs
):
...
...
speechx/speechx/kaldi/base/kaldi-types.h
浏览文件 @
d63895fc
...
@@ -42,7 +42,7 @@ typedef float BaseFloat;
...
@@ -42,7 +42,7 @@ typedef float BaseFloat;
// for discussion on what to do if you need compile kaldi
// for discussion on what to do if you need compile kaldi
// without OpenFST, see the bottom of this this file
// without OpenFST, see the bottom of this this file
#if
(COMPILE_WITHOUT_OPENFST != 0)
#if
ndef COMPILE_WITHOUT_OPENFST
#include <fst/types.h>
#include <fst/types.h>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录