15155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#!/bin/sh 203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condrasrcversion='$MirOS: src/bin/mksh/Build.sh,v 1.488 2011/10/07 19:51:41 tg Exp $' 35155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#- 403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 55155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Thorsten Glaser <tg@mirbsd.org> 65155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 75155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Provided that these terms and disclaimer and all copyright notices 85155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# are retained or reproduced in an accompanying document, permission 95155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# is granted to deal in this work without restriction, including un- 105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# limited rights to use, publicly perform, distribute, sell, modify, 115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# merge, give away, or sublicence. 125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to 145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# the utmost extent permitted by applicable law, neither express nor 155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# implied; without malicious intent or gross negligence. In no event 165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# may a licensor, author or contributor be held liable for indirect, 175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# direct, other damage, loss, or other issues arising in any way out 185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# of dealing in the work, even if advised of the possibility of such 195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# damage or existence of a defect, except proven that it results out 205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# of said person's immediate fault when using the work as intended. 215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#- 225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# People analysing the output must whitelist conftest.c for any kind 235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# of compiler warning checks (mirtoconf is by design not quiet). 245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment used: CC CFLAGS CPPFLAGS LDFLAGS LIBS NOWARN NROFF 265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# TARGET_OS TARGET_OSREV 275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Feature selectors: USE_PRINTF_BUILTIN 285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# CPPFLAGS recognised: MKSH_ASSUME_UTF8 MKSH_BINSHREDUCED MKSH_CLS_STRING 295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# MKSH_CONSERVATIVE_FDS MKSH_MIDNIGHTBSD01ASH_COMPAT 305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# MKSH_NOPWNAM MKSH_NO_LIMITS MKSH_SMALL MKSH_S_NOVI 315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# MKSH_UNEMPLOYED MKSH_DEFAULT_EXECSHELL MKSHRC_PATH 325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# MKSH_DEFAULT_TMPDIR MKSH_CLRTOEOL_STRING MKSH_A4PB 3303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# MKSH_NO_DEPRECATED_WARNING MKSH_DONT_EMIT_IDSTRING 3403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# MKSH_NOPROSPECTOFWORK MKSH_NO_EXTERNAL_CAT 355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruLC_ALL=C 375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruexport LC_ALL 385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruv() { 405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e "$*" 415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval "$@" 425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruvv() { 455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru _c=$1 465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e "\$ $*" 2>&1 485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval "$@" >vv.out 2>&1 495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sed "s^${_c} " <vv.out 505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruvq() { 535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval "$@" 545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf() { 575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for _f in "$@"; do 585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case ${_f} in 595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru mksh.1) ;; 605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *) rm -f "${_f}" ;; 615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -d /usr/xpg4/bin/. >/dev/null 2>&1; then 665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # Solaris: some of the tools have weird behaviour, use portable ones 675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru PATH=/usr/xpg4/bin:$PATH 685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru export PATH 695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -n "${ZSH_VERSION+x}" && (emulate sh) >/dev/null 2>&1; then 725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru emulate sh 735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NULLCMD=: 745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruallu=QWERTYUIOPASDFGHJKLZXCVBNM 775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querualll=qwertyuiopasdfghjklzxcvbnm 785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querualln=0123456789 795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querualls=______________________________________________________________ 805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querunl=' 815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru' 825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutcfn=no 835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querubi= 845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruui= 855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruao= 865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufx= 875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querume=`basename "$0"` 885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruorig_CFLAGS=$CFLAGS 895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruphase=x 905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruoldish_ed=stdout-ed,no-stderr-ed 915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -t 1; then 935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru bi='[1m' 945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ui='[4m' 955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ao='[0m' 965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruupper() { 995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo :"$@" | sed 's/^://' | tr $alll $allu 1005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 1015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 1025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# clean up after ac_testrun() 1035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testdone() { 1045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval HAVE_$fu=$fv 1055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fr=no 1065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 0 = $fv || fr=yes 1075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e "$bi==> $fd...$ao $ui$fr$ao$fx" 1085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fx= 1095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 1105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 1115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# ac_cache label: sets f, fu, fv?=0 1125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_cache() { 1135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru f=$1 1145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fu=`upper $f` 1155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval fv=\$HAVE_$fu 1165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $fv in 1175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 0|1) 1185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fx=' (cached)' 1195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return 0 1205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 1215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 1225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fv=0 1235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return 1 1245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 1255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 1265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# ac_testinit label [!] checkif[!]0 [setlabelifcheckis[!]0] useroutput 1275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# returns 1 if value was cached/implied, 0 otherwise: call ac_testdone 1285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testinit() { 1295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if ac_cache $1; then 1305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$2" = x"!" && shift 1315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$2" = x"" || shift 1325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fd=${3-$f} 1335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testdone 1345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return 1 1355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fc=0 1375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$2" = x""; then 1385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ft=1 1395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 1405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$2" = x"!"; then 1415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fc=1 1425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 1435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval ft=\$HAVE_`upper $2` 1455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 1465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fd=${3-$f} 1485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test $fc = "$ft"; then 1495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fv=$2 1505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fx=' (implied)' 1515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testdone 1525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return 1 1535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e ... $fd 1555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return 0 1565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 1575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 1585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# pipe .c | ac_test[n] [!] label [!] checkif[!]0 [setlabelifcheckis[!]0] useroutput 1595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn() { 1605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$1" = x"!"; then 1615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fr=1 1625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 1635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 1645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fr=0 1655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testinit "$@" || return 1675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cat >conftest.c 1685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv ']' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN conftest.c $LIBS $ccpr" 1695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $tcfn = no && test -f a.out && tcfn=a.out 1705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $tcfn = no && test -f a.exe && tcfn=a.exe 1715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $tcfn = no && test -f conftest && tcfn=conftest 1725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test -f $tcfn; then 1735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $fr || fv=1 1745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 1755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 0 = $fr || fv=1 1765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vscan= 1785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test $phase = u; then 1795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $ct = gcc && vscan='unrecogni[sz]ed' 1805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $ct = hpcc && vscan='unsupported' 1815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $ct = pcc && vscan='unsupported' 1825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $ct = sunpro && vscan='-e ignored -e turned.off' 1835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 1845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -n "$vscan" && grep $vscan vv.out >/dev/null 2>&1 && fv=$fr 1855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf conftest.c conftest.o ${tcfn}* vv.out 1865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testdone 1875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 1885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 1895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# ac_ifcpp cppexpr [!] label [!] checkif[!]0 [setlabelifcheckis[!]0] useroutput 1905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_ifcpp() { 1915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru expr=$1; shift 1925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn "$@" <<-EOF 1935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ( 1945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #$expr 1955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 0 1965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 1975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru /* force a failure: expr is false */ 1985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru thiswillneverbedefinedIhope() 1995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 2005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ); } 2015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 2025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$1" = x"!" && shift 2035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru f=$1 2045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fu=`upper $f` 2055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval fv=\$HAVE_$fu 2065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$fv" = x"1" 2075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 20903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraadd_cppflags() { 21003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra CPPFLAGS="$CPPFLAGS $*" 21103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra} 21203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 2135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_cppflags() { 2145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$1" = x"" || fu=$1 2155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fv=$2 2165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$2" = x"" && eval fv=\$HAVE_$fu 21703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DHAVE_$fu=$fv 2185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 2205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test() { 2215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn "$@" 2225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_cppflags 2235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 22503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# ac_flags [-] add varname cflags [text] [ldflags] 2265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_flags() { 2275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$1" = x"-"; then 2285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 2295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru hf=1 2305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 2315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru hf=0 2325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 2335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fa=$1 2345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vn=$2 2355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru f=$3 2365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ft=$4 23703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fl=$5 2385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$ft" = x"" && ft="if $f can be used" 2395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_CFLAGS=$CFLAGS 2405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CFLAGS="$CFLAGS $f" 24103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if test -n "$fl"; then 24203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra save_LDFLAGS=$LDFLAGS 24303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra LDFLAGS="$LDFLAGS $fl" 24403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 2455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test 1 = $hf; then 2465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn can_$vn '' "$ft" 2475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 2485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn can_$vn '' "$ft" <<-'EOF' 2495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru /* evil apo'stroph in comment test */ 2505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (0); } 2515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 2525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 2535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval fv=\$HAVE_CAN_`upper $vn` 25403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if test -n "$fl"; then 25503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test 11 = $fa$fv || LDFLAGS=$save_LDFLAGS 25603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 2575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 11 = $fa$fv || CFLAGS=$save_CFLAGS 2585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 2605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# ac_header [!] header [prereq ...] 2615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header() { 2625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$1" = x"!"; then 2635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru na=1 2645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 2655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 2665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru na=0 2675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 2685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru hf=$1; shift 2695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru hv=`echo "$hf" | tr -d '\012\015' | tr -c $alll$allu$alln $alls` 2705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for i 2715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru do 2725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "#include <$i>" >>x 2735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 2745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "#include <$hf>" >>x 2755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo 'int main(void) { return (0); }' >>x 2765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn "$hv" "" "<$hf>" <x 2775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf x 2785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $na || ac_cppflags 2795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 2815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruaddsrcs() { 2825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test x"$1" = x"!"; then 2835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fr=0 2845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru shift 2855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 2865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fr=1 2875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 2885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eval i=\$$1 2895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $fr = "$i" && case " $SRCS " in 2905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *\ $2\ *) ;; 2915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *) SRCS="$SRCS $2" ;; 2925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 2935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru} 2945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 2955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 2965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -d mksh || test -d mksh.exe; then 2975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$me: Error: ./mksh is a directory!" >&2 2985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 2995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 3005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf a.exe* a.out* conftest.c *core lft mksh* no *.bc *.ll *.o \ 3015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru Rebuild.sh signames.inc test.sh x vv.out 3025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucurdir=`pwd` srcdir=`dirname "$0"` check_categories= 30403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condratest -n "$srcdir" || srcdir=. 3055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudstversion=`sed -n '/define MKSH_VERSION/s/^.*"\(.*\)".*$/\1/p' $srcdir/sh.h` 3065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querue=echo 3085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querur=0 3095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querueq=0 3105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querupm=0 3115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucm=normal 3125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruoptflags=-std-compile-opts 3135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querulast= 3145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufor i 3165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudo 3175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $last:$i in 31803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra c:combine|c:dragonegg|c:llvm|c:lto) 3195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cm=$i 3205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru last= 3215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru c:*) 3235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$me: Unknown option -c '$i'!" >&2 3245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 3255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru o:*) 3275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru optflags=$i 3285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru last= 3295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-c) 3315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru last=c 3325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-g) 3345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # checker, debug, valgrind build 33503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DDEBUG 3365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CFLAGS="$CFLAGS -g3 -fno-builtin" 3375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-j) 3395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru pm=1 3405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-M) 3425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cm=makefile 3435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-O) 3455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru optflags=-std-compile-opts 3465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-o) 3485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru last=o 3495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-Q) 3515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru eq=1 3525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-r) 3545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru r=1 3555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :-v) 3575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "Build.sh $srcversion" 3585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "for mksh $dstversion" 3595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 0 3605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :*) 3625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$me: Unknown option '$i'!" >&2 3635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 3645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *) 3665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$me: Unknown option -'$last' '$i'!" >&2 3675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 3685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 3695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 3705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudone 3715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -n "$last"; then 3725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$me: Option -'$last' not followed by argument!" >&2 3735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 3745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 3755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruSRCS="lalloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c" 3775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruSRCS="$SRCS jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c" 3785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test x"$srcdir" = x"."; then 3805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CPPFLAGS="-I. $CPPFLAGS" 3815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelse 3825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CPPFLAGS="-I. -I'$srcdir' $CPPFLAGS" 3835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 3845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 3855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest x"$TARGET_OS" = x"" && TARGET_OS=`uname -s 2>/dev/null || uname` 38603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraif test x"$TARGET_OS" = x""; then 38703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra echo "$me: Set TARGET_OS, your uname is broken!" >&2 38803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra exit 1 38903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condrafi 3905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruoswarn= 3915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruccpc=-Wc, 3925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruccpl=-Wl, 3935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutsts= 3945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruccpr='|| for _f in ${tcfn}*; do test x"${_f}" = x"mksh.1" || rm -f "${_f}"; done' 3955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 39603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# Evil hack 39703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraif test x"$TARGET_OS" = x"Android"; then 39803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories android" 39903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra TARGET_OS=Linux 40003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condrafi 40103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 4025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Configuration depending on OS revision, on OSes that need them 4035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $TARGET_OS in 4045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruQNX) 4055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$TARGET_OSREV" = x"" && TARGET_OSREV=`uname -r` 4065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 4085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 4095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Configuration depending on OS name 4105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $TARGET_OS in 4115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruAIX) 41203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_ALL_SOURCE 4135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruBeOS) 4165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn=' and will currently not work' 4175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruBSD/OS) 4195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCYGWIN*) 4225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruDarwin) 4255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruDragonFly) 4275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruFreeBSD) 4295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 43003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy CondraFreeMiNT) 43103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra oswarn="; it has minor issues" 43203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_GNU_SOURCE 43303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra : ${HAVE_SETLOCALE_CTYPE=0} 43403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 4355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruGNU) 43603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra case $CC in 43703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *tendracc*) ;; 43803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *) add_cppflags -D_GNU_SOURCE ;; 43903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 4405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # define NO_PATH_MAX to use Hurd-only functions 44103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DNO_PATH_MAX 4425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruGNU/kFreeBSD) 44403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra case $CC in 44503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *tendracc*) ;; 44603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *) add_cppflags -D_GNU_SOURCE ;; 44703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 4485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruHaiku) 45003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_ASSUME_UTF8 4515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruHP-UX) 4535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruInterix) 4555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ccpc='-X ' 4565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ccpl='-Y ' 45703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_ALL_SOURCE 4585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${LIBS='-lcrypt'} 4595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruIRIX*) 4625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruLinux) 46503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra case $CC in 46603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *tendracc*) ;; 46703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *) add_cppflags -D_GNU_SOURCE ;; 46803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 46903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DSETUID_CAN_FAIL_WITH_EAGAIN 4705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_REVOKE=0} 4715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruMidnightBSD) 4735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruMinix) 47503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_UNEMPLOYED 47603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_CONSERVATIVE_FDS 47703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_NO_LIMITS 47803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX 4795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oldish_ed=no-stderr-ed # /usr/bin/ed(!) is broken 4805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruMirBSD) 4835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 48403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy CondraMSYS_*) 48503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra # probably same as CYGWIN* – need to test; from RT|Chatzilla 48603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra oswarn='but will probably work' 48703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 4885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNetBSD) 4895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruOpenBSD) 4915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 4925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 4935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruOSF1) 4945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru HAVE_SIG_T=0 # incompatible 49503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_OSF_SOURCE 49603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_POSIX_C_SOURCE=200112L 49703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_XOPEN_SOURCE=600 49803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_XOPEN_SOURCE_EXTENDED 4995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 5005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruPlan9) 50203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_POSIX_SOURCE 50303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_LIMITS_EXTENSION 50403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_BSD_EXTENSION 50503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_SUSV2_SOURCE 50603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_ASSUME_UTF8 5075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn=' and will currently not work' 50803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -DMKSH_UNEMPLOYED 5095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruPW32*) 5115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru HAVE_SIG_T=0 # incompatible 5125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn=' and will currently not work' 5135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 5145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruQNX) 51603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D__NO_EXT_QNX 5175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $TARGET_OSREV in 5185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru [012345].*|6.[0123].*|6.4.[01]) 5195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oldish_ed=no-stderr-ed # oldish /bin/ed is broken 5205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 5225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 5235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruSunOS) 52503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_BSD_SOURCE 52603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D__EXTENSIONS__ 5275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusyllable) 52903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_GNU_SOURCE 5305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn=' and will currently not work' 5315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruULTRIX) 5335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${CC=cc -YPOSIX} 53403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -Dssize_t=int 5355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 5365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruUWIN*) 5385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ccpc='-Yc,' 5395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ccpl='-Yl,' 5405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru tsts=" 3<>/dev/tty" 5415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn="; it will compile, but the target" 5425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn="$oswarn${nl}platform itself is very flakey/unreliable" 5435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_SETLOCALE_CTYPE=0} 5445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) 5465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru oswarn='; it may or may not work' 5475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 5495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 55003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra: ${HAVE_MKNOD=0} 55103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 5525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru: ${CC=cc} ${NROFF=nroff} 5535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 0 = $r && echo | $NROFF -v 2>&1 | grep GNU >/dev/null 2>&1 && \ 5545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NROFF="$NROFF -c" 5555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 5565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# this aids me in tracing FTBFSen without access to the buildd 5575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "Hi from$ao $bi$srcversion$ao on:" 5585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $TARGET_OS in 55903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy CondraAIX) 56003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra vv '|' "oslevel >&2" 56103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra vv '|' "uname -a >&2" 56203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 5635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruDarwin) 5645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "hwprefs machine_type os_type os_class >&2" 5655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "uname -a >&2" 5665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruIRIX*) 5685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "uname -a >&2" 5695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "hinv -v >&2" 5705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruOSF1) 5725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "uname -a >&2" 5735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "/usr/sbin/sizer -v >&2" 5745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) 5765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "uname -a >&2" 5775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 5785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 5795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest -z "$oswarn" || echo >&2 " 5805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruWarning: mksh has not yet been ported to or tested on your 5815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruoperating system '$TARGET_OS'$oswarn. If you can provide 5825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querua shell account to the developer, this may improve; please 5835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudrop us a success or failure notice or even send in diffs. 5845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru" 5855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "$bi$me: Building the MirBSD Korn Shell$ao $ui$dstversion$ao" 5865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 5875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 5885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Begin of mirtoconf checks 5895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 5905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e $bi$me: Scanning for functions... please ignore any errors.$ao 5915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 5925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 5935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Compiler: which one? 5945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 5955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# notes: 5965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# - ICC defines __GNUC__ too 5975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# - GCC defines __hpux too 5985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# - LLVM+clang defines __GNUC__ too 5995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# - nwcc defines __GNUC__ too 6005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCPP="$CC -E" 6015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e ... which compiler seems to be used 6025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucat >conftest.c <<'EOF' 6035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#if defined(__ICC) || defined(__INTEL_COMPILER) 6045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=icc 6055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__xlC__) || defined(__IBMC__) 6065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=xlc 6075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__SUNPRO_C) 6085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=sunpro 6095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__ACK__) 6105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=ack 6115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__BORLANDC__) 6125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=bcc 6135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__WATCOMC__) 6145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=watcom 6155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__MWERKS__) 6165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=metrowerks 6175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__HP_cc) 6185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=hpcc 6195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__DECC) || (defined(__osf__) && !defined(__GNUC__)) 6205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=dec 6215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__PGI) 6225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=pgi 6235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__DMC__) 6245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=dmc 6255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(_MSC_VER) 6265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=msc 6275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 6285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=adsp 6295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__IAR_SYSTEMS_ICC__) 6305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=iar 6315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(SDCC) 6325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=sdcc 6335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__PCC__) 6345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=pcc 6355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__TenDRA__) 6365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=tendra 6375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__TINYC__) 6385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=tcc 6395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__llvm__) && defined(__clang__) 6405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=clang 6415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__NWCC__) 6425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=nwcc 6435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__GNUC__) 6445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=gcc 6455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(_COMPILER_VERSION) 6465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=mipspro 6475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__sgi) 6485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=mipspro 6495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__hpux) || defined(__hpua) 6505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=hpcc 6515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(__ultrix) 6525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=ucode 6535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#else 6545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=unknown 6555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#endif 6565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 6575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruct=unknown 6585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruvv ']' "$CPP $CFLAGS $CPPFLAGS $NOWARN conftest.c | grep ct= | tr -d \\\\015 >x" 6595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querused 's/^/[ /' x 6605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querueval `cat x` 6615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf x vv.out 6625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho 'int main(void) { return (0); }' >conftest.c 6635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $ct in 6645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruack) 6655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # work around "the famous ACK const bug" 6665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CPPFLAGS="-Dconst= $CPPFLAGS" 6675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 6685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruadsp) 6695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: Analog Devices C++ compiler for Blackfin, TigerSHARC 6705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru and SHARC (21000) DSPs detected. This compiler has not yet 6715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 6725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 6735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 6745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querubcc) 6755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 "Warning: Borland C++ Builder detected. This compiler might 6765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru produce broken executables. Continue at your own risk, 6775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru please report success/failure to the developers." 6785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 6795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruclang) 6805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # does not work with current "ccc" compiler driver 6815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -version" 6825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # this works, for now 6835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "${CLANG-clang} -version" 6845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # ensure compiler and linker are in sync unless overridden 6855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $CCC_CC:$CCC_LD in 6865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru :*) ;; 6875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *:) CCC_LD=$CCC_CC; export CCC_LD ;; 6885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 6895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 6905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudec) 6915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -V" 6925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN -Wl,-V conftest.c $LIBS" 6935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 6945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudmc) 6955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 "Warning: Digital Mars Compiler detected. When running under" 6965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 " UWIN, mksh tends to be unstable due to the limitations" 6975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 " of this platform. Continue at your own risk," 6985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 " please report success/failure to the developers." 6995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querugcc) 7015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN -v conftest.c $LIBS" 7025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' 'echo `$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS \ 7035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru -dumpmachine` gcc`$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN \ 7045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $LIBS -dumpversion`' 7055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruhpcc) 7075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN -V conftest.c $LIBS" 7085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruiar) 7105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: IAR Systems (http://www.iar.com) compiler for embedded 7115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru systems detected. This unsupported compiler has not yet 7125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 7135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 7145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruicc) 7165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -V" 7175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querumetrowerks) 7195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: Metrowerks C compiler detected. This has not yet 7205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 7215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 7225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querumipspro) 7245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -version" 7255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querumsc) 7275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ccpr= # errorlevels are not reliable 7285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $TARGET_OS in 7295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru Interix) 7305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if [[ -n $C89_COMPILER ]]; then 7315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru C89_COMPILER=`ntpath2posix -c "$C89_COMPILER"` 7325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 7335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru C89_COMPILER=CL.EXE 7345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 7355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if [[ -n $C89_LINKER ]]; then 7365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru C89_LINKER=`ntpath2posix -c "$C89_LINKER"` 7375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 7385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru C89_LINKER=LINK.EXE 7395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 7405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$C89_COMPILER /HELP >&2" 7415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$C89_LINKER /LINK >&2" 7425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 7445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querunwcc) 7465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -version" 7475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querupcc) 7495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -v" 7505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querupgi) 7525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: PGI detected. This unknown compiler has not yet 7535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 7545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 7555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusdcc) 7575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: sdcc (http://sdcc.sourceforge.net), the small devices 7585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru C compiler for embedded systems detected. This has not yet 7595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 7605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 7615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusunpro) 7635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN -V conftest.c $LIBS" 7645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutcc) 7665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -v" 7675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutendra) 7695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -V 2>&1 | \ 7705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fgrep -i -e version -e release" 7715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruucode) 7735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -V" 7745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN -Wl,-V conftest.c $LIBS" 7755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruwatcom) 7775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo >&2 'Warning: Watcom C Compiler detected. This compiler has not yet 7785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru been tested for compatibility with mksh. Continue at your 7795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru own risk, please report success/failure to the developers.' 7805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruxlc) 78203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -qversion" 7835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN $LIBS -qversion=verbose" 7845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "ld -V" 7855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) 7875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ct=unknown 7885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 7905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $cm in 7915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudragonegg|llvm) 7925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv '|' "llc -version" 7935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 7945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 7955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "$bi==> which compiler seems to be used...$ao $ui$ct$ao" 7965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf conftest.c conftest.o conftest a.out* a.exe* vv.out 7975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 7985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 7995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Compiler: works as-is, with -Wno-error and -Werror 8005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 8015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusave_NOWARN=$NOWARN 8025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNOWARN= 8035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruDOWARN= 8045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_flags 0 compiler_works '' 'if the compiler works' 8055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 1 = $HAVE_CAN_COMPILER_WORKS || exit 1 8065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruHAVE_COMPILER_KNOWN=0 8075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest $ct = unknown || HAVE_COMPILER_KNOWN=1 8085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif ac_ifcpp 'if 0' compiler_fails '' \ 8095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 'if the compiler does not fail correctly'; then 8105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_CFLAGS=$CFLAGS 8115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_CAN_DELEXE=x} 8125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test $ct = dmc; then 8135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CFLAGS="$CFLAGS ${ccpl}/DELEXECUTABLE" 8145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn can_delexe compiler_fails 0 'for the /DELEXECUTABLE linker option' <<-EOF 8155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (0); } 8165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 8175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru elif test $ct = dec; then 8185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CFLAGS="$CFLAGS ${ccpl}-non_shared" 8195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn can_delexe compiler_fails 0 'for the -non_shared linker option' <<-EOF 8205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (0); } 8215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 8225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 8235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 1 8245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 8255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_DELEXE || CFLAGS=$save_CFLAGS 8265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn compiler_still_fails '' 'if the compiler still does not fail correctly' <<-EOF 8275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 8285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_COMPILER_STILL_FAILS && exit 1 8295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 8305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif ac_ifcpp 'ifdef __TINYC__' couldbe_tcc '!' compiler_known 0 \ 8315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 'if this could be tcc'; then 8325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ct=tcc 8335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru CPP='cpp -D__TINYC__' 8345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 8355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 8365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test $ct = sunpro; then 8375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$save_NOWARN" = x"" && save_NOWARN='-errwarn=%none' 8385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 errwarnnone "$save_NOWARN" 8395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_ERRWARNNONE || save_NOWARN= 8405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 errwarnall "-errwarn=%all" 8415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_ERRWARNALL && DOWARN="-errwarn=%all" 8425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = hpcc; then 8435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN= 8445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN=+We 8455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = mipspro; then 8465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN= 8475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN="-diag_error 1-10000" 8485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = msc; then 8495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN="${ccpc}/w" 8505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN="${ccpc}/WX" 8515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = dmc; then 8525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN="${ccpc}-w" 8535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN="${ccpc}-wx" 8545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = bcc; then 8555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN="${ccpc}-w" 8565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN="${ccpc}-w!" 8575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = dec; then 8585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : -msg_* flags not used yet, or is -w2 correct? 8595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = xlc; then 8605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN=-qflag=i:e 8615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN=-qflag=i:i 8625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = tendra; then 8635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN=-w 8645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = ucode; then 8655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru save_NOWARN= 8665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru DOWARN=-w2 8675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelse 8685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test x"$save_NOWARN" = x"" && save_NOWARN=-Wno-error 8695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 wnoerror "$save_NOWARN" 8705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_WNOERROR || save_NOWARN= 8715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 werror -Werror 8725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_WERROR && DOWARN=-Werror 8735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 8745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 8755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest $ct = icc && DOWARN="$DOWARN -wd1419" 8765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNOWARN=$save_NOWARN 8775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 8785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 8795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Compiler: extra flags (-O2 -f* -W* etc.) 8805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 8815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querui=`echo :"$orig_CFLAGS" | sed 's/^://' | tr -c -d $alll$allu$alln` 8825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# optimisation: only if orig_CFLAGS is empty 8835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest x"$i" = x"" && if test $ct = sunpro; then 8845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cat >x <<-'EOF' 8855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (0); } 8865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define __IDSTRING_CONCAT(l,p) __LINTED__ ## l ## _ ## p 8875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define __IDSTRING_EXPAND(l,p) __IDSTRING_CONCAT(l,p) 8885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define pad void __IDSTRING_EXPAND(__LINE__,x)(void) { } 8895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 8905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru yes pad | head -n 256 >>x 8915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags - 1 otwo -xO2 <x 8925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf x 8935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = hpcc; then 8945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=u 8955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 otwo +O2 8965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=x 8975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = xlc; then 8985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 othree "-O3 -qstrict" 8995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_OTHREE || ac_flags 1 otwo -O2 9005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = tcc || test $ct = tendra; then 9015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : no special optimisation 9025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelse 9035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 otwo -O2 9045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_OTWO || ac_flags 1 optimise -O 9055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 9065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# other flags: just add them if they are supported 9075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querui=0 9085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test $ct = gcc; then 9095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru # The following tests run with -Werror (gcc only) if possible 9105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NOWARN=$DOWARN; phase=u 9115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnostrictaliasing -fno-strict-aliasing 9125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fstackprotectorall -fstack-protector-all 9135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fwrapv -fwrapv 91403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $cm = dragonegg && case " $CC $CFLAGS $LDFLAGS " in 91503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *\ -fplugin=*dragonegg*) ;; 91603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra *) ac_flags 1 fplugin_dragonegg -fplugin=dragonegg ;; 91703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 91803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if test $cm = lto; then 91903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fv=0 92003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra checks='1 2 3 4 5 6 7 8' 92103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra elif test $cm = combine; then 92203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fv=0 92303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra checks='7 8' 92403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra else 92503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fv=1 92603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 92703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 1 || for what in $checks; do 92803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 1 && break 92903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra case $what in 93003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 1) t_cflags='-flto=jobserver' 93103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_ldflags='-fuse-linker-plugin' 93203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltojs_lp ;; 93303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 2) t_cflags='-flto=jobserver' t_ldflags='' 93403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltojs_nn ;; 93503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 3) t_cflags='-flto=jobserver' 93603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_ldflags='-fno-use-linker-plugin -fwhole-program' 93703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltojs_np ;; 93803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 4) t_cflags='-flto' 93903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_ldflags='-fuse-linker-plugin' 94003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltons_lp ;; 94103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 5) t_cflags='-flto' t_ldflags='' 94203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltons_nn ;; 94303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 6) t_cflags='-flto' 94403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_ldflags='-fno-use-linker-plugin -fwhole-program' 94503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=1 t_name=fltons_np ;; 94603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 7) t_cflags='-fwhole-program --combine' t_ldflags='' 94703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra t_use=0 t_name=combine cm=combine ;; 94803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 8) fv=1 cm=normal ;; 94903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 95003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 1 && break 95103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ac_flags $t_use $t_name "$t_cflags" \ 95203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra "if gcc supports $t_cflags $t_ldflags" "$t_ldflags" 95303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra done 9545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru i=1 9555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = icc; then 9565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnobuiltinsetmode -fno-builtin-setmode 9575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnostrictaliasing -fno-strict-aliasing 9585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fstacksecuritycheck -fstack-security-check 9595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru i=1 9605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = sunpro; then 9615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=u 9625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 v -v 9635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 xc99 -xc99 'for support of ISO C99' 9645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 ipo -xipo 'for cross-module optimisation' 9655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=x 9665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = hpcc; then 9675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=u 9685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 agcc -Agcc 'for support of GCC extensions' 9695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 ac99 -AC99 'for support of ISO C99' 9705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru phase=x 9715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = dec; then 9725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 verb -verbose 9735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 rodata -readonly_strings 9745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = dmc; then 9755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 decl "${ccpc}-r" 'for strict prototype checks' 9765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 schk "${ccpc}-s" 'for stack overflow checking' 9775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = bcc; then 9785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 strpool "${ccpc}-d" 'if string pooling can be enabled' 9795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = mipspro; then 9805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 xc99 -c99 'for support of ISO C99' 9815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fullwarn -fullwarn 'for remark output support' 9825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = msc; then 9835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 strpool "${ccpc}/GF" 'if string pooling can be enabled' 9845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo 'int main(void) { char test[64] = ""; return (*test); }' >x 9855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags - 1 stackon "${ccpc}/GZ" 'if stack checks can be enabled' <x 9865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags - 1 stckall "${ccpc}/Ge" 'stack checks for all functions' <x 9875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags - 1 secuchk "${ccpc}/GS" 'for compiler security checks' <x 9885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf x 9895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 wall "${ccpc}/Wall" 'to enable all warnings' 9905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 wp64 "${ccpc}/Wp64" 'to enable 64-bit warnings' 9915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = xlc; then 9925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 x99 -qlanglvl=extc99 9935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_X99 || ac_flags 1 c99 -qlanglvl=stdc99 9945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 rodata "-qro -qroconst -qroptr" 9955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 rtcheck -qcheck=all 9965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 rtchkc -qextchk 9975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 wformat "-qformat=all -qformat=nozln" 9985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #ac_flags 1 wp64 -qwarn64 # too verbose for now 9995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = tendra; then 10005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 0 ysystem -Ysystem 10015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_YSYSTEM && CPPFLAGS="-Ysystem $CPPFLAGS" 10025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 extansi -Xa 10035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = tcc; then 10045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 boundschk -b 10055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = clang; then 10065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru i=1 10075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $ct = nwcc; then 10085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru i=1 10095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #broken# ac_flags 1 ssp -stackprotect 10105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 10115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# flags common to a subset of compilers (run with -Werror on gcc) 10125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test 1 = $i; then 10135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 stdg99 -std=gnu99 'for support of ISO C99 + GCC extensions' 10145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_STDG99 || \ 10155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 stdc99 -std=c99 'for support of ISO C99' 10165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 wall -Wall 10175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 10185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 101903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraphase=x 10205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# The following tests run with -Werror or similar (all compilers) if possible 10215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNOWARN=$DOWARN 10225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest $ct = pcc && phase=u 10235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 10245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 10255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Compiler: check for stuff that only generates warnings 10265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 102703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_bounded '' 'for __attribute__((__bounded__))' <<-'EOF' 102803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 102903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 10325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <string.h> 10335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #undef __attribute__ 10345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int xcopy(const void *, void *, size_t) 103503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra __attribute__((__bounded__ (__buffer__, 1, 3))) 103603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra __attribute__((__bounded__ (__buffer__, 2, 3))); 10375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { return (xcopy(av[0], av[--ac], 1)); } 10385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int xcopy(const void *s, void *d, size_t n) { 10395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru memmove(d, s, n); return ((int)n); 10405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru } 10415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 10425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 104303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_format '' 'for __attribute__((__format__))' <<-'EOF' 104403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 104503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 104803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #define fprintf printfoo 10495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stdio.h> 10505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #undef __attribute__ 105103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #undef fprintf 105203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra extern int fprintf(FILE *, const char *format, ...) 105303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra __attribute__((__format__ (__printf__, 2, 3))); 105403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(int ac, char **av) { return (fprintf(stderr, "%s%d", *av, ac)); } 10555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 10565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 105703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_nonnull '' 'for __attribute__((__nonnull__))' <<-'EOF' 105803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 105903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 106203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int foo(char *s1, char *s2) __attribute__((__nonnull__)); 106303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int bar(char *s1, char *s2) __attribute__((__nonnull__ (1, 2))); 106403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int baz(char *s) __attribute__((__nonnull__ (1))); 10655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int foo(char *s1, char *s2) { return (bar(s2, s1)); } 10665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int bar(char *s1, char *s2) { return (baz(s1) - baz(s2)); } 10675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int baz(char *s) { return (*s); } 10685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char **av) { return (ac == foo(av[0], av[ac-1])); } 10695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 10705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 107103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_noreturn '' 'for __attribute__((__noreturn__))' <<-'EOF' 107203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 107303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 10765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stdlib.h> 10775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #undef __attribute__ 107803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra void fnord(void) __attribute__((__noreturn__)); 10795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { fnord(); } 10805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru void fnord(void) { exit(0); } 10815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 10825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 108303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_unused '' 'for __attribute__((__unused__))' <<-'EOF' 108403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 108503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 108803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(int ac __attribute__((__unused__)), char **av 108903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra __attribute__((__unused__))) { return (0); } 10905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 10915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 109203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test attribute_used '' 'for __attribute__((__used__))' <<-'EOF' 109303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if defined(__TenDRA__) || (defined(__GNUC__) && (__GNUC__ < 2)) 109403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra /* force a failure: TenDRA and gcc 1.42 have false positive here */ 10955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (thiswillneverbedefinedIhope()); } 10965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #else 109703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra static const char fnord[] __attribute__((__used__)) = "42"; 10985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (0); } 10995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 11005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 11015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 11025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# End of tests run with -Werror 11035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNOWARN=$save_NOWARN 11045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruphase=x 11055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 11065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 11075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# mksh: flavours (full/small mksh, omit certain stuff) 11085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 11095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif ac_ifcpp 'ifdef MKSH_SMALL' isset_MKSH_SMALL '' \ 11105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru "if a reduced-feature mksh is requested"; then 11115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #XXX this sucks; fix it for *all* compilers 11125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $ct in 11135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru clang|icc|nwcc) 11145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnoinline -fno-inline 11155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 11165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru gcc) 11175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NOWARN=$DOWARN; phase=u 11185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnoinline -fno-inline 11195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NOWARN=$save_NOWARN; phase=x 11205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 11215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sunpro) 11225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnoinline -xinline= 11235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 11245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru xlc) 11255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_flags 1 fnoinline -qnoinline 11265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 11275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 11285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 11295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_NICE=0} 11305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru : ${HAVE_PERSISTENT_HISTORY=0} 113103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories smksh" 11325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru HAVE_ISSET_MKSH_CONSERVATIVE_FDS=1 # from sh.h 11335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 11345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_ifcpp 'ifdef MKSH_BINSHREDUCED' isset_MKSH_BINSHREDUCED '' \ 11355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru "if a reduced-feature sh is requested" && \ 113603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories binsh" 11375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_ifcpp 'ifdef MKSH_UNEMPLOYED' isset_MKSH_UNEMPLOYED '' \ 11385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru "if mksh will be built without job control" && \ 113903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories arge" 114003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_ifcpp 'ifdef MKSH_NOPROSPECTOFWORK' isset_MKSH_NOPROSPECTOFWORK '' \ 114103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra "if mksh will be built without job signals" && \ 114203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories arge nojsig" 11435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_ifcpp 'ifdef MKSH_ASSUME_UTF8' isset_MKSH_ASSUME_UTF8 '' \ 11445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 'if the default UTF-8 mode is specified' && : ${HAVE_SETLOCALE_CTYPE=0} 11455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_ifcpp 'ifdef MKSH_CONSERVATIVE_FDS' isset_MKSH_CONSERVATIVE_FDS '' \ 11465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 'if traditional/conservative fd use is requested' && \ 114703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories convfds" 11485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 11495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 11505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment: headers 11515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 115203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header sys/bsdtypes.h 115303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header sys/file.h sys/types.h 11545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header sys/mkdev.h sys/types.h 11555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header sys/mman.h sys/types.h 115603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header sys/param.h 115703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header sys/select.h sys/types.h 11585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header sys/sysmacros.h 115903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header bstring.h 11605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header grp.h sys/types.h 11615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header libgen.h 11625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header libutil.h sys/types.h 11635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header paths.h 11645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header stdint.h stdarg.h 116503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# include strings.h only if compatible with string.h 116603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_header strings.h sys/types.h string.h 11675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header ulimit.h sys/types.h 11685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_header values.h 11695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 11705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 117103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# check whether whatever we use for the final link will succeed 117203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# 117303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraif test $cm = makefile; then 117403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra : nothing to check 117503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraelse 117603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra HAVE_LINK_WORKS=x 117703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ac_testinit link_works '' 'checking if the final link command may succeed' 117803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fv=1 117903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra cat >conftest.c <<-'EOF' 118003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #define EXTERN 118103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #define MKSH_INCLUDES_ONLY 118203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include "sh.h" 118303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.488 2011/10/07 19:51:41 tg Exp $"); 118403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(void) { printf("Hello, World!\n"); return (0); } 118503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy CondraEOF 118603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra case $cm in 118703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra llvm) 118803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra v "$CC $CFLAGS $CPPFLAGS $NOWARN -emit-llvm -c conftest.c" || fv=0 118903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra rmf mksh.s 119003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "llvm-link -o - conftest.o | opt $optflags | llc -o mksh.s" || fv=0 119103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" 119203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 119303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra dragonegg) 119403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra v "$CC $CFLAGS $CPPFLAGS $NOWARN -S -flto conftest.c" || fv=0 119503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "mv conftest.s conftest.ll" 119603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "llvm-as conftest.ll" || fv=0 119703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra rmf mksh.s 119803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "llvm-link -o - conftest.bc | opt $optflags | llc -o mksh.s" || fv=0 119903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" 120003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 120103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra combine) 120203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra v "$CC $CFLAGS $CPPFLAGS $LDFLAGS -fwhole-program --combine $NOWARN -o $tcfn conftest.c $LIBS $ccpr" 120303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 120403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra lto|normal) 120503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra cm=normal 120603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra v "$CC $CFLAGS $CPPFLAGS $NOWARN -c conftest.c" || fv=0 120703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn conftest.o $LIBS $ccpr" 120803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ;; 120903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra esac 121003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test -f $tcfn || fv=0 121103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra ac_testdone 121203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra test $fv = 1 || exit 1 121303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condrafi 121403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra 121503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra# 12165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment: definitions 12175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 12185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho '#include <sys/types.h> 12195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru/* check that off_t can represent 2^63-1 correctly, thx FSF */ 12205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#define LARGE_OFF_T (((off_t)1 << 62) - 1 + ((off_t)1 << 62)) 12215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruint off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && 12225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; 12235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruint main(void) { return (0); }' >lft.c 12245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn can_lfs '' "for large file support" <lft.c 12255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusave_CPPFLAGS=$CPPFLAGS 122603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraadd_cppflags -D_FILE_OFFSET_BITS=64 12275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn can_lfs_sus '!' can_lfs 0 "... with -D_FILE_OFFSET_BITS=64" <lft.c 12285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test 0 = $HAVE_CAN_LFS_SUS; then 122903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra CPPFLAGS=$save_CPPFLAGS 123003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -D_LARGE_FILES=1 12315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn can_lfs_aix '!' can_lfs 0 "... with -D_LARGE_FILES=1" <lft.c 12325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CAN_LFS_AIX || CPPFLAGS=$save_CPPFLAGS 12335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 12345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf lft* # end of large file support test 12355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 12365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 12375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment: types 12385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 12395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test can_inttypes '!' stdint_h 1 "for standard 32-bit integer types" <<-'EOF' 12405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 12425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char **av) { return ((uint32_t)(ptrdiff_t)*av + (int32_t)ac); } 12435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test can_ucbints '!' can_inttypes 1 "for UCB 32-bit integer types" <<-'EOF' 12455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 12475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char **av) { return ((u_int32_t)(ptrdiff_t)*av + (int32_t)ac); } 12485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test can_int8type '!' stdint_h 1 "for standard 8-bit integer type" <<-'EOF' 12505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 12525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char **av) { return ((uint8_t)(ptrdiff_t)av[ac]); } 12535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test can_ucbint8 '!' can_int8type 1 "for UCB 8-bit integer type" <<-'EOF' 12555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 12575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char **av) { return ((u_int8_t)(ptrdiff_t)av[ac]); } 12585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 12605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test rlim_t <<-'EOF' 12615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/time.h> 12635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/resource.h> 12645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 12655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((int)(rlim_t)0); } 12665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 12685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# only testn: added later below 12695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn sig_t <<-'EOF' 12705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <signal.h> 12725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 127303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(void) { return ((int)(ptrdiff_t)(sig_t)(ptrdiff_t)kill(0,0)); } 12745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 12765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn sighandler_t '!' sig_t 0 <<-'EOF' 12775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <signal.h> 12795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 128003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(void) { return ((int)(ptrdiff_t)(sighandler_t)(ptrdiff_t)kill(0,0)); } 12815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test 1 = $HAVE_SIGHANDLER_T; then 128303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -Dsig_t=sighandler_t 12845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru HAVE_SIG_T=1 12855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 12865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 12875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn __sighandler_t '!' sig_t 0 <<-'EOF' 12885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 12895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <signal.h> 12905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 129103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(void) { return ((int)(ptrdiff_t)(__sighandler_t)(ptrdiff_t)kill(0,0)); } 12925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 12935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test 1 = $HAVE___SIGHANDLER_T; then 129403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -Dsig_t=__sighandler_t 12955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru HAVE_SIG_T=1 12965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 12975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 129803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condratest 1 = $HAVE_SIG_T || add_cppflags -Dsig_t=nosig_t 12995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_cppflags SIG_T 13005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 13025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment: signals 13035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 13045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest x"NetBSD" = x"$TARGET_OS" && $e Ignore the compatibility warning. 13055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufor what in name list; do 13075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru uwhat=`upper $what` 13085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn sys_sig$what '' "the sys_sig${what}[] array" <<-EOF 13095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru extern const char *const sys_sig${what}[]; 13105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (sys_sig${what}[0][0]); } 13115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 13125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testn _sys_sig$what '!' sys_sig$what 0 "the _sys_sig${what}[] array" <<-EOF 13135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru extern const char *const _sys_sig${what}[]; 13145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (_sys_sig${what}[0][0]); } 13155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru EOF 131603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra eval uwhat_v=\$HAVE__SYS_SIG$uwhat 131703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if test 1 = "$uwhat_v"; then 131803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra add_cppflags -Dsys_sig$what=_sys_sig$what 131903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra eval HAVE_SYS_SIG$uwhat=1 13205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 13215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_cppflags SYS_SIG$uwhat 13225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudone 13235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test strsignal '!' sys_siglist 0 <<-'EOF' 13255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <string.h> 13265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <signal.h> 13275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (strsignal(1)[0]); } 13285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 13315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Environment: library functions 13325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 13335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testn flock_ex '' 'flock and mmap' <<-'EOF' 13345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 133503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_SYS_FILE_H 13365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/file.h> 133703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #endif 133803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_SYS_MMAN_H 13395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/mman.h> 134003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #endif 13415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <fcntl.h> 13425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stdlib.h> 13435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((void *)mmap(NULL, (size_t)flock(0, LOCK_EX), 13445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru PROT_READ, MAP_PRIVATE, 0, (off_t)0) == (void *)NULL ? 1 : 13455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru munmap(NULL, 0)); } 13465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test getrusage <<-'EOF' 13495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define MKSH_INCLUDES_ONLY 13505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include "sh.h" 13515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { 13525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru struct rusage ru; 13535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return (getrusage(RUSAGE_SELF, &ru) + 13545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru getrusage(RUSAGE_CHILDREN, &ru)); 13555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru } 13565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test killpg <<-'EOF' 13595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <signal.h> 13605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { return (av[0][killpg(123, ac)]); } 13615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test mknod '' 'if to use mknod(), makedev() and friends' <<-'EOF' 13645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define MKSH_INCLUDES_ONLY 13655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include "sh.h" 13665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { 13675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru dev_t dv; 13685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru dv = makedev((unsigned int)ac, (unsigned int)av[0][0]); 13695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return (mknod(av[0], (mode_t)0, dv) ? (int)major(dv) : 13705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru (int)minor(dv)); 13715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru } 13725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test mkstemp <<-'EOF' 13755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stdlib.h> 13765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 13775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { char tmpl[] = "X"; return (mkstemp(tmpl)); } 13785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test nice <<-'EOF' 13815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 13825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (nice(4)); } 13835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test revoke <<-'EOF' 13865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 13875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #if HAVE_LIBUTIL_H 13885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <libutil.h> 13895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 13905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 13915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { return (ac + revoke(av[0])); } 13925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 13945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test setlocale_ctype '' 'setlocale(LC_CTYPE, "")' <<-'EOF' 13955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <locale.h> 13965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 13975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((int)(ptrdiff_t)(void *)setlocale(LC_CTYPE, "")); } 13985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 13995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test langinfo_codeset setlocale_ctype 0 'nl_langinfo(CODESET)' <<-'EOF' 14015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <langinfo.h> 14025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 14035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((int)(ptrdiff_t)(void *)nl_langinfo(CODESET)); } 14045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 140603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condraac_test select <<-'EOF' 14075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 140803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <sys/time.h> 140903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_SYS_BSDTYPES_H 141003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <sys/bsdtypes.h> 141103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #endif 141203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_SYS_SELECT_H 141303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <sys/select.h> 14145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 141503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_BSTRING_H 141603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <bstring.h> 141703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #endif 141803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <stddef.h> 141903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <stdlib.h> 142003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <string.h> 142103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #if HAVE_STRINGS_H 142203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <strings.h> 142303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #endif 142403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra #include <unistd.h> 142503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra int main(void) { 142603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra struct timeval tv = { 1, 200000 }; 142703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fd_set fds; FD_ZERO(&fds); FD_SET(0, &fds); 142803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra return (select(FD_SETSIZE, &fds, NULL, NULL, &tv)); 142903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra } 14305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test setresugid <<-'EOF' 14335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 14345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 14355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { setresuid(0,0,0); return (setresgid(0,0,0)); } 14365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test setgroups setresugid 0 <<-'EOF' 14395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 14405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #if HAVE_GRP_H 14415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <grp.h> 14425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 14435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <unistd.h> 14445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { gid_t gid = 0; return (setgroups(0, &gid)); } 14455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test strcasestr <<-'EOF' 14485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <sys/types.h> 14495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <stddef.h> 14505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <string.h> 14515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #if HAVE_STRINGS_H 14525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <strings.h> 14535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #endif 14545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { 14555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru return ((int)(ptrdiff_t)(void *)strcasestr(*av, av[ac])); 14565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru } 14575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test strlcpy <<-'EOF' 14605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include <string.h> 14615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(int ac, char *av[]) { return (strlcpy(*av, av[1], 14625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru (size_t)ac)); } 14635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 14665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# check headers for declarations 14675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 14685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusave_CC=$CC; save_LDFLAGS=$LDFLAGS; save_LIBS=$LIBS 14695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCC="$CC -c -o $tcfn"; LDFLAGS=; LIBS= 14705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test '!' flock_decl flock_ex 1 'if flock() does not need to be declared' <<-'EOF' 14715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define MKSH_INCLUDES_ONLY 14725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include "sh.h" 14735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru long flock(void); /* this clashes if defined before */ 14745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((int)flock()); } 14755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test '!' revoke_decl revoke 1 'if revoke() does not need to be declared' <<-'EOF' 14775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define MKSH_INCLUDES_ONLY 14785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include "sh.h" 14795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru long revoke(void); /* this clashes if defined before */ 14805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return ((int)revoke()); } 14815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_test sys_siglist_decl sys_siglist 1 'if sys_siglist[] does not need to be declared' <<-'EOF' 14835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #define MKSH_INCLUDES_ONLY 14845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru #include "sh.h" 14855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru int main(void) { return (sys_siglist[0][0]); } 14865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 14875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCC=$save_CC; LDFLAGS=$save_LDFLAGS; LIBS=$save_LIBS 14885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 14905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# other checks 14915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 14925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufd='if to use persistent history' 14935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_cache PERSISTENT_HISTORY || test 0 = $HAVE_FLOCK_EX || fv=1 149403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condratest 1 = $fv || check_categories="$check_categories no-histfile" 14955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_testdone 14965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruac_cppflags 14975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 14985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 14995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Compiler: Praeprocessor (only if needed) 15005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 15015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 0 = $HAVE_SYS_SIGNAME && if ac_testinit cpp_dd '' \ 15025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 'checking if the C Preprocessor supports -dD'; then 15035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo '#define foo bar' >conftest.c 15045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vv ']' "$CPP $CFLAGS $CPPFLAGS $NOWARN -dD conftest.c >x" 15055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru grep '#define foo bar' x >/dev/null 2>&1 && fv=1 15065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf conftest.c x vv.out 15075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ac_testdone 15085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 15095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 15115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# End of mirtoconf checks 15125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# 15135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e ... done. 15145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Some operating systems have ancient versions of ed(1) writing 15165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# the character count to standard output; cope for that 15175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho wq >x 15185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querued x <x 2>/dev/null | grep 3 >/dev/null 2>&1 && \ 151903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra check_categories="$check_categories $oldish_ed" 15205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querurmf x vv.out 15215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test 0 = $HAVE_SYS_SIGNAME; then 15235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test 1 = $HAVE_CPP_DD; then 15245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e Generating list of signal names... 15255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 15265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e No list of signal names available via cpp. Falling back... 15275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 15285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sigseen=: 15295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo '#include <signal.h> 15305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#ifndef NSIG 15315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#if defined(_NSIG) 15325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#define NSIG _NSIG 15335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#elif defined(SIGMAX) 15345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#define NSIG (SIGMAX+1) 15355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#endif 15365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#endif 15375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querumksh_cfg: NSIG' >conftest.c 15385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru NSIG=`vq "$CPP $CFLAGS $CPPFLAGS $NOWARN conftest.c" | \ 15395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru grep mksh_cfg: | sed 's/^mksh_cfg:[ ]*\([0-9x ()+-]*\).*$/\1/'` 15405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $NSIG in 15415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *[\ \(\)+-]*) NSIG=`awk "BEGIN { print $NSIG }"` ;; 15425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 15435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru printf=printf 15445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru (printf hallo) >/dev/null 2>&1 || printf=echo 15455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $printf = echo || NSIG=`printf %d "$NSIG" 2>/dev/null` 15465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $printf "NSIG=$NSIG ... " 15475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sigs="ABRT ALRM BUS CHLD CLD CONT DIL EMT FPE HUP ILL INFO INT IO IOT" 15485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sigs="$sigs KILL LOST PIPE PROF PWR QUIT RESV SAK SEGV STOP SYS TERM" 15495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sigs="$sigs TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ" 15505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 1 = $HAVE_CPP_DD && test $NSIG -gt 1 && sigs="$sigs "`vq \ 15515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru "$CPP $CFLAGS $CPPFLAGS $NOWARN -dD conftest.c" | \ 15525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru grep '[ ]SIG[A-Z0-9]*[ ]' | \ 15535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sed 's/^\(.*[ ]SIG\)\([A-Z0-9]*\)\([ ].*\)$/\2/' | sort` 15545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $NSIG -gt 1 || sigs= 15555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for name in $sigs; do 15565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo '#include <signal.h>' >conftest.c 15575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo mksh_cfg: SIG$name >>conftest.c 15585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru vq "$CPP $CFLAGS $CPPFLAGS $NOWARN conftest.c" | \ 15595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru grep mksh_cfg: | \ 15605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sed 's/^mksh_cfg:[ ]*\([0-9x]*\).*$/\1:'$name/ 156103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra done | grep -v '^:' | sed 's/:/ /g' | while read nr name; do 15625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $printf = echo || nr=`printf %d "$nr" 2>/dev/null` 15635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $nr -gt 0 && test $nr -le $NSIG || continue 15645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru case $sigseen in 15655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *:$nr:*) ;; 15665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru *) echo " { \"$name\", $nr }," 15675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sigseen=$sigseen$nr: 15685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $printf "$name=$nr " >&2 15695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 15705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru esac 15715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 2>&1 >signames.inc 15725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf conftest.c 15735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e done. 15745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 15755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruaddsrcs '!' HAVE_STRLCPY strlcpy.c 15775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruaddsrcs USE_PRINTF_BUILTIN printf.c 157803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condratest 1 = "$USE_PRINTF_BUILTIN" && add_cppflags -DMKSH_PRINTF_BUILTIN 15795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 1 = "$HAVE_CAN_VERB" && CFLAGS="$CFLAGS -verbose" 15805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e $bi$me: Finished configuration testing, now producing output.$ao 15825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 15835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufiles= 15845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruobjs= 15855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querusp= 15865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $curdir in 15875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*\ *) echo "#!./mksh" >test.sh ;; 15885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) echo "#!$curdir/mksh" >test.sh ;; 15895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 15905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucat >>test.sh <<-EOF 15915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru LC_ALL=C PATH='$PATH'; export LC_ALL PATH 15925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -n "\$KSH_VERSION" || exit 1 159303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra set -A check_categories -- $check_categories 159403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra pflag='$curdir/mksh' 159503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra sflag='$srcdir/check.t' 159603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra usee=0 Pflag=0 uset=0 vflag=0 xflag=0 159703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra while getopts "C:e:Pp:s:t:v" ch; do case \$ch { 159803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (C) check_categories[\${#check_categories[*]}]=\$OPTARG ;; 159903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (e) usee=1; eflag=\$OPTARG ;; 160003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (P) Pflag=1 ;; 160103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (p) pflag=\$OPTARG ;; 160203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (s) sflag=\$OPTARG ;; 160303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (t) uset=1; tflag=\$OPTARG ;; 160403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (v) vflag=1 ;; 160503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (*) xflag=1 ;; 160603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra } 160703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra done 160803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra shift \$((OPTIND - 1)) 160903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra set -A args -- '$srcdir/check.pl' -p "\$pflag" -s "\$sflag" 161003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra x= 161103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra for y in "\${check_categories[@]}"; do 161203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra x=\$x,\$y 161303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra done 161403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if [[ -n \$x ]]; then 161503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=-C 161603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=\${x#,} 161703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 161803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if (( usee )); then 161903ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=-e 162003ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=\$eflag 162103ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 162203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (( Pflag )) && args[\${#args[*]}]=-P 162303ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra if (( uset )); then 162403ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=-t 162503ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra args[\${#args[*]}]=\$tflag 162603ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra fi 162703ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (( vflag )) && args[\${#args[*]}]=-v 162803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra (( xflag )) && args[\${#args[*]}]=-x # force usage by synerr 16295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru print Testing mksh for conformance: 16305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fgrep MirOS: '$srcdir/check.t' 16315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fgrep MIRBSD '$srcdir/check.t' 16325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru print "This shell is actually:\\n\\t\$KSH_VERSION" 16335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru print 'test.sh built for mksh $dstversion' 16345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cstr='\$os = defined \$^O ? \$^O : "unknown";' 16355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cstr="\$cstr"'print \$os . ", Perl version " . \$];' 16365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for perli in \$PERL perl5 perl no; do 16375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru [[ \$perli = no ]] && exit 1 163803ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra perlos=\$(\$perli -e "\$cstr") 2>/dev/null || continue 16395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru print "Perl interpreter '\$perli' running on '\$perlos'" 16405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru [[ -n \$perlos ]] && break 16415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 164203ebf06f4e1112a0e9533b93062d169232c4cbfeGeremy Condra exec \$perli "\${args[@]}" "\$@"$tsts 16435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 16445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruchmod 755 test.sh 16455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test $cm = llvm; then 16465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru emitbc="-emit-llvm -c" 16475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test $cm = dragonegg; then 16485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru emitbc="-S -flto" 16495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelse 16505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru emitbc=-c 16515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 16525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho set -x >Rebuild.sh 16535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufor file in $SRCS; do 16545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru op=`echo x"$file" | sed 's/^x\(.*\)\.c$/\1./'` 16555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -f $file || file=$srcdir/$file 16565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru files="$files$sp$file" 16575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru sp=' ' 16585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "$CC $CFLAGS $CPPFLAGS $emitbc $file || exit 1" >>Rebuild.sh 16595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test $cm = dragonegg; then 16605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "mv ${op}s ${op}ll" >>Rebuild.sh 16615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "llvm-as ${op}ll || exit 1" >>Rebuild.sh 16625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru objs="$objs$sp${op}bc" 16635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru else 16645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru objs="$objs$sp${op}o" 16655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 16665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudone 16675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $cm in 16685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudragonegg|llvm) 16695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "rm -f mksh.s" >>Rebuild.sh 16705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru echo "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" >>Rebuild.sh 16715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru lobjs=mksh.s 16725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 16735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) 16745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru lobjs=$objs 16755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 16765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 16775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $tcfn in 16785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querua.exe) mkshexe=mksh.exe ;; 16795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru*) mkshexe=mksh ;; 16805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 16815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho tcfn=$mkshexe >>Rebuild.sh 16825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho "$CC $CFLAGS $LDFLAGS -o \$tcfn $lobjs $LIBS $ccpr" >>Rebuild.sh 16835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruecho 'test -f $tcfn || exit 1; size $tcfn' >>Rebuild.sh 16845155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test $cm = makefile; then 16855155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru extras='emacsfn.h sh.h sh_flags.h var_spec.h' 16865155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test 0 = $HAVE_SYS_SIGNAME && extras="$extras signames.inc" 16875155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru cat >Makefrag.inc <<EOF 16885155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# Makefile fragment for building mksh $dstversion 16895155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 16905155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruPROG= $mkshexe 16915155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruMAN= mksh.1 16925155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruSRCS= $SRCS 16935155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruSRCS_FP= $files 16945155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruOBJS_BP= $objs 16955155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruINDSRCS= $extras 16965155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNONSRCS_INST= dot.mkshrc \$(MAN) 16975155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruNONSRCS_NOINST= Build.sh Makefile Rebuild.sh check.pl check.t test.sh 16985155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCC= $CC 16995155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCFLAGS= $CFLAGS 17005155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruCPPFLAGS= $CPPFLAGS 17015155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruLDFLAGS= $LDFLAGS 17025155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruLIBS= $LIBS 17035155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 17045155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# not BSD make only: 17055155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#VPATH= $srcdir 17065155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#all: \$(PROG) 17075155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#\$(PROG): \$(OBJS_BP) 17085155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# \$(CC) \$(CFLAGS) \$(LDFLAGS) -o \$@ \$(OBJS_BP) \$(LIBS) 17095155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#\$(OBJS_BP): \$(SRCS_FP) \$(NONSRCS) 17105155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#.c.o: 17115155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# \$(CC) \$(CFLAGS) \$(CPPFLAGS) -c \$< 17125155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 17135155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# for all make variants: 17145155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#REGRESS_FLAGS= -v 17155155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#regress: 17165155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# ./test.sh \$(REGRESS_FLAGS) 17175155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru 17185155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru# for BSD make only: 17195155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#.PATH: $srcdir 17205155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru#.include <bsd.prog.mk> 17215155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste QueruEOF 17225155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e 17235155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e Generated Makefrag.inc successfully. 17245155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru exit 0 17255155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 17265155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test $cm = combine; then 17275155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru objs="-o $mkshexe" 17285155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for file in $SRCS; do 17295155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -f $file || file=$srcdir/$file 17305155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru objs="$objs $file" 17315155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 17325155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru emitbc="-fwhole-program --combine" 17335155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "$CC $CFLAGS $CPPFLAGS $LDFLAGS $emitbc $objs $LIBS $ccpr" 17345155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelif test 1 = $pm; then 17355155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for file in $SRCS; do 17365155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -f $file || file=$srcdir/$file 17375155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "$CC $CFLAGS $CPPFLAGS $emitbc $file" & 17385155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 17395155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru wait 17405155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruelse 17415155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru for file in $SRCS; do 17425155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test $cm = dragonegg && \ 17435155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru op=`echo x"$file" | sed 's/^x\(.*\)\.c$/\1./'` 17445155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru test -f $file || file=$srcdir/$file 17455155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "$CC $CFLAGS $CPPFLAGS $emitbc $file" || exit 1 17465155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru if test $cm = dragonegg; then 17475155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "mv ${op}s ${op}ll" 17485155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "llvm-as ${op}ll" || exit 1 17495155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru fi 17505155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru done 17515155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 17525155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querucase $cm in 17535155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querudragonegg|llvm) 17545155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf mksh.s 17555155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru v "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" 17565155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru ;; 17575155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruesac 17585155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutcfn=$mkshexe 17595155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest $cm = combine || v "$CC $CFLAGS $LDFLAGS -o $tcfn $lobjs $LIBS $ccpr" 17605155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest -f $tcfn || exit 1 17615155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 1 = $r || v "$NROFF -mdoc <'$srcdir/mksh.1' >mksh.cat1" || \ 17625155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru rmf mksh.cat1 17635155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 0 = $eq && v size $tcfn 17645155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querui=install 17655155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest -f /usr/ucb/$i && i=/usr/ucb/$i 17665155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querutest 1 = $eq && e=: 17675155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e 17685155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e Installing the shell: 17695155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "# $i -c -s -o root -g bin -m 555 mksh /bin/mksh" 17705155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "# grep -x /bin/mksh /etc/shells >/dev/null || echo /bin/mksh >>/etc/shells" 17715155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "# $i -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/" 17725155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e 17735155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e Installing the manual: 17745155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruif test -f mksh.cat1; then 17755155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e "# $i -c -o root -g bin -m 444 mksh.cat1" \ 17765155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru "/usr/share/man/cat1/mksh.0" 17775155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru $e or 17785155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Querufi 17795155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e "# $i -c -o root -g bin -m 444 mksh.1 /usr/share/man/man1/mksh.1" 17805155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e 17815155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e Run the regression test suite: ./test.sh 17825155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queru$e Please also read the sample file dot.mkshrc and the fine manual. 17835155f1c7438ef540d7b25eb70aa1639579795b07Jean-Baptiste Queruexit 0 1784