ruby-libstorj 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/Gemfile +23 -0
  6. data/Gemfile.lock +111 -0
  7. data/Guardfile +21 -0
  8. data/LICENSE +502 -0
  9. data/README.md +262 -0
  10. data/Rakefile +76 -0
  11. data/ext/libstorj/.gitignore +47 -0
  12. data/ext/libstorj/.travis.yml +27 -0
  13. data/ext/libstorj/Doxyfile +2427 -0
  14. data/ext/libstorj/LICENSE +502 -0
  15. data/ext/libstorj/Makefile.am +6 -0
  16. data/ext/libstorj/README.md +198 -0
  17. data/ext/libstorj/autogen.sh +3 -0
  18. data/ext/libstorj/configure.ac +64 -0
  19. data/ext/libstorj/depends/Makefile +153 -0
  20. data/ext/libstorj/depends/config.guess +1462 -0
  21. data/ext/libstorj/depends/config.sub +1823 -0
  22. data/ext/libstorj/depends/extract-osx-sdk.sh +33 -0
  23. data/ext/libstorj/depends/packages/cctools.mk +7 -0
  24. data/ext/libstorj/depends/packages/clang.mk +7 -0
  25. data/ext/libstorj/depends/packages/gmp.mk +23 -0
  26. data/ext/libstorj/depends/packages/gnutls.mk +25 -0
  27. data/ext/libstorj/depends/packages/json-c.mk +7 -0
  28. data/ext/libstorj/depends/packages/libcurl.mk +39 -0
  29. data/ext/libstorj/depends/packages/libmicrohttpd.mk +7 -0
  30. data/ext/libstorj/depends/packages/libuv.mk +7 -0
  31. data/ext/libstorj/depends/packages/nettle.mk +30 -0
  32. data/ext/libstorj/libstorj.pc.in +11 -0
  33. data/ext/libstorj/src/Makefile.am +23 -0
  34. data/ext/libstorj/src/bip39.c +233 -0
  35. data/ext/libstorj/src/bip39.h +64 -0
  36. data/ext/libstorj/src/bip39_english.h +2074 -0
  37. data/ext/libstorj/src/cli.c +1494 -0
  38. data/ext/libstorj/src/crypto.c +525 -0
  39. data/ext/libstorj/src/crypto.h +178 -0
  40. data/ext/libstorj/src/downloader.c +1923 -0
  41. data/ext/libstorj/src/downloader.h +163 -0
  42. data/ext/libstorj/src/http.c +688 -0
  43. data/ext/libstorj/src/http.h +175 -0
  44. data/ext/libstorj/src/rs.c +962 -0
  45. data/ext/libstorj/src/rs.h +99 -0
  46. data/ext/libstorj/src/storj.c +1523 -0
  47. data/ext/libstorj/src/storj.h +1014 -0
  48. data/ext/libstorj/src/uploader.c +2736 -0
  49. data/ext/libstorj/src/uploader.h +181 -0
  50. data/ext/libstorj/src/utils.c +336 -0
  51. data/ext/libstorj/src/utils.h +65 -0
  52. data/ext/libstorj/test/Makefile.am +27 -0
  53. data/ext/libstorj/test/mockbridge.c +260 -0
  54. data/ext/libstorj/test/mockbridge.json +687 -0
  55. data/ext/libstorj/test/mockbridgeinfo.json +1836 -0
  56. data/ext/libstorj/test/mockfarmer.c +358 -0
  57. data/ext/libstorj/test/storjtests.h +41 -0
  58. data/ext/libstorj/test/tests.c +1617 -0
  59. data/ext/libstorj/test/tests_rs.c +869 -0
  60. data/ext/ruby-libstorj/extconf.rb +8 -0
  61. data/ext/ruby-libstorj/ruby-libstorj.cc +17 -0
  62. data/lib/ruby-libstorj.rb +1 -0
  63. data/lib/ruby-libstorj/arg_forwarding_task.rb +58 -0
  64. data/lib/ruby-libstorj/env.rb +178 -0
  65. data/lib/ruby-libstorj/ext/bucket.rb +71 -0
  66. data/lib/ruby-libstorj/ext/create_bucket_request.rb +53 -0
  67. data/lib/ruby-libstorj/ext/curl_code.rb +139 -0
  68. data/lib/ruby-libstorj/ext/ext.rb +71 -0
  69. data/lib/ruby-libstorj/ext/file.rb +84 -0
  70. data/lib/ruby-libstorj/ext/get_bucket_request.rb +45 -0
  71. data/lib/ruby-libstorj/ext/json_request.rb +51 -0
  72. data/lib/ruby-libstorj/ext/list_files_request.rb +63 -0
  73. data/lib/ruby-libstorj/ext/types.rb +226 -0
  74. data/lib/ruby-libstorj/ext/upload_options.rb +38 -0
  75. data/lib/ruby-libstorj/libstorj.rb +22 -0
  76. data/lib/ruby-libstorj/mixins/storj.rb +27 -0
  77. data/lib/ruby-libstorj/struct.rb +42 -0
  78. data/ruby-libstorj.gemspec +57 -0
  79. data/spec/helpers/options.yml.example +22 -0
  80. data/spec/helpers/shared_rake_examples.rb +132 -0
  81. data/spec/helpers/storj_options.rb +96 -0
  82. data/spec/helpers/upload.data +3 -0
  83. data/spec/helpers/upload.data.sha256 +1 -0
  84. data/spec/libstorj_spec.rb +0 -0
  85. data/spec/ruby-libstorj/arg_forwarding_task_spec.rb +311 -0
  86. data/spec/ruby-libstorj/env_spec.rb +353 -0
  87. data/spec/ruby-libstorj/ext_spec.rb +75 -0
  88. data/spec/ruby-libstorj/json_request_spec.rb +13 -0
  89. data/spec/ruby-libstorj/libstorj_spec.rb +81 -0
  90. data/spec/ruby-libstorj/struct_spec.rb +64 -0
  91. data/spec/spec_helper.rb +113 -0
  92. metadata +136 -0
