├── Makefile ├── test └── unload_test.erl ├── vars.config.in ├── .gitignore ├── LICENSE.txt ├── configure.ac ├── .github └── workflows │ ├── hexpm-release.yml │ └── ci.yml ├── src ├── iconv.app.src ├── iconv_sup.erl ├── iconv_app.erl └── iconv.erl ├── rebar.config ├── CHANGELOG.md ├── README.md ├── CODE_OF_CONDUCT.md ├── c_src └── iconv.c ├── rebar.config.script ├── CONTRIBUTING.md ├── missing ├── compile ├── install-sh ├── config.rpath ├── config.sub └── config.guess /Makefile: -------------------------------------------------------------------------------- 1 | REBAR ?= rebar 2 | 3 | all: src 4 | 5 | src: 6 | $(REBAR) get-deps 7 | $(REBAR) compile 8 | 9 | clean: 10 | $(REBAR) clean 11 | 12 | .PHONY: clean src 13 | -------------------------------------------------------------------------------- /test/unload_test.erl: -------------------------------------------------------------------------------- 1 | -module(unload_test). 2 | -export([unload_test/0]). 3 | 4 | unload_test() -> 5 | code:delete(fast_yaml), 6 | code:purge(fast_yaml), 7 | code:load_file(fast_yaml). 8 | -------------------------------------------------------------------------------- /vars.config.in: -------------------------------------------------------------------------------- 1 | {cflags, "@CFLAGS@"}. 2 | {ldflags, "@LDFLAGS@ @LIBICONV@"}. 3 | {with_gcov, "@gcov@"}. 4 | 5 | %% Local Variables: 6 | %% mode: erlang 7 | %% End: 8 | %% vim: set filetype=erlang tabstop=8: 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swo 2 | *.swp 3 | .eunit 4 | .rebar 5 | _build 6 | autom4te.cache 7 | c_src/*.d 8 | c_src/*.gcda 9 | c_src/*.gcno 10 | c_src/*.o 11 | config.log 12 | config.status 13 | deps 14 | ebin 15 | priv 16 | rebar.lock 17 | vars.config 18 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2002-2021 ProcessOne SARL 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /configure.ac: -------------------------------------------------------------------------------- 1 | # -*- Autoconf -*- 2 | # Process this file with autoconf to produce a configure script. 3 | 4 | AC_PREREQ(2.53) 5 | AC_PACKAGE_VERSION(1.0.0) 6 | AC_INIT(iconv, 1.0.0, [], []) 7 | 8 | AM_INIT_AUTOMAKE 9 | 10 | # Checks for programs. 11 | AC_PROG_CC 12 | AC_PROG_MAKE_SET 13 | 14 | if test "x$GCC" = "xyes"; then 15 | CFLAGS="$CFLAGS -Wall" 16 | fi 17 | 18 | # Checks for typedefs, structures, and compiler characteristics. 19 | AC_C_CONST 20 | 21 | # Checks for library functions. 22 | AC_FUNC_MALLOC 23 | AC_HEADER_STDC 24 | 25 | # Checks Erlang runtime and compiler 26 | AC_ERLANG_NEED_ERL 27 | AC_ERLANG_NEED_ERLC 28 | 29 | # Checks and sets ERLANG_ROOT_DIR and ERLANG_LIB_DIR variable 30 | # AC_ERLANG_SUBST_ROOT_DIR 31 | # AC_ERLANG_SUBST_LIB_DIR 32 | 33 | AM_ICONV 34 | 35 | AC_ARG_ENABLE(gcov, 36 | [AC_HELP_STRING([--enable-gcov], [compile with gcov enabled (default: no)])], 37 | [case "${enableval}" in 38 | yes) gcov=true ;; 39 | no) gcov=false ;; 40 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-gcov) ;; 41 | esac],[gcov=false]) 42 | 43 | AC_SUBST(gcov) 44 | 45 | AC_CONFIG_FILES([vars.config]) 46 | 47 | AC_OUTPUT 48 | -------------------------------------------------------------------------------- /.github/workflows/hexpm-release.yml: -------------------------------------------------------------------------------- 1 | name: Hex 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' 7 | 8 | jobs: 9 | release: 10 | runs-on: ubuntu-20.04 11 | steps: 12 | - name: Check out 13 | uses: actions/checkout@v4 14 | 15 | - name: Setup rebar3 hex 16 | run: | 17 | mkdir -p ~/.config/rebar3/ 18 | echo "{plugins, [rebar3_hex]}." > ~/.config/rebar3/rebar.config 19 | 20 | - run: rebar3 edoc 21 | 22 | - name: Prepare Markdown 23 | run: | 24 | echo "" >>README.md 25 | echo "## EDoc documentation" >>README.md 26 | echo "" >>README.md 27 | echo "You can check this library's " >>README.md 28 | echo "[EDoc documentation](edoc.html), " >>README.md 29 | echo "generated automatically from the source code comments." >>README.md 30 | 31 | - name: Convert Markdown to HTML 32 | uses: natescherer/markdown-to-html-with-github-style-action@v1.1.0 33 | with: 34 | path: README.md 35 | 36 | - run: | 37 | mv doc/index.html doc/edoc.html 38 | mv README.html doc/index.html 39 | 40 | - name: Publish to hex.pm 41 | run: DEBUG=1 rebar3 hex publish --repo hexpm --yes 42 | env: 43 | HEX_API_KEY: ${{ secrets.HEX_API_KEY }} 44 | -------------------------------------------------------------------------------- /src/iconv.app.src: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : iconv.app.src 3 | %%% Author : Evgeniy Khramtsov 4 | %%% Purpose : Application package description 5 | %%% Created : 4 Apr 2013 by Evgeniy Khramtsov 6 | %%% 7 | %%% 8 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 9 | %%% 10 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 11 | %%% you may not use this file except in compliance with the License. 12 | %%% You may obtain a copy of the License at 13 | %%% 14 | %%% http://www.apache.org/licenses/LICENSE-2.0 15 | %%% 16 | %%% Unless required by applicable law or agreed to in writing, software 17 | %%% distributed under the License is distributed on an "AS IS" BASIS, 18 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | %%% See the License for the specific language governing permissions and 20 | %%% limitations under the License. 21 | %%% 22 | %%%---------------------------------------------------------------------- 23 | {application, iconv, 24 | [{description, "Fast encoding conversion library for Erlang / Elixir"}, 25 | {vsn, "1.0.14"}, 26 | {modules, []}, 27 | {registered, []}, 28 | {applications, [kernel, stdlib]}, 29 | {mod, {iconv_app,[]}}, 30 | 31 | %% hex.pm packaging: 32 | {files, ["src/", "c_src/iconv.c", "rebar.config", "rebar.config.script", "README.md", "LICENSE.txt"]}, 33 | {licenses, ["Apache 2.0"]}, 34 | {maintainers, ["ProcessOne"]}, 35 | {links, [{"Github", "https://github.com/processone/iconv"}]}]}. 36 | 37 | %% Local Variables: 38 | %% mode: erlang 39 | %% End: 40 | %% vim: set filetype=erlang tabstop=8: 41 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | 7 | tests: 8 | name: Tests 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | otp: ['19.3', '21.3', 24] 13 | runs-on: ubuntu-20.04 14 | container: 15 | image: erlang:${{ matrix.otp }} 16 | steps: 17 | - uses: actions/checkout@v2 18 | - run: make 19 | - run: rebar3 compile 20 | - run: rebar3 xref 21 | - run: rebar3 dialyzer 22 | - run: rebar3 eunit -v 23 | 24 | cover: 25 | name: Cover 26 | needs: [tests] 27 | runs-on: ubuntu-20.04 28 | steps: 29 | - uses: actions/checkout@v2 30 | - run: ./configure --enable-gcov 31 | - run: rebar3 compile 32 | - name: Run tests to obtain Erlang coverage 33 | run: | 34 | mv test/unload_test.erl . 35 | rebar3 eunit -v 36 | mv _build/test/cover/eunit.coverdata . 37 | - name: Run tests to obtain C coverage 38 | run: | 39 | mv unload_test.erl test/ 40 | rebar3 eunit -v 41 | mv eunit.coverdata _build/test/cover/ 42 | - run: pip install --user cpp-coveralls 43 | - run: cpp-coveralls -b `pwd` --verbose --gcov-options '\-lp' --dump c.json 44 | - name: Send to Coveralls 45 | env: 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | run: | 48 | ADDJSONFILE=c.json COVERALLS=true rebar3 as test coveralls send 49 | curl -v -k https://coveralls.io/webhook \ 50 | --header "Content-Type: application/json" \ 51 | --data '{"repo_name":"$GITHUB_REPOSITORY", 52 | "repo_token":"$GITHUB_TOKEN", 53 | "payload":{"build_num":$GITHUB_RUN_ID, 54 | "status":"done"}}' 55 | -------------------------------------------------------------------------------- /rebar.config: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : rebar.config 3 | %%% Author : Evgeniy Khramtsov 4 | %%% Purpose : Rebar build script. Compliant with rebar and rebar3. 5 | %%% Created : 8 May 2013 by Evgeniy Khramtsov 6 | %%% 7 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 8 | %%% 9 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 10 | %%% you may not use this file except in compliance with the License. 11 | %%% You may obtain a copy of the License at 12 | %%% 13 | %%% http://www.apache.org/licenses/LICENSE-2.0 14 | %%% 15 | %%% Unless required by applicable law or agreed to in writing, software 16 | %%% distributed under the License is distributed on an "AS IS" BASIS, 17 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | %%% See the License for the specific language governing permissions and 19 | %%% limitations under the License. 20 | %%% 21 | %%%---------------------------------------------------------------------- 22 | 23 | {erl_opts, [debug_info, {src_dirs, ["src"]}]}. 24 | 25 | {port_env, [{"CFLAGS", "$CFLAGS"}, 26 | {"ERL_LDFLAGS", " -L$ERL_EI_LIBDIR -lei"}, 27 | {"LDFLAGS", "$LDFLAGS $ERL_LDFLAGS "}]}. 28 | 29 | {port_specs, [{"priv/lib/iconv.so", ["c_src/iconv.c"]}]}. 30 | 31 | {clean_files, ["c_src/iconv.gcda", "c_src/iconv.gcno"]}. 32 | 33 | {cover_enabled, true}. 34 | {cover_export_enabled, true}. 35 | {coveralls_coverdata , "_build/test/cover/eunit.coverdata"}. 36 | {coveralls_service_name , "github"}. 37 | 38 | {xref_checks, [undefined_function_calls, undefined_functions, deprecated_function_calls, deprecated_functions]}. 39 | 40 | %% Local Variables: 41 | %% mode: erlang 42 | %% End: 43 | %% vim: set filetype=erlang tabstop=8: 44 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.13 2 | 3 | * Remove p1_utils dependency 4 | * Parametrize the rebar binary (processone/fast_tls#51) 5 | * Add Github Action to release in hex.pm when tagging 6 | * Switch from Travis to Github Actions 7 | 8 | # Version 1.0.12 9 | 10 | * Update p1_utils dependency 11 | * Changing Travis.yml 12 | 13 | # Version 1.0.11 14 | 15 | * Updating p1_utils to version 1.0.19. 16 | * Fix to compile with Rebar2 and Erlang 23, added to Travis and Coveralls 17 | * Document usage with Elixir mix 18 | * Add more explicit usage example 19 | * Add CoC and contribution guide 20 | 21 | # Version 1.0.10 22 | 23 | * Updating p1_utils to version 1.0.13. 24 | 25 | # Version 1.0.9 26 | 27 | * Updating p1_utils to version 6ff85e8. 28 | 29 | # Version 1.0.8 30 | 31 | * Updating p1_utils to version 1.0.12. 32 | 33 | # Version 1.0.7 34 | 35 | * Updating p1_utils to version 1.0.11. 36 | * Fix compilation with rebar3 37 | 38 | # Version 1.0.6 39 | 40 | * Updating p1_utils to version 1.0.10. 41 | * Fix possible overflow of inleft 42 | 43 | # Version 1.0.5 44 | 45 | * depends on p1_utils-1.0.9 46 | 47 | # Version 1.0.4 48 | 49 | * Update rebar.config.script (Paweł Chmielowski) 50 | * Use p1_utils 1.0.7 (Christophe Romain) 51 | 52 | # Version 1.0.3 53 | 54 | * Use p1_utils 1.0.6 (Christophe Romain) 55 | * Make sure iconv isn't compiled to native code (Holger Weiss) 56 | 57 | # Version 1.0.2 58 | 59 | * Update p1_utils (Mickaël Rémond) 60 | 61 | # Version 1.0.1 62 | 63 | * Use nif loading code from p1_utils (Paweł Chmielowski) 64 | * Fix compilation on rebar3 (Paweł Chmielowski) 65 | 66 | # Version 1.0.0 67 | 68 | * Application is now called iconv for consistency (Mickaël Rémond) 69 | * Initial release on Hex.pm (Mickaël Rémond) 70 | * Standard ProcessOne build chain (Mickaël Rémond) 71 | * Support for Travis-CI and test coverage (Mickaël Rémond) 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iconv 2 | 3 | [![CI](https://github.com/processone/iconv/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/processone/iconv/actions/workflows/ci.yml) 4 | [![Coverage Status](https://coveralls.io/repos/processone/iconv/badge.svg?branch=master&service=github)](https://coveralls.io/github/processone/iconv?branch=master) 5 | [![Hex version](https://img.shields.io/hexpm/v/iconv.svg "Hex version")](https://hex.pm/packages/iconv) 6 | 7 | Fast encoding conversion library for Erlang / Elixir 8 | 9 | This library is a native binding to 10 | [libiconv](https://www.gnu.org/software/libiconv/) library. 11 | 12 | ## Building 13 | 14 | iconv library can be build as follow: 15 | 16 | ./configure && make 17 | 18 | iconv is a rebar-compatible OTP application. Alternatively, you can 19 | build it with rebar: 20 | 21 | rebar compile 22 | 23 | ## Dependencies 24 | 25 | iconv library depends on libiconv. 26 | 27 | You can use `configure` option to pass custom path to libiconv 28 | library: 29 | 30 | --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib 31 | 32 | ## Usage 33 | 34 | You can start iconv with the following command: 35 | 36 | ```shell 37 | $ erl -pa ebin -pa deps/*/ebin 38 | Erlang/OTP 21 [erts-10.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace] 39 | 40 | Eshell V10.2.1 (abort with ^G) 41 | 1> application:start(iconv). 42 | ok 43 | 2> FromEncoding = <<"utf-8">>. 44 | <<"utf-8">> 45 | 3> ToEncoding = <<"iso8859-15">>. 46 | <<"iso8859-15">> 47 | 4> Text = <<"Hello">>. 48 | <<"Hello">> 49 | 5> iconv:convert(FromEncoding, ToEncoding, Text). 50 | <<"Hello">> 51 | ``` 52 | 53 | ## Elixir 54 | 55 | You can use `iconv` with Elixir `mix` by adding the dependency as follows: 56 | 57 | ``` 58 | defp deps do 59 | [ 60 | {:iconv, "~> 1.0.10"}, 61 | ] 62 | end 63 | ``` 64 | 65 | ``` 66 | $ mix deps.get 67 | ... 68 | $ mix deps.compile 69 | ... 70 | $ iex -S mix 71 | Erlang/OTP 21 [erts-10.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace] 72 | 73 | Interactive Elixir (1.7.4) - press Ctrl+C to exit (type h() ENTER for help) 74 | iex(1)> :iconv.convert("utf-8", "iso8859-15", "Hello") 75 | "Hello" 76 | ``` 77 | 78 | ## Development 79 | 80 | ### Test 81 | 82 | #### Unit test 83 | 84 | You can run eunit test with the command: 85 | 86 | $ rebar eunit 87 | 88 | -------------------------------------------------------------------------------- /src/iconv_sup.erl: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : iconv.erl 3 | %%% Author : Evgeniy Khramtsov 4 | %%% Purpose : iconv supervisor 5 | %%% Created : 4 Apr 2013 by Evgeniy Khramtsov 6 | %%% 7 | %%% 8 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 9 | %%% 10 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 11 | %%% you may not use this file except in compliance with the License. 12 | %%% You may obtain a copy of the License at 13 | %%% 14 | %%% http://www.apache.org/licenses/LICENSE-2.0 15 | %%% 16 | %%% Unless required by applicable law or agreed to in writing, software 17 | %%% distributed under the License is distributed on an "AS IS" BASIS, 18 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | %%% See the License for the specific language governing permissions and 20 | %%% limitations under the License. 21 | %%% 22 | %%%---------------------------------------------------------------------- 23 | 24 | -module(iconv_sup). 25 | 26 | -behaviour(supervisor). 27 | 28 | %% API 29 | -export([start_link/0]). 30 | 31 | %% Supervisor callbacks 32 | -export([init/1]). 33 | 34 | -define(SERVER, ?MODULE). 35 | 36 | %%%=================================================================== 37 | %%% API functions 38 | %%%=================================================================== 39 | 40 | %%-------------------------------------------------------------------- 41 | %% @doc 42 | %% Starts the supervisor 43 | %% 44 | %% @spec start_link() -> {ok, Pid} | ignore | {error, Error} 45 | %% @end 46 | %%-------------------------------------------------------------------- 47 | start_link() -> 48 | supervisor:start_link({local, ?SERVER}, ?MODULE, []). 49 | 50 | %%%=================================================================== 51 | %%% Supervisor callbacks 52 | %%%=================================================================== 53 | 54 | %%-------------------------------------------------------------------- 55 | %% @private 56 | %% @doc 57 | %% Whenever a supervisor is started using supervisor:start_link/[2,3], 58 | %% this function is called by the new process to find out about 59 | %% restart strategy, maximum restart frequency and child 60 | %% specifications. 61 | %% 62 | %% @spec init(Args) -> {ok, {SupFlags, [ChildSpec]}} | 63 | %% ignore | 64 | %% {error, Reason} 65 | %% @end 66 | %%-------------------------------------------------------------------- 67 | init([]) -> 68 | {ok, {{one_for_one, 10, 1}, []}}. 69 | 70 | %%%=================================================================== 71 | %%% Internal functions 72 | %%%=================================================================== 73 | -------------------------------------------------------------------------------- /src/iconv_app.erl: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : iconv_app.erl 3 | %%% Author : Evgeniy Khramtsov 4 | %%% Purpose : main application 5 | %%% Created : 4 Apr 2013 by Evgeniy Khramtsov 6 | %%% 7 | %%% 8 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 9 | %%% 10 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 11 | %%% you may not use this file except in compliance with the License. 12 | %%% You may obtain a copy of the License at 13 | %%% 14 | %%% http://www.apache.org/licenses/LICENSE-2.0 15 | %%% 16 | %%% Unless required by applicable law or agreed to in writing, software 17 | %%% distributed under the License is distributed on an "AS IS" BASIS, 18 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | %%% See the License for the specific language governing permissions and 20 | %%% limitations under the License. 21 | %%% 22 | %%%---------------------------------------------------------------------- 23 | 24 | -module(iconv_app). 25 | 26 | -behaviour(application). 27 | 28 | %% Application callbacks 29 | -export([start/2, stop/1]). 30 | 31 | %%%=================================================================== 32 | %%% Application callbacks 33 | %%%=================================================================== 34 | 35 | %%-------------------------------------------------------------------- 36 | %% @private 37 | %% @doc 38 | %% This function is called whenever an application is started using 39 | %% application:start/[1,2], and should start the processes of the 40 | %% application. If the application is structured according to the OTP 41 | %% design principles as a supervision tree, this means starting the 42 | %% top supervisor of the tree. 43 | %% 44 | %% @spec start(StartType, StartArgs) -> {ok, Pid} | 45 | %% {ok, Pid, State} | 46 | %% {error, Reason} 47 | %% StartType = normal | {takeover, Node} | {failover, Node} 48 | %% StartArgs = term() 49 | %% @end 50 | %%-------------------------------------------------------------------- 51 | start(_StartType, _StartArgs) -> 52 | case iconv:load_nif() of 53 | ok -> 54 | case iconv_sup:start_link() of 55 | {ok, Pid} -> 56 | {ok, Pid}; 57 | Error -> 58 | Error 59 | end; 60 | Error -> 61 | Error 62 | end. 63 | 64 | %%-------------------------------------------------------------------- 65 | %% @private 66 | %% @doc 67 | %% This function is called whenever an application has stopped. It 68 | %% is intended to be the opposite of Module:start/2 and should do 69 | %% any necessary cleaning up. The return value is ignored. 70 | %% 71 | %% @spec stop(State) -> void() 72 | %% @end 73 | %%-------------------------------------------------------------------- 74 | stop(_State) -> 75 | ok. 76 | 77 | %%%=================================================================== 78 | %%% Internal functions 79 | %%%=================================================================== 80 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at contact@process-one.net. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /c_src/iconv.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | #define OK 0 23 | #define ERR_MEMORY_FAIL 1 24 | 25 | static int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) 26 | { 27 | return 0; 28 | } 29 | 30 | static int do_convert(ErlNifEnv* env, char *from, char *to, 31 | ErlNifBinary *string, ErlNifBinary *rstring) 32 | { 33 | char *stmp = (char *) string->data; 34 | char *rtmp = (char *) rstring->data; 35 | size_t outleft = rstring->size; 36 | size_t inleft = string->size; 37 | int invalid_utf8_as_latin1 = 0; 38 | iconv_t cd; 39 | 40 | /* Special mode: parse as UTF-8 if possible; otherwise assume it's 41 | Latin-1. Makes no difference when encoding. */ 42 | if (strcmp(from, "utf-8+latin-1") == 0) { 43 | from[5] = '\0'; 44 | invalid_utf8_as_latin1 = 1; 45 | } 46 | if (strcmp(to, "utf-8+latin-1") == 0) { 47 | to[5] = '\0'; 48 | } 49 | cd = iconv_open(to, from); 50 | 51 | if (cd == (iconv_t) -1) { 52 | if (enif_realloc_binary(rstring, string->size)) { 53 | memcpy(rstring->data, string->data, string->size); 54 | return OK; 55 | } else { 56 | return ERR_MEMORY_FAIL; 57 | } 58 | } 59 | 60 | while (inleft > 0) { 61 | if (iconv(cd, &stmp, &inleft, &rtmp, &outleft) == (size_t) -1) { 62 | if (invalid_utf8_as_latin1 && (*stmp & 0x80) && outleft >= 2) { 63 | /* Encode one byte of (assumed) Latin-1 into two bytes of UTF-8 */ 64 | *rtmp++ = 0xc0 | ((*stmp & 0xc0) >> 6); 65 | *rtmp++ = 0x80 | (*stmp & 0x3f); 66 | outleft -= 2; 67 | } 68 | stmp++; 69 | if (inleft > 0) inleft--; 70 | } 71 | } 72 | 73 | iconv_close(cd); 74 | 75 | if (enif_realloc_binary(rstring, rtmp - (char *) rstring->data)) { 76 | return OK; 77 | } else { 78 | return ERR_MEMORY_FAIL; 79 | } 80 | } 81 | 82 | static ERL_NIF_TERM convert(ErlNifEnv* env, int argc, 83 | const ERL_NIF_TERM argv[]) 84 | { 85 | 86 | ErlNifBinary from_bin, to_bin, string, rstring; 87 | char *from, *to; 88 | int rescode; 89 | 90 | if (argc == 3) { 91 | if (enif_inspect_iolist_as_binary(env, argv[0], &from_bin) && 92 | enif_inspect_iolist_as_binary(env, argv[1], &to_bin) && 93 | enif_inspect_iolist_as_binary(env, argv[2], &string)) 94 | { 95 | from = enif_alloc(from_bin.size + 1); 96 | to = enif_alloc(to_bin.size + 1); 97 | if (from && to && enif_alloc_binary(4*string.size, &rstring)) { 98 | memcpy(from, from_bin.data, from_bin.size); 99 | memcpy(to, to_bin.data, to_bin.size); 100 | from[from_bin.size] = '\0'; 101 | to[to_bin.size] = '\0'; 102 | rescode = do_convert(env, from, to, &string, &rstring); 103 | enif_free(from); 104 | enif_free(to); 105 | if (rescode == OK) { 106 | return enif_make_binary(env, &rstring); 107 | } else { 108 | enif_release_binary(&rstring); 109 | } 110 | } 111 | } 112 | } 113 | 114 | return enif_make_badarg(env); 115 | } 116 | 117 | static ErlNifFunc nif_funcs[] = 118 | { 119 | {"convert", 3, convert} 120 | }; 121 | 122 | ERL_NIF_INIT(iconv, nif_funcs, load, NULL, NULL, NULL) 123 | -------------------------------------------------------------------------------- /src/iconv.erl: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : iconv.erl 3 | %%% Author : Alexey Shchepin 4 | %%% Purpose : Interface to libiconv 5 | %%% Created : 16 Feb 2003 by Alexey Shchepin 6 | %%% 7 | %%% 8 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 9 | %%% 10 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 11 | %%% you may not use this file except in compliance with the License. 12 | %%% You may obtain a copy of the License at 13 | %%% 14 | %%% http://www.apache.org/licenses/LICENSE-2.0 15 | %%% 16 | %%% Unless required by applicable law or agreed to in writing, software 17 | %%% distributed under the License is distributed on an "AS IS" BASIS, 18 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | %%% See the License for the specific language governing permissions and 20 | %%% limitations under the License. 21 | %%% 22 | %%%---------------------------------------------------------------------- 23 | 24 | -module(iconv). 25 | 26 | -author('alexey@process-one.net'). 27 | 28 | -compile(no_native). 29 | 30 | -export([load_nif/0, load_nif/1, convert/3]). 31 | 32 | -ifdef(TEST). 33 | -include_lib("eunit/include/eunit.hrl"). 34 | -endif. 35 | 36 | %%%=================================================================== 37 | %%% API functions 38 | %%%=================================================================== 39 | load_nif() -> 40 | NifFile = get_so_path(?MODULE, [iconv], "iconv"), 41 | case erlang:load_nif(NifFile, 0) of 42 | ok -> 43 | ok; 44 | {error, {Reason, Txt}} -> 45 | error_logger:error_msg("failed to load NIF ~s: ~s", 46 | [NifFile, Txt]), 47 | {error, Reason} 48 | end. 49 | 50 | load_nif(_LibDir) -> 51 | load_nif(). 52 | 53 | -spec convert(iodata(), iodata(), iodata()) -> binary(). 54 | 55 | convert(_From, _To, _String) -> 56 | erlang:nif_error(nif_not_loaded). 57 | 58 | %% Code copied from p1_utils/src/p1_nif_utils.erl 59 | get_so_path(ModuleName, AppNames, SoName) -> 60 | PrivDir = first_match(fun(App) -> 61 | case code:priv_dir(App) of 62 | {error, _} -> none; 63 | V -> V 64 | end 65 | end, AppNames), 66 | case PrivDir of 67 | none -> 68 | Ext = case os:type() of 69 | {win32, _} -> ".dll"; 70 | _ -> ".so" 71 | end, 72 | SoFName = filename:join(["priv", "lib", SoName ++ Ext]), 73 | LPath = first_match(fun(Path) -> 74 | P = case filename:basename(Path) of 75 | "ebin" -> filename:dirname(Path); 76 | _ -> Path 77 | end, 78 | case filelib:is_file(filename:join([P, SoFName])) of 79 | true -> 80 | filename:join([P, "priv", "lib", SoName]); 81 | _ -> 82 | none 83 | end 84 | end, code:get_path()), 85 | case LPath of 86 | none -> 87 | EbinDir = filename:dirname(code:which(ModuleName)), 88 | AppDir = filename:dirname(EbinDir), 89 | filename:join([AppDir, "priv", "lib", SoName]); 90 | Val -> 91 | Val 92 | end; 93 | V -> 94 | filename:join([V, "lib", SoName]) 95 | end. 96 | 97 | first_match(_Fun, []) -> 98 | none; 99 | first_match(Fun, [H|T]) -> 100 | case Fun(H) of 101 | none -> 102 | first_match(Fun, T); 103 | V -> 104 | V 105 | end. 106 | 107 | %%%=================================================================== 108 | %%% Unit tests 109 | %%%=================================================================== 110 | -ifdef(TEST). 111 | 112 | load_nif_test() -> 113 | ?assertEqual(ok, load_nif(filename:join(["..", "priv", "lib"]))). 114 | 115 | utf8_to_koi8r_test() -> 116 | ?assertEqual( 117 | <<212,197,211,212>>, 118 | iconv:convert("utf-8", "koi8-r", <<209,130,208,181,209,129,209,130>>)). 119 | 120 | koi8r_to_cp1251_test() -> 121 | ?assertEqual( 122 | <<242,229,241,242>>, 123 | iconv:convert("koi8-r", "cp1251", <<212,197,211,212>>)). 124 | 125 | wrong_encoding_test() -> 126 | ?assertEqual( 127 | <<1,2,3,4,5>>, 128 | iconv:convert("wrong_encoding_from", 129 | "wrong_encoding_to", 130 | <<1,2,3,4,5>>)). 131 | 132 | -endif. 133 | -------------------------------------------------------------------------------- /rebar.config.script: -------------------------------------------------------------------------------- 1 | %%%---------------------------------------------------------------------- 2 | %%% File : rebar.config.script 3 | %%% Author : Evgeniy Khramtsov 4 | %%% Purpose : Rebar build script. Compliant with rebar and rebar3. 5 | %%% Created : 8 May 2013 by Evgeniy Khramtsov 6 | %%% 7 | %%% Copyright (C) 2002-2021 ProcessOne, SARL. All Rights Reserved. 8 | %%% 9 | %%% Licensed under the Apache License, Version 2.0 (the "License"); 10 | %%% you may not use this file except in compliance with the License. 11 | %%% You may obtain a copy of the License at 12 | %%% 13 | %%% http://www.apache.org/licenses/LICENSE-2.0 14 | %%% 15 | %%% Unless required by applicable law or agreed to in writing, software 16 | %%% distributed under the License is distributed on an "AS IS" BASIS, 17 | %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | %%% See the License for the specific language governing permissions and 19 | %%% limitations under the License. 20 | %%% 21 | %%%---------------------------------------------------------------------- 22 | 23 | Cfg = case file:consult(filename:join([filename:dirname(SCRIPT),"vars.config"])) of 24 | {ok, Terms} -> 25 | Terms; 26 | _Err -> 27 | [] 28 | end ++ [{cflags, "-g -O2 -Wall"}, {ldflags, ""}, {with_gcov, "false"}], 29 | {cflags, CfgCFlags} = lists:keyfind(cflags, 1, Cfg), 30 | {ldflags, CfgLDFlags} = lists:keyfind(ldflags, 1, Cfg), 31 | {with_gcov, CfgWithGCov} = lists:keyfind(with_gcov, 1, Cfg), 32 | 33 | IsRebar3 = case application:get_key(rebar, vsn) of 34 | {ok, VSN} -> 35 | [VSN1 | _] = string:tokens(VSN, "-"), 36 | [Maj|_] = string:tokens(VSN1, "."), 37 | (list_to_integer(Maj) >= 3); 38 | undefined -> 39 | lists:keymember(mix, 1, application:loaded_applications()) 40 | end, 41 | 42 | ModCfg0 = fun(F, Cfg, [Key|Tail], Op, Default) -> 43 | {OldVal,PartCfg} = case lists:keytake(Key, 1, Cfg) of 44 | {value, {_, V1}, V2} -> {V1, V2}; 45 | false -> {if Tail == [] -> Default; true -> [] end, Cfg} 46 | end, 47 | case Tail of 48 | [] -> 49 | [{Key, Op(OldVal)} | PartCfg]; 50 | _ -> 51 | [{Key, F(F, OldVal, Tail, Op, Default)} | PartCfg] 52 | end 53 | end, 54 | ModCfg = fun(Cfg, Keys, Op, Default) -> ModCfg0(ModCfg0, Cfg, Keys, Op, 55 | Default) end, 56 | 57 | ModCfgS = fun(Cfg, Keys, Val) -> ModCfg0(ModCfg0, Cfg, Keys, fun(_V) -> 58 | Val end, "") end, 59 | 60 | 61 | FilterConfig = fun(F, Cfg, [{Path, true, ModFun, Default} | Tail]) -> 62 | F(F, ModCfg0(ModCfg0, Cfg, Path, ModFun, Default), Tail); 63 | (F, Cfg, [_ | Tail]) -> 64 | F(F, Cfg, Tail); 65 | (F, Cfg, []) -> 66 | Cfg 67 | end, 68 | 69 | AppendStr = fun(Append) -> 70 | fun("") -> 71 | Append; 72 | (Val) -> 73 | Val ++ " " ++ Append 74 | end 75 | end, 76 | AppendList = fun(Append) -> 77 | fun(Val) -> 78 | Val ++ Append 79 | end 80 | end, 81 | 82 | Rebar3DepsFilter = fun(DepsList) -> 83 | lists:map(fun({DepName,_, {git,_, {tag,Version}}}) -> 84 | {DepName, Version}; 85 | (Dep) -> 86 | Dep 87 | end, DepsList) 88 | end, 89 | 90 | GlobalDepsFilter = fun(Deps) -> 91 | DepNames = lists:map(fun({DepName, _, _}) -> DepName; 92 | ({DepName, _}) -> DepName 93 | end, Deps), 94 | lists:filtermap(fun(Dep) -> 95 | case code:lib_dir(Dep) of 96 | {error, _} -> 97 | {true,"Unable to locate dep '"++atom_to_list(Dep)++"' in system deps."}; 98 | _ -> 99 | false 100 | end 101 | end, DepNames) 102 | end, 103 | 104 | GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of 105 | {"true", Token} when is_list(Token) -> 106 | CONFIG1 = [{coveralls_repo_token, Token}, 107 | {coveralls_service_job_id, os:getenv("GITHUB_RUN_ID")}, 108 | {coveralls_commit_sha, os:getenv("GITHUB_SHA")}, 109 | {coveralls_service_number, os:getenv("GITHUB_RUN_NUMBER")}], 110 | case os:getenv("GITHUB_EVENT_NAME") =:= "pull_request" 111 | andalso string:tokens(os:getenv("GITHUB_REF"), "/") of 112 | [_, "pull", PRNO, _] -> 113 | [{coveralls_service_pull_request, PRNO} | CONFIG1]; 114 | _ -> 115 | CONFIG1 116 | end; 117 | _ -> 118 | [] 119 | end, 120 | 121 | Rules = [ 122 | {[port_env, "CFLAGS"], true, 123 | AppendStr(CfgCFlags), "$CFLAGS"}, 124 | {[port_env, "LDFLAGS"], true, 125 | AppendStr(CfgLDFlags), "$LDFLAGS"}, 126 | {[post_hooks], (not IsRebar3) and (CfgWithGCov == "true"), 127 | AppendList([{eunit, "gcov -o c_src iconv"}, 128 | {eunit, "mv *.gcov .eunit/"}]), []}, 129 | {[post_hooks], IsRebar3 and (CfgWithGCov == "true"), 130 | AppendList([{eunit, "gcov -o c_src iconv"}, 131 | {eunit, "mv *.gcov _build/test/cover/"}]), []}, 132 | {[port_env, "LDFLAGS"], CfgWithGCov == "true", 133 | AppendStr("--coverage"), ""}, 134 | {[port_env, "CFLAGS"], CfgWithGCov == "true", 135 | AppendStr("--coverage"), ""}, 136 | {[deps], IsRebar3, 137 | Rebar3DepsFilter, []}, 138 | {[plugins], IsRebar3, 139 | AppendList([{pc, "~> 1.15"}]), []}, 140 | {[provider_hooks], IsRebar3, 141 | AppendList([{pre, [ 142 | {compile, {pc, compile}}, 143 | {clean, {pc, clean}} 144 | ]}]), []}, 145 | {[plugins], os:getenv("COVERALLS") == "true", 146 | AppendList([{coveralls, {git, 147 | "https://github.com/processone/coveralls-erl.git", 148 | {branch, "addjsonfile"}}} ]), []}, 149 | {[deps], os:getenv("USE_GLOBAL_DEPS") /= false, 150 | GlobalDepsFilter, []} 151 | ], 152 | 153 | 154 | Config = FilterConfig(FilterConfig, CONFIG, Rules) ++ GithubConfig, 155 | 156 | %io:format("Rules:~n~p~n~nCONFIG:~n~p~n~nConfig:~n~p~n", [Rules, CONFIG, Config]), 157 | 158 | Config. 159 | 160 | %% Local Variables: 161 | %% mode: erlang 162 | %% End: 163 | %% vim: set filetype=erlang tabstop=8: 164 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | We'd love for you to contribute to our source code and to make our project even better than it is 4 | today! Here are the guidelines we'd like you to follow: 5 | 6 | * [Code of Conduct](#coc) 7 | * [Questions and Problems](#question) 8 | * [Issues and Bugs](#issue) 9 | * [Feature Requests](#feature) 10 | * [Issue Submission Guidelines](#submit) 11 | * [Pull Request Submission Guidelines](#submit-pr) 12 | * [Signing the CLA](#cla) 13 | 14 | ## Code of Conduct 15 | 16 | Help us keep our community open-minded and inclusive. Please read and follow our [Code of Conduct][coc]. 17 | 18 | ## Questions, Bugs, Features 19 | 20 | ### Got a Question or Problem? 21 | 22 | Do not open issues for general support questions as we want to keep GitHub issues for bug reports 23 | and feature requests. You've got much better chances of getting your question answered on dedicated 24 | support platforms, the best being [Stack Overflow][stackoverflow]. 25 | 26 | Stack Overflow is a much better place to ask questions since: 27 | 28 | - there are thousands of people willing to help on Stack Overflow 29 | - questions and answers stay available for public viewing so your question / answer might help 30 | someone else 31 | - Stack Overflow's voting system assures that the best answers are prominently visible. 32 | 33 | To save your and our time, we will systematically close all issues that are requests for general 34 | support and redirect people to the section you are reading right now. 35 | 36 | ### Found an Issue or Bug? 37 | 38 | If you find a bug in the source code, you can help us by submitting an issue to our 39 | [GitHub Repository][github]. Even better, you can submit a Pull Request with a fix. 40 | 41 | ### Missing a Feature? 42 | 43 | You can request a new feature by submitting an issue to our [GitHub Repository][github-issues]. 44 | 45 | If you would like to implement a new feature then consider what kind of change it is: 46 | 47 | * **Major Changes** that you wish to contribute to the project should be discussed first in an 48 | [GitHub issue][github-issues] that clearly outlines the changes and benefits of the feature. 49 | * **Small Changes** can directly be crafted and submitted to the [GitHub Repository][github] 50 | as a Pull Request. See the section about [Pull Request Submission Guidelines](#submit-pr). 51 | 52 | ## Issue Submission Guidelines 53 | 54 | Before you submit your issue search the archive, maybe your question was already answered. 55 | 56 | If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize 57 | the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. 58 | 59 | The "[new issue][github-new-issue]" form contains a number of prompts that you should fill out to 60 | make it easier to understand and categorize the issue. 61 | 62 | ## Pull Request Submission Guidelines 63 | 64 | By submitting a pull request for a code or doc contribution, you need to have the right 65 | to grant your contribution's copyright license to ProcessOne. Please check [ProcessOne CLA][cla] 66 | for details. 67 | 68 | Before you submit your pull request consider the following guidelines: 69 | 70 | * Search [GitHub][github-pr] for an open or closed Pull Request 71 | that relates to your submission. You don't want to duplicate effort. 72 | * Make your changes in a new git branch: 73 | 74 | ```shell 75 | git checkout -b my-fix-branch master 76 | ``` 77 | * Test your changes and, if relevant, expand the automated test suite. 78 | * Create your patch commit, including appropriate test cases. 79 | * If the changes affect public APIs, change or add relevant documentation. 80 | * Commit your changes using a descriptive commit message. 81 | 82 | ```shell 83 | git commit -a 84 | ``` 85 | Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. 86 | 87 | * Push your branch to GitHub: 88 | 89 | ```shell 90 | git push origin my-fix-branch 91 | ``` 92 | 93 | * In GitHub, send a pull request to `master` branch. This will trigger the continuous integration and run the test. 94 | We will also notify you if you have not yet signed the [contribution agreement][cla]. 95 | 96 | * If you find that the continunous integration has failed, look into the logs to find out 97 | if your changes caused test failures, the commit message was malformed etc. If you find that the 98 | tests failed or times out for unrelated reasons, you can ping a team member so that the build can be 99 | restarted. 100 | 101 | * If we suggest changes, then: 102 | 103 | * Make the required updates. 104 | * Test your changes and test cases. 105 | * Commit your changes to your branch (e.g. `my-fix-branch`). 106 | * Push the changes to your GitHub repository (this will update your Pull Request). 107 | 108 | You can also amend the initial commits and force push them to the branch. 109 | 110 | ```shell 111 | git rebase master -i 112 | git push origin my-fix-branch -f 113 | ``` 114 | 115 | This is generally easier to follow, but separate commits are useful if the Pull Request contains 116 | iterations that might be interesting to see side-by-side. 117 | 118 | That's it! Thank you for your contribution! 119 | 120 | ## Signing the Contributor License Agreement (CLA) 121 | 122 | Upon submitting a Pull Request, we will ask you to sign our CLA if you haven't done 123 | so before. It's a quick process, we promise, and you will be able to do it all online 124 | 125 | You can read [ProcessOne Contribution License Agreement][cla] in PDF. 126 | 127 | This is part of the legal framework of the open-source ecosystem that adds some red tape, 128 | but protects both the contributor and the company / foundation behind the project. It also 129 | gives us the option to relicense the code with a more permissive license in the future. 130 | 131 | 132 | [coc]: https://github.com/processone/iconv/blob/master/CODE_OF_CONDUCT.md 133 | [stackoverflow]: https://stackoverflow.com/ 134 | [github]: https://github.com/processone/iconv 135 | [github-issues]: https://github.com/processone/iconv/issues 136 | [github-new-issue]: https://github.com/processone/iconv/issues/new 137 | [github-pr]: https://github.com/processone/iconv/pulls 138 | [cla]: https://www.process-one.net/resources/ejabberd-cla.pdf 139 | [license]: https://github.com/processone/iconv/blob/master/LICENSE.txt 140 | -------------------------------------------------------------------------------- /missing: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Common wrapper for a few potentially missing GNU programs. 3 | 4 | scriptversion=2013-10-28.13; # UTC 5 | 6 | # Copyright (C) 1996-2014 Free Software Foundation, Inc. 7 | # Originally written by Fran,cois Pinard , 1996. 8 | 9 | # This program is free software; you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation; either version 2, or (at your option) 12 | # any later version. 13 | 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | # As a special exception to the GNU General Public License, if you 23 | # distribute this file as part of a program that contains a 24 | # configuration script generated by Autoconf, you may include it under 25 | # the same distribution terms that you use for the rest of that program. 26 | 27 | if test $# -eq 0; then 28 | echo 1>&2 "Try '$0 --help' for more information" 29 | exit 1 30 | fi 31 | 32 | case $1 in 33 | 34 | --is-lightweight) 35 | # Used by our autoconf macros to check whether the available missing 36 | # script is modern enough. 37 | exit 0 38 | ;; 39 | 40 | --run) 41 | # Back-compat with the calling convention used by older automake. 42 | shift 43 | ;; 44 | 45 | -h|--h|--he|--hel|--help) 46 | echo "\ 47 | $0 [OPTION]... PROGRAM [ARGUMENT]... 48 | 49 | Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due 50 | to PROGRAM being missing or too old. 51 | 52 | Options: 53 | -h, --help display this help and exit 54 | -v, --version output version information and exit 55 | 56 | Supported PROGRAM values: 57 | aclocal autoconf autoheader autom4te automake makeinfo 58 | bison yacc flex lex help2man 59 | 60 | Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 61 | 'g' are ignored when checking the name. 62 | 63 | Send bug reports to ." 64 | exit $? 65 | ;; 66 | 67 | -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 68 | echo "missing $scriptversion (GNU Automake)" 69 | exit $? 70 | ;; 71 | 72 | -*) 73 | echo 1>&2 "$0: unknown '$1' option" 74 | echo 1>&2 "Try '$0 --help' for more information" 75 | exit 1 76 | ;; 77 | 78 | esac 79 | 80 | # Run the given program, remember its exit status. 81 | "$@"; st=$? 82 | 83 | # If it succeeded, we are done. 84 | test $st -eq 0 && exit 0 85 | 86 | # Also exit now if we it failed (or wasn't found), and '--version' was 87 | # passed; such an option is passed most likely to detect whether the 88 | # program is present and works. 89 | case $2 in --version|--help) exit $st;; esac 90 | 91 | # Exit code 63 means version mismatch. This often happens when the user 92 | # tries to use an ancient version of a tool on a file that requires a 93 | # minimum version. 94 | if test $st -eq 63; then 95 | msg="probably too old" 96 | elif test $st -eq 127; then 97 | # Program was missing. 98 | msg="missing on your system" 99 | else 100 | # Program was found and executed, but failed. Give up. 101 | exit $st 102 | fi 103 | 104 | perl_URL=http://www.perl.org/ 105 | flex_URL=http://flex.sourceforge.net/ 106 | gnu_software_URL=http://www.gnu.org/software 107 | 108 | program_details () 109 | { 110 | case $1 in 111 | aclocal|automake) 112 | echo "The '$1' program is part of the GNU Automake package:" 113 | echo "<$gnu_software_URL/automake>" 114 | echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" 115 | echo "<$gnu_software_URL/autoconf>" 116 | echo "<$gnu_software_URL/m4/>" 117 | echo "<$perl_URL>" 118 | ;; 119 | autoconf|autom4te|autoheader) 120 | echo "The '$1' program is part of the GNU Autoconf package:" 121 | echo "<$gnu_software_URL/autoconf/>" 122 | echo "It also requires GNU m4 and Perl in order to run:" 123 | echo "<$gnu_software_URL/m4/>" 124 | echo "<$perl_URL>" 125 | ;; 126 | esac 127 | } 128 | 129 | give_advice () 130 | { 131 | # Normalize program name to check for. 132 | normalized_program=`echo "$1" | sed ' 133 | s/^gnu-//; t 134 | s/^gnu//; t 135 | s/^g//; t'` 136 | 137 | printf '%s\n' "'$1' is $msg." 138 | 139 | configure_deps="'configure.ac' or m4 files included by 'configure.ac'" 140 | case $normalized_program in 141 | autoconf*) 142 | echo "You should only need it if you modified 'configure.ac'," 143 | echo "or m4 files included by it." 144 | program_details 'autoconf' 145 | ;; 146 | autoheader*) 147 | echo "You should only need it if you modified 'acconfig.h' or" 148 | echo "$configure_deps." 149 | program_details 'autoheader' 150 | ;; 151 | automake*) 152 | echo "You should only need it if you modified 'Makefile.am' or" 153 | echo "$configure_deps." 154 | program_details 'automake' 155 | ;; 156 | aclocal*) 157 | echo "You should only need it if you modified 'acinclude.m4' or" 158 | echo "$configure_deps." 159 | program_details 'aclocal' 160 | ;; 161 | autom4te*) 162 | echo "You might have modified some maintainer files that require" 163 | echo "the 'autom4te' program to be rebuilt." 164 | program_details 'autom4te' 165 | ;; 166 | bison*|yacc*) 167 | echo "You should only need it if you modified a '.y' file." 168 | echo "You may want to install the GNU Bison package:" 169 | echo "<$gnu_software_URL/bison/>" 170 | ;; 171 | lex*|flex*) 172 | echo "You should only need it if you modified a '.l' file." 173 | echo "You may want to install the Fast Lexical Analyzer package:" 174 | echo "<$flex_URL>" 175 | ;; 176 | help2man*) 177 | echo "You should only need it if you modified a dependency" \ 178 | "of a man page." 179 | echo "You may want to install the GNU Help2man package:" 180 | echo "<$gnu_software_URL/help2man/>" 181 | ;; 182 | makeinfo*) 183 | echo "You should only need it if you modified a '.texi' file, or" 184 | echo "any other file indirectly affecting the aspect of the manual." 185 | echo "You might want to install the Texinfo package:" 186 | echo "<$gnu_software_URL/texinfo/>" 187 | echo "The spurious makeinfo call might also be the consequence of" 188 | echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" 189 | echo "want to install GNU make:" 190 | echo "<$gnu_software_URL/make/>" 191 | ;; 192 | *) 193 | echo "You might have modified some files without having the proper" 194 | echo "tools for further handling them. Check the 'README' file, it" 195 | echo "often tells you about the needed prerequisites for installing" 196 | echo "this package. You may also peek at any GNU archive site, in" 197 | echo "case some other package contains this missing '$1' program." 198 | ;; 199 | esac 200 | } 201 | 202 | give_advice "$1" | sed -e '1s/^/WARNING: /' \ 203 | -e '2,$s/^/ /' >&2 204 | 205 | # Propagate the correct exit status (expected to be 127 for a program 206 | # not found, 63 for a program that failed due to version mismatch). 207 | exit $st 208 | 209 | # Local variables: 210 | # eval: (add-hook 'write-file-hooks 'time-stamp) 211 | # time-stamp-start: "scriptversion=" 212 | # time-stamp-format: "%:y-%02m-%02d.%02H" 213 | # time-stamp-time-zone: "UTC" 214 | # time-stamp-end: "; # UTC" 215 | # End: 216 | -------------------------------------------------------------------------------- /compile: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Wrapper for compilers which do not understand '-c -o'. 3 | 4 | scriptversion=2012-10-14.11; # UTC 5 | 6 | # Copyright (C) 1999-2014 Free Software Foundation, Inc. 7 | # Written by Tom Tromey . 8 | # 9 | # This program is free software; you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation; either version 2, or (at your option) 12 | # any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program. If not, see . 21 | 22 | # As a special exception to the GNU General Public License, if you 23 | # distribute this file as part of a program that contains a 24 | # configuration script generated by Autoconf, you may include it under 25 | # the same distribution terms that you use for the rest of that program. 26 | 27 | # This file is maintained in Automake, please report 28 | # bugs to or send patches to 29 | # . 30 | 31 | nl=' 32 | ' 33 | 34 | # We need space, tab and new line, in precisely that order. Quoting is 35 | # there to prevent tools from complaining about whitespace usage. 36 | IFS=" "" $nl" 37 | 38 | file_conv= 39 | 40 | # func_file_conv build_file lazy 41 | # Convert a $build file to $host form and store it in $file 42 | # Currently only supports Windows hosts. If the determined conversion 43 | # type is listed in (the comma separated) LAZY, no conversion will 44 | # take place. 45 | func_file_conv () 46 | { 47 | file=$1 48 | case $file in 49 | / | /[!/]*) # absolute file, and not a UNC file 50 | if test -z "$file_conv"; then 51 | # lazily determine how to convert abs files 52 | case `uname -s` in 53 | MINGW*) 54 | file_conv=mingw 55 | ;; 56 | CYGWIN*) 57 | file_conv=cygwin 58 | ;; 59 | *) 60 | file_conv=wine 61 | ;; 62 | esac 63 | fi 64 | case $file_conv/,$2, in 65 | *,$file_conv,*) 66 | ;; 67 | mingw/*) 68 | file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` 69 | ;; 70 | cygwin/*) 71 | file=`cygpath -m "$file" || echo "$file"` 72 | ;; 73 | wine/*) 74 | file=`winepath -w "$file" || echo "$file"` 75 | ;; 76 | esac 77 | ;; 78 | esac 79 | } 80 | 81 | # func_cl_dashL linkdir 82 | # Make cl look for libraries in LINKDIR 83 | func_cl_dashL () 84 | { 85 | func_file_conv "$1" 86 | if test -z "$lib_path"; then 87 | lib_path=$file 88 | else 89 | lib_path="$lib_path;$file" 90 | fi 91 | linker_opts="$linker_opts -LIBPATH:$file" 92 | } 93 | 94 | # func_cl_dashl library 95 | # Do a library search-path lookup for cl 96 | func_cl_dashl () 97 | { 98 | lib=$1 99 | found=no 100 | save_IFS=$IFS 101 | IFS=';' 102 | for dir in $lib_path $LIB 103 | do 104 | IFS=$save_IFS 105 | if $shared && test -f "$dir/$lib.dll.lib"; then 106 | found=yes 107 | lib=$dir/$lib.dll.lib 108 | break 109 | fi 110 | if test -f "$dir/$lib.lib"; then 111 | found=yes 112 | lib=$dir/$lib.lib 113 | break 114 | fi 115 | if test -f "$dir/lib$lib.a"; then 116 | found=yes 117 | lib=$dir/lib$lib.a 118 | break 119 | fi 120 | done 121 | IFS=$save_IFS 122 | 123 | if test "$found" != yes; then 124 | lib=$lib.lib 125 | fi 126 | } 127 | 128 | # func_cl_wrapper cl arg... 129 | # Adjust compile command to suit cl 130 | func_cl_wrapper () 131 | { 132 | # Assume a capable shell 133 | lib_path= 134 | shared=: 135 | linker_opts= 136 | for arg 137 | do 138 | if test -n "$eat"; then 139 | eat= 140 | else 141 | case $1 in 142 | -o) 143 | # configure might choose to run compile as 'compile cc -o foo foo.c'. 144 | eat=1 145 | case $2 in 146 | *.o | *.[oO][bB][jJ]) 147 | func_file_conv "$2" 148 | set x "$@" -Fo"$file" 149 | shift 150 | ;; 151 | *) 152 | func_file_conv "$2" 153 | set x "$@" -Fe"$file" 154 | shift 155 | ;; 156 | esac 157 | ;; 158 | -I) 159 | eat=1 160 | func_file_conv "$2" mingw 161 | set x "$@" -I"$file" 162 | shift 163 | ;; 164 | -I*) 165 | func_file_conv "${1#-I}" mingw 166 | set x "$@" -I"$file" 167 | shift 168 | ;; 169 | -l) 170 | eat=1 171 | func_cl_dashl "$2" 172 | set x "$@" "$lib" 173 | shift 174 | ;; 175 | -l*) 176 | func_cl_dashl "${1#-l}" 177 | set x "$@" "$lib" 178 | shift 179 | ;; 180 | -L) 181 | eat=1 182 | func_cl_dashL "$2" 183 | ;; 184 | -L*) 185 | func_cl_dashL "${1#-L}" 186 | ;; 187 | -static) 188 | shared=false 189 | ;; 190 | -Wl,*) 191 | arg=${1#-Wl,} 192 | save_ifs="$IFS"; IFS=',' 193 | for flag in $arg; do 194 | IFS="$save_ifs" 195 | linker_opts="$linker_opts $flag" 196 | done 197 | IFS="$save_ifs" 198 | ;; 199 | -Xlinker) 200 | eat=1 201 | linker_opts="$linker_opts $2" 202 | ;; 203 | -*) 204 | set x "$@" "$1" 205 | shift 206 | ;; 207 | *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) 208 | func_file_conv "$1" 209 | set x "$@" -Tp"$file" 210 | shift 211 | ;; 212 | *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) 213 | func_file_conv "$1" mingw 214 | set x "$@" "$file" 215 | shift 216 | ;; 217 | *) 218 | set x "$@" "$1" 219 | shift 220 | ;; 221 | esac 222 | fi 223 | shift 224 | done 225 | if test -n "$linker_opts"; then 226 | linker_opts="-link$linker_opts" 227 | fi 228 | exec "$@" $linker_opts 229 | exit 1 230 | } 231 | 232 | eat= 233 | 234 | case $1 in 235 | '') 236 | echo "$0: No command. Try '$0 --help' for more information." 1>&2 237 | exit 1; 238 | ;; 239 | -h | --h*) 240 | cat <<\EOF 241 | Usage: compile [--help] [--version] PROGRAM [ARGS] 242 | 243 | Wrapper for compilers which do not understand '-c -o'. 244 | Remove '-o dest.o' from ARGS, run PROGRAM with the remaining 245 | arguments, and rename the output as expected. 246 | 247 | If you are trying to build a whole package this is not the 248 | right script to run: please start by reading the file 'INSTALL'. 249 | 250 | Report bugs to . 251 | EOF 252 | exit $? 253 | ;; 254 | -v | --v*) 255 | echo "compile $scriptversion" 256 | exit $? 257 | ;; 258 | cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) 259 | func_cl_wrapper "$@" # Doesn't return... 260 | ;; 261 | esac 262 | 263 | ofile= 264 | cfile= 265 | 266 | for arg 267 | do 268 | if test -n "$eat"; then 269 | eat= 270 | else 271 | case $1 in 272 | -o) 273 | # configure might choose to run compile as 'compile cc -o foo foo.c'. 274 | # So we strip '-o arg' only if arg is an object. 275 | eat=1 276 | case $2 in 277 | *.o | *.obj) 278 | ofile=$2 279 | ;; 280 | *) 281 | set x "$@" -o "$2" 282 | shift 283 | ;; 284 | esac 285 | ;; 286 | *.c) 287 | cfile=$1 288 | set x "$@" "$1" 289 | shift 290 | ;; 291 | *) 292 | set x "$@" "$1" 293 | shift 294 | ;; 295 | esac 296 | fi 297 | shift 298 | done 299 | 300 | if test -z "$ofile" || test -z "$cfile"; then 301 | # If no '-o' option was seen then we might have been invoked from a 302 | # pattern rule where we don't need one. That is ok -- this is a 303 | # normal compilation that the losing compiler can handle. If no 304 | # '.c' file was seen then we are probably linking. That is also 305 | # ok. 306 | exec "$@" 307 | fi 308 | 309 | # Name of file we expect compiler to create. 310 | cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` 311 | 312 | # Create the lock directory. 313 | # Note: use '[/\\:.-]' here to ensure that we don't use the same name 314 | # that we are using for the .o file. Also, base the name on the expected 315 | # object file name, since that is what matters with a parallel build. 316 | lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d 317 | while true; do 318 | if mkdir "$lockdir" >/dev/null 2>&1; then 319 | break 320 | fi 321 | sleep 1 322 | done 323 | # FIXME: race condition here if user kills between mkdir and trap. 324 | trap "rmdir '$lockdir'; exit 1" 1 2 15 325 | 326 | # Run the compile. 327 | "$@" 328 | ret=$? 329 | 330 | if test -f "$cofile"; then 331 | test "$cofile" = "$ofile" || mv "$cofile" "$ofile" 332 | elif test -f "${cofile}bj"; then 333 | test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" 334 | fi 335 | 336 | rmdir "$lockdir" 337 | exit $ret 338 | 339 | # Local Variables: 340 | # mode: shell-script 341 | # sh-indentation: 2 342 | # eval: (add-hook 'write-file-hooks 'time-stamp) 343 | # time-stamp-start: "scriptversion=" 344 | # time-stamp-format: "%:y-%02m-%02d.%02H" 345 | # time-stamp-time-zone: "UTC" 346 | # time-stamp-end: "; # UTC" 347 | # End: 348 | -------------------------------------------------------------------------------- /install-sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # install - install a program, script, or datafile 3 | 4 | scriptversion=2014-09-12.12; # UTC 5 | 6 | # This originates from X11R5 (mit/util/scripts/install.sh), which was 7 | # later released in X11R6 (xc/config/util/install.sh) with the 8 | # following copyright and license. 9 | # 10 | # Copyright (C) 1994 X Consortium 11 | # 12 | # Permission is hereby granted, free of charge, to any person obtaining a copy 13 | # of this software and associated documentation files (the "Software"), to 14 | # deal in the Software without restriction, including without limitation the 15 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 16 | # sell copies of the Software, and to permit persons to whom the Software is 17 | # furnished to do so, subject to the following conditions: 18 | # 19 | # The above copyright notice and this permission notice shall be included in 20 | # all copies or substantial portions of the Software. 21 | # 22 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 27 | # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | # 29 | # Except as contained in this notice, the name of the X Consortium shall not 30 | # be used in advertising or otherwise to promote the sale, use or other deal- 31 | # ings in this Software without prior written authorization from the X Consor- 32 | # tium. 33 | # 34 | # 35 | # FSF changes to this file are in the public domain. 36 | # 37 | # Calling this script install-sh is preferred over install.sh, to prevent 38 | # 'make' implicit rules from creating a file called install from it 39 | # when there is no Makefile. 40 | # 41 | # This script is compatible with the BSD install script, but was written 42 | # from scratch. 43 | 44 | tab=' ' 45 | nl=' 46 | ' 47 | IFS=" $tab$nl" 48 | 49 | # Set DOITPROG to "echo" to test this script. 50 | 51 | doit=${DOITPROG-} 52 | doit_exec=${doit:-exec} 53 | 54 | # Put in absolute file names if you don't have them in your path; 55 | # or use environment vars. 56 | 57 | chgrpprog=${CHGRPPROG-chgrp} 58 | chmodprog=${CHMODPROG-chmod} 59 | chownprog=${CHOWNPROG-chown} 60 | cmpprog=${CMPPROG-cmp} 61 | cpprog=${CPPROG-cp} 62 | mkdirprog=${MKDIRPROG-mkdir} 63 | mvprog=${MVPROG-mv} 64 | rmprog=${RMPROG-rm} 65 | stripprog=${STRIPPROG-strip} 66 | 67 | posix_mkdir= 68 | 69 | # Desired mode of installed file. 70 | mode=0755 71 | 72 | chgrpcmd= 73 | chmodcmd=$chmodprog 74 | chowncmd= 75 | mvcmd=$mvprog 76 | rmcmd="$rmprog -f" 77 | stripcmd= 78 | 79 | src= 80 | dst= 81 | dir_arg= 82 | dst_arg= 83 | 84 | copy_on_change=false 85 | is_target_a_directory=possibly 86 | 87 | usage="\ 88 | Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 89 | or: $0 [OPTION]... SRCFILES... DIRECTORY 90 | or: $0 [OPTION]... -t DIRECTORY SRCFILES... 91 | or: $0 [OPTION]... -d DIRECTORIES... 92 | 93 | In the 1st form, copy SRCFILE to DSTFILE. 94 | In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 95 | In the 4th, create DIRECTORIES. 96 | 97 | Options: 98 | --help display this help and exit. 99 | --version display version info and exit. 100 | 101 | -c (ignored) 102 | -C install only if different (preserve the last data modification time) 103 | -d create directories instead of installing files. 104 | -g GROUP $chgrpprog installed files to GROUP. 105 | -m MODE $chmodprog installed files to MODE. 106 | -o USER $chownprog installed files to USER. 107 | -s $stripprog installed files. 108 | -t DIRECTORY install into DIRECTORY. 109 | -T report an error if DSTFILE is a directory. 110 | 111 | Environment variables override the default commands: 112 | CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG 113 | RMPROG STRIPPROG 114 | " 115 | 116 | while test $# -ne 0; do 117 | case $1 in 118 | -c) ;; 119 | 120 | -C) copy_on_change=true;; 121 | 122 | -d) dir_arg=true;; 123 | 124 | -g) chgrpcmd="$chgrpprog $2" 125 | shift;; 126 | 127 | --help) echo "$usage"; exit $?;; 128 | 129 | -m) mode=$2 130 | case $mode in 131 | *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) 132 | echo "$0: invalid mode: $mode" >&2 133 | exit 1;; 134 | esac 135 | shift;; 136 | 137 | -o) chowncmd="$chownprog $2" 138 | shift;; 139 | 140 | -s) stripcmd=$stripprog;; 141 | 142 | -t) 143 | is_target_a_directory=always 144 | dst_arg=$2 145 | # Protect names problematic for 'test' and other utilities. 146 | case $dst_arg in 147 | -* | [=\(\)!]) dst_arg=./$dst_arg;; 148 | esac 149 | shift;; 150 | 151 | -T) is_target_a_directory=never;; 152 | 153 | --version) echo "$0 $scriptversion"; exit $?;; 154 | 155 | --) shift 156 | break;; 157 | 158 | -*) echo "$0: invalid option: $1" >&2 159 | exit 1;; 160 | 161 | *) break;; 162 | esac 163 | shift 164 | done 165 | 166 | # We allow the use of options -d and -T together, by making -d 167 | # take the precedence; this is for compatibility with GNU install. 168 | 169 | if test -n "$dir_arg"; then 170 | if test -n "$dst_arg"; then 171 | echo "$0: target directory not allowed when installing a directory." >&2 172 | exit 1 173 | fi 174 | fi 175 | 176 | if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then 177 | # When -d is used, all remaining arguments are directories to create. 178 | # When -t is used, the destination is already specified. 179 | # Otherwise, the last argument is the destination. Remove it from $@. 180 | for arg 181 | do 182 | if test -n "$dst_arg"; then 183 | # $@ is not empty: it contains at least $arg. 184 | set fnord "$@" "$dst_arg" 185 | shift # fnord 186 | fi 187 | shift # arg 188 | dst_arg=$arg 189 | # Protect names problematic for 'test' and other utilities. 190 | case $dst_arg in 191 | -* | [=\(\)!]) dst_arg=./$dst_arg;; 192 | esac 193 | done 194 | fi 195 | 196 | if test $# -eq 0; then 197 | if test -z "$dir_arg"; then 198 | echo "$0: no input file specified." >&2 199 | exit 1 200 | fi 201 | # It's OK to call 'install-sh -d' without argument. 202 | # This can happen when creating conditional directories. 203 | exit 0 204 | fi 205 | 206 | if test -z "$dir_arg"; then 207 | if test $# -gt 1 || test "$is_target_a_directory" = always; then 208 | if test ! -d "$dst_arg"; then 209 | echo "$0: $dst_arg: Is not a directory." >&2 210 | exit 1 211 | fi 212 | fi 213 | fi 214 | 215 | if test -z "$dir_arg"; then 216 | do_exit='(exit $ret); exit $ret' 217 | trap "ret=129; $do_exit" 1 218 | trap "ret=130; $do_exit" 2 219 | trap "ret=141; $do_exit" 13 220 | trap "ret=143; $do_exit" 15 221 | 222 | # Set umask so as not to create temps with too-generous modes. 223 | # However, 'strip' requires both read and write access to temps. 224 | case $mode in 225 | # Optimize common cases. 226 | *644) cp_umask=133;; 227 | *755) cp_umask=22;; 228 | 229 | *[0-7]) 230 | if test -z "$stripcmd"; then 231 | u_plus_rw= 232 | else 233 | u_plus_rw='% 200' 234 | fi 235 | cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; 236 | *) 237 | if test -z "$stripcmd"; then 238 | u_plus_rw= 239 | else 240 | u_plus_rw=,u+rw 241 | fi 242 | cp_umask=$mode$u_plus_rw;; 243 | esac 244 | fi 245 | 246 | for src 247 | do 248 | # Protect names problematic for 'test' and other utilities. 249 | case $src in 250 | -* | [=\(\)!]) src=./$src;; 251 | esac 252 | 253 | if test -n "$dir_arg"; then 254 | dst=$src 255 | dstdir=$dst 256 | test -d "$dstdir" 257 | dstdir_status=$? 258 | else 259 | 260 | # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 261 | # might cause directories to be created, which would be especially bad 262 | # if $src (and thus $dsttmp) contains '*'. 263 | if test ! -f "$src" && test ! -d "$src"; then 264 | echo "$0: $src does not exist." >&2 265 | exit 1 266 | fi 267 | 268 | if test -z "$dst_arg"; then 269 | echo "$0: no destination specified." >&2 270 | exit 1 271 | fi 272 | dst=$dst_arg 273 | 274 | # If destination is a directory, append the input filename; won't work 275 | # if double slashes aren't ignored. 276 | if test -d "$dst"; then 277 | if test "$is_target_a_directory" = never; then 278 | echo "$0: $dst_arg: Is a directory" >&2 279 | exit 1 280 | fi 281 | dstdir=$dst 282 | dst=$dstdir/`basename "$src"` 283 | dstdir_status=0 284 | else 285 | dstdir=`dirname "$dst"` 286 | test -d "$dstdir" 287 | dstdir_status=$? 288 | fi 289 | fi 290 | 291 | obsolete_mkdir_used=false 292 | 293 | if test $dstdir_status != 0; then 294 | case $posix_mkdir in 295 | '') 296 | # Create intermediate dirs using mode 755 as modified by the umask. 297 | # This is like FreeBSD 'install' as of 1997-10-28. 298 | umask=`umask` 299 | case $stripcmd.$umask in 300 | # Optimize common cases. 301 | *[2367][2367]) mkdir_umask=$umask;; 302 | .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; 303 | 304 | *[0-7]) 305 | mkdir_umask=`expr $umask + 22 \ 306 | - $umask % 100 % 40 + $umask % 20 \ 307 | - $umask % 10 % 4 + $umask % 2 308 | `;; 309 | *) mkdir_umask=$umask,go-w;; 310 | esac 311 | 312 | # With -d, create the new directory with the user-specified mode. 313 | # Otherwise, rely on $mkdir_umask. 314 | if test -n "$dir_arg"; then 315 | mkdir_mode=-m$mode 316 | else 317 | mkdir_mode= 318 | fi 319 | 320 | posix_mkdir=false 321 | case $umask in 322 | *[123567][0-7][0-7]) 323 | # POSIX mkdir -p sets u+wx bits regardless of umask, which 324 | # is incompatible with FreeBSD 'install' when (umask & 300) != 0. 325 | ;; 326 | *) 327 | # $RANDOM is not portable (e.g. dash); use it when possible to 328 | # lower collision chance 329 | tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ 330 | trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 331 | 332 | # As "mkdir -p" follows symlinks and we work in /tmp possibly; so 333 | # create the $tmpdir first (and fail if unsuccessful) to make sure 334 | # that nobody tries to guess the $tmpdir name. 335 | if (umask $mkdir_umask && 336 | $mkdirprog $mkdir_mode "$tmpdir" && 337 | exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 338 | then 339 | if test -z "$dir_arg" || { 340 | # Check for POSIX incompatibilities with -m. 341 | # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or 342 | # other-writable bit of parent directory when it shouldn't. 343 | # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. 344 | test_tmpdir="$tmpdir/a" 345 | ls_ld_tmpdir=`ls -ld "$test_tmpdir"` 346 | case $ls_ld_tmpdir in 347 | d????-?r-*) different_mode=700;; 348 | d????-?--*) different_mode=755;; 349 | *) false;; 350 | esac && 351 | $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { 352 | ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` 353 | test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" 354 | } 355 | } 356 | then posix_mkdir=: 357 | fi 358 | rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 359 | else 360 | # Remove any dirs left behind by ancient mkdir implementations. 361 | rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null 362 | fi 363 | trap '' 0;; 364 | esac;; 365 | esac 366 | 367 | if 368 | $posix_mkdir && ( 369 | umask $mkdir_umask && 370 | $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" 371 | ) 372 | then : 373 | else 374 | 375 | # The umask is ridiculous, or mkdir does not conform to POSIX, 376 | # or it failed possibly due to a race condition. Create the 377 | # directory the slow way, step by step, checking for races as we go. 378 | 379 | case $dstdir in 380 | /*) prefix='/';; 381 | [-=\(\)!]*) prefix='./';; 382 | *) prefix='';; 383 | esac 384 | 385 | oIFS=$IFS 386 | IFS=/ 387 | set -f 388 | set fnord $dstdir 389 | shift 390 | set +f 391 | IFS=$oIFS 392 | 393 | prefixes= 394 | 395 | for d 396 | do 397 | test X"$d" = X && continue 398 | 399 | prefix=$prefix$d 400 | if test -d "$prefix"; then 401 | prefixes= 402 | else 403 | if $posix_mkdir; then 404 | (umask=$mkdir_umask && 405 | $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break 406 | # Don't fail if two instances are running concurrently. 407 | test -d "$prefix" || exit 1 408 | else 409 | case $prefix in 410 | *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; 411 | *) qprefix=$prefix;; 412 | esac 413 | prefixes="$prefixes '$qprefix'" 414 | fi 415 | fi 416 | prefix=$prefix/ 417 | done 418 | 419 | if test -n "$prefixes"; then 420 | # Don't fail if two instances are running concurrently. 421 | (umask $mkdir_umask && 422 | eval "\$doit_exec \$mkdirprog $prefixes") || 423 | test -d "$dstdir" || exit 1 424 | obsolete_mkdir_used=true 425 | fi 426 | fi 427 | fi 428 | 429 | if test -n "$dir_arg"; then 430 | { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && 431 | { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && 432 | { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || 433 | test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 434 | else 435 | 436 | # Make a couple of temp file names in the proper directory. 437 | dsttmp=$dstdir/_inst.$$_ 438 | rmtmp=$dstdir/_rm.$$_ 439 | 440 | # Trap to clean up those temp files at exit. 441 | trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 442 | 443 | # Copy the file name to the temp name. 444 | (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && 445 | 446 | # and set any options; do chmod last to preserve setuid bits. 447 | # 448 | # If any of these fail, we abort the whole thing. If we want to 449 | # ignore errors from any of these, just make sure not to ignore 450 | # errors from the above "$doit $cpprog $src $dsttmp" command. 451 | # 452 | { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && 453 | { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && 454 | { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && 455 | { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 456 | 457 | # If -C, don't bother to copy if it wouldn't change the file. 458 | if $copy_on_change && 459 | old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && 460 | new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 461 | set -f && 462 | set X $old && old=:$2:$4:$5:$6 && 463 | set X $new && new=:$2:$4:$5:$6 && 464 | set +f && 465 | test "$old" = "$new" && 466 | $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 467 | then 468 | rm -f "$dsttmp" 469 | else 470 | # Rename the file to the real destination. 471 | $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || 472 | 473 | # The rename failed, perhaps because mv can't rename something else 474 | # to itself, or perhaps because mv is so ancient that it does not 475 | # support -f. 476 | { 477 | # Now remove or move aside any old file at destination location. 478 | # We try this two ways since rm can't unlink itself on some 479 | # systems and the destination file might be busy for other 480 | # reasons. In this case, the final cleanup might fail but the new 481 | # file should still install successfully. 482 | { 483 | test ! -f "$dst" || 484 | $doit $rmcmd -f "$dst" 2>/dev/null || 485 | { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && 486 | { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } 487 | } || 488 | { echo "$0: cannot unlink or rename $dst" >&2 489 | (exit 1); exit 1 490 | } 491 | } && 492 | 493 | # Now rename the file to the real destination. 494 | $doit $mvcmd "$dsttmp" "$dst" 495 | } 496 | fi || exit 1 497 | 498 | trap '' 0 499 | fi 500 | done 501 | 502 | # Local variables: 503 | # eval: (add-hook 'write-file-hooks 'time-stamp) 504 | # time-stamp-start: "scriptversion=" 505 | # time-stamp-format: "%:y-%02m-%02d.%02H" 506 | # time-stamp-time-zone: "UTC" 507 | # time-stamp-end: "; # UTC" 508 | # End: 509 | -------------------------------------------------------------------------------- /config.rpath: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Output a system dependent set of variables, describing how to set the 3 | # run time search path of shared libraries in an executable. 4 | # 5 | # Copyright 1996-2007 Free Software Foundation, Inc. 6 | # Taken from GNU libtool, 2001 7 | # Originally by Gordon Matzigkeit , 1996 8 | # 9 | # This file is free software; the Free Software Foundation gives 10 | # unlimited permission to copy and/or distribute it, with or without 11 | # modifications, as long as this notice is preserved. 12 | # 13 | # The first argument passed to this file is the canonical host specification, 14 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 15 | # or 16 | # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 17 | # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld 18 | # should be set by the caller. 19 | # 20 | # The set of defined variables is at the end of this script. 21 | 22 | # Known limitations: 23 | # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer 24 | # than 256 bytes, otherwise the compiler driver will dump core. The only 25 | # known workaround is to choose shorter directory names for the build 26 | # directory and/or the installation directory. 27 | 28 | # All known linkers require a `.a' archive for static linking (except MSVC, 29 | # which needs '.lib'). 30 | libext=a 31 | shrext=.so 32 | 33 | host="$1" 34 | host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 35 | host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` 36 | host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` 37 | 38 | # Code taken from libtool.m4's _LT_CC_BASENAME. 39 | 40 | for cc_temp in $CC""; do 41 | case $cc_temp in 42 | compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; 43 | distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; 44 | \-*) ;; 45 | *) break;; 46 | esac 47 | done 48 | cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` 49 | 50 | # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. 51 | 52 | wl= 53 | if test "$GCC" = yes; then 54 | wl='-Wl,' 55 | else 56 | case "$host_os" in 57 | aix*) 58 | wl='-Wl,' 59 | ;; 60 | darwin*) 61 | case $cc_basename in 62 | xlc*) 63 | wl='-Wl,' 64 | ;; 65 | esac 66 | ;; 67 | mingw* | cygwin* | pw32* | os2*) 68 | ;; 69 | hpux9* | hpux10* | hpux11*) 70 | wl='-Wl,' 71 | ;; 72 | irix5* | irix6* | nonstopux*) 73 | wl='-Wl,' 74 | ;; 75 | newsos6) 76 | ;; 77 | linux* | k*bsd*-gnu) 78 | case $cc_basename in 79 | icc* | ecc*) 80 | wl='-Wl,' 81 | ;; 82 | pgcc | pgf77 | pgf90) 83 | wl='-Wl,' 84 | ;; 85 | ccc*) 86 | wl='-Wl,' 87 | ;; 88 | como) 89 | wl='-lopt=' 90 | ;; 91 | *) 92 | case `$CC -V 2>&1 | sed 5q` in 93 | *Sun\ C*) 94 | wl='-Wl,' 95 | ;; 96 | esac 97 | ;; 98 | esac 99 | ;; 100 | osf3* | osf4* | osf5*) 101 | wl='-Wl,' 102 | ;; 103 | rdos*) 104 | ;; 105 | solaris*) 106 | wl='-Wl,' 107 | ;; 108 | sunos4*) 109 | wl='-Qoption ld ' 110 | ;; 111 | sysv4 | sysv4.2uw2* | sysv4.3*) 112 | wl='-Wl,' 113 | ;; 114 | sysv4*MP*) 115 | ;; 116 | sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) 117 | wl='-Wl,' 118 | ;; 119 | unicos*) 120 | wl='-Wl,' 121 | ;; 122 | uts4*) 123 | ;; 124 | esac 125 | fi 126 | 127 | # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. 128 | 129 | hardcode_libdir_flag_spec= 130 | hardcode_libdir_separator= 131 | hardcode_direct=no 132 | hardcode_minus_L=no 133 | 134 | case "$host_os" in 135 | cygwin* | mingw* | pw32*) 136 | # FIXME: the MSVC++ port hasn't been tested in a loooong time 137 | # When not using gcc, we currently assume that we are using 138 | # Microsoft Visual C++. 139 | if test "$GCC" != yes; then 140 | with_gnu_ld=no 141 | fi 142 | ;; 143 | interix*) 144 | # we just hope/assume this is gcc and not c89 (= MSVC++) 145 | with_gnu_ld=yes 146 | ;; 147 | openbsd*) 148 | with_gnu_ld=no 149 | ;; 150 | esac 151 | 152 | ld_shlibs=yes 153 | if test "$with_gnu_ld" = yes; then 154 | # Set some defaults for GNU ld with shared library support. These 155 | # are reset later if shared libraries are not supported. Putting them 156 | # here allows them to be overridden if necessary. 157 | # Unlike libtool, we use -rpath here, not --rpath, since the documented 158 | # option of GNU ld is called -rpath, not --rpath. 159 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 160 | case "$host_os" in 161 | aix3* | aix4* | aix5*) 162 | # On AIX/PPC, the GNU linker is very broken 163 | if test "$host_cpu" != ia64; then 164 | ld_shlibs=no 165 | fi 166 | ;; 167 | amigaos*) 168 | hardcode_libdir_flag_spec='-L$libdir' 169 | hardcode_minus_L=yes 170 | # Samuel A. Falvo II reports 171 | # that the semantics of dynamic libraries on AmigaOS, at least up 172 | # to version 4, is to share data among multiple programs linked 173 | # with the same dynamic library. Since this doesn't match the 174 | # behavior of shared libraries on other platforms, we cannot use 175 | # them. 176 | ld_shlibs=no 177 | ;; 178 | beos*) 179 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 180 | : 181 | else 182 | ld_shlibs=no 183 | fi 184 | ;; 185 | cygwin* | mingw* | pw32*) 186 | # hardcode_libdir_flag_spec is actually meaningless, as there is 187 | # no search path for DLLs. 188 | hardcode_libdir_flag_spec='-L$libdir' 189 | if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then 190 | : 191 | else 192 | ld_shlibs=no 193 | fi 194 | ;; 195 | interix[3-9]*) 196 | hardcode_direct=no 197 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' 198 | ;; 199 | gnu* | linux* | k*bsd*-gnu) 200 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 201 | : 202 | else 203 | ld_shlibs=no 204 | fi 205 | ;; 206 | netbsd*) 207 | ;; 208 | solaris*) 209 | if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then 210 | ld_shlibs=no 211 | elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 212 | : 213 | else 214 | ld_shlibs=no 215 | fi 216 | ;; 217 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) 218 | case `$LD -v 2>&1` in 219 | *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) 220 | ld_shlibs=no 221 | ;; 222 | *) 223 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 224 | hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' 225 | else 226 | ld_shlibs=no 227 | fi 228 | ;; 229 | esac 230 | ;; 231 | sunos4*) 232 | hardcode_direct=yes 233 | ;; 234 | *) 235 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 236 | : 237 | else 238 | ld_shlibs=no 239 | fi 240 | ;; 241 | esac 242 | if test "$ld_shlibs" = no; then 243 | hardcode_libdir_flag_spec= 244 | fi 245 | else 246 | case "$host_os" in 247 | aix3*) 248 | # Note: this linker hardcodes the directories in LIBPATH if there 249 | # are no directories specified by -L. 250 | hardcode_minus_L=yes 251 | if test "$GCC" = yes; then 252 | # Neither direct hardcoding nor static linking is supported with a 253 | # broken collect2. 254 | hardcode_direct=unsupported 255 | fi 256 | ;; 257 | aix4* | aix5*) 258 | if test "$host_cpu" = ia64; then 259 | # On IA64, the linker does run time linking by default, so we don't 260 | # have to do anything special. 261 | aix_use_runtimelinking=no 262 | else 263 | aix_use_runtimelinking=no 264 | # Test if we are trying to use run time linking or normal 265 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we 266 | # need to do runtime linking. 267 | case $host_os in aix4.[23]|aix4.[23].*|aix5*) 268 | for ld_flag in $LDFLAGS; do 269 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then 270 | aix_use_runtimelinking=yes 271 | break 272 | fi 273 | done 274 | ;; 275 | esac 276 | fi 277 | hardcode_direct=yes 278 | hardcode_libdir_separator=':' 279 | if test "$GCC" = yes; then 280 | case $host_os in aix4.[012]|aix4.[012].*) 281 | collect2name=`${CC} -print-prog-name=collect2` 282 | if test -f "$collect2name" && \ 283 | strings "$collect2name" | grep resolve_lib_name >/dev/null 284 | then 285 | # We have reworked collect2 286 | : 287 | else 288 | # We have old collect2 289 | hardcode_direct=unsupported 290 | hardcode_minus_L=yes 291 | hardcode_libdir_flag_spec='-L$libdir' 292 | hardcode_libdir_separator= 293 | fi 294 | ;; 295 | esac 296 | fi 297 | # Begin _LT_AC_SYS_LIBPATH_AIX. 298 | echo 'int main () { return 0; }' > conftest.c 299 | ${CC} ${LDFLAGS} conftest.c -o conftest 300 | aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } 301 | }'` 302 | if test -z "$aix_libpath"; then 303 | aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } 304 | }'` 305 | fi 306 | if test -z "$aix_libpath"; then 307 | aix_libpath="/usr/lib:/lib" 308 | fi 309 | rm -f conftest.c conftest 310 | # End _LT_AC_SYS_LIBPATH_AIX. 311 | if test "$aix_use_runtimelinking" = yes; then 312 | hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 313 | else 314 | if test "$host_cpu" = ia64; then 315 | hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' 316 | else 317 | hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" 318 | fi 319 | fi 320 | ;; 321 | amigaos*) 322 | hardcode_libdir_flag_spec='-L$libdir' 323 | hardcode_minus_L=yes 324 | # see comment about different semantics on the GNU ld section 325 | ld_shlibs=no 326 | ;; 327 | bsdi[45]*) 328 | ;; 329 | cygwin* | mingw* | pw32*) 330 | # When not using gcc, we currently assume that we are using 331 | # Microsoft Visual C++. 332 | # hardcode_libdir_flag_spec is actually meaningless, as there is 333 | # no search path for DLLs. 334 | hardcode_libdir_flag_spec=' ' 335 | libext=lib 336 | ;; 337 | darwin* | rhapsody*) 338 | hardcode_direct=no 339 | if test "$GCC" = yes ; then 340 | : 341 | else 342 | case $cc_basename in 343 | xlc*) 344 | ;; 345 | *) 346 | ld_shlibs=no 347 | ;; 348 | esac 349 | fi 350 | ;; 351 | dgux*) 352 | hardcode_libdir_flag_spec='-L$libdir' 353 | ;; 354 | freebsd1*) 355 | ld_shlibs=no 356 | ;; 357 | freebsd2.2*) 358 | hardcode_libdir_flag_spec='-R$libdir' 359 | hardcode_direct=yes 360 | ;; 361 | freebsd2*) 362 | hardcode_direct=yes 363 | hardcode_minus_L=yes 364 | ;; 365 | freebsd* | dragonfly*) 366 | hardcode_libdir_flag_spec='-R$libdir' 367 | hardcode_direct=yes 368 | ;; 369 | hpux9*) 370 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 371 | hardcode_libdir_separator=: 372 | hardcode_direct=yes 373 | # hardcode_minus_L: Not really in the search PATH, 374 | # but as the default location of the library. 375 | hardcode_minus_L=yes 376 | ;; 377 | hpux10*) 378 | if test "$with_gnu_ld" = no; then 379 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 380 | hardcode_libdir_separator=: 381 | hardcode_direct=yes 382 | # hardcode_minus_L: Not really in the search PATH, 383 | # but as the default location of the library. 384 | hardcode_minus_L=yes 385 | fi 386 | ;; 387 | hpux11*) 388 | if test "$with_gnu_ld" = no; then 389 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' 390 | hardcode_libdir_separator=: 391 | case $host_cpu in 392 | hppa*64*|ia64*) 393 | hardcode_direct=no 394 | ;; 395 | *) 396 | hardcode_direct=yes 397 | # hardcode_minus_L: Not really in the search PATH, 398 | # but as the default location of the library. 399 | hardcode_minus_L=yes 400 | ;; 401 | esac 402 | fi 403 | ;; 404 | irix5* | irix6* | nonstopux*) 405 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 406 | hardcode_libdir_separator=: 407 | ;; 408 | netbsd*) 409 | hardcode_libdir_flag_spec='-R$libdir' 410 | hardcode_direct=yes 411 | ;; 412 | newsos6) 413 | hardcode_direct=yes 414 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 415 | hardcode_libdir_separator=: 416 | ;; 417 | openbsd*) 418 | if test -f /usr/libexec/ld.so; then 419 | hardcode_direct=yes 420 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 421 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' 422 | else 423 | case "$host_os" in 424 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) 425 | hardcode_libdir_flag_spec='-R$libdir' 426 | ;; 427 | *) 428 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' 429 | ;; 430 | esac 431 | fi 432 | else 433 | ld_shlibs=no 434 | fi 435 | ;; 436 | os2*) 437 | hardcode_libdir_flag_spec='-L$libdir' 438 | hardcode_minus_L=yes 439 | ;; 440 | osf3*) 441 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 442 | hardcode_libdir_separator=: 443 | ;; 444 | osf4* | osf5*) 445 | if test "$GCC" = yes; then 446 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 447 | else 448 | # Both cc and cxx compiler support -rpath directly 449 | hardcode_libdir_flag_spec='-rpath $libdir' 450 | fi 451 | hardcode_libdir_separator=: 452 | ;; 453 | solaris*) 454 | hardcode_libdir_flag_spec='-R$libdir' 455 | ;; 456 | sunos4*) 457 | hardcode_libdir_flag_spec='-L$libdir' 458 | hardcode_direct=yes 459 | hardcode_minus_L=yes 460 | ;; 461 | sysv4) 462 | case $host_vendor in 463 | sni) 464 | hardcode_direct=yes # is this really true??? 465 | ;; 466 | siemens) 467 | hardcode_direct=no 468 | ;; 469 | motorola) 470 | hardcode_direct=no #Motorola manual says yes, but my tests say they lie 471 | ;; 472 | esac 473 | ;; 474 | sysv4.3*) 475 | ;; 476 | sysv4*MP*) 477 | if test -d /usr/nec; then 478 | ld_shlibs=yes 479 | fi 480 | ;; 481 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) 482 | ;; 483 | sysv5* | sco3.2v5* | sco5v6*) 484 | hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' 485 | hardcode_libdir_separator=':' 486 | ;; 487 | uts4*) 488 | hardcode_libdir_flag_spec='-L$libdir' 489 | ;; 490 | *) 491 | ld_shlibs=no 492 | ;; 493 | esac 494 | fi 495 | 496 | # Check dynamic linker characteristics 497 | # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. 498 | # Unlike libtool.m4, here we don't care about _all_ names of the library, but 499 | # only about the one the linker finds when passed -lNAME. This is the last 500 | # element of library_names_spec in libtool.m4, or possibly two of them if the 501 | # linker has special search rules. 502 | library_names_spec= # the last element of library_names_spec in libtool.m4 503 | libname_spec='lib$name' 504 | case "$host_os" in 505 | aix3*) 506 | library_names_spec='$libname.a' 507 | ;; 508 | aix4* | aix5*) 509 | library_names_spec='$libname$shrext' 510 | ;; 511 | amigaos*) 512 | library_names_spec='$libname.a' 513 | ;; 514 | beos*) 515 | library_names_spec='$libname$shrext' 516 | ;; 517 | bsdi[45]*) 518 | library_names_spec='$libname$shrext' 519 | ;; 520 | cygwin* | mingw* | pw32*) 521 | shrext=.dll 522 | library_names_spec='$libname.dll.a $libname.lib' 523 | ;; 524 | darwin* | rhapsody*) 525 | shrext=.dylib 526 | library_names_spec='$libname$shrext' 527 | ;; 528 | dgux*) 529 | library_names_spec='$libname$shrext' 530 | ;; 531 | freebsd1*) 532 | ;; 533 | freebsd* | dragonfly*) 534 | case "$host_os" in 535 | freebsd[123]*) 536 | library_names_spec='$libname$shrext$versuffix' ;; 537 | *) 538 | library_names_spec='$libname$shrext' ;; 539 | esac 540 | ;; 541 | gnu*) 542 | library_names_spec='$libname$shrext' 543 | ;; 544 | hpux9* | hpux10* | hpux11*) 545 | case $host_cpu in 546 | ia64*) 547 | shrext=.so 548 | ;; 549 | hppa*64*) 550 | shrext=.sl 551 | ;; 552 | *) 553 | shrext=.sl 554 | ;; 555 | esac 556 | library_names_spec='$libname$shrext' 557 | ;; 558 | interix[3-9]*) 559 | library_names_spec='$libname$shrext' 560 | ;; 561 | irix5* | irix6* | nonstopux*) 562 | library_names_spec='$libname$shrext' 563 | case "$host_os" in 564 | irix5* | nonstopux*) 565 | libsuff= shlibsuff= 566 | ;; 567 | *) 568 | case $LD in 569 | *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; 570 | *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; 571 | *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; 572 | *) libsuff= shlibsuff= ;; 573 | esac 574 | ;; 575 | esac 576 | ;; 577 | linux*oldld* | linux*aout* | linux*coff*) 578 | ;; 579 | linux* | k*bsd*-gnu) 580 | library_names_spec='$libname$shrext' 581 | ;; 582 | knetbsd*-gnu) 583 | library_names_spec='$libname$shrext' 584 | ;; 585 | netbsd*) 586 | library_names_spec='$libname$shrext' 587 | ;; 588 | newsos6) 589 | library_names_spec='$libname$shrext' 590 | ;; 591 | nto-qnx*) 592 | library_names_spec='$libname$shrext' 593 | ;; 594 | openbsd*) 595 | library_names_spec='$libname$shrext$versuffix' 596 | ;; 597 | os2*) 598 | libname_spec='$name' 599 | shrext=.dll 600 | library_names_spec='$libname.a' 601 | ;; 602 | osf3* | osf4* | osf5*) 603 | library_names_spec='$libname$shrext' 604 | ;; 605 | rdos*) 606 | ;; 607 | solaris*) 608 | library_names_spec='$libname$shrext' 609 | ;; 610 | sunos4*) 611 | library_names_spec='$libname$shrext$versuffix' 612 | ;; 613 | sysv4 | sysv4.3*) 614 | library_names_spec='$libname$shrext' 615 | ;; 616 | sysv4*MP*) 617 | library_names_spec='$libname$shrext' 618 | ;; 619 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 620 | library_names_spec='$libname$shrext' 621 | ;; 622 | uts4*) 623 | library_names_spec='$libname$shrext' 624 | ;; 625 | esac 626 | 627 | sed_quote_subst='s/\(["`$\\]\)/\\\1/g' 628 | escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` 629 | shlibext=`echo "$shrext" | sed -e 's,^\.,,'` 630 | escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` 631 | escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` 632 | escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` 633 | 634 | LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. 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 | 28 | # Please send patches to . 29 | # 30 | # Configuration subroutine to validate and canonicalize a configuration type. 31 | # Supply the specified configuration type as an argument. 32 | # If it is invalid, we print an error message on stderr and exit with code 1. 33 | # Otherwise, we print the canonical config type on stdout and succeed. 34 | 35 | # You can get the latest version of this script from: 36 | # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD 37 | 38 | # This file is supposed to be the same for all GNU packages 39 | # and recognize all the CPU types, system types and aliases 40 | # that are meaningful with *any* GNU software. 41 | # Each package is responsible for reporting which valid configurations 42 | # it does not support. The user should be able to distinguish 43 | # a failure to support a valid configuration from a meaningless 44 | # configuration. 45 | 46 | # The goal of this file is to map all the various variations of a given 47 | # machine specification into a single specification in the form: 48 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 49 | # or in some cases, the newer four-part form: 50 | # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 51 | # It is wrong to echo any other type of specification. 52 | 53 | me=`echo "$0" | sed -e 's,.*/,,'` 54 | 55 | usage="\ 56 | Usage: $0 [OPTION] CPU-MFR-OPSYS 57 | $0 [OPTION] ALIAS 58 | 59 | Canonicalize a configuration name. 60 | 61 | Operation modes: 62 | -h, --help print this help, then exit 63 | -t, --time-stamp print date of last modification, then exit 64 | -v, --version print version number, then exit 65 | 66 | Report bugs and patches to ." 67 | 68 | version="\ 69 | GNU config.sub ($timestamp) 70 | 71 | Copyright 1992-2015 Free Software Foundation, Inc. 72 | 73 | This is free software; see the source for copying conditions. There is NO 74 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 75 | 76 | help=" 77 | Try \`$me --help' for more information." 78 | 79 | # Parse command line 80 | while test $# -gt 0 ; do 81 | case $1 in 82 | --time-stamp | --time* | -t ) 83 | echo "$timestamp" ; exit ;; 84 | --version | -v ) 85 | echo "$version" ; exit ;; 86 | --help | --h* | -h ) 87 | echo "$usage"; exit ;; 88 | -- ) # Stop option processing 89 | shift; break ;; 90 | - ) # Use stdin as input. 91 | break ;; 92 | -* ) 93 | echo "$me: invalid option $1$help" 94 | exit 1 ;; 95 | 96 | *local*) 97 | # First pass through any local machine types. 98 | echo $1 99 | exit ;; 100 | 101 | * ) 102 | break ;; 103 | esac 104 | done 105 | 106 | case $# in 107 | 0) echo "$me: missing argument$help" >&2 108 | exit 1;; 109 | 1) ;; 110 | *) echo "$me: too many arguments$help" >&2 111 | exit 1;; 112 | esac 113 | 114 | # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 115 | # Here we must recognize all the valid KERNEL-OS combinations. 116 | maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 117 | case $maybe_os in 118 | nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ 119 | linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ 120 | knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ 121 | kopensolaris*-gnu* | \ 122 | storm-chaos* | os2-emx* | rtmk-nova*) 123 | os=-$maybe_os 124 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 125 | ;; 126 | android-linux) 127 | os=-linux-android 128 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown 129 | ;; 130 | *) 131 | basic_machine=`echo $1 | sed 's/-[^-]*$//'` 132 | if [ $basic_machine != $1 ] 133 | then os=`echo $1 | sed 's/.*-/-/'` 134 | else os=; fi 135 | ;; 136 | esac 137 | 138 | ### Let's recognize common machines as not being operating systems so 139 | ### that things like config.sub decstation-3100 work. We also 140 | ### recognize some manufacturers as not being operating systems, so we 141 | ### can provide default operating systems below. 142 | case $os in 143 | -sun*os*) 144 | # Prevent following clause from handling this invalid input. 145 | ;; 146 | -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 147 | -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 148 | -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 149 | -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 150 | -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 151 | -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 152 | -apple | -axis | -knuth | -cray | -microblaze*) 153 | os= 154 | basic_machine=$1 155 | ;; 156 | -bluegene*) 157 | os=-cnk 158 | ;; 159 | -sim | -cisco | -oki | -wec | -winbond) 160 | os= 161 | basic_machine=$1 162 | ;; 163 | -scout) 164 | ;; 165 | -wrs) 166 | os=-vxworks 167 | basic_machine=$1 168 | ;; 169 | -chorusos*) 170 | os=-chorusos 171 | basic_machine=$1 172 | ;; 173 | -chorusrdb) 174 | os=-chorusrdb 175 | basic_machine=$1 176 | ;; 177 | -hiux*) 178 | os=-hiuxwe2 179 | ;; 180 | -sco6) 181 | os=-sco5v6 182 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 183 | ;; 184 | -sco5) 185 | os=-sco3.2v5 186 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 187 | ;; 188 | -sco4) 189 | os=-sco3.2v4 190 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 191 | ;; 192 | -sco3.2.[4-9]*) 193 | os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 194 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 195 | ;; 196 | -sco3.2v[4-9]*) 197 | # Don't forget version if it is 3.2v4 or newer. 198 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 199 | ;; 200 | -sco5v6*) 201 | # Don't forget version if it is 3.2v4 or newer. 202 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 203 | ;; 204 | -sco*) 205 | os=-sco3.2v2 206 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 207 | ;; 208 | -udk*) 209 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 210 | ;; 211 | -isc) 212 | os=-isc2.2 213 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 214 | ;; 215 | -clix*) 216 | basic_machine=clipper-intergraph 217 | ;; 218 | -isc*) 219 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 220 | ;; 221 | -lynx*178) 222 | os=-lynxos178 223 | ;; 224 | -lynx*5) 225 | os=-lynxos5 226 | ;; 227 | -lynx*) 228 | os=-lynxos 229 | ;; 230 | -ptx*) 231 | basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 232 | ;; 233 | -windowsnt*) 234 | os=`echo $os | sed -e 's/windowsnt/winnt/'` 235 | ;; 236 | -psos*) 237 | os=-psos 238 | ;; 239 | -mint | -mint[0-9]*) 240 | basic_machine=m68k-atari 241 | os=-mint 242 | ;; 243 | esac 244 | 245 | # Decode aliases for certain CPU-COMPANY combinations. 246 | case $basic_machine in 247 | # Recognize the basic CPU types without company name. 248 | # Some are omitted here because they have special meanings below. 249 | 1750a | 580 \ 250 | | a29k \ 251 | | aarch64 | aarch64_be \ 252 | | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 253 | | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 254 | | am33_2.0 \ 255 | | arc | arceb \ 256 | | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ 257 | | avr | avr32 \ 258 | | ba \ 259 | | be32 | be64 \ 260 | | bfin \ 261 | | c4x | c8051 | clipper \ 262 | | d10v | d30v | dlx | dsp16xx \ 263 | | e2k | epiphany \ 264 | | fido | fr30 | frv | ft32 \ 265 | | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 266 | | hexagon \ 267 | | i370 | i860 | i960 | ia64 \ 268 | | ip2k | iq2000 \ 269 | | k1om \ 270 | | le32 | le64 \ 271 | | lm32 \ 272 | | m32c | m32r | m32rle | m68000 | m68k | m88k \ 273 | | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ 274 | | mips | mipsbe | mipseb | mipsel | mipsle \ 275 | | mips16 \ 276 | | mips64 | mips64el \ 277 | | mips64octeon | mips64octeonel \ 278 | | mips64orion | mips64orionel \ 279 | | mips64r5900 | mips64r5900el \ 280 | | mips64vr | mips64vrel \ 281 | | mips64vr4100 | mips64vr4100el \ 282 | | mips64vr4300 | mips64vr4300el \ 283 | | mips64vr5000 | mips64vr5000el \ 284 | | mips64vr5900 | mips64vr5900el \ 285 | | mipsisa32 | mipsisa32el \ 286 | | mipsisa32r2 | mipsisa32r2el \ 287 | | mipsisa32r6 | mipsisa32r6el \ 288 | | mipsisa64 | mipsisa64el \ 289 | | mipsisa64r2 | mipsisa64r2el \ 290 | | mipsisa64r6 | mipsisa64r6el \ 291 | | mipsisa64sb1 | mipsisa64sb1el \ 292 | | mipsisa64sr71k | mipsisa64sr71kel \ 293 | | mipsr5900 | mipsr5900el \ 294 | | mipstx39 | mipstx39el \ 295 | | mn10200 | mn10300 \ 296 | | moxie \ 297 | | mt \ 298 | | msp430 \ 299 | | nds32 | nds32le | nds32be \ 300 | | nios | nios2 | nios2eb | nios2el \ 301 | | ns16k | ns32k \ 302 | | open8 | or1k | or1knd | or32 \ 303 | | pdp10 | pdp11 | pj | pjl \ 304 | | powerpc | powerpc64 | powerpc64le | powerpcle \ 305 | | pyramid \ 306 | | riscv32 | riscv64 \ 307 | | rl78 | rx \ 308 | | score \ 309 | | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 310 | | sh64 | sh64le \ 311 | | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 312 | | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 313 | | spu \ 314 | | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ 315 | | ubicom32 \ 316 | | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ 317 | | visium \ 318 | | we32k \ 319 | | x86 | xc16x | xstormy16 | xtensa \ 320 | | z8k | z80) 321 | basic_machine=$basic_machine-unknown 322 | ;; 323 | c54x) 324 | basic_machine=tic54x-unknown 325 | ;; 326 | c55x) 327 | basic_machine=tic55x-unknown 328 | ;; 329 | c6x) 330 | basic_machine=tic6x-unknown 331 | ;; 332 | leon|leon[3-9]) 333 | basic_machine=sparc-$basic_machine 334 | ;; 335 | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) 336 | basic_machine=$basic_machine-unknown 337 | os=-none 338 | ;; 339 | m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 340 | ;; 341 | ms1) 342 | basic_machine=mt-unknown 343 | ;; 344 | 345 | strongarm | thumb | xscale) 346 | basic_machine=arm-unknown 347 | ;; 348 | xgate) 349 | basic_machine=$basic_machine-unknown 350 | os=-none 351 | ;; 352 | xscaleeb) 353 | basic_machine=armeb-unknown 354 | ;; 355 | 356 | xscaleel) 357 | basic_machine=armel-unknown 358 | ;; 359 | 360 | # We use `pc' rather than `unknown' 361 | # because (1) that's what they normally are, and 362 | # (2) the word "unknown" tends to confuse beginning users. 363 | i*86 | x86_64) 364 | basic_machine=$basic_machine-pc 365 | ;; 366 | # Object if more than one company name word. 367 | *-*-*) 368 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 369 | exit 1 370 | ;; 371 | # Recognize the basic CPU types with company name. 372 | 580-* \ 373 | | a29k-* \ 374 | | aarch64-* | aarch64_be-* \ 375 | | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 376 | | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 377 | | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ 378 | | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 379 | | avr-* | avr32-* \ 380 | | ba-* \ 381 | | be32-* | be64-* \ 382 | | bfin-* | bs2000-* \ 383 | | c[123]* | c30-* | [cjt]90-* | c4x-* \ 384 | | c8051-* | clipper-* | craynv-* | cydra-* \ 385 | | d10v-* | d30v-* | dlx-* \ 386 | | e2k-* | elxsi-* \ 387 | | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 388 | | h8300-* | h8500-* \ 389 | | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 390 | | hexagon-* \ 391 | | i*86-* | i860-* | i960-* | ia64-* \ 392 | | ip2k-* | iq2000-* \ 393 | | k1om-* \ 394 | | le32-* | le64-* \ 395 | | lm32-* \ 396 | | m32c-* | m32r-* | m32rle-* \ 397 | | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 398 | | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 399 | | microblaze-* | microblazeel-* \ 400 | | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 401 | | mips16-* \ 402 | | mips64-* | mips64el-* \ 403 | | mips64octeon-* | mips64octeonel-* \ 404 | | mips64orion-* | mips64orionel-* \ 405 | | mips64r5900-* | mips64r5900el-* \ 406 | | mips64vr-* | mips64vrel-* \ 407 | | mips64vr4100-* | mips64vr4100el-* \ 408 | | mips64vr4300-* | mips64vr4300el-* \ 409 | | mips64vr5000-* | mips64vr5000el-* \ 410 | | mips64vr5900-* | mips64vr5900el-* \ 411 | | mipsisa32-* | mipsisa32el-* \ 412 | | mipsisa32r2-* | mipsisa32r2el-* \ 413 | | mipsisa32r6-* | mipsisa32r6el-* \ 414 | | mipsisa64-* | mipsisa64el-* \ 415 | | mipsisa64r2-* | mipsisa64r2el-* \ 416 | | mipsisa64r6-* | mipsisa64r6el-* \ 417 | | mipsisa64sb1-* | mipsisa64sb1el-* \ 418 | | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 419 | | mipsr5900-* | mipsr5900el-* \ 420 | | mipstx39-* | mipstx39el-* \ 421 | | mmix-* \ 422 | | mt-* \ 423 | | msp430-* \ 424 | | nds32-* | nds32le-* | nds32be-* \ 425 | | nios-* | nios2-* | nios2eb-* | nios2el-* \ 426 | | none-* | np1-* | ns16k-* | ns32k-* \ 427 | | open8-* \ 428 | | or1k*-* \ 429 | | orion-* \ 430 | | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 431 | | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ 432 | | pyramid-* \ 433 | | riscv32-* | riscv64-* \ 434 | | rl78-* | romp-* | rs6000-* | rx-* \ 435 | | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 436 | | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 437 | | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 438 | | sparclite-* \ 439 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ 440 | | tahoe-* \ 441 | | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 442 | | tile*-* \ 443 | | tron-* \ 444 | | ubicom32-* \ 445 | | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ 446 | | vax-* \ 447 | | visium-* \ 448 | | we32k-* \ 449 | | x86-* | x86_64-* | xc16x-* | xps100-* \ 450 | | xstormy16-* | xtensa*-* \ 451 | | ymp-* \ 452 | | z8k-* | z80-*) 453 | ;; 454 | # Recognize the basic CPU types without company name, with glob match. 455 | xtensa*) 456 | basic_machine=$basic_machine-unknown 457 | ;; 458 | # Recognize the various machine names and aliases which stand 459 | # for a CPU type and a company and sometimes even an OS. 460 | 386bsd) 461 | basic_machine=i386-unknown 462 | os=-bsd 463 | ;; 464 | 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 465 | basic_machine=m68000-att 466 | ;; 467 | 3b*) 468 | basic_machine=we32k-att 469 | ;; 470 | a29khif) 471 | basic_machine=a29k-amd 472 | os=-udi 473 | ;; 474 | abacus) 475 | basic_machine=abacus-unknown 476 | ;; 477 | adobe68k) 478 | basic_machine=m68010-adobe 479 | os=-scout 480 | ;; 481 | alliant | fx80) 482 | basic_machine=fx80-alliant 483 | ;; 484 | altos | altos3068) 485 | basic_machine=m68k-altos 486 | ;; 487 | am29k) 488 | basic_machine=a29k-none 489 | os=-bsd 490 | ;; 491 | amd64) 492 | basic_machine=x86_64-pc 493 | ;; 494 | amd64-*) 495 | basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` 496 | ;; 497 | amdahl) 498 | basic_machine=580-amdahl 499 | os=-sysv 500 | ;; 501 | amiga | amiga-*) 502 | basic_machine=m68k-unknown 503 | ;; 504 | amigaos | amigados) 505 | basic_machine=m68k-unknown 506 | os=-amigaos 507 | ;; 508 | amigaunix | amix) 509 | basic_machine=m68k-unknown 510 | os=-sysv4 511 | ;; 512 | apollo68) 513 | basic_machine=m68k-apollo 514 | os=-sysv 515 | ;; 516 | apollo68bsd) 517 | basic_machine=m68k-apollo 518 | os=-bsd 519 | ;; 520 | aros) 521 | basic_machine=i386-pc 522 | os=-aros 523 | ;; 524 | asmjs) 525 | basic_machine=asmjs-unknown 526 | ;; 527 | aux) 528 | basic_machine=m68k-apple 529 | os=-aux 530 | ;; 531 | balance) 532 | basic_machine=ns32k-sequent 533 | os=-dynix 534 | ;; 535 | blackfin) 536 | basic_machine=bfin-unknown 537 | os=-linux 538 | ;; 539 | blackfin-*) 540 | basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` 541 | os=-linux 542 | ;; 543 | bluegene*) 544 | basic_machine=powerpc-ibm 545 | os=-cnk 546 | ;; 547 | c54x-*) 548 | basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` 549 | ;; 550 | c55x-*) 551 | basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` 552 | ;; 553 | c6x-*) 554 | basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` 555 | ;; 556 | c90) 557 | basic_machine=c90-cray 558 | os=-unicos 559 | ;; 560 | cegcc) 561 | basic_machine=arm-unknown 562 | os=-cegcc 563 | ;; 564 | convex-c1) 565 | basic_machine=c1-convex 566 | os=-bsd 567 | ;; 568 | convex-c2) 569 | basic_machine=c2-convex 570 | os=-bsd 571 | ;; 572 | convex-c32) 573 | basic_machine=c32-convex 574 | os=-bsd 575 | ;; 576 | convex-c34) 577 | basic_machine=c34-convex 578 | os=-bsd 579 | ;; 580 | convex-c38) 581 | basic_machine=c38-convex 582 | os=-bsd 583 | ;; 584 | cray | j90) 585 | basic_machine=j90-cray 586 | os=-unicos 587 | ;; 588 | craynv) 589 | basic_machine=craynv-cray 590 | os=-unicosmp 591 | ;; 592 | cr16 | cr16-*) 593 | basic_machine=cr16-unknown 594 | os=-elf 595 | ;; 596 | crds | unos) 597 | basic_machine=m68k-crds 598 | ;; 599 | crisv32 | crisv32-* | etraxfs*) 600 | basic_machine=crisv32-axis 601 | ;; 602 | cris | cris-* | etrax*) 603 | basic_machine=cris-axis 604 | ;; 605 | crx) 606 | basic_machine=crx-unknown 607 | os=-elf 608 | ;; 609 | da30 | da30-*) 610 | basic_machine=m68k-da30 611 | ;; 612 | decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 613 | basic_machine=mips-dec 614 | ;; 615 | decsystem10* | dec10*) 616 | basic_machine=pdp10-dec 617 | os=-tops10 618 | ;; 619 | decsystem20* | dec20*) 620 | basic_machine=pdp10-dec 621 | os=-tops20 622 | ;; 623 | delta | 3300 | motorola-3300 | motorola-delta \ 624 | | 3300-motorola | delta-motorola) 625 | basic_machine=m68k-motorola 626 | ;; 627 | delta88) 628 | basic_machine=m88k-motorola 629 | os=-sysv3 630 | ;; 631 | dicos) 632 | basic_machine=i686-pc 633 | os=-dicos 634 | ;; 635 | djgpp) 636 | basic_machine=i586-pc 637 | os=-msdosdjgpp 638 | ;; 639 | dpx20 | dpx20-*) 640 | basic_machine=rs6000-bull 641 | os=-bosx 642 | ;; 643 | dpx2* | dpx2*-bull) 644 | basic_machine=m68k-bull 645 | os=-sysv3 646 | ;; 647 | ebmon29k) 648 | basic_machine=a29k-amd 649 | os=-ebmon 650 | ;; 651 | elxsi) 652 | basic_machine=elxsi-elxsi 653 | os=-bsd 654 | ;; 655 | encore | umax | mmax) 656 | basic_machine=ns32k-encore 657 | ;; 658 | es1800 | OSE68k | ose68k | ose | OSE) 659 | basic_machine=m68k-ericsson 660 | os=-ose 661 | ;; 662 | fx2800) 663 | basic_machine=i860-alliant 664 | ;; 665 | genix) 666 | basic_machine=ns32k-ns 667 | ;; 668 | gmicro) 669 | basic_machine=tron-gmicro 670 | os=-sysv 671 | ;; 672 | go32) 673 | basic_machine=i386-pc 674 | os=-go32 675 | ;; 676 | h3050r* | hiux*) 677 | basic_machine=hppa1.1-hitachi 678 | os=-hiuxwe2 679 | ;; 680 | h8300hms) 681 | basic_machine=h8300-hitachi 682 | os=-hms 683 | ;; 684 | h8300xray) 685 | basic_machine=h8300-hitachi 686 | os=-xray 687 | ;; 688 | h8500hms) 689 | basic_machine=h8500-hitachi 690 | os=-hms 691 | ;; 692 | harris) 693 | basic_machine=m88k-harris 694 | os=-sysv3 695 | ;; 696 | hp300-*) 697 | basic_machine=m68k-hp 698 | ;; 699 | hp300bsd) 700 | basic_machine=m68k-hp 701 | os=-bsd 702 | ;; 703 | hp300hpux) 704 | basic_machine=m68k-hp 705 | os=-hpux 706 | ;; 707 | hp3k9[0-9][0-9] | hp9[0-9][0-9]) 708 | basic_machine=hppa1.0-hp 709 | ;; 710 | hp9k2[0-9][0-9] | hp9k31[0-9]) 711 | basic_machine=m68000-hp 712 | ;; 713 | hp9k3[2-9][0-9]) 714 | basic_machine=m68k-hp 715 | ;; 716 | hp9k6[0-9][0-9] | hp6[0-9][0-9]) 717 | basic_machine=hppa1.0-hp 718 | ;; 719 | hp9k7[0-79][0-9] | hp7[0-79][0-9]) 720 | basic_machine=hppa1.1-hp 721 | ;; 722 | hp9k78[0-9] | hp78[0-9]) 723 | # FIXME: really hppa2.0-hp 724 | basic_machine=hppa1.1-hp 725 | ;; 726 | hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 727 | # FIXME: really hppa2.0-hp 728 | basic_machine=hppa1.1-hp 729 | ;; 730 | hp9k8[0-9][13679] | hp8[0-9][13679]) 731 | basic_machine=hppa1.1-hp 732 | ;; 733 | hp9k8[0-9][0-9] | hp8[0-9][0-9]) 734 | basic_machine=hppa1.0-hp 735 | ;; 736 | hppa-next) 737 | os=-nextstep3 738 | ;; 739 | hppaosf) 740 | basic_machine=hppa1.1-hp 741 | os=-osf 742 | ;; 743 | hppro) 744 | basic_machine=hppa1.1-hp 745 | os=-proelf 746 | ;; 747 | i370-ibm* | ibm*) 748 | basic_machine=i370-ibm 749 | ;; 750 | i*86v32) 751 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 752 | os=-sysv32 753 | ;; 754 | i*86v4*) 755 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 756 | os=-sysv4 757 | ;; 758 | i*86v) 759 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 760 | os=-sysv 761 | ;; 762 | i*86sol2) 763 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 764 | os=-solaris2 765 | ;; 766 | i386mach) 767 | basic_machine=i386-mach 768 | os=-mach 769 | ;; 770 | i386-vsta | vsta) 771 | basic_machine=i386-unknown 772 | os=-vsta 773 | ;; 774 | iris | iris4d) 775 | basic_machine=mips-sgi 776 | case $os in 777 | -irix*) 778 | ;; 779 | *) 780 | os=-irix4 781 | ;; 782 | esac 783 | ;; 784 | isi68 | isi) 785 | basic_machine=m68k-isi 786 | os=-sysv 787 | ;; 788 | leon-*|leon[3-9]-*) 789 | basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` 790 | ;; 791 | m68knommu) 792 | basic_machine=m68k-unknown 793 | os=-linux 794 | ;; 795 | m68knommu-*) 796 | basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` 797 | os=-linux 798 | ;; 799 | m88k-omron*) 800 | basic_machine=m88k-omron 801 | ;; 802 | magnum | m3230) 803 | basic_machine=mips-mips 804 | os=-sysv 805 | ;; 806 | merlin) 807 | basic_machine=ns32k-utek 808 | os=-sysv 809 | ;; 810 | microblaze*) 811 | basic_machine=microblaze-xilinx 812 | ;; 813 | mingw64) 814 | basic_machine=x86_64-pc 815 | os=-mingw64 816 | ;; 817 | mingw32) 818 | basic_machine=i686-pc 819 | os=-mingw32 820 | ;; 821 | mingw32ce) 822 | basic_machine=arm-unknown 823 | os=-mingw32ce 824 | ;; 825 | miniframe) 826 | basic_machine=m68000-convergent 827 | ;; 828 | *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 829 | basic_machine=m68k-atari 830 | os=-mint 831 | ;; 832 | mips3*-*) 833 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 834 | ;; 835 | mips3*) 836 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 837 | ;; 838 | monitor) 839 | basic_machine=m68k-rom68k 840 | os=-coff 841 | ;; 842 | morphos) 843 | basic_machine=powerpc-unknown 844 | os=-morphos 845 | ;; 846 | moxiebox) 847 | basic_machine=moxie-unknown 848 | os=-moxiebox 849 | ;; 850 | msdos) 851 | basic_machine=i386-pc 852 | os=-msdos 853 | ;; 854 | ms1-*) 855 | basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 856 | ;; 857 | msys) 858 | basic_machine=i686-pc 859 | os=-msys 860 | ;; 861 | mvs) 862 | basic_machine=i370-ibm 863 | os=-mvs 864 | ;; 865 | nacl) 866 | basic_machine=le32-unknown 867 | os=-nacl 868 | ;; 869 | ncr3000) 870 | basic_machine=i486-ncr 871 | os=-sysv4 872 | ;; 873 | netbsd386) 874 | basic_machine=i386-unknown 875 | os=-netbsd 876 | ;; 877 | netwinder) 878 | basic_machine=armv4l-rebel 879 | os=-linux 880 | ;; 881 | news | news700 | news800 | news900) 882 | basic_machine=m68k-sony 883 | os=-newsos 884 | ;; 885 | news1000) 886 | basic_machine=m68030-sony 887 | os=-newsos 888 | ;; 889 | news-3600 | risc-news) 890 | basic_machine=mips-sony 891 | os=-newsos 892 | ;; 893 | necv70) 894 | basic_machine=v70-nec 895 | os=-sysv 896 | ;; 897 | next | m*-next ) 898 | basic_machine=m68k-next 899 | case $os in 900 | -nextstep* ) 901 | ;; 902 | -ns2*) 903 | os=-nextstep2 904 | ;; 905 | *) 906 | os=-nextstep3 907 | ;; 908 | esac 909 | ;; 910 | nh3000) 911 | basic_machine=m68k-harris 912 | os=-cxux 913 | ;; 914 | nh[45]000) 915 | basic_machine=m88k-harris 916 | os=-cxux 917 | ;; 918 | nindy960) 919 | basic_machine=i960-intel 920 | os=-nindy 921 | ;; 922 | mon960) 923 | basic_machine=i960-intel 924 | os=-mon960 925 | ;; 926 | nonstopux) 927 | basic_machine=mips-compaq 928 | os=-nonstopux 929 | ;; 930 | np1) 931 | basic_machine=np1-gould 932 | ;; 933 | neo-tandem) 934 | basic_machine=neo-tandem 935 | ;; 936 | nse-tandem) 937 | basic_machine=nse-tandem 938 | ;; 939 | nsr-tandem) 940 | basic_machine=nsr-tandem 941 | ;; 942 | op50n-* | op60c-*) 943 | basic_machine=hppa1.1-oki 944 | os=-proelf 945 | ;; 946 | openrisc | openrisc-*) 947 | basic_machine=or32-unknown 948 | ;; 949 | os400) 950 | basic_machine=powerpc-ibm 951 | os=-os400 952 | ;; 953 | OSE68000 | ose68000) 954 | basic_machine=m68000-ericsson 955 | os=-ose 956 | ;; 957 | os68k) 958 | basic_machine=m68k-none 959 | os=-os68k 960 | ;; 961 | pa-hitachi) 962 | basic_machine=hppa1.1-hitachi 963 | os=-hiuxwe2 964 | ;; 965 | paragon) 966 | basic_machine=i860-intel 967 | os=-osf 968 | ;; 969 | parisc) 970 | basic_machine=hppa-unknown 971 | os=-linux 972 | ;; 973 | parisc-*) 974 | basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` 975 | os=-linux 976 | ;; 977 | pbd) 978 | basic_machine=sparc-tti 979 | ;; 980 | pbb) 981 | basic_machine=m68k-tti 982 | ;; 983 | pc532 | pc532-*) 984 | basic_machine=ns32k-pc532 985 | ;; 986 | pc98) 987 | basic_machine=i386-pc 988 | ;; 989 | pc98-*) 990 | basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` 991 | ;; 992 | pentium | p5 | k5 | k6 | nexgen | viac3) 993 | basic_machine=i586-pc 994 | ;; 995 | pentiumpro | p6 | 6x86 | athlon | athlon_*) 996 | basic_machine=i686-pc 997 | ;; 998 | pentiumii | pentium2 | pentiumiii | pentium3) 999 | basic_machine=i686-pc 1000 | ;; 1001 | pentium4) 1002 | basic_machine=i786-pc 1003 | ;; 1004 | pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 1005 | basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 1006 | ;; 1007 | pentiumpro-* | p6-* | 6x86-* | athlon-*) 1008 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 1009 | ;; 1010 | pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 1011 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 1012 | ;; 1013 | pentium4-*) 1014 | basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` 1015 | ;; 1016 | pn) 1017 | basic_machine=pn-gould 1018 | ;; 1019 | power) basic_machine=power-ibm 1020 | ;; 1021 | ppc | ppcbe) basic_machine=powerpc-unknown 1022 | ;; 1023 | ppc-* | ppcbe-*) 1024 | basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 1025 | ;; 1026 | ppcle | powerpclittle | ppc-le | powerpc-little) 1027 | basic_machine=powerpcle-unknown 1028 | ;; 1029 | ppcle-* | powerpclittle-*) 1030 | basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 1031 | ;; 1032 | ppc64) basic_machine=powerpc64-unknown 1033 | ;; 1034 | ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` 1035 | ;; 1036 | ppc64le | powerpc64little | ppc64-le | powerpc64-little) 1037 | basic_machine=powerpc64le-unknown 1038 | ;; 1039 | ppc64le-* | powerpc64little-*) 1040 | basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` 1041 | ;; 1042 | ps2) 1043 | basic_machine=i386-ibm 1044 | ;; 1045 | pw32) 1046 | basic_machine=i586-unknown 1047 | os=-pw32 1048 | ;; 1049 | rdos | rdos64) 1050 | basic_machine=x86_64-pc 1051 | os=-rdos 1052 | ;; 1053 | rdos32) 1054 | basic_machine=i386-pc 1055 | os=-rdos 1056 | ;; 1057 | rom68k) 1058 | basic_machine=m68k-rom68k 1059 | os=-coff 1060 | ;; 1061 | rm[46]00) 1062 | basic_machine=mips-siemens 1063 | ;; 1064 | rtpc | rtpc-*) 1065 | basic_machine=romp-ibm 1066 | ;; 1067 | s390 | s390-*) 1068 | basic_machine=s390-ibm 1069 | ;; 1070 | s390x | s390x-*) 1071 | basic_machine=s390x-ibm 1072 | ;; 1073 | sa29200) 1074 | basic_machine=a29k-amd 1075 | os=-udi 1076 | ;; 1077 | sb1) 1078 | basic_machine=mipsisa64sb1-unknown 1079 | ;; 1080 | sb1el) 1081 | basic_machine=mipsisa64sb1el-unknown 1082 | ;; 1083 | sde) 1084 | basic_machine=mipsisa32-sde 1085 | os=-elf 1086 | ;; 1087 | sei) 1088 | basic_machine=mips-sei 1089 | os=-seiux 1090 | ;; 1091 | sequent) 1092 | basic_machine=i386-sequent 1093 | ;; 1094 | sh) 1095 | basic_machine=sh-hitachi 1096 | os=-hms 1097 | ;; 1098 | sh5el) 1099 | basic_machine=sh5le-unknown 1100 | ;; 1101 | sh64) 1102 | basic_machine=sh64-unknown 1103 | ;; 1104 | sparclite-wrs | simso-wrs) 1105 | basic_machine=sparclite-wrs 1106 | os=-vxworks 1107 | ;; 1108 | sps7) 1109 | basic_machine=m68k-bull 1110 | os=-sysv2 1111 | ;; 1112 | spur) 1113 | basic_machine=spur-unknown 1114 | ;; 1115 | st2000) 1116 | basic_machine=m68k-tandem 1117 | ;; 1118 | stratus) 1119 | basic_machine=i860-stratus 1120 | os=-sysv4 1121 | ;; 1122 | strongarm-* | thumb-*) 1123 | basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` 1124 | ;; 1125 | sun2) 1126 | basic_machine=m68000-sun 1127 | ;; 1128 | sun2os3) 1129 | basic_machine=m68000-sun 1130 | os=-sunos3 1131 | ;; 1132 | sun2os4) 1133 | basic_machine=m68000-sun 1134 | os=-sunos4 1135 | ;; 1136 | sun3os3) 1137 | basic_machine=m68k-sun 1138 | os=-sunos3 1139 | ;; 1140 | sun3os4) 1141 | basic_machine=m68k-sun 1142 | os=-sunos4 1143 | ;; 1144 | sun4os3) 1145 | basic_machine=sparc-sun 1146 | os=-sunos3 1147 | ;; 1148 | sun4os4) 1149 | basic_machine=sparc-sun 1150 | os=-sunos4 1151 | ;; 1152 | sun4sol2) 1153 | basic_machine=sparc-sun 1154 | os=-solaris2 1155 | ;; 1156 | sun3 | sun3-*) 1157 | basic_machine=m68k-sun 1158 | ;; 1159 | sun4) 1160 | basic_machine=sparc-sun 1161 | ;; 1162 | sun386 | sun386i | roadrunner) 1163 | basic_machine=i386-sun 1164 | ;; 1165 | sv1) 1166 | basic_machine=sv1-cray 1167 | os=-unicos 1168 | ;; 1169 | symmetry) 1170 | basic_machine=i386-sequent 1171 | os=-dynix 1172 | ;; 1173 | t3e) 1174 | basic_machine=alphaev5-cray 1175 | os=-unicos 1176 | ;; 1177 | t90) 1178 | basic_machine=t90-cray 1179 | os=-unicos 1180 | ;; 1181 | tile*) 1182 | basic_machine=$basic_machine-unknown 1183 | os=-linux-gnu 1184 | ;; 1185 | tx39) 1186 | basic_machine=mipstx39-unknown 1187 | ;; 1188 | tx39el) 1189 | basic_machine=mipstx39el-unknown 1190 | ;; 1191 | toad1) 1192 | basic_machine=pdp10-xkl 1193 | os=-tops20 1194 | ;; 1195 | tower | tower-32) 1196 | basic_machine=m68k-ncr 1197 | ;; 1198 | tpf) 1199 | basic_machine=s390x-ibm 1200 | os=-tpf 1201 | ;; 1202 | udi29k) 1203 | basic_machine=a29k-amd 1204 | os=-udi 1205 | ;; 1206 | ultra3) 1207 | basic_machine=a29k-nyu 1208 | os=-sym1 1209 | ;; 1210 | v810 | necv810) 1211 | basic_machine=v810-nec 1212 | os=-none 1213 | ;; 1214 | vaxv) 1215 | basic_machine=vax-dec 1216 | os=-sysv 1217 | ;; 1218 | vms) 1219 | basic_machine=vax-dec 1220 | os=-vms 1221 | ;; 1222 | vpp*|vx|vx-*) 1223 | basic_machine=f301-fujitsu 1224 | ;; 1225 | vxworks960) 1226 | basic_machine=i960-wrs 1227 | os=-vxworks 1228 | ;; 1229 | vxworks68) 1230 | basic_machine=m68k-wrs 1231 | os=-vxworks 1232 | ;; 1233 | vxworks29k) 1234 | basic_machine=a29k-wrs 1235 | os=-vxworks 1236 | ;; 1237 | w65*) 1238 | basic_machine=w65-wdc 1239 | os=-none 1240 | ;; 1241 | w89k-*) 1242 | basic_machine=hppa1.1-winbond 1243 | os=-proelf 1244 | ;; 1245 | xbox) 1246 | basic_machine=i686-pc 1247 | os=-mingw32 1248 | ;; 1249 | xps | xps100) 1250 | basic_machine=xps100-honeywell 1251 | ;; 1252 | xscale-* | xscalee[bl]-*) 1253 | basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` 1254 | ;; 1255 | ymp) 1256 | basic_machine=ymp-cray 1257 | os=-unicos 1258 | ;; 1259 | z8k-*-coff) 1260 | basic_machine=z8k-unknown 1261 | os=-sim 1262 | ;; 1263 | z80-*-coff) 1264 | basic_machine=z80-unknown 1265 | os=-sim 1266 | ;; 1267 | none) 1268 | basic_machine=none-none 1269 | os=-none 1270 | ;; 1271 | 1272 | # Here we handle the default manufacturer of certain CPU types. It is in 1273 | # some cases the only manufacturer, in others, it is the most popular. 1274 | w89k) 1275 | basic_machine=hppa1.1-winbond 1276 | ;; 1277 | op50n) 1278 | basic_machine=hppa1.1-oki 1279 | ;; 1280 | op60c) 1281 | basic_machine=hppa1.1-oki 1282 | ;; 1283 | romp) 1284 | basic_machine=romp-ibm 1285 | ;; 1286 | mmix) 1287 | basic_machine=mmix-knuth 1288 | ;; 1289 | rs6000) 1290 | basic_machine=rs6000-ibm 1291 | ;; 1292 | vax) 1293 | basic_machine=vax-dec 1294 | ;; 1295 | pdp10) 1296 | # there are many clones, so DEC is not a safe bet 1297 | basic_machine=pdp10-unknown 1298 | ;; 1299 | pdp11) 1300 | basic_machine=pdp11-dec 1301 | ;; 1302 | we32k) 1303 | basic_machine=we32k-att 1304 | ;; 1305 | sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) 1306 | basic_machine=sh-unknown 1307 | ;; 1308 | sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 1309 | basic_machine=sparc-sun 1310 | ;; 1311 | cydra) 1312 | basic_machine=cydra-cydrome 1313 | ;; 1314 | orion) 1315 | basic_machine=orion-highlevel 1316 | ;; 1317 | orion105) 1318 | basic_machine=clipper-highlevel 1319 | ;; 1320 | mac | mpw | mac-mpw) 1321 | basic_machine=m68k-apple 1322 | ;; 1323 | pmac | pmac-mpw) 1324 | basic_machine=powerpc-apple 1325 | ;; 1326 | *-unknown) 1327 | # Make sure to match an already-canonicalized machine name. 1328 | ;; 1329 | *) 1330 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 1331 | exit 1 1332 | ;; 1333 | esac 1334 | 1335 | # Here we canonicalize certain aliases for manufacturers. 1336 | case $basic_machine in 1337 | *-digital*) 1338 | basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 1339 | ;; 1340 | *-commodore*) 1341 | basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 1342 | ;; 1343 | *) 1344 | ;; 1345 | esac 1346 | 1347 | # Decode manufacturer-specific aliases for certain operating systems. 1348 | 1349 | if [ x"$os" != x"" ] 1350 | then 1351 | case $os in 1352 | # First match some system type aliases 1353 | # that might get confused with valid system types. 1354 | # -solaris* is a basic system type, with this one exception. 1355 | -auroraux) 1356 | os=-auroraux 1357 | ;; 1358 | -solaris1 | -solaris1.*) 1359 | os=`echo $os | sed -e 's|solaris1|sunos4|'` 1360 | ;; 1361 | -solaris) 1362 | os=-solaris2 1363 | ;; 1364 | -svr4*) 1365 | os=-sysv4 1366 | ;; 1367 | -unixware*) 1368 | os=-sysv4.2uw 1369 | ;; 1370 | -gnu/linux*) 1371 | os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1372 | ;; 1373 | # First accept the basic system types. 1374 | # The portable systems comes first. 1375 | # Each alternative MUST END IN A *, to match a version number. 1376 | # -sysv* is not here because it comes later, after sysvr4. 1377 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1378 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1379 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ 1380 | | -sym* | -kopensolaris* | -plan9* \ 1381 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1382 | | -aos* | -aros* | -cloudabi* | -sortix* \ 1383 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1384 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1385 | | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ 1386 | | -bitrig* | -openbsd* | -solidbsd* \ 1387 | | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1388 | | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1389 | | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1390 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1391 | | -chorusos* | -chorusrdb* | -cegcc* \ 1392 | | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1393 | | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ 1394 | | -linux-newlib* | -linux-musl* | -linux-uclibc* \ 1395 | | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ 1396 | | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 1397 | | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 1398 | | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 1399 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1400 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1401 | | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1402 | | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) 1403 | # Remember, each alternative MUST END IN *, to match a version number. 1404 | ;; 1405 | -qnx*) 1406 | case $basic_machine in 1407 | x86-* | i*86-*) 1408 | ;; 1409 | *) 1410 | os=-nto$os 1411 | ;; 1412 | esac 1413 | ;; 1414 | -nto-qnx*) 1415 | ;; 1416 | -nto*) 1417 | os=`echo $os | sed -e 's|nto|nto-qnx|'` 1418 | ;; 1419 | -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1420 | | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ 1421 | | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1422 | ;; 1423 | -mac*) 1424 | os=`echo $os | sed -e 's|mac|macos|'` 1425 | ;; 1426 | -linux-dietlibc) 1427 | os=-linux-dietlibc 1428 | ;; 1429 | -linux*) 1430 | os=`echo $os | sed -e 's|linux|linux-gnu|'` 1431 | ;; 1432 | -sunos5*) 1433 | os=`echo $os | sed -e 's|sunos5|solaris2|'` 1434 | ;; 1435 | -sunos6*) 1436 | os=`echo $os | sed -e 's|sunos6|solaris3|'` 1437 | ;; 1438 | -opened*) 1439 | os=-openedition 1440 | ;; 1441 | -os400*) 1442 | os=-os400 1443 | ;; 1444 | -wince*) 1445 | os=-wince 1446 | ;; 1447 | -osfrose*) 1448 | os=-osfrose 1449 | ;; 1450 | -osf*) 1451 | os=-osf 1452 | ;; 1453 | -utek*) 1454 | os=-bsd 1455 | ;; 1456 | -dynix*) 1457 | os=-bsd 1458 | ;; 1459 | -acis*) 1460 | os=-aos 1461 | ;; 1462 | -atheos*) 1463 | os=-atheos 1464 | ;; 1465 | -syllable*) 1466 | os=-syllable 1467 | ;; 1468 | -386bsd) 1469 | os=-bsd 1470 | ;; 1471 | -ctix* | -uts*) 1472 | os=-sysv 1473 | ;; 1474 | -nova*) 1475 | os=-rtmk-nova 1476 | ;; 1477 | -ns2 ) 1478 | os=-nextstep2 1479 | ;; 1480 | -nsk*) 1481 | os=-nsk 1482 | ;; 1483 | # Preserve the version number of sinix5. 1484 | -sinix5.*) 1485 | os=`echo $os | sed -e 's|sinix|sysv|'` 1486 | ;; 1487 | -sinix*) 1488 | os=-sysv4 1489 | ;; 1490 | -tpf*) 1491 | os=-tpf 1492 | ;; 1493 | -triton*) 1494 | os=-sysv3 1495 | ;; 1496 | -oss*) 1497 | os=-sysv3 1498 | ;; 1499 | -svr4) 1500 | os=-sysv4 1501 | ;; 1502 | -svr3) 1503 | os=-sysv3 1504 | ;; 1505 | -sysvr4) 1506 | os=-sysv4 1507 | ;; 1508 | # This must come after -sysvr4. 1509 | -sysv*) 1510 | ;; 1511 | -ose*) 1512 | os=-ose 1513 | ;; 1514 | -es1800*) 1515 | os=-ose 1516 | ;; 1517 | -xenix) 1518 | os=-xenix 1519 | ;; 1520 | -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1521 | os=-mint 1522 | ;; 1523 | -aros*) 1524 | os=-aros 1525 | ;; 1526 | -zvmoe) 1527 | os=-zvmoe 1528 | ;; 1529 | -dicos*) 1530 | os=-dicos 1531 | ;; 1532 | -nacl*) 1533 | ;; 1534 | -none) 1535 | ;; 1536 | *) 1537 | # Get rid of the `-' at the beginning of $os. 1538 | os=`echo $os | sed 's/[^-]*-//'` 1539 | echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 1540 | exit 1 1541 | ;; 1542 | esac 1543 | else 1544 | 1545 | # Here we handle the default operating systems that come with various machines. 1546 | # The value should be what the vendor currently ships out the door with their 1547 | # machine or put another way, the most popular os provided with the machine. 1548 | 1549 | # Note that if you're going to try to match "-MANUFACTURER" here (say, 1550 | # "-sun"), then you have to tell the case statement up towards the top 1551 | # that MANUFACTURER isn't an operating system. Otherwise, code above 1552 | # will signal an error saying that MANUFACTURER isn't an operating 1553 | # system, and we'll never get to this point. 1554 | 1555 | case $basic_machine in 1556 | score-*) 1557 | os=-elf 1558 | ;; 1559 | spu-*) 1560 | os=-elf 1561 | ;; 1562 | *-acorn) 1563 | os=-riscix1.2 1564 | ;; 1565 | arm*-rebel) 1566 | os=-linux 1567 | ;; 1568 | arm*-semi) 1569 | os=-aout 1570 | ;; 1571 | c4x-* | tic4x-*) 1572 | os=-coff 1573 | ;; 1574 | c8051-*) 1575 | os=-elf 1576 | ;; 1577 | hexagon-*) 1578 | os=-elf 1579 | ;; 1580 | tic54x-*) 1581 | os=-coff 1582 | ;; 1583 | tic55x-*) 1584 | os=-coff 1585 | ;; 1586 | tic6x-*) 1587 | os=-coff 1588 | ;; 1589 | # This must come before the *-dec entry. 1590 | pdp10-*) 1591 | os=-tops20 1592 | ;; 1593 | pdp11-*) 1594 | os=-none 1595 | ;; 1596 | *-dec | vax-*) 1597 | os=-ultrix4.2 1598 | ;; 1599 | m68*-apollo) 1600 | os=-domain 1601 | ;; 1602 | i386-sun) 1603 | os=-sunos4.0.2 1604 | ;; 1605 | m68000-sun) 1606 | os=-sunos3 1607 | ;; 1608 | m68*-cisco) 1609 | os=-aout 1610 | ;; 1611 | mep-*) 1612 | os=-elf 1613 | ;; 1614 | mips*-cisco) 1615 | os=-elf 1616 | ;; 1617 | mips*-*) 1618 | os=-elf 1619 | ;; 1620 | or32-*) 1621 | os=-coff 1622 | ;; 1623 | *-tti) # must be before sparc entry or we get the wrong os. 1624 | os=-sysv3 1625 | ;; 1626 | sparc-* | *-sun) 1627 | os=-sunos4.1.1 1628 | ;; 1629 | *-be) 1630 | os=-beos 1631 | ;; 1632 | *-haiku) 1633 | os=-haiku 1634 | ;; 1635 | *-ibm) 1636 | os=-aix 1637 | ;; 1638 | *-knuth) 1639 | os=-mmixware 1640 | ;; 1641 | *-wec) 1642 | os=-proelf 1643 | ;; 1644 | *-winbond) 1645 | os=-proelf 1646 | ;; 1647 | *-oki) 1648 | os=-proelf 1649 | ;; 1650 | *-hp) 1651 | os=-hpux 1652 | ;; 1653 | *-hitachi) 1654 | os=-hiux 1655 | ;; 1656 | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1657 | os=-sysv 1658 | ;; 1659 | *-cbm) 1660 | os=-amigaos 1661 | ;; 1662 | *-dg) 1663 | os=-dgux 1664 | ;; 1665 | *-dolphin) 1666 | os=-sysv3 1667 | ;; 1668 | m68k-ccur) 1669 | os=-rtu 1670 | ;; 1671 | m88k-omron*) 1672 | os=-luna 1673 | ;; 1674 | *-next ) 1675 | os=-nextstep 1676 | ;; 1677 | *-sequent) 1678 | os=-ptx 1679 | ;; 1680 | *-crds) 1681 | os=-unos 1682 | ;; 1683 | *-ns) 1684 | os=-genix 1685 | ;; 1686 | i370-*) 1687 | os=-mvs 1688 | ;; 1689 | *-next) 1690 | os=-nextstep3 1691 | ;; 1692 | *-gould) 1693 | os=-sysv 1694 | ;; 1695 | *-highlevel) 1696 | os=-bsd 1697 | ;; 1698 | *-encore) 1699 | os=-bsd 1700 | ;; 1701 | *-sgi) 1702 | os=-irix 1703 | ;; 1704 | *-siemens) 1705 | os=-sysv4 1706 | ;; 1707 | *-masscomp) 1708 | os=-rtu 1709 | ;; 1710 | f30[01]-fujitsu | f700-fujitsu) 1711 | os=-uxpv 1712 | ;; 1713 | *-rom68k) 1714 | os=-coff 1715 | ;; 1716 | *-*bug) 1717 | os=-coff 1718 | ;; 1719 | *-apple) 1720 | os=-macos 1721 | ;; 1722 | *-atari*) 1723 | os=-mint 1724 | ;; 1725 | *) 1726 | os=-none 1727 | ;; 1728 | esac 1729 | fi 1730 | 1731 | # Here we handle the case where we know the os, and the CPU type, but not the 1732 | # manufacturer. We pick the logical manufacturer. 1733 | vendor=unknown 1734 | case $basic_machine in 1735 | *-unknown) 1736 | case $os in 1737 | -riscix*) 1738 | vendor=acorn 1739 | ;; 1740 | -sunos*) 1741 | vendor=sun 1742 | ;; 1743 | -cnk*|-aix*) 1744 | vendor=ibm 1745 | ;; 1746 | -beos*) 1747 | vendor=be 1748 | ;; 1749 | -hpux*) 1750 | vendor=hp 1751 | ;; 1752 | -mpeix*) 1753 | vendor=hp 1754 | ;; 1755 | -hiux*) 1756 | vendor=hitachi 1757 | ;; 1758 | -unos*) 1759 | vendor=crds 1760 | ;; 1761 | -dgux*) 1762 | vendor=dg 1763 | ;; 1764 | -luna*) 1765 | vendor=omron 1766 | ;; 1767 | -genix*) 1768 | vendor=ns 1769 | ;; 1770 | -mvs* | -opened*) 1771 | vendor=ibm 1772 | ;; 1773 | -os400*) 1774 | vendor=ibm 1775 | ;; 1776 | -ptx*) 1777 | vendor=sequent 1778 | ;; 1779 | -tpf*) 1780 | vendor=ibm 1781 | ;; 1782 | -vxsim* | -vxworks* | -windiss*) 1783 | vendor=wrs 1784 | ;; 1785 | -aux*) 1786 | vendor=apple 1787 | ;; 1788 | -hms*) 1789 | vendor=hitachi 1790 | ;; 1791 | -mpw* | -macos*) 1792 | vendor=apple 1793 | ;; 1794 | -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1795 | vendor=atari 1796 | ;; 1797 | -vos*) 1798 | vendor=stratus 1799 | ;; 1800 | esac 1801 | basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 1802 | ;; 1803 | esac 1804 | 1805 | echo $basic_machine$os 1806 | exit 1807 | 1808 | # Local variables: 1809 | # eval: (add-hook 'write-file-hooks 'time-stamp) 1810 | # time-stamp-start: "timestamp='" 1811 | # time-stamp-format: "%:y-%02m-%02d" 1812 | # time-stamp-end: "'" 1813 | # End: 1814 | -------------------------------------------------------------------------------- /config.guess: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Attempt to guess a canonical system name. 3 | # Copyright 1992-2015 Free Software Foundation, Inc. 4 | 5 | timestamp='2015-08-20' 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 . 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;hb=HEAD 31 | # 32 | # Please send patches to . 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 ." 48 | 49 | version="\ 50 | GNU config.guess ($timestamp) 51 | 52 | Originally written by Per Bothner. 53 | Copyright 1992-2015 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 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. 190 | case "${UNAME_MACHINE_ARCH}" in 191 | arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) 192 | eval $set_cc_for_build 193 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 194 | | grep -q __ELF__ 195 | then 196 | # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). 197 | # Return netbsd for either. FIX? 198 | os=netbsd 199 | else 200 | os=netbsdelf 201 | fi 202 | ;; 203 | *) 204 | os=netbsd 205 | ;; 206 | esac 207 | # Determine ABI tags. 208 | case "${UNAME_MACHINE_ARCH}" in 209 | earm*) 210 | expr='s/^earmv[0-9]/-eabi/;s/eb$//' 211 | abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` 212 | ;; 213 | esac 214 | # The OS release 215 | # Debian GNU/NetBSD machines have a different userland, and 216 | # thus, need a distinct triplet. However, they do not need 217 | # kernel version information, so it can be replaced with a 218 | # suitable tag, in the style of linux-gnu. 219 | case "${UNAME_VERSION}" in 220 | Debian*) 221 | release='-gnu' 222 | ;; 223 | *) 224 | release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` 225 | ;; 226 | esac 227 | # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 228 | # contains redundant information, the shorter form: 229 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 230 | echo "${machine}-${os}${release}${abi}" 231 | exit ;; 232 | *:Bitrig:*:*) 233 | UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` 234 | echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} 235 | exit ;; 236 | *:OpenBSD:*:*) 237 | UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` 238 | echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} 239 | exit ;; 240 | *:ekkoBSD:*:*) 241 | echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} 242 | exit ;; 243 | *:SolidBSD:*:*) 244 | echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} 245 | exit ;; 246 | macppc:MirBSD:*:*) 247 | echo powerpc-unknown-mirbsd${UNAME_RELEASE} 248 | exit ;; 249 | *:MirBSD:*:*) 250 | echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} 251 | exit ;; 252 | *:Sortix:*:*) 253 | echo ${UNAME_MACHINE}-unknown-sortix 254 | exit ;; 255 | alpha:OSF1:*:*) 256 | case $UNAME_RELEASE in 257 | *4.0) 258 | UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` 259 | ;; 260 | *5.*) 261 | UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 262 | ;; 263 | esac 264 | # According to Compaq, /usr/sbin/psrinfo has been available on 265 | # OSF/1 and Tru64 systems produced since 1995. I hope that 266 | # covers most systems running today. This code pipes the CPU 267 | # types through head -n 1, so we only detect the type of CPU 0. 268 | ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` 269 | case "$ALPHA_CPU_TYPE" in 270 | "EV4 (21064)") 271 | UNAME_MACHINE="alpha" ;; 272 | "EV4.5 (21064)") 273 | UNAME_MACHINE="alpha" ;; 274 | "LCA4 (21066/21068)") 275 | UNAME_MACHINE="alpha" ;; 276 | "EV5 (21164)") 277 | UNAME_MACHINE="alphaev5" ;; 278 | "EV5.6 (21164A)") 279 | UNAME_MACHINE="alphaev56" ;; 280 | "EV5.6 (21164PC)") 281 | UNAME_MACHINE="alphapca56" ;; 282 | "EV5.7 (21164PC)") 283 | UNAME_MACHINE="alphapca57" ;; 284 | "EV6 (21264)") 285 | UNAME_MACHINE="alphaev6" ;; 286 | "EV6.7 (21264A)") 287 | UNAME_MACHINE="alphaev67" ;; 288 | "EV6.8CB (21264C)") 289 | UNAME_MACHINE="alphaev68" ;; 290 | "EV6.8AL (21264B)") 291 | UNAME_MACHINE="alphaev68" ;; 292 | "EV6.8CX (21264D)") 293 | UNAME_MACHINE="alphaev68" ;; 294 | "EV6.9A (21264/EV69A)") 295 | UNAME_MACHINE="alphaev69" ;; 296 | "EV7 (21364)") 297 | UNAME_MACHINE="alphaev7" ;; 298 | "EV7.9 (21364A)") 299 | UNAME_MACHINE="alphaev79" ;; 300 | esac 301 | # A Pn.n version is a patched version. 302 | # A Vn.n version is a released version. 303 | # A Tn.n version is a released field test version. 304 | # A Xn.n version is an unreleased experimental baselevel. 305 | # 1.2 uses "1.2" for uname -r. 306 | echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 307 | # Reset EXIT trap before exiting to avoid spurious non-zero exit code. 308 | exitcode=$? 309 | trap '' 0 310 | exit $exitcode ;; 311 | Alpha\ *:Windows_NT*:*) 312 | # How do we know it's Interix rather than the generic POSIX subsystem? 313 | # Should we change UNAME_MACHINE based on the output of uname instead 314 | # of the specific Alpha model? 315 | echo alpha-pc-interix 316 | exit ;; 317 | 21064:Windows_NT:50:3) 318 | echo alpha-dec-winnt3.5 319 | exit ;; 320 | Amiga*:UNIX_System_V:4.0:*) 321 | echo m68k-unknown-sysv4 322 | exit ;; 323 | *:[Aa]miga[Oo][Ss]:*:*) 324 | echo ${UNAME_MACHINE}-unknown-amigaos 325 | exit ;; 326 | *:[Mm]orph[Oo][Ss]:*:*) 327 | echo ${UNAME_MACHINE}-unknown-morphos 328 | exit ;; 329 | *:OS/390:*:*) 330 | echo i370-ibm-openedition 331 | exit ;; 332 | *:z/VM:*:*) 333 | echo s390-ibm-zvmoe 334 | exit ;; 335 | *:OS400:*:*) 336 | echo powerpc-ibm-os400 337 | exit ;; 338 | arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) 339 | echo arm-acorn-riscix${UNAME_RELEASE} 340 | exit ;; 341 | arm*:riscos:*:*|arm*:RISCOS:*:*) 342 | echo arm-unknown-riscos 343 | exit ;; 344 | SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) 345 | echo hppa1.1-hitachi-hiuxmpp 346 | exit ;; 347 | Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) 348 | # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. 349 | if test "`(/bin/universe) 2>/dev/null`" = att ; then 350 | echo pyramid-pyramid-sysv3 351 | else 352 | echo pyramid-pyramid-bsd 353 | fi 354 | exit ;; 355 | NILE*:*:*:dcosx) 356 | echo pyramid-pyramid-svr4 357 | exit ;; 358 | DRS?6000:unix:4.0:6*) 359 | echo sparc-icl-nx6 360 | exit ;; 361 | DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) 362 | case `/usr/bin/uname -p` in 363 | sparc) echo sparc-icl-nx7; exit ;; 364 | esac ;; 365 | s390x:SunOS:*:*) 366 | echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 367 | exit ;; 368 | sun4H:SunOS:5.*:*) 369 | echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 370 | exit ;; 371 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 372 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 373 | exit ;; 374 | i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) 375 | echo i386-pc-auroraux${UNAME_RELEASE} 376 | exit ;; 377 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 378 | eval $set_cc_for_build 379 | SUN_ARCH="i386" 380 | # If there is a compiler, see if it is configured for 64-bit objects. 381 | # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. 382 | # This test works for both compilers. 383 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then 384 | if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ 385 | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ 386 | grep IS_64BIT_ARCH >/dev/null 387 | then 388 | SUN_ARCH="x86_64" 389 | fi 390 | fi 391 | echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 392 | exit ;; 393 | sun4*:SunOS:6*:*) 394 | # According to config.sub, this is the proper way to canonicalize 395 | # SunOS6. Hard to guess exactly what SunOS6 will be like, but 396 | # it's likely to be more like Solaris than SunOS4. 397 | echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 398 | exit ;; 399 | sun4*:SunOS:*:*) 400 | case "`/usr/bin/arch -k`" in 401 | Series*|S4*) 402 | UNAME_RELEASE=`uname -v` 403 | ;; 404 | esac 405 | # Japanese Language versions have a version number like `4.1.3-JL'. 406 | echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` 407 | exit ;; 408 | sun3*:SunOS:*:*) 409 | echo m68k-sun-sunos${UNAME_RELEASE} 410 | exit ;; 411 | sun*:*:4.2BSD:*) 412 | UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` 413 | test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 414 | case "`/bin/arch`" in 415 | sun3) 416 | echo m68k-sun-sunos${UNAME_RELEASE} 417 | ;; 418 | sun4) 419 | echo sparc-sun-sunos${UNAME_RELEASE} 420 | ;; 421 | esac 422 | exit ;; 423 | aushp:SunOS:*:*) 424 | echo sparc-auspex-sunos${UNAME_RELEASE} 425 | exit ;; 426 | # The situation for MiNT is a little confusing. The machine name 427 | # can be virtually everything (everything which is not 428 | # "atarist" or "atariste" at least should have a processor 429 | # > m68000). The system name ranges from "MiNT" over "FreeMiNT" 430 | # to the lowercase version "mint" (or "freemint"). Finally 431 | # the system name "TOS" denotes a system which is actually not 432 | # MiNT. But MiNT is downward compatible to TOS, so this should 433 | # be no problem. 434 | atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 435 | echo m68k-atari-mint${UNAME_RELEASE} 436 | exit ;; 437 | atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 438 | echo m68k-atari-mint${UNAME_RELEASE} 439 | exit ;; 440 | *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 441 | echo m68k-atari-mint${UNAME_RELEASE} 442 | exit ;; 443 | milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 444 | echo m68k-milan-mint${UNAME_RELEASE} 445 | exit ;; 446 | hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 447 | echo m68k-hades-mint${UNAME_RELEASE} 448 | exit ;; 449 | *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 450 | echo m68k-unknown-mint${UNAME_RELEASE} 451 | exit ;; 452 | m68k:machten:*:*) 453 | echo m68k-apple-machten${UNAME_RELEASE} 454 | exit ;; 455 | powerpc:machten:*:*) 456 | echo powerpc-apple-machten${UNAME_RELEASE} 457 | exit ;; 458 | RISC*:Mach:*:*) 459 | echo mips-dec-mach_bsd4.3 460 | exit ;; 461 | RISC*:ULTRIX:*:*) 462 | echo mips-dec-ultrix${UNAME_RELEASE} 463 | exit ;; 464 | VAX*:ULTRIX*:*:*) 465 | echo vax-dec-ultrix${UNAME_RELEASE} 466 | exit ;; 467 | 2020:CLIX:*:* | 2430:CLIX:*:*) 468 | echo clipper-intergraph-clix${UNAME_RELEASE} 469 | exit ;; 470 | mips:*:*:UMIPS | mips:*:*:RISCos) 471 | eval $set_cc_for_build 472 | sed 's/^ //' << EOF >$dummy.c 473 | #ifdef __cplusplus 474 | #include /* for printf() prototype */ 475 | int main (int argc, char *argv[]) { 476 | #else 477 | int main (argc, argv) int argc; char *argv[]; { 478 | #endif 479 | #if defined (host_mips) && defined (MIPSEB) 480 | #if defined (SYSTYPE_SYSV) 481 | printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); 482 | #endif 483 | #if defined (SYSTYPE_SVR4) 484 | printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); 485 | #endif 486 | #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) 487 | printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); 488 | #endif 489 | #endif 490 | exit (-1); 491 | } 492 | EOF 493 | $CC_FOR_BUILD -o $dummy $dummy.c && 494 | dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && 495 | SYSTEM_NAME=`$dummy $dummyarg` && 496 | { echo "$SYSTEM_NAME"; exit; } 497 | echo mips-mips-riscos${UNAME_RELEASE} 498 | exit ;; 499 | Motorola:PowerMAX_OS:*:*) 500 | echo powerpc-motorola-powermax 501 | exit ;; 502 | Motorola:*:4.3:PL8-*) 503 | echo powerpc-harris-powermax 504 | exit ;; 505 | Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) 506 | echo powerpc-harris-powermax 507 | exit ;; 508 | Night_Hawk:Power_UNIX:*:*) 509 | echo powerpc-harris-powerunix 510 | exit ;; 511 | m88k:CX/UX:7*:*) 512 | echo m88k-harris-cxux7 513 | exit ;; 514 | m88k:*:4*:R4*) 515 | echo m88k-motorola-sysv4 516 | exit ;; 517 | m88k:*:3*:R3*) 518 | echo m88k-motorola-sysv3 519 | exit ;; 520 | AViiON:dgux:*:*) 521 | # DG/UX returns AViiON for all architectures 522 | UNAME_PROCESSOR=`/usr/bin/uname -p` 523 | if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 524 | then 525 | if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ 526 | [ ${TARGET_BINARY_INTERFACE}x = x ] 527 | then 528 | echo m88k-dg-dgux${UNAME_RELEASE} 529 | else 530 | echo m88k-dg-dguxbcs${UNAME_RELEASE} 531 | fi 532 | else 533 | echo i586-dg-dgux${UNAME_RELEASE} 534 | fi 535 | exit ;; 536 | M88*:DolphinOS:*:*) # DolphinOS (SVR3) 537 | echo m88k-dolphin-sysv3 538 | exit ;; 539 | M88*:*:R3*:*) 540 | # Delta 88k system running SVR3 541 | echo m88k-motorola-sysv3 542 | exit ;; 543 | XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) 544 | echo m88k-tektronix-sysv3 545 | exit ;; 546 | Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) 547 | echo m68k-tektronix-bsd 548 | exit ;; 549 | *:IRIX*:*:*) 550 | echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` 551 | exit ;; 552 | ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 553 | echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id 554 | exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' 555 | i*86:AIX:*:*) 556 | echo i386-ibm-aix 557 | exit ;; 558 | ia64:AIX:*:*) 559 | if [ -x /usr/bin/oslevel ] ; then 560 | IBM_REV=`/usr/bin/oslevel` 561 | else 562 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 563 | fi 564 | echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} 565 | exit ;; 566 | *:AIX:2:3) 567 | if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then 568 | eval $set_cc_for_build 569 | sed 's/^ //' << EOF >$dummy.c 570 | #include 571 | 572 | main() 573 | { 574 | if (!__power_pc()) 575 | exit(1); 576 | puts("powerpc-ibm-aix3.2.5"); 577 | exit(0); 578 | } 579 | EOF 580 | if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` 581 | then 582 | echo "$SYSTEM_NAME" 583 | else 584 | echo rs6000-ibm-aix3.2.5 585 | fi 586 | elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then 587 | echo rs6000-ibm-aix3.2.4 588 | else 589 | echo rs6000-ibm-aix3.2 590 | fi 591 | exit ;; 592 | *:AIX:*:[4567]) 593 | IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 594 | if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then 595 | IBM_ARCH=rs6000 596 | else 597 | IBM_ARCH=powerpc 598 | fi 599 | if [ -x /usr/bin/lslpp ] ; then 600 | IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | 601 | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` 602 | else 603 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 604 | fi 605 | echo ${IBM_ARCH}-ibm-aix${IBM_REV} 606 | exit ;; 607 | *:AIX:*:*) 608 | echo rs6000-ibm-aix 609 | exit ;; 610 | ibmrt:4.4BSD:*|romp-ibm:BSD:*) 611 | echo romp-ibm-bsd4.4 612 | exit ;; 613 | ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and 614 | echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to 615 | exit ;; # report: romp-ibm BSD 4.3 616 | *:BOSX:*:*) 617 | echo rs6000-bull-bosx 618 | exit ;; 619 | DPX/2?00:B.O.S.:*:*) 620 | echo m68k-bull-sysv3 621 | exit ;; 622 | 9000/[34]??:4.3bsd:1.*:*) 623 | echo m68k-hp-bsd 624 | exit ;; 625 | hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) 626 | echo m68k-hp-bsd4.4 627 | exit ;; 628 | 9000/[34678]??:HP-UX:*:*) 629 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 630 | case "${UNAME_MACHINE}" in 631 | 9000/31? ) HP_ARCH=m68000 ;; 632 | 9000/[34]?? ) HP_ARCH=m68k ;; 633 | 9000/[678][0-9][0-9]) 634 | if [ -x /usr/bin/getconf ]; then 635 | sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 636 | sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 637 | case "${sc_cpu_version}" in 638 | 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 639 | 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 640 | 532) # CPU_PA_RISC2_0 641 | case "${sc_kernel_bits}" in 642 | 32) HP_ARCH="hppa2.0n" ;; 643 | 64) HP_ARCH="hppa2.0w" ;; 644 | '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 645 | esac ;; 646 | esac 647 | fi 648 | if [ "${HP_ARCH}" = "" ]; then 649 | eval $set_cc_for_build 650 | sed 's/^ //' << EOF >$dummy.c 651 | 652 | #define _HPUX_SOURCE 653 | #include 654 | #include 655 | 656 | int main () 657 | { 658 | #if defined(_SC_KERNEL_BITS) 659 | long bits = sysconf(_SC_KERNEL_BITS); 660 | #endif 661 | long cpu = sysconf (_SC_CPU_VERSION); 662 | 663 | switch (cpu) 664 | { 665 | case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 666 | case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 667 | case CPU_PA_RISC2_0: 668 | #if defined(_SC_KERNEL_BITS) 669 | switch (bits) 670 | { 671 | case 64: puts ("hppa2.0w"); break; 672 | case 32: puts ("hppa2.0n"); break; 673 | default: puts ("hppa2.0"); break; 674 | } break; 675 | #else /* !defined(_SC_KERNEL_BITS) */ 676 | puts ("hppa2.0"); break; 677 | #endif 678 | default: puts ("hppa1.0"); break; 679 | } 680 | exit (0); 681 | } 682 | EOF 683 | (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` 684 | test -z "$HP_ARCH" && HP_ARCH=hppa 685 | fi ;; 686 | esac 687 | if [ ${HP_ARCH} = "hppa2.0w" ] 688 | then 689 | eval $set_cc_for_build 690 | 691 | # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 692 | # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler 693 | # generating 64-bit code. GNU and HP use different nomenclature: 694 | # 695 | # $ CC_FOR_BUILD=cc ./config.guess 696 | # => hppa2.0w-hp-hpux11.23 697 | # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess 698 | # => hppa64-hp-hpux11.23 699 | 700 | if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | 701 | grep -q __LP64__ 702 | then 703 | HP_ARCH="hppa2.0w" 704 | else 705 | HP_ARCH="hppa64" 706 | fi 707 | fi 708 | echo ${HP_ARCH}-hp-hpux${HPUX_REV} 709 | exit ;; 710 | ia64:HP-UX:*:*) 711 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 712 | echo ia64-hp-hpux${HPUX_REV} 713 | exit ;; 714 | 3050*:HI-UX:*:*) 715 | eval $set_cc_for_build 716 | sed 's/^ //' << EOF >$dummy.c 717 | #include 718 | int 719 | main () 720 | { 721 | long cpu = sysconf (_SC_CPU_VERSION); 722 | /* The order matters, because CPU_IS_HP_MC68K erroneously returns 723 | true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct 724 | results, however. */ 725 | if (CPU_IS_PA_RISC (cpu)) 726 | { 727 | switch (cpu) 728 | { 729 | case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; 730 | case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; 731 | case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; 732 | default: puts ("hppa-hitachi-hiuxwe2"); break; 733 | } 734 | } 735 | else if (CPU_IS_HP_MC68K (cpu)) 736 | puts ("m68k-hitachi-hiuxwe2"); 737 | else puts ("unknown-hitachi-hiuxwe2"); 738 | exit (0); 739 | } 740 | EOF 741 | $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && 742 | { echo "$SYSTEM_NAME"; exit; } 743 | echo unknown-hitachi-hiuxwe2 744 | exit ;; 745 | 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 746 | echo hppa1.1-hp-bsd 747 | exit ;; 748 | 9000/8??:4.3bsd:*:*) 749 | echo hppa1.0-hp-bsd 750 | exit ;; 751 | *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) 752 | echo hppa1.0-hp-mpeix 753 | exit ;; 754 | hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) 755 | echo hppa1.1-hp-osf 756 | exit ;; 757 | hp8??:OSF1:*:*) 758 | echo hppa1.0-hp-osf 759 | exit ;; 760 | i*86:OSF1:*:*) 761 | if [ -x /usr/sbin/sysversion ] ; then 762 | echo ${UNAME_MACHINE}-unknown-osf1mk 763 | else 764 | echo ${UNAME_MACHINE}-unknown-osf1 765 | fi 766 | exit ;; 767 | parisc*:Lites*:*:*) 768 | echo hppa1.1-hp-lites 769 | exit ;; 770 | C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 771 | echo c1-convex-bsd 772 | exit ;; 773 | C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 774 | if getsysinfo -f scalar_acc 775 | then echo c32-convex-bsd 776 | else echo c2-convex-bsd 777 | fi 778 | exit ;; 779 | C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 780 | echo c34-convex-bsd 781 | exit ;; 782 | C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 783 | echo c38-convex-bsd 784 | exit ;; 785 | C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 786 | echo c4-convex-bsd 787 | exit ;; 788 | CRAY*Y-MP:*:*:*) 789 | echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 790 | exit ;; 791 | CRAY*[A-Z]90:*:*:*) 792 | echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ 793 | | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 794 | -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ 795 | -e 's/\.[^.]*$/.X/' 796 | exit ;; 797 | CRAY*TS:*:*:*) 798 | echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 799 | exit ;; 800 | CRAY*T3E:*:*:*) 801 | echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 802 | exit ;; 803 | CRAY*SV1:*:*:*) 804 | echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 805 | exit ;; 806 | *:UNICOS/mp:*:*) 807 | echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 808 | exit ;; 809 | F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 810 | FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 811 | FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 812 | FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 813 | echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 814 | exit ;; 815 | 5000:UNIX_System_V:4.*:*) 816 | FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 817 | FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 818 | echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 819 | exit ;; 820 | i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) 821 | echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} 822 | exit ;; 823 | sparc*:BSD/OS:*:*) 824 | echo sparc-unknown-bsdi${UNAME_RELEASE} 825 | exit ;; 826 | *:BSD/OS:*:*) 827 | echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 828 | exit ;; 829 | *:FreeBSD:*:*) 830 | UNAME_PROCESSOR=`/usr/bin/uname -p` 831 | case ${UNAME_PROCESSOR} in 832 | amd64) 833 | echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 834 | *) 835 | echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 836 | esac 837 | exit ;; 838 | i*:CYGWIN*:*) 839 | echo ${UNAME_MACHINE}-pc-cygwin 840 | exit ;; 841 | *:MINGW64*:*) 842 | echo ${UNAME_MACHINE}-pc-mingw64 843 | exit ;; 844 | *:MINGW*:*) 845 | echo ${UNAME_MACHINE}-pc-mingw32 846 | exit ;; 847 | *:MSYS*:*) 848 | echo ${UNAME_MACHINE}-pc-msys 849 | exit ;; 850 | i*:windows32*:*) 851 | # uname -m includes "-pc" on this system. 852 | echo ${UNAME_MACHINE}-mingw32 853 | exit ;; 854 | i*:PW*:*) 855 | echo ${UNAME_MACHINE}-pc-pw32 856 | exit ;; 857 | *:Interix*:*) 858 | case ${UNAME_MACHINE} in 859 | x86) 860 | echo i586-pc-interix${UNAME_RELEASE} 861 | exit ;; 862 | authenticamd | genuineintel | EM64T) 863 | echo x86_64-unknown-interix${UNAME_RELEASE} 864 | exit ;; 865 | IA64) 866 | echo ia64-unknown-interix${UNAME_RELEASE} 867 | exit ;; 868 | esac ;; 869 | [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) 870 | echo i${UNAME_MACHINE}-pc-mks 871 | exit ;; 872 | 8664:Windows_NT:*) 873 | echo x86_64-pc-mks 874 | exit ;; 875 | i*:Windows_NT*:* | Pentium*:Windows_NT*:*) 876 | # How do we know it's Interix rather than the generic POSIX subsystem? 877 | # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we 878 | # UNAME_MACHINE based on the output of uname instead of i386? 879 | echo i586-pc-interix 880 | exit ;; 881 | i*:UWIN*:*) 882 | echo ${UNAME_MACHINE}-pc-uwin 883 | exit ;; 884 | amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) 885 | echo x86_64-unknown-cygwin 886 | exit ;; 887 | p*:CYGWIN*:*) 888 | echo powerpcle-unknown-cygwin 889 | exit ;; 890 | prep*:SunOS:5.*:*) 891 | echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 892 | exit ;; 893 | *:GNU:*:*) 894 | # the GNU system 895 | echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` 896 | exit ;; 897 | *:GNU/*:*:*) 898 | # other systems with GNU libc and userland 899 | echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} 900 | exit ;; 901 | i*86:Minix:*:*) 902 | echo ${UNAME_MACHINE}-pc-minix 903 | exit ;; 904 | aarch64:Linux:*:*) 905 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 906 | exit ;; 907 | aarch64_be:Linux:*:*) 908 | UNAME_MACHINE=aarch64_be 909 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 910 | exit ;; 911 | alpha:Linux:*:*) 912 | case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in 913 | EV5) UNAME_MACHINE=alphaev5 ;; 914 | EV56) UNAME_MACHINE=alphaev56 ;; 915 | PCA56) UNAME_MACHINE=alphapca56 ;; 916 | PCA57) UNAME_MACHINE=alphapca56 ;; 917 | EV6) UNAME_MACHINE=alphaev6 ;; 918 | EV67) UNAME_MACHINE=alphaev67 ;; 919 | EV68*) UNAME_MACHINE=alphaev68 ;; 920 | esac 921 | objdump --private-headers /bin/sh | grep -q ld.so.1 922 | if test "$?" = 0 ; then LIBC="gnulibc1" ; fi 923 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 924 | exit ;; 925 | arc:Linux:*:* | arceb:Linux:*:*) 926 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 927 | exit ;; 928 | arm*:Linux:*:*) 929 | eval $set_cc_for_build 930 | if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 931 | | grep -q __ARM_EABI__ 932 | then 933 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 934 | else 935 | if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ 936 | | grep -q __ARM_PCS_VFP 937 | then 938 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi 939 | else 940 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf 941 | fi 942 | fi 943 | exit ;; 944 | avr32*:Linux:*:*) 945 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 946 | exit ;; 947 | cris:Linux:*:*) 948 | echo ${UNAME_MACHINE}-axis-linux-${LIBC} 949 | exit ;; 950 | crisv32:Linux:*:*) 951 | echo ${UNAME_MACHINE}-axis-linux-${LIBC} 952 | exit ;; 953 | e2k:Linux:*:*) 954 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 955 | exit ;; 956 | frv:Linux:*:*) 957 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 958 | exit ;; 959 | hexagon:Linux:*:*) 960 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 961 | exit ;; 962 | i*86:Linux:*:*) 963 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} 964 | exit ;; 965 | ia64:Linux:*:*) 966 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 967 | exit ;; 968 | m32r*:Linux:*:*) 969 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 970 | exit ;; 971 | m68*:Linux:*:*) 972 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 973 | exit ;; 974 | mips:Linux:*:* | mips64:Linux:*:*) 975 | eval $set_cc_for_build 976 | sed 's/^ //' << EOF >$dummy.c 977 | #undef CPU 978 | #undef ${UNAME_MACHINE} 979 | #undef ${UNAME_MACHINE}el 980 | #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) 981 | CPU=${UNAME_MACHINE}el 982 | #else 983 | #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) 984 | CPU=${UNAME_MACHINE} 985 | #else 986 | CPU= 987 | #endif 988 | #endif 989 | EOF 990 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` 991 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } 992 | ;; 993 | openrisc*:Linux:*:*) 994 | echo or1k-unknown-linux-${LIBC} 995 | exit ;; 996 | or32:Linux:*:* | or1k*:Linux:*:*) 997 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 998 | exit ;; 999 | padre:Linux:*:*) 1000 | echo sparc-unknown-linux-${LIBC} 1001 | exit ;; 1002 | parisc64:Linux:*:* | hppa64:Linux:*:*) 1003 | echo hppa64-unknown-linux-${LIBC} 1004 | exit ;; 1005 | parisc:Linux:*:* | hppa:Linux:*:*) 1006 | # Look for CPU level 1007 | case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 1008 | PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; 1009 | PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; 1010 | *) echo hppa-unknown-linux-${LIBC} ;; 1011 | esac 1012 | exit ;; 1013 | ppc64:Linux:*:*) 1014 | echo powerpc64-unknown-linux-${LIBC} 1015 | exit ;; 1016 | ppc:Linux:*:*) 1017 | echo powerpc-unknown-linux-${LIBC} 1018 | exit ;; 1019 | ppc64le:Linux:*:*) 1020 | echo powerpc64le-unknown-linux-${LIBC} 1021 | exit ;; 1022 | ppcle:Linux:*:*) 1023 | echo powerpcle-unknown-linux-${LIBC} 1024 | exit ;; 1025 | s390:Linux:*:* | s390x:Linux:*:*) 1026 | echo ${UNAME_MACHINE}-ibm-linux-${LIBC} 1027 | exit ;; 1028 | sh64*:Linux:*:*) 1029 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 1030 | exit ;; 1031 | sh*:Linux:*:*) 1032 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 1033 | exit ;; 1034 | sparc:Linux:*:* | sparc64:Linux:*:*) 1035 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 1036 | exit ;; 1037 | tile*:Linux:*:*) 1038 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 1039 | exit ;; 1040 | vax:Linux:*:*) 1041 | echo ${UNAME_MACHINE}-dec-linux-${LIBC} 1042 | exit ;; 1043 | x86_64:Linux:*:*) 1044 | echo ${UNAME_MACHINE}-pc-linux-${LIBC} 1045 | exit ;; 1046 | xtensa*:Linux:*:*) 1047 | echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 1048 | exit ;; 1049 | i*86:DYNIX/ptx:4*:*) 1050 | # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 1051 | # earlier versions are messed up and put the nodename in both 1052 | # sysname and nodename. 1053 | echo i386-sequent-sysv4 1054 | exit ;; 1055 | i*86:UNIX_SV:4.2MP:2.*) 1056 | # Unixware is an offshoot of SVR4, but it has its own version 1057 | # number series starting with 2... 1058 | # I am not positive that other SVR4 systems won't match this, 1059 | # I just have to hope. -- rms. 1060 | # Use sysv4.2uw... so that sysv4* matches it. 1061 | echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 1062 | exit ;; 1063 | i*86:OS/2:*:*) 1064 | # If we were able to find `uname', then EMX Unix compatibility 1065 | # is probably installed. 1066 | echo ${UNAME_MACHINE}-pc-os2-emx 1067 | exit ;; 1068 | i*86:XTS-300:*:STOP) 1069 | echo ${UNAME_MACHINE}-unknown-stop 1070 | exit ;; 1071 | i*86:atheos:*:*) 1072 | echo ${UNAME_MACHINE}-unknown-atheos 1073 | exit ;; 1074 | i*86:syllable:*:*) 1075 | echo ${UNAME_MACHINE}-pc-syllable 1076 | exit ;; 1077 | i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) 1078 | echo i386-unknown-lynxos${UNAME_RELEASE} 1079 | exit ;; 1080 | i*86:*DOS:*:*) 1081 | echo ${UNAME_MACHINE}-pc-msdosdjgpp 1082 | exit ;; 1083 | i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) 1084 | UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` 1085 | if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then 1086 | echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} 1087 | else 1088 | echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} 1089 | fi 1090 | exit ;; 1091 | i*86:*:5:[678]*) 1092 | # UnixWare 7.x, OpenUNIX and OpenServer 6. 1093 | case `/bin/uname -X | grep "^Machine"` in 1094 | *486*) UNAME_MACHINE=i486 ;; 1095 | *Pentium) UNAME_MACHINE=i586 ;; 1096 | *Pent*|*Celeron) UNAME_MACHINE=i686 ;; 1097 | esac 1098 | echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} 1099 | exit ;; 1100 | i*86:*:3.2:*) 1101 | if test -f /usr/options/cb.name; then 1102 | UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then 1105 | UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` 1106 | (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 1107 | (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ 1108 | && UNAME_MACHINE=i586 1109 | (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ 1110 | && UNAME_MACHINE=i686 1111 | (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ 1112 | && UNAME_MACHINE=i686 1113 | echo ${UNAME_MACHINE}-pc-sco$UNAME_REL 1114 | else 1115 | echo ${UNAME_MACHINE}-pc-sysv32 1116 | fi 1117 | exit ;; 1118 | pc:*:*:*) 1119 | # Left here for compatibility: 1120 | # uname -m prints for DJGPP always 'pc', but it prints nothing about 1121 | # the processor, so we play safe by assuming i586. 1122 | # Note: whatever this is, it MUST be the same as what config.sub 1123 | # prints for the "djgpp" host, or else GDB configury will decide that 1124 | # this is a cross-build. 1125 | echo i586-pc-msdosdjgpp 1126 | exit ;; 1127 | Intel:Mach:3*:*) 1128 | echo i386-pc-mach3 1129 | exit ;; 1130 | paragon:*:*:*) 1131 | echo i860-intel-osf1 1132 | exit ;; 1133 | i860:*:4.*:*) # i860-SVR4 1134 | if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then 1135 | echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 1136 | else # Add other i860-SVR4 vendors below as they are discovered. 1137 | echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 1138 | fi 1139 | exit ;; 1140 | mini*:CTIX:SYS*5:*) 1141 | # "miniframe" 1142 | echo m68010-convergent-sysv 1143 | exit ;; 1144 | mc68k:UNIX:SYSTEM5:3.51m) 1145 | echo m68k-convergent-sysv 1146 | exit ;; 1147 | M680?0:D-NIX:5.3:*) 1148 | echo m68k-diab-dnix 1149 | exit ;; 1150 | M68*:*:R3V[5678]*:*) 1151 | test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 1152 | 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) 1153 | OS_REL='' 1154 | test -r /etc/.relid \ 1155 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 1156 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1157 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } 1158 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 1159 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1160 | 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 1161 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1162 | && { echo i486-ncr-sysv4; exit; } ;; 1163 | NCR*:*:4.2:* | MPRAS*:*:4.2:*) 1164 | OS_REL='.3' 1165 | test -r /etc/.relid \ 1166 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 1167 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1168 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } 1169 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 1170 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } 1171 | /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ 1172 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1173 | m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) 1174 | echo m68k-unknown-lynxos${UNAME_RELEASE} 1175 | exit ;; 1176 | mc68030:UNIX_System_V:4.*:*) 1177 | echo m68k-atari-sysv4 1178 | exit ;; 1179 | TSUNAMI:LynxOS:2.*:*) 1180 | echo sparc-unknown-lynxos${UNAME_RELEASE} 1181 | exit ;; 1182 | rs6000:LynxOS:2.*:*) 1183 | echo rs6000-unknown-lynxos${UNAME_RELEASE} 1184 | exit ;; 1185 | PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) 1186 | echo powerpc-unknown-lynxos${UNAME_RELEASE} 1187 | exit ;; 1188 | SM[BE]S:UNIX_SV:*:*) 1189 | echo mips-dde-sysv${UNAME_RELEASE} 1190 | exit ;; 1191 | RM*:ReliantUNIX-*:*:*) 1192 | echo mips-sni-sysv4 1193 | exit ;; 1194 | RM*:SINIX-*:*:*) 1195 | echo mips-sni-sysv4 1196 | exit ;; 1197 | *:SINIX-*:*:*) 1198 | if uname -p 2>/dev/null >/dev/null ; then 1199 | UNAME_MACHINE=`(uname -p) 2>/dev/null` 1200 | echo ${UNAME_MACHINE}-sni-sysv4 1201 | else 1202 | echo ns32k-sni-sysv 1203 | fi 1204 | exit ;; 1205 | PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1206 | # says 1207 | echo i586-unisys-sysv4 1208 | exit ;; 1209 | *:UNIX_System_V:4*:FTX*) 1210 | # From Gerald Hewes . 1211 | # How about differentiating between stratus architectures? -djm 1212 | echo hppa1.1-stratus-sysv4 1213 | exit ;; 1214 | *:*:*:FTX*) 1215 | # From seanf@swdc.stratus.com. 1216 | echo i860-stratus-sysv4 1217 | exit ;; 1218 | i*86:VOS:*:*) 1219 | # From Paul.Green@stratus.com. 1220 | echo ${UNAME_MACHINE}-stratus-vos 1221 | exit ;; 1222 | *:VOS:*:*) 1223 | # From Paul.Green@stratus.com. 1224 | echo hppa1.1-stratus-vos 1225 | exit ;; 1226 | mc68*:A/UX:*:*) 1227 | echo m68k-apple-aux${UNAME_RELEASE} 1228 | exit ;; 1229 | news*:NEWS-OS:6*:*) 1230 | echo mips-sony-newsos6 1231 | exit ;; 1232 | R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 1233 | if [ -d /usr/nec ]; then 1234 | echo mips-nec-sysv${UNAME_RELEASE} 1235 | else 1236 | echo mips-unknown-sysv${UNAME_RELEASE} 1237 | fi 1238 | exit ;; 1239 | BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 1240 | echo powerpc-be-beos 1241 | exit ;; 1242 | BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. 1243 | echo powerpc-apple-beos 1244 | exit ;; 1245 | BePC:BeOS:*:*) # BeOS running on Intel PC compatible. 1246 | echo i586-pc-beos 1247 | exit ;; 1248 | BePC:Haiku:*:*) # Haiku running on Intel PC compatible. 1249 | echo i586-pc-haiku 1250 | exit ;; 1251 | x86_64:Haiku:*:*) 1252 | echo x86_64-unknown-haiku 1253 | exit ;; 1254 | SX-4:SUPER-UX:*:*) 1255 | echo sx4-nec-superux${UNAME_RELEASE} 1256 | exit ;; 1257 | SX-5:SUPER-UX:*:*) 1258 | echo sx5-nec-superux${UNAME_RELEASE} 1259 | exit ;; 1260 | SX-6:SUPER-UX:*:*) 1261 | echo sx6-nec-superux${UNAME_RELEASE} 1262 | exit ;; 1263 | SX-7:SUPER-UX:*:*) 1264 | echo sx7-nec-superux${UNAME_RELEASE} 1265 | exit ;; 1266 | SX-8:SUPER-UX:*:*) 1267 | echo sx8-nec-superux${UNAME_RELEASE} 1268 | exit ;; 1269 | SX-8R:SUPER-UX:*:*) 1270 | echo sx8r-nec-superux${UNAME_RELEASE} 1271 | exit ;; 1272 | Power*:Rhapsody:*:*) 1273 | echo powerpc-apple-rhapsody${UNAME_RELEASE} 1274 | exit ;; 1275 | *:Rhapsody:*:*) 1276 | echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} 1277 | exit ;; 1278 | *:Darwin:*:*) 1279 | UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1280 | eval $set_cc_for_build 1281 | if test "$UNAME_PROCESSOR" = unknown ; then 1282 | UNAME_PROCESSOR=powerpc 1283 | fi 1284 | if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then 1285 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then 1286 | if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ 1287 | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ 1288 | grep IS_64BIT_ARCH >/dev/null 1289 | then 1290 | case $UNAME_PROCESSOR in 1291 | i386) UNAME_PROCESSOR=x86_64 ;; 1292 | powerpc) UNAME_PROCESSOR=powerpc64 ;; 1293 | esac 1294 | fi 1295 | fi 1296 | elif test "$UNAME_PROCESSOR" = i386 ; then 1297 | # Avoid executing cc on OS X 10.9, as it ships with a stub 1298 | # that puts up a graphical alert prompting to install 1299 | # developer tools. Any system running Mac OS X 10.7 or 1300 | # later (Darwin 11 and later) is required to have a 64-bit 1301 | # processor. This is not true of the ARM version of Darwin 1302 | # that Apple uses in portable devices. 1303 | UNAME_PROCESSOR=x86_64 1304 | fi 1305 | echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1306 | exit ;; 1307 | *:procnto*:*:* | *:QNX:[0123456789]*:*) 1308 | UNAME_PROCESSOR=`uname -p` 1309 | if test "$UNAME_PROCESSOR" = "x86"; then 1310 | UNAME_PROCESSOR=i386 1311 | UNAME_MACHINE=pc 1312 | fi 1313 | echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} 1314 | exit ;; 1315 | *:QNX:*:4*) 1316 | echo i386-pc-qnx 1317 | exit ;; 1318 | NEO-?:NONSTOP_KERNEL:*:*) 1319 | echo neo-tandem-nsk${UNAME_RELEASE} 1320 | exit ;; 1321 | NSE-*:NONSTOP_KERNEL:*:*) 1322 | echo nse-tandem-nsk${UNAME_RELEASE} 1323 | exit ;; 1324 | NSR-?:NONSTOP_KERNEL:*:*) 1325 | echo nsr-tandem-nsk${UNAME_RELEASE} 1326 | exit ;; 1327 | *:NonStop-UX:*:*) 1328 | echo mips-compaq-nonstopux 1329 | exit ;; 1330 | BS2000:POSIX*:*:*) 1331 | echo bs2000-siemens-sysv 1332 | exit ;; 1333 | DS/*:UNIX_System_V:*:*) 1334 | echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} 1335 | exit ;; 1336 | *:Plan9:*:*) 1337 | # "uname -m" is not consistent, so use $cputype instead. 386 1338 | # is converted to i386 for consistency with other x86 1339 | # operating systems. 1340 | if test "$cputype" = "386"; then 1341 | UNAME_MACHINE=i386 1342 | else 1343 | UNAME_MACHINE="$cputype" 1344 | fi 1345 | echo ${UNAME_MACHINE}-unknown-plan9 1346 | exit ;; 1347 | *:TOPS-10:*:*) 1348 | echo pdp10-unknown-tops10 1349 | exit ;; 1350 | *:TENEX:*:*) 1351 | echo pdp10-unknown-tenex 1352 | exit ;; 1353 | KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) 1354 | echo pdp10-dec-tops20 1355 | exit ;; 1356 | XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) 1357 | echo pdp10-xkl-tops20 1358 | exit ;; 1359 | *:TOPS-20:*:*) 1360 | echo pdp10-unknown-tops20 1361 | exit ;; 1362 | *:ITS:*:*) 1363 | echo pdp10-unknown-its 1364 | exit ;; 1365 | SEI:*:*:SEIUX) 1366 | echo mips-sei-seiux${UNAME_RELEASE} 1367 | exit ;; 1368 | *:DragonFly:*:*) 1369 | echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` 1370 | exit ;; 1371 | *:*VMS:*:*) 1372 | UNAME_MACHINE=`(uname -p) 2>/dev/null` 1373 | case "${UNAME_MACHINE}" in 1374 | A*) echo alpha-dec-vms ; exit ;; 1375 | I*) echo ia64-dec-vms ; exit ;; 1376 | V*) echo vax-dec-vms ; exit ;; 1377 | esac ;; 1378 | *:XENIX:*:SysV) 1379 | echo i386-pc-xenix 1380 | exit ;; 1381 | i*86:skyos:*:*) 1382 | echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' 1383 | exit ;; 1384 | i*86:rdos:*:*) 1385 | echo ${UNAME_MACHINE}-pc-rdos 1386 | exit ;; 1387 | i*86:AROS:*:*) 1388 | echo ${UNAME_MACHINE}-pc-aros 1389 | exit ;; 1390 | x86_64:VMkernel:*:*) 1391 | echo ${UNAME_MACHINE}-unknown-esx 1392 | exit ;; 1393 | esac 1394 | 1395 | cat >&2 < in order to provide the needed 1409 | information to handle your system. 1410 | 1411 | config.guess timestamp = $timestamp 1412 | 1413 | uname -m = `(uname -m) 2>/dev/null || echo unknown` 1414 | uname -r = `(uname -r) 2>/dev/null || echo unknown` 1415 | uname -s = `(uname -s) 2>/dev/null || echo unknown` 1416 | uname -v = `(uname -v) 2>/dev/null || echo unknown` 1417 | 1418 | /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` 1419 | /bin/uname -X = `(/bin/uname -X) 2>/dev/null` 1420 | 1421 | hostinfo = `(hostinfo) 2>/dev/null` 1422 | /bin/universe = `(/bin/universe) 2>/dev/null` 1423 | /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` 1424 | /bin/arch = `(/bin/arch) 2>/dev/null` 1425 | /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` 1426 | /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` 1427 | 1428 | UNAME_MACHINE = ${UNAME_MACHINE} 1429 | UNAME_RELEASE = ${UNAME_RELEASE} 1430 | UNAME_SYSTEM = ${UNAME_SYSTEM} 1431 | UNAME_VERSION = ${UNAME_VERSION} 1432 | EOF 1433 | 1434 | exit 1 1435 | 1436 | # Local variables: 1437 | # eval: (add-hook 'write-file-hooks 'time-stamp) 1438 | # time-stamp-start: "timestamp='" 1439 | # time-stamp-format: "%:y-%02m-%02d" 1440 | # time-stamp-end: "'" 1441 | # End: 1442 | --------------------------------------------------------------------------------