better handling of eval and CPPFLAGS in build system

This commit is contained in:
tg 2011-10-07 19:51:44 +00:00
parent 9eaf6a8e12
commit d6bf9c197b
3 changed files with 51 additions and 38 deletions

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.487 2011/08/26 10:24:51 tg Exp $' srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.488 2011/10/07 19:51:41 tg Exp $'
#- #-
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# Thorsten Glaser <tg@mirbsd.org> # Thorsten Glaser <tg@mirbsd.org>
@ -206,11 +206,15 @@ EOF
test x"$fv" = x"1" test x"$fv" = x"1"
} }
add_cppflags() {
CPPFLAGS="$CPPFLAGS $*"
}
ac_cppflags() { ac_cppflags() {
test x"$1" = x"" || fu=$1 test x"$1" = x"" || fu=$1
fv=$2 fv=$2
test x"$2" = x"" && eval fv=\$HAVE_$fu test x"$2" = x"" && eval fv=\$HAVE_$fu
CPPFLAGS="$CPPFLAGS -DHAVE_$fu=$fv" add_cppflags -DHAVE_$fu=$fv
} }
ac_test() { ac_test() {
@ -328,7 +332,7 @@ do
;; ;;
:-g) :-g)
# checker, debug, valgrind build # checker, debug, valgrind build
CPPFLAGS="$CPPFLAGS -DDEBUG" add_cppflags -DDEBUG
CFLAGS="$CFLAGS -g3 -fno-builtin" CFLAGS="$CFLAGS -g3 -fno-builtin"
;; ;;
:-j) :-j)
@ -405,7 +409,7 @@ esac
# Configuration depending on OS name # Configuration depending on OS name
case $TARGET_OS in case $TARGET_OS in
AIX) AIX)
CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE" add_cppflags -D_ALL_SOURCE
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
BeOS) BeOS)
@ -425,32 +429,32 @@ FreeBSD)
;; ;;
FreeMiNT) FreeMiNT)
oswarn="; it has minor issues" oswarn="; it has minor issues"
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" add_cppflags -D_GNU_SOURCE
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
GNU) GNU)
case $CC in case $CC in
*tendracc*) ;; *tendracc*) ;;
*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ;; *) add_cppflags -D_GNU_SOURCE ;;
esac esac
# define NO_PATH_MAX to use Hurd-only functions # define NO_PATH_MAX to use Hurd-only functions
CPPFLAGS="$CPPFLAGS -DNO_PATH_MAX" add_cppflags -DNO_PATH_MAX
;; ;;
GNU/kFreeBSD) GNU/kFreeBSD)
case $CC in case $CC in
*tendracc*) ;; *tendracc*) ;;
*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ;; *) add_cppflags -D_GNU_SOURCE ;;
esac esac
;; ;;
Haiku) Haiku)
CPPFLAGS="$CPPFLAGS -DMKSH_ASSUME_UTF8" add_cppflags -DMKSH_ASSUME_UTF8
;; ;;
HP-UX) HP-UX)
;; ;;
Interix) Interix)
ccpc='-X ' ccpc='-X '
ccpl='-Y ' ccpl='-Y '
CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE" add_cppflags -D_ALL_SOURCE
: ${LIBS='-lcrypt'} : ${LIBS='-lcrypt'}
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
@ -460,17 +464,18 @@ IRIX*)
Linux) Linux)
case $CC in case $CC in
*tendracc*) ;; *tendracc*) ;;
*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ;; *) add_cppflags -D_GNU_SOURCE ;;
esac esac
CPPFLAGS="$CPPFLAGS -DSETUID_CAN_FAIL_WITH_EAGAIN" add_cppflags -DSETUID_CAN_FAIL_WITH_EAGAIN
: ${HAVE_REVOKE=0} : ${HAVE_REVOKE=0}
;; ;;
MidnightBSD) MidnightBSD)
;; ;;
Minix) Minix)
CPPFLAGS="$CPPFLAGS -DMKSH_UNEMPLOYED -DMKSH_CONSERVATIVE_FDS" add_cppflags -DMKSH_UNEMPLOYED
CPPFLAGS="$CPPFLAGS -DMKSH_NO_LIMITS" add_cppflags -DMKSH_CONSERVATIVE_FDS
CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX" add_cppflags -DMKSH_NO_LIMITS
add_cppflags -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX
oldish_ed=no-stderr-ed # /usr/bin/ed(!) is broken oldish_ed=no-stderr-ed # /usr/bin/ed(!) is broken
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
@ -487,15 +492,20 @@ OpenBSD)
;; ;;
OSF1) OSF1)
HAVE_SIG_T=0 # incompatible HAVE_SIG_T=0 # incompatible
CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE -D_POSIX_C_SOURCE=200112L" add_cppflags -D_OSF_SOURCE
CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED" add_cppflags -D_POSIX_C_SOURCE=200112L
add_cppflags -D_XOPEN_SOURCE=600
add_cppflags -D_XOPEN_SOURCE_EXTENDED
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
Plan9) Plan9)
CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_LIMITS_EXTENSION" add_cppflags -D_POSIX_SOURCE
CPPFLAGS="$CPPFLAGS -D_BSD_EXTENSION -D_SUSV2_SOURCE" add_cppflags -D_LIMITS_EXTENSION
add_cppflags -D_BSD_EXTENSION
add_cppflags -D_SUSV2_SOURCE
add_cppflags -DMKSH_ASSUME_UTF8
oswarn=' and will currently not work' oswarn=' and will currently not work'
CPPFLAGS="$CPPFLAGS -DMKSH_ASSUME_UTF8 -DMKSH_UNEMPLOYED" add_cppflags -DMKSH_UNEMPLOYED
;; ;;
PW32*) PW32*)
HAVE_SIG_T=0 # incompatible HAVE_SIG_T=0 # incompatible
@ -503,7 +513,7 @@ PW32*)
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
QNX) QNX)
CPPFLAGS="$CPPFLAGS -D__NO_EXT_QNX" add_cppflags -D__NO_EXT_QNX
case $TARGET_OSREV in case $TARGET_OSREV in
[012345].*|6.[0123].*|6.4.[01]) [012345].*|6.[0123].*|6.4.[01])
oldish_ed=no-stderr-ed # oldish /bin/ed is broken oldish_ed=no-stderr-ed # oldish /bin/ed is broken
@ -512,15 +522,16 @@ QNX)
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
SunOS) SunOS)
CPPFLAGS="$CPPFLAGS -D_BSD_SOURCE -D__EXTENSIONS__" add_cppflags -D_BSD_SOURCE
add_cppflags -D__EXTENSIONS__
;; ;;
syllable) syllable)
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" add_cppflags -D_GNU_SOURCE
oswarn=' and will currently not work' oswarn=' and will currently not work'
;; ;;
ULTRIX) ULTRIX)
: ${CC=cc -YPOSIX} : ${CC=cc -YPOSIX}
CPPFLAGS="$CPPFLAGS -Dssize_t=int" add_cppflags -Dssize_t=int
: ${HAVE_SETLOCALE_CTYPE=0} : ${HAVE_SETLOCALE_CTYPE=0}
;; ;;
UWIN*) UWIN*)
@ -1169,7 +1180,7 @@ else
#define EXTERN #define EXTERN
#define MKSH_INCLUDES_ONLY #define MKSH_INCLUDES_ONLY
#include "sh.h" #include "sh.h"
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.487 2011/08/26 10:24:51 tg Exp $"); __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.488 2011/10/07 19:51:41 tg Exp $");
int main(void) { printf("Hello, World!\n"); return (0); } int main(void) { printf("Hello, World!\n"); return (0); }
EOF EOF
case $cm in case $cm in
@ -1212,10 +1223,11 @@ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 &&
int main(void) { return (0); }' >lft.c int main(void) { return (0); }' >lft.c
ac_testn can_lfs '' "for large file support" <lft.c ac_testn can_lfs '' "for large file support" <lft.c
save_CPPFLAGS=$CPPFLAGS save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64" add_cppflags -D_FILE_OFFSET_BITS=64
ac_testn can_lfs_sus '!' can_lfs 0 "... with -D_FILE_OFFSET_BITS=64" <lft.c ac_testn can_lfs_sus '!' can_lfs 0 "... with -D_FILE_OFFSET_BITS=64" <lft.c
if test 0 = $HAVE_CAN_LFS_SUS; then if test 0 = $HAVE_CAN_LFS_SUS; then
CPPFLAGS="$save_CPPFLAGS -D_LARGE_FILES=1" CPPFLAGS=$save_CPPFLAGS
add_cppflags -D_LARGE_FILES=1
ac_testn can_lfs_aix '!' can_lfs 0 "... with -D_LARGE_FILES=1" <lft.c ac_testn can_lfs_aix '!' can_lfs 0 "... with -D_LARGE_FILES=1" <lft.c
test 1 = $HAVE_CAN_LFS_AIX || CPPFLAGS=$save_CPPFLAGS test 1 = $HAVE_CAN_LFS_AIX || CPPFLAGS=$save_CPPFLAGS
fi fi
@ -1268,7 +1280,7 @@ ac_testn sighandler_t '!' sig_t 0 <<-'EOF'
int main(void) { return ((int)(ptrdiff_t)(sighandler_t)(ptrdiff_t)kill(0,0)); } int main(void) { return ((int)(ptrdiff_t)(sighandler_t)(ptrdiff_t)kill(0,0)); }
EOF EOF
if test 1 = $HAVE_SIGHANDLER_T; then if test 1 = $HAVE_SIGHANDLER_T; then
CPPFLAGS="$CPPFLAGS -Dsig_t=sighandler_t" add_cppflags -Dsig_t=sighandler_t
HAVE_SIG_T=1 HAVE_SIG_T=1
fi fi
@ -1279,11 +1291,11 @@ ac_testn __sighandler_t '!' sig_t 0 <<-'EOF'
int main(void) { return ((int)(ptrdiff_t)(__sighandler_t)(ptrdiff_t)kill(0,0)); } int main(void) { return ((int)(ptrdiff_t)(__sighandler_t)(ptrdiff_t)kill(0,0)); }
EOF EOF
if test 1 = $HAVE___SIGHANDLER_T; then if test 1 = $HAVE___SIGHANDLER_T; then
CPPFLAGS="$CPPFLAGS -Dsig_t=__sighandler_t" add_cppflags -Dsig_t=__sighandler_t
HAVE_SIG_T=1 HAVE_SIG_T=1
fi fi
test 1 = $HAVE_SIG_T || CPPFLAGS="$CPPFLAGS -Dsig_t=nosig_t" test 1 = $HAVE_SIG_T || add_cppflags -Dsig_t=nosig_t
ac_cppflags SIG_T ac_cppflags SIG_T
# #
@ -1301,9 +1313,10 @@ for what in name list; do
extern const char *const _sys_sig${what}[]; extern const char *const _sys_sig${what}[];
int main(void) { return (_sys_sig${what}[0][0]); } int main(void) { return (_sys_sig${what}[0][0]); }
EOF EOF
if eval "test 1 = \$HAVE__SYS_SIG$uwhat"; then eval uwhat_v=\$HAVE__SYS_SIG$uwhat
CPPFLAGS="$CPPFLAGS -Dsys_sig$what=_sys_sig$what" if test 1 = "$uwhat_v"; then
eval "HAVE_SYS_SIG$uwhat=1" add_cppflags -Dsys_sig$what=_sys_sig$what
eval HAVE_SYS_SIG$uwhat=1
fi fi
ac_cppflags SYS_SIG$uwhat ac_cppflags SYS_SIG$uwhat
done done
@ -1562,7 +1575,7 @@ fi
addsrcs '!' HAVE_STRLCPY strlcpy.c addsrcs '!' HAVE_STRLCPY strlcpy.c
addsrcs USE_PRINTF_BUILTIN printf.c addsrcs USE_PRINTF_BUILTIN printf.c
test 1 = "$USE_PRINTF_BUILTIN" && CPPFLAGS="$CPPFLAGS -DMKSH_PRINTF_BUILTIN" test 1 = "$USE_PRINTF_BUILTIN" && add_cppflags -DMKSH_PRINTF_BUILTIN
test 1 = "$HAVE_CAN_VERB" && CFLAGS="$CFLAGS -verbose" test 1 = "$HAVE_CAN_VERB" && CFLAGS="$CFLAGS -verbose"
$e $bi$me: Finished configuration testing, now producing output.$ao $e $bi$me: Finished configuration testing, now producing output.$ao

View File

@ -1,4 +1,4 @@
# $MirOS: src/bin/mksh/check.t,v 1.482 2011/09/07 15:24:10 tg Exp $ # $MirOS: src/bin/mksh/check.t,v 1.483 2011/10/07 19:51:42 tg Exp $
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $ # $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $ # $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $ # $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
@ -25,7 +25,7 @@
# http://www.research.att.com/~gsf/public/ifs.sh # http://www.research.att.com/~gsf/public/ifs.sh
expected-stdout: expected-stdout:
@(#)MIRBSD KSH R40 2011/09/07 @(#)MIRBSD KSH R40 2011/10/07
description: description:
Check version of shell. Check version of shell.
stdin: stdin:

4
sh.h
View File

@ -151,9 +151,9 @@
#endif #endif
#ifdef EXTERN #ifdef EXTERN
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.494 2011/09/07 15:24:19 tg Exp $"); __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.495 2011/10/07 19:51:44 tg Exp $");
#endif #endif
#define MKSH_VERSION "R40 2011/09/07" #define MKSH_VERSION "R40 2011/10/07"
#ifndef MKSH_INCLUDES_ONLY #ifndef MKSH_INCLUDES_ONLY