first attempts at more autoconf'isation
This commit is contained in:
parent
3b29b8be87
commit
0e0782c856
107
Build.sh
107
Build.sh
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $MirOS: src/bin/mksh/Build.sh,v 1.58 2006/09/29 19:33:48 tg Exp $
|
# $MirOS: src/bin/mksh/Build.sh,v 1.59 2006/11/08 23:23:40 tg Exp $
|
||||||
#-
|
#-
|
||||||
# Environment: CC, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, NROFF
|
# Environment: CC, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, NROFF
|
||||||
|
|
||||||
|
@ -67,8 +67,6 @@ SRCS="$SRCS jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c"
|
||||||
test $x = 1 || case `uname -s 2>/dev/null || uname` in
|
test $x = 1 || case `uname -s 2>/dev/null || uname` in
|
||||||
CYGWIN*)
|
CYGWIN*)
|
||||||
LDSTATIC=
|
LDSTATIC=
|
||||||
SRCS="$SRCS compat.c"
|
|
||||||
CPPFLAGS="$CPPFLAGS -DNEED_COMPAT"
|
|
||||||
sigseen=:
|
sigseen=:
|
||||||
;;
|
;;
|
||||||
Darwin)
|
Darwin)
|
||||||
|
@ -76,19 +74,19 @@ Darwin)
|
||||||
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
|
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
|
||||||
;;
|
;;
|
||||||
Interix)
|
Interix)
|
||||||
CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE -DNEED_COMPAT"
|
CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
|
||||||
;;
|
;;
|
||||||
Linux)
|
Linux)
|
||||||
SRCS="$SRCS compat.c strlfun.c"
|
SRCS="$SRCS compat.c strlfun.c"
|
||||||
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_GNU_SOURCE"
|
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_GNU_SOURCE"
|
||||||
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DNEED_COMPAT"
|
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
|
||||||
LDSTATIC=
|
LDSTATIC=
|
||||||
sigseen=:
|
sigseen=:
|
||||||
;;
|
;;
|
||||||
SunOS)
|
SunOS)
|
||||||
SRCS="$SRCS compat.c"
|
SRCS="$SRCS compat.c"
|
||||||
CPPFLAGS="$CPPFLAGS -D_BSD_SOURCE -D__EXTENSIONS__"
|
CPPFLAGS="$CPPFLAGS -D_BSD_SOURCE -D__EXTENSIONS__"
|
||||||
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -DNEED_COMPAT"
|
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
|
||||||
LDSTATIC=
|
LDSTATIC=
|
||||||
sigseen=:
|
sigseen=:
|
||||||
r=1
|
r=1
|
||||||
|
@ -120,50 +118,119 @@ if test x"$sigseen" = x:; then
|
||||||
test -f signames.inc || exit 1
|
test -f signames.inc || exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$e Scanning for functions...
|
$e Scanning for functions... please ignore any errors.
|
||||||
|
|
||||||
test 0 = "$HAVE_ARC4RANDOM" || test 1 = "$HAVE_ARC4RANDOM" ||
|
f=arc4random
|
||||||
|
fu=$(echo $f | tr '[a-z]' '[A-Z]')
|
||||||
|
test 0 = "$HAVE_$fu" || test 1 = "$HAVE_$fu" ||
|
||||||
{
|
{
|
||||||
$e ... arc4random
|
$e ... $f
|
||||||
cat >scn.c <<-'EOF'
|
cat >scn.c <<-'EOF'
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
int main() { arc4random(); return (0); }
|
int main() { arc4random(); return (0); }
|
||||||
EOF
|
EOF
|
||||||
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
||||||
if test -f a.out || test -f a.exe; then
|
if test -f a.out || test -f a.exe; then
|
||||||
HAVE_ARC4RANDOM=1
|
eval HAVE_$fu=1
|
||||||
$e "==> arc4random... yes"
|
$e "==> $f... yes"
|
||||||
else
|
else
|
||||||
HAVE_ARC4RANDOM=0
|
eval HAVE_$fu=0
|
||||||
$e "==> arc4random... no"
|
$e "==> $f... no"
|
||||||
fi
|
fi
|
||||||
rm -f scn.c a.out a.exe
|
rm -f scn.c a.out a.exe
|
||||||
}
|
}
|
||||||
|
|
||||||
test 0 = "$HAVE_ARC4RANDOM_PUSH" || test 1 = "$HAVE_ARC4RANDOM_PUSH" ||
|
f=arc4random_push
|
||||||
|
fu=$(echo $f | tr '[a-z]' '[A-Z]')
|
||||||
|
test 0 = "$HAVE_$fu" || test 1 = "$HAVE_$fu" ||
|
||||||
if test 1 = "$HAVE_ARC4RANDOM"; then
|
if test 1 = "$HAVE_ARC4RANDOM"; then
|
||||||
$e ... arc4random_push
|
$e ... $f
|
||||||
cat >scn.c <<-'EOF'
|
cat >scn.c <<-'EOF'
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
int main() { arc4random_push(1); return (0); }
|
int main() { arc4random_push(1); return (0); }
|
||||||
EOF
|
EOF
|
||||||
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
||||||
if test -f a.out || test -f a.exe; then
|
if test -f a.out || test -f a.exe; then
|
||||||
HAVE_ARC4RANDOM_PUSH=1
|
eval HAVE_$fu=1
|
||||||
$e "==> arc4random_push... yes"
|
$e "==> $f... yes"
|
||||||
else
|
else
|
||||||
HAVE_ARC4RANDOM_PUSH=0
|
eval HAVE_$fu=0
|
||||||
$e "==> arc4random_push... no"
|
$e "==> $f... no"
|
||||||
fi
|
fi
|
||||||
rm -f scn.c a.out a.exe
|
rm -f scn.c a.out a.exe
|
||||||
else
|
else
|
||||||
HAVE_ARC4RANDOM_PUSH=0
|
HAVE_ARC4RANDOM_PUSH=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
f=setmode
|
||||||
|
fu=$(echo $f | tr '[a-z]' '[A-Z]')
|
||||||
|
test 0 = "$HAVE_$fu" || test 1 = "$HAVE_$fu" ||
|
||||||
|
{
|
||||||
|
$e ... $f
|
||||||
|
cat >scn.c <<-'EOF'
|
||||||
|
#include <unistd.h>
|
||||||
|
int main(int ac, char *av[]) { setmode(av[0]); return (0); }
|
||||||
|
EOF
|
||||||
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
||||||
|
if test -f a.out || test -f a.exe; then
|
||||||
|
eval HAVE_$fu=1
|
||||||
|
$e "==> $f... yes"
|
||||||
|
else
|
||||||
|
eval HAVE_$fu=0
|
||||||
|
SRCS="$SRCS setmode.c"
|
||||||
|
$e "==> $f... no"
|
||||||
|
fi
|
||||||
|
rm -f scn.c a.out a.exe
|
||||||
|
}
|
||||||
|
|
||||||
|
f=strlcat
|
||||||
|
fu=$(echo $f | tr '[a-z]' '[A-Z]')
|
||||||
|
test 0 = "$HAVE_$fu" || test 1 = "$HAVE_$fu" ||
|
||||||
|
{
|
||||||
|
$e ... $f
|
||||||
|
cat >scn.c <<-'EOF'
|
||||||
|
#include <string.h>
|
||||||
|
int main(int ac, char *av[]) { strlcat(av[0], av[1], 1); return (0); }
|
||||||
|
EOF
|
||||||
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
||||||
|
if test -f a.out || test -f a.exe; then
|
||||||
|
eval HAVE_$fu=1
|
||||||
|
$e "==> $f... yes"
|
||||||
|
else
|
||||||
|
eval HAVE_$fu=0
|
||||||
|
SRCS="$SRCS strlfun.c"
|
||||||
|
$e "==> $f... no"
|
||||||
|
fi
|
||||||
|
rm -f scn.c a.out a.exe
|
||||||
|
}
|
||||||
|
|
||||||
|
f=strlcpy
|
||||||
|
fu=$(echo $f | tr '[a-z]' '[A-Z]')
|
||||||
|
test 0 = "$HAVE_$fu" || test 1 = "$HAVE_$fu" ||
|
||||||
|
{
|
||||||
|
$e ... $f
|
||||||
|
cat >scn.c <<-'EOF'
|
||||||
|
#include <string.h>
|
||||||
|
int main(int ac, char *av[]) { strlcpy(av[0], av[1], 1); return (0); }
|
||||||
|
EOF
|
||||||
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS $NOWARN scn.c $LIBS
|
||||||
|
if test -f a.out || test -f a.exe; then
|
||||||
|
eval HAVE_$fu=1
|
||||||
|
$e "==> $f... yes"
|
||||||
|
else
|
||||||
|
eval HAVE_$fu=0
|
||||||
|
SRCS="$SRCS strlfun.c"
|
||||||
|
$e "==> $f... no"
|
||||||
|
fi
|
||||||
|
rm -f scn.c a.out a.exe
|
||||||
|
}
|
||||||
|
|
||||||
$e ... done.
|
$e ... done.
|
||||||
addcppf HAVE_ARC4RANDOM HAVE_ARC4RANDOM_PUSH
|
addcppf HAVE_ARC4RANDOM HAVE_ARC4RANDOM_PUSH HAVE_SETMODE \
|
||||||
|
HAVE_STRLCAT HAVE_STRLCPY
|
||||||
|
|
||||||
(v "cd '$srcdir' && exec $CC $CFLAGS -I'$curdir' $CPPFLAGS" \
|
(v "cd '$srcdir' && exec $CC $CFLAGS -I'$curdir' $CPPFLAGS" \
|
||||||
|
"-DHAVE_CONFIG_H -DCONFIG_H_FILENAME=\\\"sh.h\\\"" \
|
||||||
"$LDFLAGS $LDSTATIC -o '$curdir/mksh' $SRCS $LIBS") || exit 1
|
"$LDFLAGS $LDSTATIC -o '$curdir/mksh' $SRCS $LIBS") || exit 1
|
||||||
result=mksh
|
result=mksh
|
||||||
test -f mksh.exe && result=mksh.exe
|
test -f mksh.exe && result=mksh.exe
|
||||||
|
|
7
compat.c
7
compat.c
|
@ -1,7 +0,0 @@
|
||||||
#include "sh.h"
|
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/compat.c,v 1.2 2006/09/21 22:03:23 tg Exp $");
|
|
||||||
|
|
||||||
#if defined(__gnu_linux__) || defined(__sun__) || defined(__CYGWIN__)
|
|
||||||
#include "setmode.c"
|
|
||||||
#endif
|
|
14
setmode.c
14
setmode.c
|
@ -1,4 +1,5 @@
|
||||||
/** _MirOS: src/lib/libc/gen/setmode.c,v 1.5 2006/07/03 12:13:52 tg Exp $ */
|
/** $MirOS: src/bin/mksh/setmode.c,v 1.4 2006/11/08 23:23:41 tg Exp $ */
|
||||||
|
/** _MirOS: src/lib/libc/gen/setmode.c,v 1.6 2006/11/08 23:18:04 tg Exp $ */
|
||||||
/* $OpenBSD: setmode.c,v 1.17 2005/08/08 08:05:34 espie Exp $ */
|
/* $OpenBSD: setmode.c,v 1.17 2005/08/08 08:05:34 espie Exp $ */
|
||||||
/* $NetBSD: setmode.c,v 1.15 1997/02/07 22:21:06 christos Exp $ */
|
/* $NetBSD: setmode.c,v 1.15 1997/02/07 22:21:06 christos Exp $ */
|
||||||
|
|
||||||
|
@ -34,6 +35,15 @@
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(HAVE_CONFIG_H) && (HAVE_CONFIG_H != 0)
|
||||||
|
/* usually when packaged with third-party software */
|
||||||
|
#ifdef CONFIG_H_FILENAME
|
||||||
|
#include CONFIG_H_FILENAME
|
||||||
|
#else
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
@ -48,7 +58,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__SCCSID("@(#)setmode.c 8.2 (Berkeley) 3/25/94");
|
__SCCSID("@(#)setmode.c 8.2 (Berkeley) 3/25/94");
|
||||||
__RCSID("$MirOS: src/bin/mksh/setmode.c,v 1.3 2006/08/01 13:43:28 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/setmode.c,v 1.4 2006/11/08 23:23:41 tg Exp $");
|
||||||
|
|
||||||
#define SET_LEN 6 /* initial # of bitcmd struct to malloc */
|
#define SET_LEN 6 /* initial # of bitcmd struct to malloc */
|
||||||
#define SET_LEN_INCR 4 /* # of bitcmd structs to add as needed */
|
#define SET_LEN_INCR 4 /* # of bitcmd structs to add as needed */
|
||||||
|
|
21
sh.h
21
sh.h
|
@ -8,7 +8,7 @@
|
||||||
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
||||||
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
||||||
|
|
||||||
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.50 2006/11/05 17:01:47 tg Exp $"
|
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.51 2006/11/08 23:23:41 tg Exp $"
|
||||||
#define MKSH_VERSION "R29 2006/11/05"
|
#define MKSH_VERSION "R29 2006/11/05"
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
@ -60,7 +60,6 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef NEED_COMPAT
|
|
||||||
/* extra headers */
|
/* extra headers */
|
||||||
|
|
||||||
#if defined(__sun__) || defined(__INTERIX)
|
#if defined(__sun__) || defined(__INTERIX)
|
||||||
|
@ -101,11 +100,20 @@
|
||||||
#ifndef S_ISTXT
|
#ifndef S_ISTXT
|
||||||
#define S_ISTXT 0001000
|
#define S_ISTXT 0001000
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef DEFFILEMODE
|
||||||
|
#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* OS-dependent additions */
|
/* OS-dependent additions */
|
||||||
|
|
||||||
#if defined(__gnu_linux__)
|
#if !defined(HAVE_SETMODE) || (HAVE_SETMODE == 0)
|
||||||
|
mode_t getmode(const void *, mode_t);
|
||||||
|
void *setmode(const char *);
|
||||||
|
#endif
|
||||||
|
#if !defined(HAVE_STRLCAT) || (HAVE_STRLCAT == 0)
|
||||||
size_t strlcat(char *, const char *, size_t);
|
size_t strlcat(char *, const char *, size_t);
|
||||||
|
#endif
|
||||||
|
#if !defined(HAVE_STRLCPY) || (HAVE_STRLCPY == 0)
|
||||||
size_t strlcpy(char *, const char *, size_t);
|
size_t strlcpy(char *, const char *, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -113,18 +121,11 @@ size_t strlcpy(char *, const char *, size_t);
|
||||||
size_t confstr(int, char *, size_t);
|
size_t confstr(int, char *, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__gnu_linux__) || defined(__sun__) || defined(__CYGWIN__)
|
|
||||||
#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
|
|
||||||
mode_t getmode(const void *, mode_t);
|
|
||||||
void *setmode(const char *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __INTERIX
|
#ifdef __INTERIX
|
||||||
#define makedev(x,y) mkdev((x),(y))
|
#define makedev(x,y) mkdev((x),(y))
|
||||||
extern int __cdecl seteuid(uid_t);
|
extern int __cdecl seteuid(uid_t);
|
||||||
extern int __cdecl setegid(gid_t);
|
extern int __cdecl setegid(gid_t);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/* some useful #defines */
|
/* some useful #defines */
|
||||||
#ifdef EXTERN
|
#ifdef EXTERN
|
||||||
|
|
12
strlfun.c
12
strlfun.c
|
@ -1,5 +1,5 @@
|
||||||
/* $MirOS: src/bin/mksh/strlfun.c,v 1.5 2006/11/08 23:02:30 tg Exp $ */
|
/* $MirOS: src/bin/mksh/strlfun.c,v 1.6 2006/11/08 23:23:41 tg Exp $ */
|
||||||
/* _MirOS: src/lib/libc/string/strlfun.c,v 1.9 2006/11/08 23:01:50 tg Exp $ */
|
/* _MirOS: src/lib/libc/string/strlfun.c,v 1.10 2006/11/08 23:18:04 tg Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2006
|
* Copyright (c) 2006
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
#undef HAVE_STRLCPY
|
#undef HAVE_STRLCPY
|
||||||
#undef HAVE_STRLCAT
|
#undef HAVE_STRLCAT
|
||||||
#else
|
#else
|
||||||
#if (HAVE_CONFIG_H - 0)
|
#if defined(HAVE_CONFIG_H) && (HAVE_CONFIG_H != 0)
|
||||||
/* usually when packaged with third-party software */
|
/* usually when packaged with third-party software */
|
||||||
#ifdef CONFIG_H_FILENAME
|
#ifdef CONFIG_H_FILENAME
|
||||||
#include CONFIG_H_FILENAME
|
#include CONFIG_H_FILENAME
|
||||||
|
@ -71,12 +71,12 @@ extern size_t strlen(const char *);
|
||||||
#define __predict_false(exp) ((exp) != 0)
|
#define __predict_false(exp) ((exp) != 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/strlfun.c,v 1.5 2006/11/08 23:02:30 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/strlfun.c,v 1.6 2006/11/08 23:23:41 tg Exp $");
|
||||||
|
|
||||||
size_t strlcat(char *, const char *, size_t);
|
size_t strlcat(char *, const char *, size_t);
|
||||||
size_t strlcpy(char *, const char *, size_t);
|
size_t strlcpy(char *, const char *, size_t);
|
||||||
|
|
||||||
#if !(HAVE_STRLCAT - 0)
|
#if !defined(HAVE_STRLCAT) || (HAVE_STRLCAT == 0)
|
||||||
/*
|
/*
|
||||||
* Appends src to string dst of size siz (unlike strncat, siz is the
|
* Appends src to string dst of size siz (unlike strncat, siz is the
|
||||||
* full size of dst, not space left). At most siz-1 characters
|
* full size of dst, not space left). At most siz-1 characters
|
||||||
|
@ -113,7 +113,7 @@ strlcat(char *dst, const char *src, size_t dlen)
|
||||||
* copyright notice and this permission notice appear in all copies.
|
* copyright notice and this permission notice appear in all copies.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if !(HAVE_STRLCPY - 0)
|
#if !defined(HAVE_STRLCPY) || (HAVE_STRLCPY == 0)
|
||||||
/*
|
/*
|
||||||
* Copy src to string dst of size siz. At most siz-1 characters
|
* Copy src to string dst of size siz. At most siz-1 characters
|
||||||
* will be copied. Always NUL terminates (unless siz == 0).
|
* will be copied. Always NUL terminates (unless siz == 0).
|
||||||
|
|
Loading…
Reference in New Issue