@@ -0,0 +1,6 @@
1
+ ACLOCAL_AMFLAGS = -I build-aux/m4
2
+ SUBDIRS = src . test
3
+ EXTRA_DIST = autogen.sh
4
+
5
+ pkgconfigdir = $(libdir)/pkgconfig
6
+ pkgconfig_DATA = libstorj.pc
@@ -0,0 +1,198 @@
1
+ libstorj
2
+ =======
3
+
4
+ [![Build Status](https://travis-ci.org/Storj/libstorj.svg?branch=master)](https://travis-ci.org/Storj/libstorj)
5
+
6
+ Asynchronous multi-platform C library and CLI for encrypted file transfer on the Storj network.
7
+
8
+ ## Feature Highlights
9
+
10
+ - Asynchronous I/O with concurrent peer-to-peer network requests for shards
11
+ - Erasure encoding with reed solomon for data durability
12
+ - Robust handling of shard transfers by selecting alternative sources
13
+ - File integrity and authenticity verified with HMAC-SHA512
14
+ - File encryption with AES-256-CTR
15
+ - File name and bucket name encryption with AES-256-GCM
16
+ - Proxy support with SOCKS5, SOCKS4, SOCKS4a
17
+ - Asynchronous progress updates in bytes per file
18
+ - Transfers can be cleanly canceled per file
19
+ - Seed based file encryption key for portability between devices
20
+ - Reference implementation for [SIP5](https://github.com/Storj/sips/blob/master/sip-0005.md) file standard
21
+
22
+ ## Build
23
+
24
+ ```bash
25
+ ./autogen.sh
26
+ ./configure
27
+ make
28
+ ```
29
+
30
+ To run tests:
31
+ ```bash
32
+ ./test/tests
33
+ ```
34
+
35
+ To run command line utility:
36
+ ```bash
37
+ ./src/storj --help
38
+ ```
39
+
40
+ And to install locally:
41
+ ```
42
+ sudo make install
43
+ ```
44
+
45
+ ### Debian / Ubuntu (16.04) Dependencies:
46
+
47
+ Development tools:
48
+ ```bash
49
+ apt-get install build-essential libtool autotools-dev automake libmicrohttpd-dev bsdmainutils
50
+ ```
51
+
52
+ Dependencies:
53
+ ```bash
54
+ apt-get install libcurl4-gnutls-dev nettle-dev libjson-c-dev libuv1-dev
55
+ ```
56
+
57
+ ### OS X Dependencies (w/ homebrew):
58
+
59
+ Development tools:
60
+ ```bash
61
+ brew install libtool automake libmicrohttpd pkgconfig
62
+ ```
63
+
64
+ Dependencies:
65
+ ```bash
66
+ brew install curl nettle json-c libuv
67
+ ```
68
+
69
+ ### Cross Compiling Dependencies from Ubuntu 16.04
70
+
71
+ **Windows**
72
+
73
+ Supported hosts include:
74
+ - x86_64-w64-mingw32
75
+ - i686-w64-mingw32
76
+
77
+ Dependencies:
78
+ ```
79
+ apt-get install gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 g++-mingw-w64-x86-64
80
+ ```
81
+
82
+ ```
83
+ cd ./depends
84
+ make HOST="x86_64-w64-mingw32"
85
+ ```
86
+
87
+ Configure command for libstorj-c:
88
+ ```
89
+ PKG_CONFIG_LIBDIR="$(pwd)/depends/build/x86_64-w64-mingw32/lib/pkgconfig" CFLAGS="-DCURL_STATICLIB -I$(pwd)/depends/build/x86_64-w64-mingw32/include -L$(pwd)/depends/build/x86_64-w64-mingw32/lib -static" ./configure --with-pic --host=x86_64-w64-mingw32 --enable-static --disable-shared --prefix=$(pwd)/depends/build/x86_64-w64-mingw32
90
+ ```
91
+
92
+ **Windows Shared Library (DLL)**
93
+
94
+ Supported hosts include:
95
+ - x86_64-w64-mingw32
96
+
97
+ Dependencies:
98
+ ```
99
+ apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
100
+ ```
101
+
102
+ ```
103
+ cd ./depends
104
+ make HOST="x86_64-w64-mingw32" BUILD_DLL=1
105
+ ```
106
+
107
+ Configure command for libstorj-c:
108
+ ```
109
+ PKG_CONFIG_LIBDIR="$(pwd)/depends/build/x86_64-w64-mingw32/lib/pkgconfig" CFLAGS="-I$(pwd)/depends/build/x86_64-w64-mingw32/include -L$(pwd)/depends/build/x86_64-w64-mingw32/lib -DSTORJDLL" ./configure --host=x86_64-w64-mingw32 --prefix=$(pwd)/depends/build/x86_64-w64-mingw32
110
+ ```
111
+
112
+ **ARM GNU/Linux**
113
+
114
+ Supported hosts include:
115
+ - arm-linux-gnueabihf
116
+ - aarch64-linux-gnu
117
+
118
+ Many ARM based distributions are based on Debian Jessie that includes libc6@2.19. It may be necessary to cross compile using Ubuntu 14.04. This can be accomplished using chroot (see the documentation at https://help.ubuntu.com/community/BasicChroot).
119
+
120
+ Once chroot is setup, you'll likely need to install a few additional tools (in addition to the main dependencies listed above):
121
+ ```
122
+ apt-get install git bsdmainutils
123
+ ```
124
+
125
+ And then install ARM toolchain dependencies:
126
+ ```
127
+ apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
128
+ ```
129
+
130
+ ```
131
+ cd ./depends
132
+ make HOST="arm-linux-gnueabihf"
133
+ ```
134
+
135
+ Configure command for libstorj-c:
136
+ ```
137
+ PKG_CONFIG_LIBDIR="$(pwd)/depends/build/arm-linux-gnueabihf/lib/pkgconfig" CFLAGS="-I$(pwd)/depends/build/arm-linux-gnueabihf/include -L$(pwd)/depends/build/arm-linux-gnueabihf/lib -static -std=gnu99" ./configure --with-pic --host=arm-linux-gnueabihf --enable-static --disable-shared --prefix=$(pwd)/depends/build/arm-linux-gnueabihf
138
+ ```
139
+
140
+ **64-bit GNU/Linux**
141
+
142
+ Supported hosts include:
143
+ - x86_64-pc-linux-gnu
144
+
145
+ ```
146
+ cd ./depends
147
+ make HOST="x86_64-pc-linux-gnu"
148
+ ```
149
+
150
+ Configure command for libstorj-c:
151
+ ```
152
+ PKG_CONFIG_LIBDIR="$(pwd)/depends/build/x86_64-pc-linux-gnu/lib/pkgconfig" CFLAGS="-I$(pwd)/depends/build/x86_64-pc-linux-gnu/include -L$(pwd)/depends/build/x86_64-pc-linux-gnu/lib -static" ./configure --host=x86_64-pc-linux-gnu --with-pic --enable-static --disable-shared --prefix=$(pwd)/depends/build/x86_64-pc-linux-gnu
153
+ ```
154
+
155
+ *Note: `--enable-shared` will also work*
156
+
157
+ **32-bit GNU/linux**
158
+
159
+ Supported hosts include:
160
+ - i686-pc-linux-gnu
161
+
162
+ Dependencies:
163
+ ```
164
+ apt-get install gcc-multilib g++-multilib
165
+ ```
166
+
167
+ ```
168
+ cd ./depends
169
+ make HOST="i686-pc-linux-gnu"
170
+ ```
171
+
172
+ Configure command for libstorj-c:
173
+ ```
174
+ PKG_CONFIG_LIBDIR="$(pwd)/depends/build/i686-pc-linux-gnu/lib/pkgconfig" CFLAGS="-I$(pwd)/depends/build/i686-pc-linux-gnu/include -L$(pwd)/depends/build/i686-pc-linux-gnu/lib -static -m32" LDFLAGS="-m32" ./configure --host=i686-pc-linux-gnu --with-pic --enable-static --disable-shared --prefix=$(pwd)/depends/build/i686-pc-linux-gnu
175
+ ```
176
+ *Note: `--enable-shared` will also work*
177
+
178
+ **Mac OSX**
179
+
180
+ The Apple SDK `MacOSX10.11.sdk` is needed and is available in [Xcode_7.3.1.dmg](https://developer.apple.com/devcenter/download.action?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg) *(requires a developer account)*. You can extract the sdk using `./depends/extract-osx-sdk.sh`:
181
+
182
+ ```
183
+ apt-get install p7zip-full sleuthkit
184
+ ./depends/extract-osx-sdk.sh
185
+ rm -rf 5.hfs MacOSX10.11.sdk
186
+ ```
187
+
188
+ You may also need to symlink `/System/Library/Frameworks/Security.framework` to `/path/to/MacOSX10.11.sdk/System/Library/Frameworks/Security.framework` to have `darwinssl` be enabled during the build.
189
+
190
+ ```
191
+ cd ./depends
192
+ make HOST="x86_64-apple-darwin11" DARWIN_SDK_PATH="/path/to/MacOSX10.11.sdk"
193
+ ```
194
+
195
+ Configure command for libstorj-c:
196
+ ```
197
+ export PATH="$(pwd)/depends/toolchain/build/bin:${PATH}" && PKG_CONFIG_LIBDIR="$(pwd)/depends/build/x86_64-apple-darwin11/lib/pkgconfig" CC=clang CXX=clang++ CFLAGS="-target x86_64-apple-darwin11 -isysroot $(pwd)/depends/MacOSX10.11.sdk -mmacosx-version-min=10.8 -mlinker-version=253.9 -pipe -I$(pwd)/depends/build/x86_64-apple-darwin11/include" LDFLAGS="-L$(pwd)/depends/toolchain/build/lib -L$(pwd)/depends/MacOSX10.11.sdk/usr/lib -L$(pwd)/depends/build/x86_64-apple-darwin11/lib -Wl,-syslibroot $(pwd)/depends/MacOSX10.11.sdk" ./configure --with-pic --host="x86_64-apple-darwin11" --enable-static --disable-shared --prefix=$(pwd)/depends/build/x86_64-apple-darwin11
198
+ ```
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+ set -e
3
+ autoreconf -if --warnings=all
@@ -0,0 +1,64 @@
1
+ AC_INIT([libstorj],[2.0.0-beta])
2
+ AC_CONFIG_AUX_DIR([build-aux])
3
+ AC_CONFIG_MACRO_DIR([build-aux/m4])
4
+ AM_INIT_AUTOMAKE([foreign])
5
+ LT_INIT([shared static win32-dll])
6
+
7
+ AC_PATH_PROG(HEXDUMP,hexdump)
8
+
9
+ if test x$HEXDUMP = x; then
10
+ AC_MSG_ERROR(hexdump is required for tests)
11
+ fi
12
+
13
+ PKG_PROG_PKG_CONFIG
14
+ if test -z "$PKG_CONFIG"; then
15
+ AC_MSG_ERROR([pkg-config not found. pkg-config is required to check for some dependencies.])
16
+ fi
17
+
18
+ PKG_CHECK_MODULES([LIBCURL], [libcurl >= 7.35.0],, [AC_MSG_ERROR([libcurl 7.35.0 or greater was not found.])])
19
+ AC_CHECK_HEADERS([curl/curl.h], [libcurl_found_headers=yes; break;])
20
+ AS_IF([test "x$libcurl_found_headers" != "xyes"],
21
+ [AC_MSG_ERROR([Unable to find libcurl headers.])])
22
+
23
+ PKG_CHECK_MODULES([NETTLE], [nettle >= 3.1],, [AC_MSG_ERROR([nettle 3.1 or greater was not found.
24
+ You can get it from https://www.lysator.liu.se/~nisse/nettle/])])
25
+
26
+ AC_CHECK_HEADERS([nettle/aes.h], [nettle_found_headers=yes; break;])
27
+ AS_IF([test "x$nettle_found_headers" != "xyes"],
28
+ [AC_MSG_ERROR([Unable to find nettle headers.])])
29
+
30
+ PKG_CHECK_MODULES([JSON], [json-c >= 0.11],, [AC_MSG_ERROR([libjson-c 0.11 or greater was not found.])])
31
+ AC_CHECK_HEADERS([json-c/json.h], [json_found_headers=yes; break;])
32
+ AS_IF([test "x$json_found_headers" != "xyes"],
33
+ [AC_MSG_ERROR([Unable to find json-c headers.])])
34
+
35
+ PKG_CHECK_MODULES([UV], [libuv >= 1.8.0],, [AC_MSG_ERROR([libuv1 1.8.0 or greater was not found.])])
36
+ AC_CHECK_HEADERS([uv.h], [uv_found_headers=yes; break;])
37
+ AS_IF([test "x$uv_found_headers" != "xyes"],
38
+ [AC_MSG_ERROR([Unable to find libuv headers.])])
39
+
40
+ PKG_CHECK_MODULES([MICROHTTPD], [libmicrohttpd >= 0.9],, [AC_MSG_ERROR([libmicrohttpd 0.9 or greater was not found.])])
41
+ AC_CHECK_HEADERS([microhttpd.h], [microhttpd_found_headers=yes; break;])
42
+ AS_IF([test "x$microhttpd_found_headers" != "xyes"],
43
+ [AC_MSG_ERROR([Unable to find libmicrohttpd headers.])])
44
+
45
+ AC_CONFIG_FILES([Makefile src/Makefile test/Makefile])
46
+ AC_CONFIG_FILES([libstorj.pc:libstorj.pc.in])
47
+
48
+ AC_CHECK_FUNCS([aligned_alloc posix_memalign posix_fallocate])
49
+
50
+ AM_CONDITIONAL([BUILD_STORJ_DLL], [test "x${CFLAGS/"STORJDLL"}" != x"$CFLAGS"])
51
+
52
+ AC_ARG_ENABLE([debug],
53
+ [AS_HELP_STRING([--enable-debug],
54
+ [use debug compiler flags and macros (default is no)])],
55
+ [enable_debug=$enableval],
56
+ [enable_debug=no])
57
+
58
+ if test "x$enable_debug" = xyes; then
59
+ CFLAGS="$CFLAGS -DDEBUG -g3 -O0"
60
+ else
61
+ CFLAGS="$CFLAGS -O3"
62
+ fi
63
+
64
+ AC_OUTPUT
@@ -0,0 +1,153 @@
1
+ .NOTPARALLEL :
2
+
3
+ build_DOWNLOAD = curl --location --fail --connect-timeout 120 --retry 3 -o
4
+
5
+ BUILD = $(shell ./config.guess)
6
+ HOST ?= $(BUILD)
7
+
8
+ DOWNLOAD_DIR = "$(CURDIR)/downloads/"
9
+ SOURCES_DIR = "$(CURDIR)/sources/$(HOST)/"
10
+ PREFIX_DIR = "$(CURDIR)/build/$(HOST)/"
11
+ TOOLCHAIN_BUILD_DIR = "$(CURDIR)/toolchain/build/"
12
+ TOOLCHAIN_SOURCE_DIR = "$(CURDIR)/toolchain/source/"
13
+
14
+ canonical_host:=$(shell ./config.sub $(HOST))
15
+
16
+ host_arch=$(firstword $(subst -, ,$(canonical_host)))
17
+ host_vendor=$(word 2,$(subst -, ,$(canonical_host)))
18
+ full_host_os:=$(subst $(host_arch)-$(host_vendor)-,,$(canonical_host))
19
+ host_os:=$(findstring linux,$(full_host_os))
20
+ host_os+=$(findstring darwin,$(full_host_os))
21
+ host_os+=$(findstring mingw32,$(full_host_os))
22
+ host_os:=$(strip $(host_os))
23
+ ifeq ($(host_os),)
24
+ host_os=$(full_host_os)
25
+ endif
26
+
27
+ config_lib_type=--enable-static --disable-shared --with-pic
28
+
29
+ # mingw dll build
30
+ ifeq ($(HOST), x86_64-w64-mingw32)
31
+ ifeq ($(BUILD_DLL), 1)
32
+ config_lib_type=
33
+ endif
34
+ endif
35
+
36
+ # mac build
37
+ DARWIN_SDK_PATH ?= "$(CURDIR)/MacOSX10.11.sdk"
38
+ DARWIN_CFLAGS = "-target $(HOST) -isysroot $(DARWIN_SDK_PATH) -mmacosx-version-min=10.8 -mlinker-version=253.9 -pipe -I$(PREFIX_DIR)include"
39
+ DARWIN_LDFLAGS="-L$(TOOLCHAIN_BUILD_DIR)lib -L$(DARWIN_SDK_PATH)/usr/lib -L$(PREFIX_DIR)lib -Wl,-syslibroot $(DARWIN_SDK_PATH)"
40
+
41
+ build_SHA256SUM = sha256sum -c
42
+
43
+ build_env=
44
+ ifeq ($(host_os), darwin)
45
+ build_env=PATH="$(TOOLCHAIN_BUILD_DIR)bin:${PATH}" CC=clang CXX=clang++ CFLAGS=$(DARWIN_CFLAGS) LDFLAGS=$(DARWIN_LDFLAGS)
46
+ endif
47
+ ifeq ($(HOST), i686-pc-linux-gnu)
48
+ build_env=CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32
49
+ endif
50
+
51
+ toolchain_packages:=clang cctools
52
+ packages:=gmp nettle gnutls libcurl json-c libuv libmicrohttpd
53
+ all_packages = $(toolchain_packages) $(packages)
54
+
55
+ $(foreach package,$(all_packages),$(eval include packages/$(package).mk))
56
+
57
+ define fetch_file
58
+ set -e && \
59
+ mkdir -p "$(DOWNLOAD_DIR)" && \
60
+ cd "$(DOWNLOAD_DIR)" && \
61
+ if test -f "$($(1)_file_name)"; then \
62
+ echo "Skipping download: $($(1)_download_path)"; \
63
+ else \
64
+ echo "Downloading: $($(1)_download_path)"; \
65
+ $(build_DOWNLOAD) "$($(1)_file_name)" "$($(1)_download_path)"; \
66
+ echo "$($(1)_sha256_hash)\t$($(1)_file_name)" > "$($(1)_file_name)".hash; \
67
+ $(build_SHA256SUM) "$($(1)_file_name)".hash; \
68
+ fi && \
69
+ cd "$(CURDIR)"
70
+ endef
71
+
72
+ define extract_file
73
+ set -e && \
74
+ if test -d "$(SOURCES_DIR)$(1)"; then \
75
+ echo "Skipping extract: $(DOWNLOAD_DIR)$($(1)_file_name)"; \
76
+ else \
77
+ echo "Extracting: $(DOWNLOAD_DIR)$($(1)_file_name)"; \
78
+ mkdir -p "$(SOURCES_DIR)$(1)"; \
79
+ tar xf "$(DOWNLOAD_DIR)$($(1)_file_name)" -C "$(SOURCES_DIR)$(1)" --strip-components=1; \
80
+ fi
81
+ endef
82
+
83
+ define build_source
84
+ echo "\n\nBuilding $(1)\n====================================" && \
85
+ cd "$(SOURCES_DIR)$(1)" && \
86
+ echo "curdir: $(CURDIR)" && \
87
+ echo "build_env: $(build_env)" && \
88
+ echo "config_env: $($(1)_config_env)" && \
89
+ echo "config_opts: $($(1)_config_opts) $(config_lib_type)" && \
90
+ echo "host: $(HOST)" && \
91
+ echo "prefix: $(PREFIX_DIR)" && \
92
+ echo "====================================\n\n" && \
93
+ export PATH="$(TOOLCHAIN_BUILD_DIR)bin:${PATH}" && \
94
+ if test -f "./autogen.sh"; then ./autogen.sh; fi && \
95
+ $(build_env) $($(1)_config_env) ./configure --host="$(HOST)" $($(1)_config_opts) $(config_lib_type) --with-pic --prefix=$(PREFIX_DIR) || exit && \
96
+ make || exit && \
97
+ make install || exit && \
98
+ cd "$(CURDIR)"
99
+ endef
100
+
101
+ define extract_toolchain_file
102
+ if test -d "$(TOOLCHAIN_SOURCE_DIR)$(1)"; then \
103
+ echo "Skipping extract: $(DOWNLOAD_DIR)$($(1)_file_name)"; \
104
+ else \
105
+ echo "Extracting: $(DOWNLOAD_DIR)$($(1)_file_name)"; \
106
+ mkdir -p "$(TOOLCHAIN_SOURCE_DIR)$(1)"; \
107
+ tar xf "$(DOWNLOAD_DIR)$($(1)_file_name)" -C "$(TOOLCHAIN_SOURCE_DIR)$(1)" --strip-components=1; \
108
+ fi
109
+ endef
110
+
111
+ define extract_toolchain_file_build
112
+ mkdir -p "$(TOOLCHAIN_BUILD_DIR)"; \
113
+ tar xfv "$(DOWNLOAD_DIR)$($(1)_file_name)" -C "$(TOOLCHAIN_BUILD_DIR)" --strip-components=1; \
114
+ rm -f $(TOOLCHAIN_BUILD_DIR)lib/libc++abi.so
115
+ endef
116
+
117
+ ifeq ($(host_os), darwin)
118
+ define build_darwin_toolchain
119
+ echo "Building darwin toolchain" && \
120
+ $(foreach package,$(toolchain_packages),$(call fetch_file,$(package));)
121
+ $(foreach package,clang,$(call extract_toolchain_file_build,$(package));)
122
+ $(foreach package,cctools,$(call extract_toolchain_file,$(package));)
123
+ cd "$(TOOLCHAIN_SOURCE_DIR)cctools/cctools" && \
124
+ if test -f "./autogen.sh"; then ./autogen.sh; fi && \
125
+ PATH="$(TOOLCHAIN_BUILD_DIR)bin:${PATH}" CC=clang CXX=clang++ ./configure --prefix="$(TOOLCHAIN_BUILD_DIR)" --target="x86_64-apple-darwin11" || exit && \
126
+ make || exit && \
127
+ make install || exit && \
128
+ cd "$(CURDIR)"
129
+ endef
130
+ else
131
+ define build_darwin_toolchain
132
+ echo "Skipping building darwin toolchain"
133
+ endef
134
+ endif
135
+
136
+ build-sources: extract-sources
137
+ @$(foreach package,$(packages),$(call build_source,$(package));)
138
+
139
+ extract-sources: download-sources
140
+ @$(foreach package,$(packages),$(call extract_file,$(package));)
141
+
142
+ download-sources: build-toolchain
143
+ @$(foreach package,$(packages),$(call fetch_file,$(package));)
144
+
145
+ build-toolchain:
146
+ @$(call build_darwin_toolchain,)
147
+
148
+ clean:
149
+ $(RM) -rv $(DOWNLOAD_DIR)
150
+ $(RM) -rv $(SOURCES_DIR)
151
+ $(RM) -rv $(PREFIX_DIR)
152
+
153
+ .PHONY: extract-sources
@@ -0,0 +1,1462 @@
1
+ #! /bin/sh
2
+ # Attempt to guess a canonical system name.
3
+ # Copyright 1992-2017 Free Software Foundation, Inc.
4
+
5
+ timestamp='2017-01-01'
6
+
7
+ # This file is free software; you can redistribute it and/or modify it
8
+ # under the terms of the GNU General Public License as published by
9
+ # the Free Software Foundation; either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # This program is distributed in the hope that it will be useful, but
13
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ # General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU General Public License
18
+ # along with this program; if not, see <http://www.gnu.org/licenses/>.
19
+ #
20
+ # As a special exception to the GNU General Public License, if you
21
+ # distribute this file as part of a program that contains a
22
+ # configuration script generated by Autoconf, you may include it under
23
+ # the same distribution terms that you use for the rest of that
24
+ # program. This Exception is an additional permission under section 7
25
+ # of the GNU General Public License, version 3 ("GPLv3").
26
+ #
27
+ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
28
+ #
29
+ # You can get the latest version of this script from:
30
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
31
+ #
32
+ # Please send patches to <config-patches@gnu.org>.
33
+
34
+
35
+ me=`echo "$0" | sed -e 's,.*/,,'`
36
+
37
+ usage="\
38
+ Usage: $0 [OPTION]
39
+
40
+ Output the configuration name of the system \`$me' is run on.
41
+
42
+ Operation modes:
43
+ -h, --help print this help, then exit
44
+ -t, --time-stamp print date of last modification, then exit
45
+ -v, --version print version number, then exit
46
+
47
+ Report bugs and patches to <config-patches@gnu.org>."
48
+
49
+ version="\
50
+ GNU config.guess ($timestamp)
51
+
52
+ Originally written by Per Bothner.
53
+ Copyright 1992-2017 Free Software Foundation, Inc.
54
+
55
+ This is free software; see the source for copying conditions. There is NO
56
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
57
+
58
+ help="
59
+ Try \`$me --help' for more information."
60
+
61
+ # Parse command line
62
+ while test $# -gt 0 ; do
63
+ case $1 in
64
+ --time-stamp | --time* | -t )
65
+ echo "$timestamp" ; exit ;;
66
+ --version | -v )
67
+ echo "$version" ; exit ;;
68
+ --help | --h* | -h )
69
+ echo "$usage"; exit ;;
70
+ -- ) # Stop option processing
71
+ shift; break ;;
72
+ - ) # Use stdin as input.
73
+ break ;;
74
+ -* )
75
+ echo "$me: invalid option $1$help" >&2
76
+ exit 1 ;;
77
+ * )
78
+ break ;;
79
+ esac
80
+ done
81
+
82
+ if test $# != 0; then
83
+ echo "$me: too many arguments$help" >&2
84
+ exit 1
85
+ fi
86
+
87
+ trap 'exit 1' 1 2 15
88
+
89
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
90
+ # compiler to aid in system detection is discouraged as it requires
91
+ # temporary files to be created and, as you can see below, it is a
92
+ # headache to deal with in a portable fashion.
93
+
94
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
95
+ # use `HOST_CC' if defined, but it is deprecated.
96
+
97
+ # Portable tmp directory creation inspired by the Autoconf team.
98
+
99
+ set_cc_for_build='
100
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
101
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
102
+ : ${TMPDIR=/tmp} ;
103
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
104
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
105
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
106
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
107
+ dummy=$tmp/dummy ;
108
+ tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
109
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
110
+ ,,) echo "int x;" > $dummy.c ;
111
+ for c in cc gcc c89 c99 ; do
112
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
113
+ CC_FOR_BUILD="$c"; break ;
114
+ fi ;
115
+ done ;
116
+ if test x"$CC_FOR_BUILD" = x ; then
117
+ CC_FOR_BUILD=no_compiler_found ;
118
+ fi
119
+ ;;
120
+ ,,*) CC_FOR_BUILD=$CC ;;
121
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
122
+ esac ; set_cc_for_build= ;'
123
+
124
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
125
+ # (ghazi@noc.rutgers.edu 1994-08-24)
126
+ if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
127
+ PATH=$PATH:/.attbin ; export PATH
128
+ fi
129
+
130
+ UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
131
+ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
132
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
133
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
134
+
135
+ case "${UNAME_SYSTEM}" in
136
+ Linux|GNU|GNU/*)
137
+ # If the system lacks a compiler, then just pick glibc.
138
+ # We could probably try harder.
139
+ LIBC=gnu
140
+
141
+ eval $set_cc_for_build
142
+ cat <<-EOF > $dummy.c
143
+ #include <features.h>
144
+ #if defined(__UCLIBC__)
145
+ LIBC=uclibc
146
+ #elif defined(__dietlibc__)
147
+ LIBC=dietlibc
148
+ #else
149
+ LIBC=gnu
150
+ #endif
151
+ EOF
152
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
153
+ ;;
154
+ esac
155
+
156
+ # Note: order is significant - the case branches are not exclusive.
157
+
158
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
159
+ *:NetBSD:*:*)
160
+ # NetBSD (nbsd) targets should (where applicable) match one or
161
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
162
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
163
+ # switched to ELF, *-*-netbsd* would select the old
164
+ # object file format. This provides both forward
165
+ # compatibility and a consistent mechanism for selecting the
166
+ # object file format.
167
+ #
168
+ # Note: NetBSD doesn't particularly care about the vendor
169
+ # portion of the name. We always set it to "unknown".
170
+ sysctl="sysctl -n hw.machine_arch"
171
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
172
+ /sbin/$sysctl 2>/dev/null || \
173
+ /usr/sbin/$sysctl 2>/dev/null || \
174
+ echo unknown)`
175
+ case "${UNAME_MACHINE_ARCH}" in
176
+ armeb) machine=armeb-unknown ;;
177
+ arm*) machine=arm-unknown ;;
178
+ sh3el) machine=shl-unknown ;;
179
+ sh3eb) machine=sh-unknown ;;
180
+ sh5el) machine=sh5le-unknown ;;
181
+ earmv*)
182
+ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
183
+ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
184
+ machine=${arch}${endian}-unknown
185
+ ;;
186
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
187
+ esac
188
+ # The Operating System including object format, if it has switched
189
+ # to ELF recently (or will in the future) and ABI.
190
+ case "${UNAME_MACHINE_ARCH}" in
191
+ earm*)
192
+ os=netbsdelf
193
+ ;;
194
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
195
+ eval $set_cc_for_build
196
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
197
+ | grep -q __ELF__
198
+ then
199
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
200
+ # Return netbsd for either. FIX?
201
+ os=netbsd
202
+ else
203
+ os=netbsdelf
204
+ fi
205
+ ;;
206
+ *)
207
+ os=netbsd
208
+ ;;
209
+ esac
210
+ # Determine ABI tags.
211
+ case "${UNAME_MACHINE_ARCH}" in
212
+ earm*)
213
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
214
+ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
215
+ ;;
216
+ esac
217
+ # The OS release
218
+ # Debian GNU/NetBSD machines have a different userland, and
219
+ # thus, need a distinct triplet. However, they do not need
220
+ # kernel version information, so it can be replaced with a
221
+ # suitable tag, in the style of linux-gnu.
222
+ case "${UNAME_VERSION}" in
223
+ Debian*)
224
+ release='-gnu'
225
+ ;;
226
+ *)
227
+ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
228
+ ;;
229
+ esac
230
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
231
+ # contains redundant information, the shorter form:
232
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
233
+ echo "${machine}-${os}${release}${abi}"
234
+ exit ;;
235
+ *:Bitrig:*:*)
236
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
237
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
238
+ exit ;;
239
+ *:OpenBSD:*:*)
240
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
241
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
242
+ exit ;;
243
+ *:LibertyBSD:*:*)
244
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
245
+ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
246
+ exit ;;
247
+ *:ekkoBSD:*:*)
248
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
249
+ exit ;;
250
+ *:SolidBSD:*:*)
251
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
252
+ exit ;;
253
+ macppc:MirBSD:*:*)
254
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
255
+ exit ;;
256
+ *:MirBSD:*:*)
257
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
258
+ exit ;;
259
+ *:Sortix:*:*)
260
+ echo ${UNAME_MACHINE}-unknown-sortix
261
+ exit ;;
262
+ alpha:OSF1:*:*)
263
+ case $UNAME_RELEASE in
264
+ *4.0)
265
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
266
+ ;;
267
+ *5.*)
268
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
269
+ ;;
270
+ esac
271
+ # According to Compaq, /usr/sbin/psrinfo has been available on
272
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
273
+ # covers most systems running today. This code pipes the CPU
274
+ # types through head -n 1, so we only detect the type of CPU 0.
275
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
276
+ case "$ALPHA_CPU_TYPE" in
277
+ "EV4 (21064)")
278
+ UNAME_MACHINE=alpha ;;
279
+ "EV4.5 (21064)")
280
+ UNAME_MACHINE=alpha ;;
281
+ "LCA4 (21066/21068)")
282
+ UNAME_MACHINE=alpha ;;
283
+ "EV5 (21164)")
284
+ UNAME_MACHINE=alphaev5 ;;
285
+ "EV5.6 (21164A)")
286
+ UNAME_MACHINE=alphaev56 ;;
287
+ "EV5.6 (21164PC)")
288
+ UNAME_MACHINE=alphapca56 ;;
289
+ "EV5.7 (21164PC)")
290
+ UNAME_MACHINE=alphapca57 ;;
291
+ "EV6 (21264)")
292
+ UNAME_MACHINE=alphaev6 ;;
293
+ "EV6.7 (21264A)")
294
+ UNAME_MACHINE=alphaev67 ;;
295
+ "EV6.8CB (21264C)")
296
+ UNAME_MACHINE=alphaev68 ;;
297
+ "EV6.8AL (21264B)")
298
+ UNAME_MACHINE=alphaev68 ;;
299
+ "EV6.8CX (21264D)")
300
+ UNAME_MACHINE=alphaev68 ;;
301
+ "EV6.9A (21264/EV69A)")
302
+ UNAME_MACHINE=alphaev69 ;;
303
+ "EV7 (21364)")
304
+ UNAME_MACHINE=alphaev7 ;;
305
+ "EV7.9 (21364A)")
306
+ UNAME_MACHINE=alphaev79 ;;
307
+ esac
308
+ # A Pn.n version is a patched version.
309
+ # A Vn.n version is a released version.
310
+ # A Tn.n version is a released field test version.
311
+ # A Xn.n version is an unreleased experimental baselevel.
312
+ # 1.2 uses "1.2" for uname -r.
313
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
314
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
315
+ exitcode=$?
316
+ trap '' 0
317
+ exit $exitcode ;;
318
+ Alpha\ *:Windows_NT*:*)
319
+ # How do we know it's Interix rather than the generic POSIX subsystem?
320
+ # Should we change UNAME_MACHINE based on the output of uname instead
321
+ # of the specific Alpha model?
322
+ echo alpha-pc-interix
323
+ exit ;;
324
+ 21064:Windows_NT:50:3)
325
+ echo alpha-dec-winnt3.5
326
+ exit ;;
327
+ Amiga*:UNIX_System_V:4.0:*)
328
+ echo m68k-unknown-sysv4
329
+ exit ;;
330
+ *:[Aa]miga[Oo][Ss]:*:*)
331
+ echo ${UNAME_MACHINE}-unknown-amigaos
332
+ exit ;;
333
+ *:[Mm]orph[Oo][Ss]:*:*)
334
+ echo ${UNAME_MACHINE}-unknown-morphos
335
+ exit ;;
336
+ *:OS/390:*:*)
337
+ echo i370-ibm-openedition
338
+ exit ;;
339
+ *:z/VM:*:*)
340
+ echo s390-ibm-zvmoe
341
+ exit ;;
342
+ *:OS400:*:*)
343
+ echo powerpc-ibm-os400
344
+ exit ;;
345
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
346
+ echo arm-acorn-riscix${UNAME_RELEASE}
347
+ exit ;;
348
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
349
+ echo arm-unknown-riscos
350
+ exit ;;
351
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
352
+ echo hppa1.1-hitachi-hiuxmpp
353
+ exit ;;
354
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
355
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
356
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
357
+ echo pyramid-pyramid-sysv3
358
+ else
359
+ echo pyramid-pyramid-bsd
360
+ fi
361
+ exit ;;
362
+ NILE*:*:*:dcosx)
363
+ echo pyramid-pyramid-svr4
364
+ exit ;;
365
+ DRS?6000:unix:4.0:6*)
366
+ echo sparc-icl-nx6
367
+ exit ;;
368
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
369
+ case `/usr/bin/uname -p` in
370
+ sparc) echo sparc-icl-nx7; exit ;;
371
+ esac ;;
372
+ s390x:SunOS:*:*)
373
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
374
+ exit ;;
375
+ sun4H:SunOS:5.*:*)
376
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
377
+ exit ;;
378
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
379
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
380
+ exit ;;
381
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
382
+ echo i386-pc-auroraux${UNAME_RELEASE}
383
+ exit ;;
384
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
385
+ eval $set_cc_for_build
386
+ SUN_ARCH=i386
387
+ # If there is a compiler, see if it is configured for 64-bit objects.
388
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
389
+ # This test works for both compilers.
390
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
391
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
392
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
393
+ grep IS_64BIT_ARCH >/dev/null
394
+ then
395
+ SUN_ARCH=x86_64
396
+ fi
397
+ fi
398
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
399
+ exit ;;
400
+ sun4*:SunOS:6*:*)
401
+ # According to config.sub, this is the proper way to canonicalize
402
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
403
+ # it's likely to be more like Solaris than SunOS4.
404
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
405
+ exit ;;
406
+ sun4*:SunOS:*:*)
407
+ case "`/usr/bin/arch -k`" in
408
+ Series*|S4*)
409
+ UNAME_RELEASE=`uname -v`
410
+ ;;
411
+ esac
412
+ # Japanese Language versions have a version number like `4.1.3-JL'.
413
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
414
+ exit ;;
415
+ sun3*:SunOS:*:*)
416
+ echo m68k-sun-sunos${UNAME_RELEASE}
417
+ exit ;;
418
+ sun*:*:4.2BSD:*)
419
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
420
+ test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
421
+ case "`/bin/arch`" in
422
+ sun3)
423
+ echo m68k-sun-sunos${UNAME_RELEASE}
424
+ ;;
425
+ sun4)
426
+ echo sparc-sun-sunos${UNAME_RELEASE}
427
+ ;;
428
+ esac
429
+ exit ;;
430
+ aushp:SunOS:*:*)
431
+ echo sparc-auspex-sunos${UNAME_RELEASE}
432
+ exit ;;
433
+ # The situation for MiNT is a little confusing. The machine name
434
+ # can be virtually everything (everything which is not
435
+ # "atarist" or "atariste" at least should have a processor
436
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
437
+ # to the lowercase version "mint" (or "freemint"). Finally
438
+ # the system name "TOS" denotes a system which is actually not
439
+ # MiNT. But MiNT is downward compatible to TOS, so this should
440
+ # be no problem.
441
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
442
+ echo m68k-atari-mint${UNAME_RELEASE}
443
+ exit ;;
444
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
445
+ echo m68k-atari-mint${UNAME_RELEASE}
446
+ exit ;;
447
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
448
+ echo m68k-atari-mint${UNAME_RELEASE}
449
+ exit ;;
450
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
451
+ echo m68k-milan-mint${UNAME_RELEASE}
452
+ exit ;;
453
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
454
+ echo m68k-hades-mint${UNAME_RELEASE}
455
+ exit ;;
456
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
457
+ echo m68k-unknown-mint${UNAME_RELEASE}
458
+ exit ;;
459
+ m68k:machten:*:*)
460
+ echo m68k-apple-machten${UNAME_RELEASE}
461
+ exit ;;
462
+ powerpc:machten:*:*)
463
+ echo powerpc-apple-machten${UNAME_RELEASE}
464
+ exit ;;
465
+ RISC*:Mach:*:*)
466
+ echo mips-dec-mach_bsd4.3
467
+ exit ;;
468
+ RISC*:ULTRIX:*:*)
469
+ echo mips-dec-ultrix${UNAME_RELEASE}
470
+ exit ;;
471
+ VAX*:ULTRIX*:*:*)
472
+ echo vax-dec-ultrix${UNAME_RELEASE}
473
+ exit ;;
474
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
475
+ echo clipper-intergraph-clix${UNAME_RELEASE}
476
+ exit ;;
477
+ mips:*:*:UMIPS | mips:*:*:RISCos)
478
+ eval $set_cc_for_build
479
+ sed 's/^ //' << EOF >$dummy.c
480
+ #ifdef __cplusplus
481
+ #include <stdio.h> /* for printf() prototype */
482
+ int main (int argc, char *argv[]) {
483
+ #else
484
+ int main (argc, argv) int argc; char *argv[]; {
485
+ #endif
486
+ #if defined (host_mips) && defined (MIPSEB)
487
+ #if defined (SYSTYPE_SYSV)
488
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
489
+ #endif
490
+ #if defined (SYSTYPE_SVR4)
491
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
492
+ #endif
493
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
494
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
495
+ #endif
496
+ #endif
497
+ exit (-1);
498
+ }
499
+ EOF
500
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
501
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
502
+ SYSTEM_NAME=`$dummy $dummyarg` &&
503
+ { echo "$SYSTEM_NAME"; exit; }
504
+ echo mips-mips-riscos${UNAME_RELEASE}
505
+ exit ;;
506
+ Motorola:PowerMAX_OS:*:*)
507
+ echo powerpc-motorola-powermax
508
+ exit ;;
509
+ Motorola:*:4.3:PL8-*)
510
+ echo powerpc-harris-powermax
511
+ exit ;;
512
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
513
+ echo powerpc-harris-powermax
514
+ exit ;;
515
+ Night_Hawk:Power_UNIX:*:*)
516
+ echo powerpc-harris-powerunix
517
+ exit ;;
518
+ m88k:CX/UX:7*:*)
519
+ echo m88k-harris-cxux7
520
+ exit ;;
521
+ m88k:*:4*:R4*)
522
+ echo m88k-motorola-sysv4
523
+ exit ;;
524
+ m88k:*:3*:R3*)
525
+ echo m88k-motorola-sysv3
526
+ exit ;;
527
+ AViiON:dgux:*:*)
528
+ # DG/UX returns AViiON for all architectures
529
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
530
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
531
+ then
532
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
533
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
534
+ then
535
+ echo m88k-dg-dgux${UNAME_RELEASE}
536
+ else
537
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
538
+ fi
539
+ else
540
+ echo i586-dg-dgux${UNAME_RELEASE}
541
+ fi
542
+ exit ;;
543
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
544
+ echo m88k-dolphin-sysv3
545
+ exit ;;
546
+ M88*:*:R3*:*)
547
+ # Delta 88k system running SVR3
548
+ echo m88k-motorola-sysv3
549
+ exit ;;
550
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
551
+ echo m88k-tektronix-sysv3
552
+ exit ;;
553
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
554
+ echo m68k-tektronix-bsd
555
+ exit ;;
556
+ *:IRIX*:*:*)
557
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
558
+ exit ;;
559
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
560
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
561
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
562
+ i*86:AIX:*:*)
563
+ echo i386-ibm-aix
564
+ exit ;;
565
+ ia64:AIX:*:*)
566
+ if [ -x /usr/bin/oslevel ] ; then
567
+ IBM_REV=`/usr/bin/oslevel`
568
+ else
569
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
570
+ fi
571
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
572
+ exit ;;
573
+ *:AIX:2:3)
574
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
575
+ eval $set_cc_for_build
576
+ sed 's/^ //' << EOF >$dummy.c
577
+ #include <sys/systemcfg.h>
578
+
579
+ main()
580
+ {
581
+ if (!__power_pc())
582
+ exit(1);
583
+ puts("powerpc-ibm-aix3.2.5");
584
+ exit(0);
585
+ }
586
+ EOF
587
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
588
+ then
589
+ echo "$SYSTEM_NAME"
590
+ else
591
+ echo rs6000-ibm-aix3.2.5
592
+ fi
593
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
594
+ echo rs6000-ibm-aix3.2.4
595
+ else
596
+ echo rs6000-ibm-aix3.2
597
+ fi
598
+ exit ;;
599
+ *:AIX:*:[4567])
600
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
601
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
602
+ IBM_ARCH=rs6000
603
+ else
604
+ IBM_ARCH=powerpc
605
+ fi
606
+ if [ -x /usr/bin/lslpp ] ; then
607
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
608
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
609
+ else
610
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
611
+ fi
612
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
613
+ exit ;;
614
+ *:AIX:*:*)
615
+ echo rs6000-ibm-aix
616
+ exit ;;
617
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
618
+ echo romp-ibm-bsd4.4
619
+ exit ;;
620
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
621
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
622
+ exit ;; # report: romp-ibm BSD 4.3
623
+ *:BOSX:*:*)
624
+ echo rs6000-bull-bosx
625
+ exit ;;
626
+ DPX/2?00:B.O.S.:*:*)
627
+ echo m68k-bull-sysv3
628
+ exit ;;
629
+ 9000/[34]??:4.3bsd:1.*:*)
630
+ echo m68k-hp-bsd
631
+ exit ;;
632
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
633
+ echo m68k-hp-bsd4.4
634
+ exit ;;
635
+ 9000/[34678]??:HP-UX:*:*)
636
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
637
+ case "${UNAME_MACHINE}" in
638
+ 9000/31? ) HP_ARCH=m68000 ;;
639
+ 9000/[34]?? ) HP_ARCH=m68k ;;
640
+ 9000/[678][0-9][0-9])
641
+ if [ -x /usr/bin/getconf ]; then
642
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
643
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
644
+ case "${sc_cpu_version}" in
645
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
646
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
647
+ 532) # CPU_PA_RISC2_0
648
+ case "${sc_kernel_bits}" in
649
+ 32) HP_ARCH=hppa2.0n ;;
650
+ 64) HP_ARCH=hppa2.0w ;;
651
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
652
+ esac ;;
653
+ esac
654
+ fi
655
+ if [ "${HP_ARCH}" = "" ]; then
656
+ eval $set_cc_for_build
657
+ sed 's/^ //' << EOF >$dummy.c
658
+
659
+ #define _HPUX_SOURCE
660
+ #include <stdlib.h>
661
+ #include <unistd.h>
662
+
663
+ int main ()
664
+ {
665
+ #if defined(_SC_KERNEL_BITS)
666
+ long bits = sysconf(_SC_KERNEL_BITS);
667
+ #endif
668
+ long cpu = sysconf (_SC_CPU_VERSION);
669
+
670
+ switch (cpu)
671
+ {
672
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
673
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
674
+ case CPU_PA_RISC2_0:
675
+ #if defined(_SC_KERNEL_BITS)
676
+ switch (bits)
677
+ {
678
+ case 64: puts ("hppa2.0w"); break;
679
+ case 32: puts ("hppa2.0n"); break;
680
+ default: puts ("hppa2.0"); break;
681
+ } break;
682
+ #else /* !defined(_SC_KERNEL_BITS) */
683
+ puts ("hppa2.0"); break;
684
+ #endif
685
+ default: puts ("hppa1.0"); break;
686
+ }
687
+ exit (0);
688
+ }
689
+ EOF
690
+ (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
691
+ test -z "$HP_ARCH" && HP_ARCH=hppa
692
+ fi ;;
693
+ esac
694
+ if [ ${HP_ARCH} = hppa2.0w ]
695
+ then
696
+ eval $set_cc_for_build
697
+
698
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
699
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
700
+ # generating 64-bit code. GNU and HP use different nomenclature:
701
+ #
702
+ # $ CC_FOR_BUILD=cc ./config.guess
703
+ # => hppa2.0w-hp-hpux11.23
704
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
705
+ # => hppa64-hp-hpux11.23
706
+
707
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
708
+ grep -q __LP64__
709
+ then
710
+ HP_ARCH=hppa2.0w
711
+ else
712
+ HP_ARCH=hppa64
713
+ fi
714
+ fi
715
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
716
+ exit ;;
717
+ ia64:HP-UX:*:*)
718
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
719
+ echo ia64-hp-hpux${HPUX_REV}
720
+ exit ;;
721
+ 3050*:HI-UX:*:*)
722
+ eval $set_cc_for_build
723
+ sed 's/^ //' << EOF >$dummy.c
724
+ #include <unistd.h>
725
+ int
726
+ main ()
727
+ {
728
+ long cpu = sysconf (_SC_CPU_VERSION);
729
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
730
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
731
+ results, however. */
732
+ if (CPU_IS_PA_RISC (cpu))
733
+ {
734
+ switch (cpu)
735
+ {
736
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
737
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
738
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
739
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
740
+ }
741
+ }
742
+ else if (CPU_IS_HP_MC68K (cpu))
743
+ puts ("m68k-hitachi-hiuxwe2");
744
+ else puts ("unknown-hitachi-hiuxwe2");
745
+ exit (0);
746
+ }
747
+ EOF
748
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
749
+ { echo "$SYSTEM_NAME"; exit; }
750
+ echo unknown-hitachi-hiuxwe2
751
+ exit ;;
752
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
753
+ echo hppa1.1-hp-bsd
754
+ exit ;;
755
+ 9000/8??:4.3bsd:*:*)
756
+ echo hppa1.0-hp-bsd
757
+ exit ;;
758
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
759
+ echo hppa1.0-hp-mpeix
760
+ exit ;;
761
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
762
+ echo hppa1.1-hp-osf
763
+ exit ;;
764
+ hp8??:OSF1:*:*)
765
+ echo hppa1.0-hp-osf
766
+ exit ;;
767
+ i*86:OSF1:*:*)
768
+ if [ -x /usr/sbin/sysversion ] ; then
769
+ echo ${UNAME_MACHINE}-unknown-osf1mk
770
+ else
771
+ echo ${UNAME_MACHINE}-unknown-osf1
772
+ fi
773
+ exit ;;
774
+ parisc*:Lites*:*:*)
775
+ echo hppa1.1-hp-lites
776
+ exit ;;
777
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
778
+ echo c1-convex-bsd
779
+ exit ;;
780
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
781
+ if getsysinfo -f scalar_acc
782
+ then echo c32-convex-bsd
783
+ else echo c2-convex-bsd
784
+ fi
785
+ exit ;;
786
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
787
+ echo c34-convex-bsd
788
+ exit ;;
789
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
790
+ echo c38-convex-bsd
791
+ exit ;;
792
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
793
+ echo c4-convex-bsd
794
+ exit ;;
795
+ CRAY*Y-MP:*:*:*)
796
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
797
+ exit ;;
798
+ CRAY*[A-Z]90:*:*:*)
799
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
800
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
801
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
802
+ -e 's/\.[^.]*$/.X/'
803
+ exit ;;
804
+ CRAY*TS:*:*:*)
805
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
806
+ exit ;;
807
+ CRAY*T3E:*:*:*)
808
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
809
+ exit ;;
810
+ CRAY*SV1:*:*:*)
811
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
812
+ exit ;;
813
+ *:UNICOS/mp:*:*)
814
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
815
+ exit ;;
816
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
817
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
818
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
819
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
820
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
821
+ exit ;;
822
+ 5000:UNIX_System_V:4.*:*)
823
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
824
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
825
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
826
+ exit ;;
827
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
828
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
829
+ exit ;;
830
+ sparc*:BSD/OS:*:*)
831
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
832
+ exit ;;
833
+ *:BSD/OS:*:*)
834
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
835
+ exit ;;
836
+ *:FreeBSD:*:*)
837
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
838
+ case ${UNAME_PROCESSOR} in
839
+ amd64)
840
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
841
+ *)
842
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
843
+ esac
844
+ exit ;;
845
+ i*:CYGWIN*:*)
846
+ echo ${UNAME_MACHINE}-pc-cygwin
847
+ exit ;;
848
+ *:MINGW64*:*)
849
+ echo ${UNAME_MACHINE}-pc-mingw64
850
+ exit ;;
851
+ *:MINGW*:*)
852
+ echo ${UNAME_MACHINE}-pc-mingw32
853
+ exit ;;
854
+ *:MSYS*:*)
855
+ echo ${UNAME_MACHINE}-pc-msys
856
+ exit ;;
857
+ i*:windows32*:*)
858
+ # uname -m includes "-pc" on this system.
859
+ echo ${UNAME_MACHINE}-mingw32
860
+ exit ;;
861
+ i*:PW*:*)
862
+ echo ${UNAME_MACHINE}-pc-pw32
863
+ exit ;;
864
+ *:Interix*:*)
865
+ case ${UNAME_MACHINE} in
866
+ x86)
867
+ echo i586-pc-interix${UNAME_RELEASE}
868
+ exit ;;
869
+ authenticamd | genuineintel | EM64T)
870
+ echo x86_64-unknown-interix${UNAME_RELEASE}
871
+ exit ;;
872
+ IA64)
873
+ echo ia64-unknown-interix${UNAME_RELEASE}
874
+ exit ;;
875
+ esac ;;
876
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
877
+ echo i${UNAME_MACHINE}-pc-mks
878
+ exit ;;
879
+ 8664:Windows_NT:*)
880
+ echo x86_64-pc-mks
881
+ exit ;;
882
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
883
+ # How do we know it's Interix rather than the generic POSIX subsystem?
884
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
885
+ # UNAME_MACHINE based on the output of uname instead of i386?
886
+ echo i586-pc-interix
887
+ exit ;;
888
+ i*:UWIN*:*)
889
+ echo ${UNAME_MACHINE}-pc-uwin
890
+ exit ;;
891
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
892
+ echo x86_64-unknown-cygwin
893
+ exit ;;
894
+ p*:CYGWIN*:*)
895
+ echo powerpcle-unknown-cygwin
896
+ exit ;;
897
+ prep*:SunOS:5.*:*)
898
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
899
+ exit ;;
900
+ *:GNU:*:*)
901
+ # the GNU system
902
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
903
+ exit ;;
904
+ *:GNU/*:*:*)
905
+ # other systems with GNU libc and userland
906
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
907
+ exit ;;
908
+ i*86:Minix:*:*)
909
+ echo ${UNAME_MACHINE}-pc-minix
910
+ exit ;;
911
+ aarch64:Linux:*:*)
912
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
913
+ exit ;;
914
+ aarch64_be:Linux:*:*)
915
+ UNAME_MACHINE=aarch64_be
916
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
917
+ exit ;;
918
+ alpha:Linux:*:*)
919
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
920
+ EV5) UNAME_MACHINE=alphaev5 ;;
921
+ EV56) UNAME_MACHINE=alphaev56 ;;
922
+ PCA56) UNAME_MACHINE=alphapca56 ;;
923
+ PCA57) UNAME_MACHINE=alphapca56 ;;
924
+ EV6) UNAME_MACHINE=alphaev6 ;;
925
+ EV67) UNAME_MACHINE=alphaev67 ;;
926
+ EV68*) UNAME_MACHINE=alphaev68 ;;
927
+ esac
928
+ objdump --private-headers /bin/sh | grep -q ld.so.1
929
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
930
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
931
+ exit ;;
932
+ arc:Linux:*:* | arceb:Linux:*:*)
933
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
934
+ exit ;;
935
+ arm*:Linux:*:*)
936
+ eval $set_cc_for_build
937
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
938
+ | grep -q __ARM_EABI__
939
+ then
940
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
941
+ else
942
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
943
+ | grep -q __ARM_PCS_VFP
944
+ then
945
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
946
+ else
947
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
948
+ fi
949
+ fi
950
+ exit ;;
951
+ avr32*:Linux:*:*)
952
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
953
+ exit ;;
954
+ cris:Linux:*:*)
955
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
956
+ exit ;;
957
+ crisv32:Linux:*:*)
958
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
959
+ exit ;;
960
+ e2k:Linux:*:*)
961
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
962
+ exit ;;
963
+ frv:Linux:*:*)
964
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
965
+ exit ;;
966
+ hexagon:Linux:*:*)
967
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
968
+ exit ;;
969
+ i*86:Linux:*:*)
970
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
971
+ exit ;;
972
+ ia64:Linux:*:*)
973
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
974
+ exit ;;
975
+ k1om:Linux:*:*)
976
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
977
+ exit ;;
978
+ m32r*:Linux:*:*)
979
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
980
+ exit ;;
981
+ m68*:Linux:*:*)
982
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
983
+ exit ;;
984
+ mips:Linux:*:* | mips64:Linux:*:*)
985
+ eval $set_cc_for_build
986
+ sed 's/^ //' << EOF >$dummy.c
987
+ #undef CPU
988
+ #undef ${UNAME_MACHINE}
989
+ #undef ${UNAME_MACHINE}el
990
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
991
+ CPU=${UNAME_MACHINE}el
992
+ #else
993
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
994
+ CPU=${UNAME_MACHINE}
995
+ #else
996
+ CPU=
997
+ #endif
998
+ #endif
999
+ EOF
1000
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
1001
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
1002
+ ;;
1003
+ mips64el:Linux:*:*)
1004
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1005
+ exit ;;
1006
+ openrisc*:Linux:*:*)
1007
+ echo or1k-unknown-linux-${LIBC}
1008
+ exit ;;
1009
+ or32:Linux:*:* | or1k*:Linux:*:*)
1010
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1011
+ exit ;;
1012
+ padre:Linux:*:*)
1013
+ echo sparc-unknown-linux-${LIBC}
1014
+ exit ;;
1015
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
1016
+ echo hppa64-unknown-linux-${LIBC}
1017
+ exit ;;
1018
+ parisc:Linux:*:* | hppa:Linux:*:*)
1019
+ # Look for CPU level
1020
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1021
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
1022
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
1023
+ *) echo hppa-unknown-linux-${LIBC} ;;
1024
+ esac
1025
+ exit ;;
1026
+ ppc64:Linux:*:*)
1027
+ echo powerpc64-unknown-linux-${LIBC}
1028
+ exit ;;
1029
+ ppc:Linux:*:*)
1030
+ echo powerpc-unknown-linux-${LIBC}
1031
+ exit ;;
1032
+ ppc64le:Linux:*:*)
1033
+ echo powerpc64le-unknown-linux-${LIBC}
1034
+ exit ;;
1035
+ ppcle:Linux:*:*)
1036
+ echo powerpcle-unknown-linux-${LIBC}
1037
+ exit ;;
1038
+ riscv32:Linux:*:* | riscv64:Linux:*:*)
1039
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1040
+ exit ;;
1041
+ s390:Linux:*:* | s390x:Linux:*:*)
1042
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1043
+ exit ;;
1044
+ sh64*:Linux:*:*)
1045
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1046
+ exit ;;
1047
+ sh*:Linux:*:*)
1048
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1049
+ exit ;;
1050
+ sparc:Linux:*:* | sparc64:Linux:*:*)
1051
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1052
+ exit ;;
1053
+ tile*:Linux:*:*)
1054
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1055
+ exit ;;
1056
+ vax:Linux:*:*)
1057
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1058
+ exit ;;
1059
+ x86_64:Linux:*:*)
1060
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
1061
+ exit ;;
1062
+ xtensa*:Linux:*:*)
1063
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1064
+ exit ;;
1065
+ i*86:DYNIX/ptx:4*:*)
1066
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1067
+ # earlier versions are messed up and put the nodename in both
1068
+ # sysname and nodename.
1069
+ echo i386-sequent-sysv4
1070
+ exit ;;
1071
+ i*86:UNIX_SV:4.2MP:2.*)
1072
+ # Unixware is an offshoot of SVR4, but it has its own version
1073
+ # number series starting with 2...
1074
+ # I am not positive that other SVR4 systems won't match this,
1075
+ # I just have to hope. -- rms.
1076
+ # Use sysv4.2uw... so that sysv4* matches it.
1077
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1078
+ exit ;;
1079
+ i*86:OS/2:*:*)
1080
+ # If we were able to find `uname', then EMX Unix compatibility
1081
+ # is probably installed.
1082
+ echo ${UNAME_MACHINE}-pc-os2-emx
1083
+ exit ;;
1084
+ i*86:XTS-300:*:STOP)
1085
+ echo ${UNAME_MACHINE}-unknown-stop
1086
+ exit ;;
1087
+ i*86:atheos:*:*)
1088
+ echo ${UNAME_MACHINE}-unknown-atheos
1089
+ exit ;;
1090
+ i*86:syllable:*:*)
1091
+ echo ${UNAME_MACHINE}-pc-syllable
1092
+ exit ;;
1093
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1094
+ echo i386-unknown-lynxos${UNAME_RELEASE}
1095
+ exit ;;
1096
+ i*86:*DOS:*:*)
1097
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
1098
+ exit ;;
1099
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1100
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1101
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1102
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1103
+ else
1104
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1105
+ fi
1106
+ exit ;;
1107
+ i*86:*:5:[678]*)
1108
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
1109
+ case `/bin/uname -X | grep "^Machine"` in
1110
+ *486*) UNAME_MACHINE=i486 ;;
1111
+ *Pentium) UNAME_MACHINE=i586 ;;
1112
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1113
+ esac
1114
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1115
+ exit ;;
1116
+ i*86:*:3.2:*)
1117
+ if test -f /usr/options/cb.name; then
1118
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1119
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1120
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
1121
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1122
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1123
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1124
+ && UNAME_MACHINE=i586
1125
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1126
+ && UNAME_MACHINE=i686
1127
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1128
+ && UNAME_MACHINE=i686
1129
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1130
+ else
1131
+ echo ${UNAME_MACHINE}-pc-sysv32
1132
+ fi
1133
+ exit ;;
1134
+ pc:*:*:*)
1135
+ # Left here for compatibility:
1136
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
1137
+ # the processor, so we play safe by assuming i586.
1138
+ # Note: whatever this is, it MUST be the same as what config.sub
1139
+ # prints for the "djgpp" host, or else GDB configure will decide that
1140
+ # this is a cross-build.
1141
+ echo i586-pc-msdosdjgpp
1142
+ exit ;;
1143
+ Intel:Mach:3*:*)
1144
+ echo i386-pc-mach3
1145
+ exit ;;
1146
+ paragon:*:*:*)
1147
+ echo i860-intel-osf1
1148
+ exit ;;
1149
+ i860:*:4.*:*) # i860-SVR4
1150
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1151
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1152
+ else # Add other i860-SVR4 vendors below as they are discovered.
1153
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1154
+ fi
1155
+ exit ;;
1156
+ mini*:CTIX:SYS*5:*)
1157
+ # "miniframe"
1158
+ echo m68010-convergent-sysv
1159
+ exit ;;
1160
+ mc68k:UNIX:SYSTEM5:3.51m)
1161
+ echo m68k-convergent-sysv
1162
+ exit ;;
1163
+ M680?0:D-NIX:5.3:*)
1164
+ echo m68k-diab-dnix
1165
+ exit ;;
1166
+ M68*:*:R3V[5678]*:*)
1167
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1168
+ 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)
1169
+ OS_REL=''
1170
+ test -r /etc/.relid \
1171
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1172
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1173
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1174
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1175
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1176
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1177
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1178
+ && { echo i486-ncr-sysv4; exit; } ;;
1179
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1180
+ OS_REL='.3'
1181
+ test -r /etc/.relid \
1182
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1183
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1184
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1185
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1186
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1187
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1188
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1189
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1190
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
1191
+ exit ;;
1192
+ mc68030:UNIX_System_V:4.*:*)
1193
+ echo m68k-atari-sysv4
1194
+ exit ;;
1195
+ TSUNAMI:LynxOS:2.*:*)
1196
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
1197
+ exit ;;
1198
+ rs6000:LynxOS:2.*:*)
1199
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
1200
+ exit ;;
1201
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1202
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
1203
+ exit ;;
1204
+ SM[BE]S:UNIX_SV:*:*)
1205
+ echo mips-dde-sysv${UNAME_RELEASE}
1206
+ exit ;;
1207
+ RM*:ReliantUNIX-*:*:*)
1208
+ echo mips-sni-sysv4
1209
+ exit ;;
1210
+ RM*:SINIX-*:*:*)
1211
+ echo mips-sni-sysv4
1212
+ exit ;;
1213
+ *:SINIX-*:*:*)
1214
+ if uname -p 2>/dev/null >/dev/null ; then
1215
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1216
+ echo ${UNAME_MACHINE}-sni-sysv4
1217
+ else
1218
+ echo ns32k-sni-sysv
1219
+ fi
1220
+ exit ;;
1221
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1222
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
1223
+ echo i586-unisys-sysv4
1224
+ exit ;;
1225
+ *:UNIX_System_V:4*:FTX*)
1226
+ # From Gerald Hewes <hewes@openmarket.com>.
1227
+ # How about differentiating between stratus architectures? -djm
1228
+ echo hppa1.1-stratus-sysv4
1229
+ exit ;;
1230
+ *:*:*:FTX*)
1231
+ # From seanf@swdc.stratus.com.
1232
+ echo i860-stratus-sysv4
1233
+ exit ;;
1234
+ i*86:VOS:*:*)
1235
+ # From Paul.Green@stratus.com.
1236
+ echo ${UNAME_MACHINE}-stratus-vos
1237
+ exit ;;
1238
+ *:VOS:*:*)
1239
+ # From Paul.Green@stratus.com.
1240
+ echo hppa1.1-stratus-vos
1241
+ exit ;;
1242
+ mc68*:A/UX:*:*)
1243
+ echo m68k-apple-aux${UNAME_RELEASE}
1244
+ exit ;;
1245
+ news*:NEWS-OS:6*:*)
1246
+ echo mips-sony-newsos6
1247
+ exit ;;
1248
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1249
+ if [ -d /usr/nec ]; then
1250
+ echo mips-nec-sysv${UNAME_RELEASE}
1251
+ else
1252
+ echo mips-unknown-sysv${UNAME_RELEASE}
1253
+ fi
1254
+ exit ;;
1255
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1256
+ echo powerpc-be-beos
1257
+ exit ;;
1258
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1259
+ echo powerpc-apple-beos
1260
+ exit ;;
1261
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1262
+ echo i586-pc-beos
1263
+ exit ;;
1264
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1265
+ echo i586-pc-haiku
1266
+ exit ;;
1267
+ x86_64:Haiku:*:*)
1268
+ echo x86_64-unknown-haiku
1269
+ exit ;;
1270
+ SX-4:SUPER-UX:*:*)
1271
+ echo sx4-nec-superux${UNAME_RELEASE}
1272
+ exit ;;
1273
+ SX-5:SUPER-UX:*:*)
1274
+ echo sx5-nec-superux${UNAME_RELEASE}
1275
+ exit ;;
1276
+ SX-6:SUPER-UX:*:*)
1277
+ echo sx6-nec-superux${UNAME_RELEASE}
1278
+ exit ;;
1279
+ SX-7:SUPER-UX:*:*)
1280
+ echo sx7-nec-superux${UNAME_RELEASE}
1281
+ exit ;;
1282
+ SX-8:SUPER-UX:*:*)
1283
+ echo sx8-nec-superux${UNAME_RELEASE}
1284
+ exit ;;
1285
+ SX-8R:SUPER-UX:*:*)
1286
+ echo sx8r-nec-superux${UNAME_RELEASE}
1287
+ exit ;;
1288
+ SX-ACE:SUPER-UX:*:*)
1289
+ echo sxace-nec-superux${UNAME_RELEASE}
1290
+ exit ;;
1291
+ Power*:Rhapsody:*:*)
1292
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
1293
+ exit ;;
1294
+ *:Rhapsody:*:*)
1295
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1296
+ exit ;;
1297
+ *:Darwin:*:*)
1298
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1299
+ eval $set_cc_for_build
1300
+ if test "$UNAME_PROCESSOR" = unknown ; then
1301
+ UNAME_PROCESSOR=powerpc
1302
+ fi
1303
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1304
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1305
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1306
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1307
+ grep IS_64BIT_ARCH >/dev/null
1308
+ then
1309
+ case $UNAME_PROCESSOR in
1310
+ i386) UNAME_PROCESSOR=x86_64 ;;
1311
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
1312
+ esac
1313
+ fi
1314
+ fi
1315
+ elif test "$UNAME_PROCESSOR" = i386 ; then
1316
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
1317
+ # that puts up a graphical alert prompting to install
1318
+ # developer tools. Any system running Mac OS X 10.7 or
1319
+ # later (Darwin 11 and later) is required to have a 64-bit
1320
+ # processor. This is not true of the ARM version of Darwin
1321
+ # that Apple uses in portable devices.
1322
+ UNAME_PROCESSOR=x86_64
1323
+ fi
1324
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1325
+ exit ;;
1326
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
1327
+ UNAME_PROCESSOR=`uname -p`
1328
+ if test "$UNAME_PROCESSOR" = x86; then
1329
+ UNAME_PROCESSOR=i386
1330
+ UNAME_MACHINE=pc
1331
+ fi
1332
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1333
+ exit ;;
1334
+ *:QNX:*:4*)
1335
+ echo i386-pc-qnx
1336
+ exit ;;
1337
+ NEO-?:NONSTOP_KERNEL:*:*)
1338
+ echo neo-tandem-nsk${UNAME_RELEASE}
1339
+ exit ;;
1340
+ NSE-*:NONSTOP_KERNEL:*:*)
1341
+ echo nse-tandem-nsk${UNAME_RELEASE}
1342
+ exit ;;
1343
+ NSR-?:NONSTOP_KERNEL:*:*)
1344
+ echo nsr-tandem-nsk${UNAME_RELEASE}
1345
+ exit ;;
1346
+ *:NonStop-UX:*:*)
1347
+ echo mips-compaq-nonstopux
1348
+ exit ;;
1349
+ BS2000:POSIX*:*:*)
1350
+ echo bs2000-siemens-sysv
1351
+ exit ;;
1352
+ DS/*:UNIX_System_V:*:*)
1353
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1354
+ exit ;;
1355
+ *:Plan9:*:*)
1356
+ # "uname -m" is not consistent, so use $cputype instead. 386
1357
+ # is converted to i386 for consistency with other x86
1358
+ # operating systems.
1359
+ if test "$cputype" = 386; then
1360
+ UNAME_MACHINE=i386
1361
+ else
1362
+ UNAME_MACHINE="$cputype"
1363
+ fi
1364
+ echo ${UNAME_MACHINE}-unknown-plan9
1365
+ exit ;;
1366
+ *:TOPS-10:*:*)
1367
+ echo pdp10-unknown-tops10
1368
+ exit ;;
1369
+ *:TENEX:*:*)
1370
+ echo pdp10-unknown-tenex
1371
+ exit ;;
1372
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1373
+ echo pdp10-dec-tops20
1374
+ exit ;;
1375
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1376
+ echo pdp10-xkl-tops20
1377
+ exit ;;
1378
+ *:TOPS-20:*:*)
1379
+ echo pdp10-unknown-tops20
1380
+ exit ;;
1381
+ *:ITS:*:*)
1382
+ echo pdp10-unknown-its
1383
+ exit ;;
1384
+ SEI:*:*:SEIUX)
1385
+ echo mips-sei-seiux${UNAME_RELEASE}
1386
+ exit ;;
1387
+ *:DragonFly:*:*)
1388
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1389
+ exit ;;
1390
+ *:*VMS:*:*)
1391
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1392
+ case "${UNAME_MACHINE}" in
1393
+ A*) echo alpha-dec-vms ; exit ;;
1394
+ I*) echo ia64-dec-vms ; exit ;;
1395
+ V*) echo vax-dec-vms ; exit ;;
1396
+ esac ;;
1397
+ *:XENIX:*:SysV)
1398
+ echo i386-pc-xenix
1399
+ exit ;;
1400
+ i*86:skyos:*:*)
1401
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
1402
+ exit ;;
1403
+ i*86:rdos:*:*)
1404
+ echo ${UNAME_MACHINE}-pc-rdos
1405
+ exit ;;
1406
+ i*86:AROS:*:*)
1407
+ echo ${UNAME_MACHINE}-pc-aros
1408
+ exit ;;
1409
+ x86_64:VMkernel:*:*)
1410
+ echo ${UNAME_MACHINE}-unknown-esx
1411
+ exit ;;
1412
+ amd64:Isilon\ OneFS:*:*)
1413
+ echo x86_64-unknown-onefs
1414
+ exit ;;
1415
+ esac
1416
+
1417
+ cat >&2 <<EOF
1418
+ $0: unable to guess system type
1419
+
1420
+ This script (version $timestamp), has failed to recognize the
1421
+ operating system you are using. If your script is old, overwrite
1422
+ config.guess and config.sub with the latest versions from:
1423
+
1424
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1425
+ and
1426
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1427
+
1428
+ If $0 has already been updated, send the following data and any
1429
+ information you think might be pertinent to config-patches@gnu.org to
1430
+ provide the necessary information to handle your system.
1431
+
1432
+ config.guess timestamp = $timestamp
1433
+
1434
+ uname -m = `(uname -m) 2>/dev/null || echo unknown`
1435
+ uname -r = `(uname -r) 2>/dev/null || echo unknown`
1436
+ uname -s = `(uname -s) 2>/dev/null || echo unknown`
1437
+ uname -v = `(uname -v) 2>/dev/null || echo unknown`
1438
+
1439
+ /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1440
+ /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1441
+
1442
+ hostinfo = `(hostinfo) 2>/dev/null`
1443
+ /bin/universe = `(/bin/universe) 2>/dev/null`
1444
+ /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1445
+ /bin/arch = `(/bin/arch) 2>/dev/null`
1446
+ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1447
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1448
+
1449
+ UNAME_MACHINE = ${UNAME_MACHINE}
1450
+ UNAME_RELEASE = ${UNAME_RELEASE}
1451
+ UNAME_SYSTEM = ${UNAME_SYSTEM}
1452
+ UNAME_VERSION = ${UNAME_VERSION}
1453
+ EOF
1454
+
1455
+ exit 1
1456
+
1457
+ # Local variables:
1458
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
1459
+ # time-stamp-start: "timestamp='"
1460
+ # time-stamp-format: "%:y-%02m-%02d"
1461
+ # time-stamp-end: "'"
1462
+ # End: