mirror of
https://github.com/devkitPro/buildscripts.git
synced 2026-04-20 01:17:20 -05:00
10986 lines
330 KiB
Diff
10986 lines
330 KiB
Diff
diff -Nbaur newlib-1.20.0/config.sub newlib-1.20.0-psp/config.sub
|
||
--- newlib-1.20.0/config.sub 2011-11-02 00:56:53.000000000 +0000
|
||
+++ newlib-1.20.0-psp/config.sub 2012-02-25 14:10:34.000000000 +0000
|
||
@@ -283,6 +283,7 @@
|
||
| mipsisa64sb1 | mipsisa64sb1el \
|
||
| mipsisa64sr71k | mipsisa64sr71kel \
|
||
| mipstx39 | mipstx39el \
|
||
+ | mipsallegrex | mipsallegrexel \
|
||
| mn10200 | mn10300 \
|
||
| moxie \
|
||
| mt \
|
||
@@ -396,6 +397,7 @@
|
||
| mipsisa64sb1-* | mipsisa64sb1el-* \
|
||
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||
| mipstx39-* | mipstx39el-* \
|
||
+ | mipsallegrex-* | mipsallegrexel-* \
|
||
| mmix-* \
|
||
| mt-* \
|
||
| msp430-* \
|
||
@@ -795,6 +797,10 @@
|
||
basic_machine=m68k-atari
|
||
os=-mint
|
||
;;
|
||
+ psp)
|
||
+ basic_machine=mipsallegrexel-psp
|
||
+ os=-elf
|
||
+ ;;
|
||
mips3*-*)
|
||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
||
;;
|
||
diff -Nbaur newlib-1.20.0/configure newlib-1.20.0-psp/configure
|
||
--- newlib-1.20.0/configure 2011-12-18 10:20:51.000000000 +0000
|
||
+++ newlib-1.20.0-psp/configure 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -3598,6 +3598,9 @@
|
||
;;
|
||
mips*-*-linux*)
|
||
;;
|
||
+ mipsallegrex*-*-*)
|
||
+ noconfigdirs="$noconfigdirs target-libgloss"
|
||
+ ;;
|
||
mips*-*-*)
|
||
noconfigdirs="$noconfigdirs gprof"
|
||
;;
|
||
diff -Nbaur newlib-1.20.0/configure.ac newlib-1.20.0-psp/configure.ac
|
||
--- newlib-1.20.0/configure.ac 2011-11-09 18:57:28.000000000 +0000
|
||
+++ newlib-1.20.0-psp/configure.ac 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -1024,6 +1024,9 @@
|
||
;;
|
||
mips*-*-linux*)
|
||
;;
|
||
+ mipsallegrex*-*-*)
|
||
+ noconfigdirs="$noconfigdirs target-libgloss"
|
||
+ ;;
|
||
mips*-*-*)
|
||
noconfigdirs="$noconfigdirs gprof"
|
||
;;
|
||
diff -Nbaur newlib-1.20.0/newlib/Makefile.am newlib-1.20.0-psp/newlib/Makefile.am
|
||
--- newlib-1.20.0/newlib/Makefile.am 2011-05-19 07:04:59.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/Makefile.am 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -283,6 +283,18 @@
|
||
for i in $(srcdir)/libc/include/rpc/*.h; do \
|
||
$(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/rpc/`basename $$i`; \
|
||
done; \
|
||
+ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/netinet; \
|
||
+ for i in $(srcdir)/libc/sys/$(sys_dir)/netinet/*.h; do \
|
||
+ if [ -f $$i ]; then \
|
||
+ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/netinet/`basename $$i`; \
|
||
+ else true; fi ; \
|
||
+ done ; \
|
||
+ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/arpa; \
|
||
+ for i in $(srcdir)/libc/sys/$(sys_dir)/arpa/*.h; do \
|
||
+ if [ -f $$i ]; then \
|
||
+ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/arpa/`basename $$i`; \
|
||
+ else true; fi ; \
|
||
+ done ; \
|
||
$(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
|
||
for i in $(srcdir)/libc/include/sys/*.h; do \
|
||
$(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
|
||
diff -Nbaur newlib-1.20.0/newlib/Makefile.in newlib-1.20.0-psp/newlib/Makefile.in
|
||
--- newlib-1.20.0/newlib/Makefile.in 2011-05-19 07:04:59.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/Makefile.in 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -990,6 +990,18 @@
|
||
for i in $(srcdir)/libc/include/rpc/*.h; do \
|
||
$(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/rpc/`basename $$i`; \
|
||
done; \
|
||
+ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/netinet; \
|
||
+ for i in $(srcdir)/libc/sys/$(sys_dir)/netinet/*.h; do \
|
||
+ if [ -f $$i ]; then \
|
||
+ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/netinet/`basename $$i`; \
|
||
+ else true; fi ; \
|
||
+ done ; \
|
||
+ $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/arpa; \
|
||
+ for i in $(srcdir)/libc/sys/$(sys_dir)/arpa/*.h; do \
|
||
+ if [ -f $$i ]; then \
|
||
+ $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/arpa/`basename $$i`; \
|
||
+ else true; fi ; \
|
||
+ done ; \
|
||
$(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
|
||
for i in $(srcdir)/libc/include/sys/*.h; do \
|
||
$(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
|
||
diff -Nbaur newlib-1.20.0/newlib/configure.host newlib-1.20.0-psp/newlib/configure.host
|
||
--- newlib-1.20.0/newlib/configure.host 2011-11-29 06:33:48.000000000 +0000
|
||
+++ newlib-1.20.0-psp/newlib/configure.host 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -535,7 +535,7 @@
|
||
default_newlib_io_long_long="yes"
|
||
default_newlib_io_c99_formats="yes"
|
||
newlib_cflags="${newlib_cflags} -D_COMPILING_NEWLIB"
|
||
- newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC"
|
||
+ newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC -DHAVE_RENAME"
|
||
# turn off unsupported items in posix directory
|
||
newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_WORDEXP -D_NO_POPEN"
|
||
;;
|
||
@@ -665,6 +665,12 @@
|
||
default_newlib_io_long_long="yes"
|
||
newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
|
||
;;
|
||
+ mipsallegrex*-psp-*)
|
||
+ default_newlib_io_long_long="yes"
|
||
+ sys_dir=psp
|
||
+ syscall_dir=syscalls
|
||
+ newlib_cflags="${newlib_cflags} -G0 -mno-explicit-relocs -DCOMPACT_CTYPE -DCLOCK_PROVIDED -DHAVE_FCNTL -DHAVE_RENAME -DMALLOC_ALIGNMENT=16 -I${prefix}/psp/sdk/include"
|
||
+ ;;
|
||
mips*-*-elf*)
|
||
default_newlib_io_long_long="yes"
|
||
newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/include/machine/time.h newlib-1.20.0-psp/newlib/libc/include/machine/time.h
|
||
--- newlib-1.20.0/newlib/libc/include/machine/time.h 2009-04-06 23:04:33.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/include/machine/time.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -9,6 +9,10 @@
|
||
#endif
|
||
#endif /* !__rtems__ */
|
||
|
||
+#if defined(__psp__)
|
||
+#define _CLOCKS_PER_SEC_ 1000000
|
||
+#endif
|
||
+
|
||
#ifdef __SPU__
|
||
#include <sys/types.h>
|
||
int nanosleep (const struct timespec *, struct timespec *);
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/include/stdint.h newlib-1.20.0-psp/newlib/libc/include/stdint.h
|
||
--- newlib-1.20.0/newlib/libc/include/stdint.h 2009-04-24 22:55:07.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/include/stdint.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -30,11 +30,9 @@
|
||
#define __have_longlong64 1
|
||
#endif
|
||
|
||
-/* Check if "long" is 64bit or 32bit wide */
|
||
+/* Check if "long" is 64bit */
|
||
#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
|
||
#define __have_long64 1
|
||
-#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
|
||
-#define __have_long32 1
|
||
#endif
|
||
|
||
#if __STDINT_EXP(SCHAR_MAX) == 0x7f
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/include/sys/config.h newlib-1.20.0-psp/newlib/libc/include/sys/config.h
|
||
--- newlib-1.20.0/newlib/libc/include/sys/config.h 2010-12-02 19:30:46.000000000 +0000
|
||
+++ newlib-1.20.0-psp/newlib/libc/include/sys/config.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -130,6 +130,12 @@
|
||
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
|
||
#endif
|
||
|
||
+/* We compile newlib with -G0 for PSP, but if we're compiling an app with $gp enabled,
|
||
+ then _impure_ptr is expected to live in .sdata. */
|
||
+#if defined(__psp__)
|
||
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
|
||
+#endif
|
||
+
|
||
#ifdef __xstormy16__
|
||
#define __SMALL_BITFIELDS
|
||
#undef INT_MAX
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/include/sys/types.h newlib-1.20.0-psp/newlib/libc/include/sys/types.h
|
||
--- newlib-1.20.0/newlib/libc/include/sys/types.h 2011-08-01 18:22:18.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/include/sys/types.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -200,6 +200,7 @@
|
||
|
||
typedef unsigned short nlink_t;
|
||
|
||
+#if !defined(__psp__)
|
||
/* We don't define fd_set and friends if we are compiling POSIX
|
||
source, or if we have included (or may include as indicated
|
||
by __USE_W32_SOCKETS) the W32api winsock[2].h header which
|
||
@@ -245,6 +246,7 @@
|
||
}))
|
||
|
||
# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) */
|
||
+#endif /* !defined(__psp__) */
|
||
|
||
#undef __MS_types__
|
||
#undef _ST_INT32
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/include/sys/unistd.h newlib-1.20.0-psp/newlib/libc/include/sys/unistd.h
|
||
--- newlib-1.20.0/newlib/libc/include/sys/unistd.h 2011-08-19 15:29:34.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/include/sys/unistd.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -241,6 +241,7 @@
|
||
void _EXFUN(sync, (void));
|
||
#endif
|
||
|
||
+#if !defined(__psp__)
|
||
ssize_t _EXFUN(readlink, (const char *__path, char *__buf, size_t __buflen));
|
||
#if defined(__CYGWIN__)
|
||
ssize_t _EXFUN(readlinkat, (int __dirfd1, const char *__path, char *__buf, size_t __buflen));
|
||
@@ -250,6 +251,7 @@
|
||
int _EXFUN(symlinkat, (const char *, int, const char *));
|
||
int _EXFUN(unlinkat, (int, const char *, int));
|
||
#endif
|
||
+#endif
|
||
|
||
#define F_OK 0
|
||
#define R_OK 4
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/configure newlib-1.20.0-psp/newlib/libc/sys/configure
|
||
--- newlib-1.20.0/newlib/libc/sys/configure 2011-12-19 22:03:37.000000000 +0000
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/configure 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -796,6 +796,7 @@
|
||
mmixware
|
||
netware
|
||
rdos
|
||
+psp
|
||
rtems
|
||
sh
|
||
sparc64
|
||
@@ -11808,6 +11809,8 @@
|
||
;;
|
||
rdos) subdirs="$subdirs rdos"
|
||
;;
|
||
+ psp) subdirs="$subdirs psp"
|
||
+ ;;
|
||
rtems) subdirs="$subdirs rtems"
|
||
;;
|
||
sh) subdirs="$subdirs sh"
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/configure.in newlib-1.20.0-psp/newlib/libc/sys/configure.in
|
||
--- newlib-1.20.0/newlib/libc/sys/configure.in 2010-02-24 20:59:55.000000000 +0000
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/configure.in 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -34,6 +34,7 @@
|
||
mmixware) AC_CONFIG_SUBDIRS(mmixware) ;;
|
||
netware) AC_CONFIG_SUBDIRS(netware) ;;
|
||
rdos) AC_CONFIG_SUBDIRS(rdos) ;;
|
||
+ psp) AC_CONFIG_SUBDIRS(psp) ;;
|
||
rtems) AC_CONFIG_SUBDIRS(rtems) ;;
|
||
sh) AC_CONFIG_SUBDIRS(sh) ;;
|
||
sparc64) AC_CONFIG_SUBDIRS(sparc64) ;;
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/Makefile.am newlib-1.20.0-psp/newlib/libc/sys/psp/Makefile.am
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/Makefile.am 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,71 @@
|
||
+## Process this file with automake to generate Makefile.in
|
||
+
|
||
+AUTOMAKE_OPTIONS = cygnus
|
||
+
|
||
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||
+
|
||
+AM_CCASFLAGS = $(INCLUDES) $(CFLAGS)
|
||
+
|
||
+noinst_LIBRARIES = lib.a
|
||
+
|
||
+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o \
|
||
+ _gettimeofday.o _kill.o _lseek.o _open.o _read.o \
|
||
+ _sbrk.o _wait.o _write.o clock.o isatty.o _isatty.o \
|
||
+ time.o_link.o _unlink.o sleep.o opendir.o readdir.o \
|
||
+ closedir.o getcwd.o chdir.o mkdir.o rmdir.o \
|
||
+ realpath.o _stat.o truncate.o access.o tzset.o \
|
||
+ __psp_set_errno.o mlock.o _fcntl.o _rename.o nanosleep.o
|
||
+
|
||
+SOCKET_MULT_OBJS = socket.o accept.o bind.o connect.o getsockopt.o \
|
||
+ listen.o recv.o recvfrom.o send.o sendto.o \
|
||
+ setsockopt.o shutdown.o getsockname.o getpeername.o \
|
||
+ inet_ntoa.o
|
||
+
|
||
+PE_OBJS = pipe.o
|
||
+
|
||
+FDMAN_OBJS = fdman.o
|
||
+
|
||
+SELECT_OBJS = select.o
|
||
+
|
||
+INTERRUPT_OBJS = interrupt.o
|
||
+
|
||
+XPRINTF_MULT_OBJS = vxprintf.o _xprintf.o __sout.o vsnprintf.o snprintf.o \
|
||
+ vsprintf.o sprintf.o __mout.o mprintf.o vmprintf.o asprintf.o \
|
||
+ vasprintf.o __fout.o fprintf.o vfprintf.o printf.o vprintf.o \
|
||
+ _sprintf_r.o
|
||
+
|
||
+NETDB_MULT_OBJS = h_errno.o gethostbyaddr.o gethostbyname.o
|
||
+
|
||
+
|
||
+lib_a_SOURCES = libcglue.c socket.c pspcwd.c xprintf.c netdb.c pipe.c fdman.c select.c syscalls.c interrupt.S
|
||
+lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS) $(SOCKET_MULT_OBJS) $(XPRINTF_MULT_OBJS) \
|
||
+ $(NETDB_MULT_OBJS) $(PIPE_OBJS) $(FDMAN_OBJS) $(SELECT_OBJS) $(INTERRUPT_OBJS)
|
||
+
|
||
+all: crt0.o
|
||
+
|
||
+$(LIBCGLUE_MULT_OBJS): libcglue.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(SOCKET_MULT_OBJS): socket.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(XPRINTF_MULT_OBJS): xprintf.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(NETDB_MULT_OBJS): netdb.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(PIPE_OBJS): pipe.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(FDMAN_OBJS): fdman.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(SELECT_OBJS): select.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(INTERRUPT_OBJS): interrupt.S
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+ACLOCAL_AMFLAGS = -I ../../..
|
||
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/Makefile.in newlib-1.20.0-psp/newlib/libc/sys/psp/Makefile.in
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/Makefile.in 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/Makefile.in 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,468 @@
|
||
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||
+# @configure_input@
|
||
+
|
||
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||
+# Inc.
|
||
+# This Makefile.in is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# This program is distributed in the hope that it will be useful,
|
||
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||
+# PARTICULAR PURPOSE.
|
||
+
|
||
+@SET_MAKE@
|
||
+
|
||
+VPATH = @srcdir@
|
||
+pkgdatadir = $(datadir)/@PACKAGE@
|
||
+pkgincludedir = $(includedir)/@PACKAGE@
|
||
+pkglibdir = $(libdir)/@PACKAGE@
|
||
+pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||
+install_sh_DATA = $(install_sh) -c -m 644
|
||
+install_sh_PROGRAM = $(install_sh) -c
|
||
+install_sh_SCRIPT = $(install_sh) -c
|
||
+INSTALL_HEADER = $(INSTALL_DATA)
|
||
+transform = $(program_transform_name)
|
||
+NORMAL_INSTALL = :
|
||
+PRE_INSTALL = :
|
||
+POST_INSTALL = :
|
||
+NORMAL_UNINSTALL = :
|
||
+PRE_UNINSTALL = :
|
||
+POST_UNINSTALL = :
|
||
+build_triplet = @build@
|
||
+host_triplet = @host@
|
||
+subdir = .
|
||
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||
+ $(top_srcdir)/configure $(am__configure_deps) \
|
||
+ $(srcdir)/../../../../mkinstalldirs
|
||
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||
+am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
|
||
+ $(top_srcdir)/configure.in
|
||
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||
+ $(ACLOCAL_M4)
|
||
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||
+ configure.lineno config.status.lineno
|
||
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
|
||
+CONFIG_CLEAN_FILES =
|
||
+CONFIG_CLEAN_VPATH_FILES =
|
||
+LIBRARIES = $(noinst_LIBRARIES)
|
||
+ARFLAGS = cru
|
||
+lib_a_AR = $(AR) $(ARFLAGS)
|
||
+lib_a_DEPENDENCIES = $(LIBCGLUE_MULT_OBJS) $(SOCKET_MULT_OBJS) \
|
||
+ $(XPRINTF_MULT_OBJS) $(NETDB_MULT_OBJS) $(FDMAN_OBJS) \
|
||
+ $(SELECT_OBJS) $(INTERRUPT_OBJS)
|
||
+am_lib_a_OBJECTS = libcglue.$(OBJEXT) socket.$(OBJEXT) \
|
||
+ pspcwd.$(OBJEXT) xprintf.$(OBJEXT) netdb.$(OBJEXT) \
|
||
+ pipe.$(OBJEXT) fdman.$(OBJEXT) select.$(OBJEXT) \
|
||
+ syscalls.$(OBJEXT) interrupt.$(OBJEXT)
|
||
+lib_a_OBJECTS = $(am_lib_a_OBJECTS)
|
||
+DEFAULT_INCLUDES = -I.@am__isrc@
|
||
+depcomp =
|
||
+am__depfiles_maybe =
|
||
+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
|
||
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||
+CCLD = $(CC)
|
||
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||
+SOURCES = $(lib_a_SOURCES)
|
||
+ETAGS = etags
|
||
+CTAGS = ctags
|
||
+ACLOCAL = @ACLOCAL@
|
||
+AMTAR = @AMTAR@
|
||
+AR = @AR@
|
||
+AS = @AS@
|
||
+AUTOCONF = @AUTOCONF@
|
||
+AUTOHEADER = @AUTOHEADER@
|
||
+AUTOMAKE = @AUTOMAKE@
|
||
+AWK = @AWK@
|
||
+CC = @CC@
|
||
+CCAS = @CCAS@
|
||
+CCASFLAGS = @CCASFLAGS@
|
||
+CCDEPMODE = @CCDEPMODE@
|
||
+CYGPATH_W = @CYGPATH_W@
|
||
+DEFS = @DEFS@
|
||
+DEPDIR = @DEPDIR@
|
||
+ECHO_C = @ECHO_C@
|
||
+ECHO_N = @ECHO_N@
|
||
+ECHO_T = @ECHO_T@
|
||
+INSTALL = @INSTALL@
|
||
+INSTALL_DATA = @INSTALL_DATA@
|
||
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||
+LDFLAGS = @LDFLAGS@
|
||
+LIBOBJS = @LIBOBJS@
|
||
+LIBS = @LIBS@
|
||
+LTLIBOBJS = @LTLIBOBJS@
|
||
+MAINT = @MAINT@
|
||
+MAKEINFO = @MAKEINFO@
|
||
+MKDIR_P = @MKDIR_P@
|
||
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
|
||
+NO_INCLUDE_LIST = @NO_INCLUDE_LIST@
|
||
+OBJEXT = @OBJEXT@
|
||
+PACKAGE = @PACKAGE@
|
||
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||
+PACKAGE_NAME = @PACKAGE_NAME@
|
||
+PACKAGE_STRING = @PACKAGE_STRING@
|
||
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||
+PACKAGE_URL = @PACKAGE_URL@
|
||
+PACKAGE_VERSION = @PACKAGE_VERSION@
|
||
+PATH_SEPARATOR = @PATH_SEPARATOR@
|
||
+RANLIB = @RANLIB@
|
||
+READELF = @READELF@
|
||
+SET_MAKE = @SET_MAKE@
|
||
+SHELL = @SHELL@
|
||
+STRIP = @STRIP@
|
||
+VERSION = @VERSION@
|
||
+abs_builddir = @abs_builddir@
|
||
+abs_srcdir = @abs_srcdir@
|
||
+abs_top_builddir = @abs_top_builddir@
|
||
+abs_top_srcdir = @abs_top_srcdir@
|
||
+aext = @aext@
|
||
+am__include = @am__include@
|
||
+am__leading_dot = @am__leading_dot@
|
||
+am__quote = @am__quote@
|
||
+am__tar = @am__tar@
|
||
+am__untar = @am__untar@
|
||
+bindir = @bindir@
|
||
+build = @build@
|
||
+build_alias = @build_alias@
|
||
+build_cpu = @build_cpu@
|
||
+build_os = @build_os@
|
||
+build_vendor = @build_vendor@
|
||
+builddir = @builddir@
|
||
+datadir = @datadir@
|
||
+datarootdir = @datarootdir@
|
||
+docdir = @docdir@
|
||
+dvidir = @dvidir@
|
||
+exec_prefix = @exec_prefix@
|
||
+host = @host@
|
||
+host_alias = @host_alias@
|
||
+host_cpu = @host_cpu@
|
||
+host_os = @host_os@
|
||
+host_vendor = @host_vendor@
|
||
+htmldir = @htmldir@
|
||
+includedir = @includedir@
|
||
+infodir = @infodir@
|
||
+install_sh = @install_sh@
|
||
+libdir = @libdir@
|
||
+libexecdir = @libexecdir@
|
||
+libm_machine_dir = @libm_machine_dir@
|
||
+localedir = @localedir@
|
||
+localstatedir = @localstatedir@
|
||
+lpfx = @lpfx@
|
||
+machine_dir = @machine_dir@
|
||
+mandir = @mandir@
|
||
+mkdir_p = @mkdir_p@
|
||
+newlib_basedir = @newlib_basedir@
|
||
+oext = @oext@
|
||
+oldincludedir = @oldincludedir@
|
||
+pdfdir = @pdfdir@
|
||
+prefix = @prefix@
|
||
+program_transform_name = @program_transform_name@
|
||
+psdir = @psdir@
|
||
+sbindir = @sbindir@
|
||
+sharedstatedir = @sharedstatedir@
|
||
+srcdir = @srcdir@
|
||
+sys_dir = @sys_dir@
|
||
+sysconfdir = @sysconfdir@
|
||
+target_alias = @target_alias@
|
||
+top_build_prefix = @top_build_prefix@
|
||
+top_builddir = @top_builddir@
|
||
+top_srcdir = @top_srcdir@
|
||
+AUTOMAKE_OPTIONS = cygnus
|
||
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
|
||
+AM_CCASFLAGS = $(INCLUDES) $(CFLAGS)
|
||
+noinst_LIBRARIES = lib.a
|
||
+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o \
|
||
+ _gettimeofday.o _kill.o _lseek.o _open.o _read.o \
|
||
+ _sbrk.o _wait.o _write.o clock.o isatty.o _isatty.o \
|
||
+ time.o_link.o _unlink.o sleep.o opendir.o readdir.o \
|
||
+ closedir.o getcwd.o chdir.o mkdir.o rmdir.o \
|
||
+ realpath.o _stat.o truncate.o access.o tzset.o \
|
||
+ __psp_set_errno.o mlock.o _fcntl.o _rename.o nanosleep.o
|
||
+
|
||
+SOCKET_MULT_OBJS = socket.o accept.o bind.o connect.o getsockopt.o \
|
||
+ listen.o recv.o recvfrom.o send.o sendto.o \
|
||
+ setsockopt.o shutdown.o getsockname.o getpeername.o \
|
||
+ inet_ntoa.o
|
||
+
|
||
+PE_OBJS = pipe.o
|
||
+FDMAN_OBJS = fdman.o
|
||
+SELECT_OBJS = select.o
|
||
+INTERRUPT_OBJS = interrupt.o
|
||
+XPRINTF_MULT_OBJS = vxprintf.o _xprintf.o __sout.o vsnprintf.o snprintf.o \
|
||
+ vsprintf.o sprintf.o __mout.o mprintf.o vmprintf.o asprintf.o \
|
||
+ vasprintf.o __fout.o fprintf.o vfprintf.o printf.o vprintf.o \
|
||
+ _sprintf_r.o
|
||
+
|
||
+NETDB_MULT_OBJS = h_errno.o gethostbyaddr.o gethostbyname.o
|
||
+lib_a_SOURCES = libcglue.c socket.c pspcwd.c xprintf.c netdb.c pipe.c fdman.c select.c syscalls.c interrupt.S
|
||
+lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS) $(SOCKET_MULT_OBJS) $(XPRINTF_MULT_OBJS) \
|
||
+ $(NETDB_MULT_OBJS) $(PIPE_OBJS) $(FDMAN_OBJS) $(SELECT_OBJS) $(INTERRUPT_OBJS)
|
||
+
|
||
+ACLOCAL_AMFLAGS = -I ../../..
|
||
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
|
||
+all: all-am
|
||
+
|
||
+.SUFFIXES:
|
||
+.SUFFIXES: .S .c .o .obj
|
||
+am--refresh:
|
||
+ @:
|
||
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||
+ @for dep in $?; do \
|
||
+ case '$(am__configure_deps)' in \
|
||
+ *$$dep*) \
|
||
+ echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
|
||
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
|
||
+ && exit 0; \
|
||
+ exit 1;; \
|
||
+ esac; \
|
||
+ done; \
|
||
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
|
||
+ $(am__cd) $(top_srcdir) && \
|
||
+ $(AUTOMAKE) --cygnus Makefile
|
||
+.PRECIOUS: Makefile
|
||
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||
+ @case '$?' in \
|
||
+ *config.status*) \
|
||
+ echo ' $(SHELL) ./config.status'; \
|
||
+ $(SHELL) ./config.status;; \
|
||
+ *) \
|
||
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||
+ esac;
|
||
+
|
||
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||
+ $(SHELL) ./config.status --recheck
|
||
+
|
||
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||
+ $(am__cd) $(srcdir) && $(AUTOCONF)
|
||
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||
+$(am__aclocal_m4_deps):
|
||
+
|
||
+clean-noinstLIBRARIES:
|
||
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
|
||
+ -rm -f lib.a
|
||
+ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
|
||
+ $(RANLIB) lib.a
|
||
+
|
||
+mostlyclean-compile:
|
||
+ -rm -f *.$(OBJEXT)
|
||
+
|
||
+distclean-compile:
|
||
+ -rm -f *.tab.c
|
||
+
|
||
+.S.o:
|
||
+ $(CPPASCOMPILE) -c -o $@ $<
|
||
+
|
||
+.S.obj:
|
||
+ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||
+
|
||
+.c.o:
|
||
+ $(COMPILE) -c $<
|
||
+
|
||
+.c.obj:
|
||
+ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||
+
|
||
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||
+ unique=`for i in $$list; do \
|
||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||
+ done | \
|
||
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||
+ mkid -fID $$unique
|
||
+tags: TAGS
|
||
+
|
||
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||
+ $(TAGS_FILES) $(LISP)
|
||
+ set x; \
|
||
+ here=`pwd`; \
|
||
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||
+ unique=`for i in $$list; do \
|
||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||
+ done | \
|
||
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||
+ shift; \
|
||
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||
+ test -n "$$unique" || unique=$$empty_fix; \
|
||
+ if test $$# -gt 0; then \
|
||
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||
+ "$$@" $$unique; \
|
||
+ else \
|
||
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||
+ $$unique; \
|
||
+ fi; \
|
||
+ fi
|
||
+ctags: CTAGS
|
||
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||
+ $(TAGS_FILES) $(LISP)
|
||
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||
+ unique=`for i in $$list; do \
|
||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||
+ done | \
|
||
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||
+ test -z "$(CTAGS_ARGS)$$unique" \
|
||
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||
+ $$unique
|
||
+
|
||
+GTAGS:
|
||
+ here=`$(am__cd) $(top_builddir) && pwd` \
|
||
+ && $(am__cd) $(top_srcdir) \
|
||
+ && gtags -i $(GTAGS_ARGS) "$$here"
|
||
+
|
||
+distclean-tags:
|
||
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||
+check-am:
|
||
+check: check-am
|
||
+all-am: Makefile $(LIBRARIES)
|
||
+installdirs:
|
||
+install: install-am
|
||
+install-exec: install-exec-am
|
||
+install-data: install-data-am
|
||
+uninstall: uninstall-am
|
||
+
|
||
+install-am: all-am
|
||
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||
+
|
||
+installcheck: installcheck-am
|
||
+install-strip:
|
||
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||
+ `test -z '$(STRIP)' || \
|
||
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||
+mostlyclean-generic:
|
||
+
|
||
+clean-generic:
|
||
+
|
||
+distclean-generic:
|
||
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||
+
|
||
+maintainer-clean-generic:
|
||
+ @echo "This command is intended for maintainers to use"
|
||
+ @echo "it deletes files that may require special tools to rebuild."
|
||
+clean: clean-am
|
||
+
|
||
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
|
||
+
|
||
+distclean: distclean-am
|
||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||
+ -rm -f Makefile
|
||
+distclean-am: clean-am distclean-compile distclean-generic \
|
||
+ distclean-tags
|
||
+
|
||
+dvi: dvi-am
|
||
+
|
||
+dvi-am:
|
||
+
|
||
+html: html-am
|
||
+
|
||
+html-am:
|
||
+
|
||
+info: info-am
|
||
+
|
||
+info-am:
|
||
+
|
||
+install-data-am:
|
||
+
|
||
+install-dvi: install-dvi-am
|
||
+
|
||
+install-dvi-am:
|
||
+
|
||
+install-exec-am:
|
||
+
|
||
+install-html: install-html-am
|
||
+
|
||
+install-html-am:
|
||
+
|
||
+install-info: install-info-am
|
||
+
|
||
+install-info-am:
|
||
+
|
||
+install-man:
|
||
+
|
||
+install-pdf: install-pdf-am
|
||
+
|
||
+install-pdf-am:
|
||
+
|
||
+install-ps: install-ps-am
|
||
+
|
||
+install-ps-am:
|
||
+
|
||
+installcheck-am:
|
||
+
|
||
+maintainer-clean: maintainer-clean-am
|
||
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||
+ -rm -rf $(top_srcdir)/autom4te.cache
|
||
+ -rm -f Makefile
|
||
+maintainer-clean-am: distclean-am maintainer-clean-generic
|
||
+
|
||
+mostlyclean: mostlyclean-am
|
||
+
|
||
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||
+
|
||
+pdf: pdf-am
|
||
+
|
||
+pdf-am:
|
||
+
|
||
+ps: ps-am
|
||
+
|
||
+ps-am:
|
||
+
|
||
+uninstall-am:
|
||
+
|
||
+.MAKE: install-am install-strip
|
||
+
|
||
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
|
||
+ clean-generic clean-noinstLIBRARIES ctags distclean \
|
||
+ distclean-compile distclean-generic distclean-tags dvi dvi-am \
|
||
+ html html-am info info-am install install-am install-data \
|
||
+ install-data-am install-dvi install-dvi-am install-exec \
|
||
+ install-exec-am install-html install-html-am install-info \
|
||
+ install-info-am install-man install-pdf install-pdf-am \
|
||
+ install-ps install-ps-am install-strip installcheck \
|
||
+ installcheck-am installdirs maintainer-clean \
|
||
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||
+ uninstall-am
|
||
+
|
||
+
|
||
+all: crt0.o
|
||
+
|
||
+$(LIBCGLUE_MULT_OBJS): libcglue.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(SOCKET_MULT_OBJS): socket.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(XPRINTF_MULT_OBJS): xprintf.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(NETDB_MULT_OBJS): netdb.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(PIPE_OBJS): pipe.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(FDMAN_OBJS): fdman.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(SELECT_OBJS): select.c
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+$(INTERRUPT_OBJS): interrupt.S
|
||
+ $(COMPILE) -DF_$* $< -c -o $@
|
||
+
|
||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||
+.NOEXPORT:
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/README newlib-1.20.0-psp/newlib/libc/sys/psp/README
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/README 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/README 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,15 @@
|
||
+Newlib for PSP
|
||
+--
|
||
+
|
||
+This sys/psp directory depends on PSPSDK headers. It expects them to live in
|
||
+${prefix}/psp/sdk/include (see newlib/configure.host).
|
||
+
|
||
+I used the autotools to generate aclocal.m4, Makefile.in and configure using:
|
||
+
|
||
+ aclocal -I ../../..
|
||
+ automake --cygnus
|
||
+ autoconf
|
||
+
|
||
+--
|
||
+Originally by Marcus R. Brown <mrbrown@ocgnet.org>
|
||
+Updated by artart78 <arthur.blot78@gmail.com>
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/aclocal.m4 newlib-1.20.0-psp/newlib/libc/sys/psp/aclocal.m4
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/aclocal.m4 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/aclocal.m4 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,992 @@
|
||
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# This program is distributed in the hope that it will be useful,
|
||
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||
+# PARTICULAR PURPOSE.
|
||
+
|
||
+m4_ifndef([AC_AUTOCONF_VERSION],
|
||
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
|
||
+[m4_warning([this file was generated for autoconf 2.68.
|
||
+You have another version of autoconf. It may work, but is not guaranteed to.
|
||
+If you have problems, you may need to regenerate the build system entirely.
|
||
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||
+
|
||
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# AM_AUTOMAKE_VERSION(VERSION)
|
||
+# ----------------------------
|
||
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||
+# generated from the m4 files accompanying Automake X.Y.
|
||
+# (This private macro should not be called outside this file.)
|
||
+AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||
+[am__api_version='1.11'
|
||
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||
+dnl require some minimum version. Point them to the right macro.
|
||
+m4_if([$1], [1.11.1], [],
|
||
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||
+])
|
||
+
|
||
+# _AM_AUTOCONF_VERSION(VERSION)
|
||
+# -----------------------------
|
||
+# aclocal traces this macro to find the Autoconf version.
|
||
+# This is a private macro too. Using m4_define simplifies
|
||
+# the logic in aclocal, which can simply ignore this definition.
|
||
+m4_define([_AM_AUTOCONF_VERSION], [])
|
||
+
|
||
+# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||
+# -------------------------------
|
||
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
|
||
+m4_ifndef([AC_AUTOCONF_VERSION],
|
||
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||
+
|
||
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||
+#
|
||
+# Of course, Automake must honor this variable whenever it calls a
|
||
+# tool from the auxiliary directory. The problem is that $srcdir (and
|
||
+# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||
+# depending on how configure is run. This is pretty annoying, since
|
||
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||
+# source directory, any form will work fine, but in subdirectories a
|
||
+# relative path needs to be adjusted first.
|
||
+#
|
||
+# $ac_aux_dir/missing
|
||
+# fails when called from a subdirectory if $ac_aux_dir is relative
|
||
+# $top_srcdir/$ac_aux_dir/missing
|
||
+# fails if $ac_aux_dir is absolute,
|
||
+# fails when called from a subdirectory in a VPATH build with
|
||
+# a relative $ac_aux_dir
|
||
+#
|
||
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||
+# are both prefixed by $srcdir. In an in-source build this is usually
|
||
+# harmless because $srcdir is `.', but things will broke when you
|
||
+# start a VPATH build or use an absolute $srcdir.
|
||
+#
|
||
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||
+# and then we would define $MISSING as
|
||
+# MISSING="\${SHELL} $am_aux_dir/missing"
|
||
+# This will work as long as MISSING is not called from configure, because
|
||
+# unfortunately $(top_srcdir) has no meaning in configure.
|
||
+# However there are other variables, like CC, which are often used in
|
||
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||
+#
|
||
+# Another solution, used here, is to always expand $ac_aux_dir to an
|
||
+# absolute PATH. The drawback is that using absolute paths prevent a
|
||
+# configured tree to be moved without reconfiguration.
|
||
+
|
||
+AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||
+[dnl Rely on autoconf to set up CDPATH properly.
|
||
+AC_PREREQ([2.50])dnl
|
||
+# expand $ac_aux_dir to an absolute path
|
||
+am_aux_dir=`cd $ac_aux_dir && pwd`
|
||
+])
|
||
+
|
||
+# AM_CONDITIONAL -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 9
|
||
+
|
||
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||
+# -------------------------------------
|
||
+# Define a conditional.
|
||
+AC_DEFUN([AM_CONDITIONAL],
|
||
+[AC_PREREQ(2.52)dnl
|
||
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||
+AC_SUBST([$1_TRUE])dnl
|
||
+AC_SUBST([$1_FALSE])dnl
|
||
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||
+if $2; then
|
||
+ $1_TRUE=
|
||
+ $1_FALSE='#'
|
||
+else
|
||
+ $1_TRUE='#'
|
||
+ $1_FALSE=
|
||
+fi
|
||
+AC_CONFIG_COMMANDS_PRE(
|
||
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||
+ AC_MSG_ERROR([[conditional "$1" was never defined.
|
||
+Usually this means the macro was only invoked conditionally.]])
|
||
+fi])])
|
||
+
|
||
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 10
|
||
+
|
||
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||
+# written in clear, in which case automake, when reading aclocal.m4,
|
||
+# will think it sees a *use*, and therefore will trigger all it's
|
||
+# C support machinery. Also note that it means that autoscan, seeing
|
||
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||
+
|
||
+
|
||
+# _AM_DEPENDENCIES(NAME)
|
||
+# ----------------------
|
||
+# See how the compiler implements dependency checking.
|
||
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||
+# We try a few techniques and use that to set a single cache variable.
|
||
+#
|
||
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||
+# dependency, and given that the user is not expected to run this macro,
|
||
+# just rely on AC_PROG_CC.
|
||
+AC_DEFUN([_AM_DEPENDENCIES],
|
||
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||
+AC_REQUIRE([AM_DEP_TRACK])dnl
|
||
+
|
||
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||
+ [depcc="$$1" am_compiler_list=])
|
||
+
|
||
+AC_CACHE_CHECK([dependency style of $depcc],
|
||
+ [am_cv_$1_dependencies_compiler_type],
|
||
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||
+ # We make a subdir and do the tests there. Otherwise we can end up
|
||
+ # making bogus files that we don't know about and never remove. For
|
||
+ # instance it was reported that on HP-UX the gcc test will end up
|
||
+ # making a dummy file named `D' -- because `-MD' means `put the output
|
||
+ # in D'.
|
||
+ mkdir conftest.dir
|
||
+ # Copy depcomp to subdir because otherwise we won't find it if we're
|
||
+ # using a relative directory.
|
||
+ cp "$am_depcomp" conftest.dir
|
||
+ cd conftest.dir
|
||
+ # We will build objects and dependencies in a subdirectory because
|
||
+ # it helps to detect inapplicable dependency modes. For instance
|
||
+ # both Tru64's cc and ICC support -MD to output dependencies as a
|
||
+ # side effect of compilation, but ICC will put the dependencies in
|
||
+ # the current directory while Tru64 will put them in the object
|
||
+ # directory.
|
||
+ mkdir sub
|
||
+
|
||
+ am_cv_$1_dependencies_compiler_type=none
|
||
+ if test "$am_compiler_list" = ""; then
|
||
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||
+ fi
|
||
+ am__universal=false
|
||
+ m4_case([$1], [CC],
|
||
+ [case " $depcc " in #(
|
||
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||
+ esac],
|
||
+ [CXX],
|
||
+ [case " $depcc " in #(
|
||
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||
+ esac])
|
||
+
|
||
+ for depmode in $am_compiler_list; do
|
||
+ # Setup a source with many dependencies, because some compilers
|
||
+ # like to wrap large dependency lists on column 80 (with \), and
|
||
+ # we should not choose a depcomp mode which is confused by this.
|
||
+ #
|
||
+ # We need to recreate these files for each test, as the compiler may
|
||
+ # overwrite some of them when testing with obscure command lines.
|
||
+ # This happens at least with the AIX C compiler.
|
||
+ : > sub/conftest.c
|
||
+ for i in 1 2 3 4 5 6; do
|
||
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||
+ # Solaris 8's {/usr,}/bin/sh.
|
||
+ touch sub/conftst$i.h
|
||
+ done
|
||
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||
+
|
||
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||
+ # mode. It turns out that the SunPro C++ compiler does not properly
|
||
+ # handle `-M -o', and we need to detect this. Also, some Intel
|
||
+ # versions had trouble with output in subdirs
|
||
+ am__obj=sub/conftest.${OBJEXT-o}
|
||
+ am__minus_obj="-o $am__obj"
|
||
+ case $depmode in
|
||
+ gcc)
|
||
+ # This depmode causes a compiler race in universal mode.
|
||
+ test "$am__universal" = false || continue
|
||
+ ;;
|
||
+ nosideeffect)
|
||
+ # after this tag, mechanisms are not by side-effect, so they'll
|
||
+ # only be used when explicitly requested
|
||
+ if test "x$enable_dependency_tracking" = xyes; then
|
||
+ continue
|
||
+ else
|
||
+ break
|
||
+ fi
|
||
+ ;;
|
||
+ msvisualcpp | msvcmsys)
|
||
+ # This compiler won't grok `-c -o', but also, the minuso test has
|
||
+ # not run yet. These depmodes are late enough in the game, and
|
||
+ # so weak that their functioning should not be impacted.
|
||
+ am__obj=conftest.${OBJEXT-o}
|
||
+ am__minus_obj=
|
||
+ ;;
|
||
+ none) break ;;
|
||
+ esac
|
||
+ if depmode=$depmode \
|
||
+ source=sub/conftest.c object=$am__obj \
|
||
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||
+ >/dev/null 2>conftest.err &&
|
||
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||
+ # icc doesn't choke on unknown options, it will just issue warnings
|
||
+ # or remarks (even with -Werror). So we grep stderr for any message
|
||
+ # that says an option was ignored or not supported.
|
||
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
|
||
+ # icc: Command line warning: ignoring option '-M'; no argument required
|
||
+ # The diagnosis changed in icc 8.0:
|
||
+ # icc: Command line remark: option '-MP' not supported
|
||
+ if (grep 'ignoring option' conftest.err ||
|
||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||
+ am_cv_$1_dependencies_compiler_type=$depmode
|
||
+ break
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+
|
||
+ cd ..
|
||
+ rm -rf conftest.dir
|
||
+else
|
||
+ am_cv_$1_dependencies_compiler_type=none
|
||
+fi
|
||
+])
|
||
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||
+AM_CONDITIONAL([am__fastdep$1], [
|
||
+ test "x$enable_dependency_tracking" != xno \
|
||
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||
+])
|
||
+
|
||
+
|
||
+# AM_SET_DEPDIR
|
||
+# -------------
|
||
+# Choose a directory name for dependency files.
|
||
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||
+AC_DEFUN([AM_SET_DEPDIR],
|
||
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||
+])
|
||
+
|
||
+
|
||
+# AM_DEP_TRACK
|
||
+# ------------
|
||
+AC_DEFUN([AM_DEP_TRACK],
|
||
+[AC_ARG_ENABLE(dependency-tracking,
|
||
+[ --disable-dependency-tracking speeds up one-time build
|
||
+ --enable-dependency-tracking do not reject slow dependency extractors])
|
||
+if test "x$enable_dependency_tracking" != xno; then
|
||
+ am_depcomp="$ac_aux_dir/depcomp"
|
||
+ AMDEPBACKSLASH='\'
|
||
+fi
|
||
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||
+AC_SUBST([AMDEPBACKSLASH])dnl
|
||
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||
+])
|
||
+
|
||
+# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+#serial 5
|
||
+
|
||
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||
+# ------------------------------
|
||
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||
+[{
|
||
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||
+ # are listed without --file. Let's play safe and only enable the eval
|
||
+ # if we detect the quoting.
|
||
+ case $CONFIG_FILES in
|
||
+ *\'*) eval set x "$CONFIG_FILES" ;;
|
||
+ *) set x $CONFIG_FILES ;;
|
||
+ esac
|
||
+ shift
|
||
+ for mf
|
||
+ do
|
||
+ # Strip MF so we end up with the name of the file.
|
||
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||
+ # Check whether this is an Automake generated Makefile or not.
|
||
+ # We used to match only the files named `Makefile.in', but
|
||
+ # some people rename them; so instead we look at the file content.
|
||
+ # Grep'ing the first line is not enough: some people post-process
|
||
+ # each Makefile.in and add a new line on top of each file to say so.
|
||
+ # Grep'ing the whole file is not good either: AIX grep has a line
|
||
+ # limit of 2048, but all sed's we know have understand at least 4000.
|
||
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||
+ dirpart=`AS_DIRNAME("$mf")`
|
||
+ else
|
||
+ continue
|
||
+ fi
|
||
+ # Extract the definition of DEPDIR, am__include, and am__quote
|
||
+ # from the Makefile without running `make'.
|
||
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||
+ test -z "$DEPDIR" && continue
|
||
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||
+ test -z "am__include" && continue
|
||
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||
+ # When using ansi2knr, U may be empty or an underscore; expand it
|
||
+ U=`sed -n 's/^U = //p' < "$mf"`
|
||
+ # Find all dependency output files, they are included files with
|
||
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
|
||
+ # simplest approach to changing $(DEPDIR) to its actual value in the
|
||
+ # expansion.
|
||
+ for file in `sed -n "
|
||
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||
+ # Make sure the directory exists.
|
||
+ test -f "$dirpart/$file" && continue
|
||
+ fdir=`AS_DIRNAME(["$file"])`
|
||
+ AS_MKDIR_P([$dirpart/$fdir])
|
||
+ # echo "creating $dirpart/$file"
|
||
+ echo '# dummy' > "$dirpart/$file"
|
||
+ done
|
||
+ done
|
||
+}
|
||
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||
+
|
||
+
|
||
+# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||
+# -----------------------------
|
||
+# This macro should only be invoked once -- use via AC_REQUIRE.
|
||
+#
|
||
+# This code is only required when automatic dependency tracking
|
||
+# is enabled. FIXME. This creates each `.P' file that we will
|
||
+# need in order to bootstrap the dependency handling code.
|
||
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||
+[AC_CONFIG_COMMANDS([depfiles],
|
||
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||
+])
|
||
+
|
||
+# Do all the work for Automake. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 16
|
||
+
|
||
+# This macro actually does too much. Some checks are only needed if
|
||
+# your package does certain things. But this isn't really a big deal.
|
||
+
|
||
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||
+# AM_INIT_AUTOMAKE([OPTIONS])
|
||
+# -----------------------------------------------
|
||
+# The call with PACKAGE and VERSION arguments is the old style
|
||
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||
+# and VERSION should now be passed to AC_INIT and removed from
|
||
+# the call to AM_INIT_AUTOMAKE.
|
||
+# We support both call styles for the transition. After
|
||
+# the next Automake release, Autoconf can make the AC_INIT
|
||
+# arguments mandatory, and then we can depend on a new Autoconf
|
||
+# release and drop the old call support.
|
||
+AC_DEFUN([AM_INIT_AUTOMAKE],
|
||
+[AC_PREREQ([2.62])dnl
|
||
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||
+dnl the ones we care about.
|
||
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||
+AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||
+ # is not polluted with repeated "-I."
|
||
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||
+ # test to see if srcdir already configured
|
||
+ if test -f $srcdir/config.status; then
|
||
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||
+ fi
|
||
+fi
|
||
+
|
||
+# test whether we have cygpath
|
||
+if test -z "$CYGPATH_W"; then
|
||
+ if (cygpath --version) >/dev/null 2>/dev/null; then
|
||
+ CYGPATH_W='cygpath -w'
|
||
+ else
|
||
+ CYGPATH_W=echo
|
||
+ fi
|
||
+fi
|
||
+AC_SUBST([CYGPATH_W])
|
||
+
|
||
+# Define the identity of the package.
|
||
+dnl Distinguish between old-style and new-style calls.
|
||
+m4_ifval([$2],
|
||
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||
+ AC_SUBST([PACKAGE], [$1])dnl
|
||
+ AC_SUBST([VERSION], [$2])],
|
||
+[_AM_SET_OPTIONS([$1])dnl
|
||
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||
+
|
||
+_AM_IF_OPTION([no-define],,
|
||
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||
+
|
||
+# Some tools Automake needs.
|
||
+AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||
+AM_MISSING_PROG(AUTOCONF, autoconf)
|
||
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||
+AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||
+AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||
+# We need awk for the "check" target. The system "awk" is bad on
|
||
+# some platforms.
|
||
+AC_REQUIRE([AC_PROG_AWK])dnl
|
||
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||
+ [_AM_PROG_TAR([v7])])])
|
||
+_AM_IF_OPTION([no-dependencies],,
|
||
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||
+ [_AM_DEPENDENCIES(CC)],
|
||
+ [define([AC_PROG_CC],
|
||
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||
+ [_AM_DEPENDENCIES(CXX)],
|
||
+ [define([AC_PROG_CXX],
|
||
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||
+ [_AM_DEPENDENCIES(OBJC)],
|
||
+ [define([AC_PROG_OBJC],
|
||
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||
+])
|
||
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||
+AC_CONFIG_COMMANDS_PRE(dnl
|
||
+[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||
+])
|
||
+
|
||
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||
+dnl mangled by Autoconf and run in a shell conditional statement.
|
||
+m4_define([_AC_COMPILER_EXEEXT],
|
||
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||
+
|
||
+
|
||
+# When config.status generates a header, we must update the stamp-h file.
|
||
+# This file resides in the same directory as the config header
|
||
+# that is generated. The stamp files are numbered to have different names.
|
||
+
|
||
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||
+# loop where config.status creates the headers, so we can generate
|
||
+# our stamp files there.
|
||
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||
+[# Compute $1's index in $config_headers.
|
||
+_am_arg=$1
|
||
+_am_stamp_count=1
|
||
+for _am_header in $config_headers :; do
|
||
+ case $_am_header in
|
||
+ $_am_arg | $_am_arg:* )
|
||
+ break ;;
|
||
+ * )
|
||
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||
+ esac
|
||
+done
|
||
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||
+
|
||
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# AM_PROG_INSTALL_SH
|
||
+# ------------------
|
||
+# Define $install_sh.
|
||
+AC_DEFUN([AM_PROG_INSTALL_SH],
|
||
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||
+if test x"${install_sh}" != xset; then
|
||
+ case $am_aux_dir in
|
||
+ *\ * | *\ *)
|
||
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||
+ *)
|
||
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||
+ esac
|
||
+fi
|
||
+AC_SUBST(install_sh)])
|
||
+
|
||
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 2
|
||
+
|
||
+# Check whether the underlying file-system supports filenames
|
||
+# with a leading dot. For instance MS-DOS doesn't.
|
||
+AC_DEFUN([AM_SET_LEADING_DOT],
|
||
+[rm -rf .tst 2>/dev/null
|
||
+mkdir .tst 2>/dev/null
|
||
+if test -d .tst; then
|
||
+ am__leading_dot=.
|
||
+else
|
||
+ am__leading_dot=_
|
||
+fi
|
||
+rmdir .tst 2>/dev/null
|
||
+AC_SUBST([am__leading_dot])])
|
||
+
|
||
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||
+# From Jim Meyering
|
||
+
|
||
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 5
|
||
+
|
||
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
|
||
+# ----------------------------------
|
||
+# Control maintainer-specific portions of Makefiles.
|
||
+# Default is to disable them, unless `enable' is passed literally.
|
||
+# For symmetry, `disable' may be passed as well. Anyway, the user
|
||
+# can override the default with the --enable/--disable switch.
|
||
+AC_DEFUN([AM_MAINTAINER_MODE],
|
||
+[m4_case(m4_default([$1], [disable]),
|
||
+ [enable], [m4_define([am_maintainer_other], [disable])],
|
||
+ [disable], [m4_define([am_maintainer_other], [enable])],
|
||
+ [m4_define([am_maintainer_other], [enable])
|
||
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
|
||
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
|
||
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
|
||
+ AC_ARG_ENABLE([maintainer-mode],
|
||
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
|
||
+ (and sometimes confusing) to the casual installer],
|
||
+ [USE_MAINTAINER_MODE=$enableval],
|
||
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
|
||
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
|
||
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
|
||
+ MAINT=$MAINTAINER_MODE_TRUE
|
||
+ AC_SUBST([MAINT])dnl
|
||
+]
|
||
+)
|
||
+
|
||
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
|
||
+
|
||
+# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 4
|
||
+
|
||
+# AM_MAKE_INCLUDE()
|
||
+# -----------------
|
||
+# Check to see how make treats includes.
|
||
+AC_DEFUN([AM_MAKE_INCLUDE],
|
||
+[am_make=${MAKE-make}
|
||
+cat > confinc << 'END'
|
||
+am__doit:
|
||
+ @echo this is the am__doit target
|
||
+.PHONY: am__doit
|
||
+END
|
||
+# If we don't find an include directive, just comment out the code.
|
||
+AC_MSG_CHECKING([for style of include used by $am_make])
|
||
+am__include="#"
|
||
+am__quote=
|
||
+_am_result=none
|
||
+# First try GNU make style include.
|
||
+echo "include confinc" > confmf
|
||
+# Ignore all kinds of additional output from `make'.
|
||
+case `$am_make -s -f confmf 2> /dev/null` in #(
|
||
+*the\ am__doit\ target*)
|
||
+ am__include=include
|
||
+ am__quote=
|
||
+ _am_result=GNU
|
||
+ ;;
|
||
+esac
|
||
+# Now try BSD make style include.
|
||
+if test "$am__include" = "#"; then
|
||
+ echo '.include "confinc"' > confmf
|
||
+ case `$am_make -s -f confmf 2> /dev/null` in #(
|
||
+ *the\ am__doit\ target*)
|
||
+ am__include=.include
|
||
+ am__quote="\""
|
||
+ _am_result=BSD
|
||
+ ;;
|
||
+ esac
|
||
+fi
|
||
+AC_SUBST([am__include])
|
||
+AC_SUBST([am__quote])
|
||
+AC_MSG_RESULT([$_am_result])
|
||
+rm -f confinc confmf
|
||
+])
|
||
+
|
||
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 6
|
||
+
|
||
+# AM_MISSING_PROG(NAME, PROGRAM)
|
||
+# ------------------------------
|
||
+AC_DEFUN([AM_MISSING_PROG],
|
||
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||
+$1=${$1-"${am_missing_run}$2"}
|
||
+AC_SUBST($1)])
|
||
+
|
||
+
|
||
+# AM_MISSING_HAS_RUN
|
||
+# ------------------
|
||
+# Define MISSING if not defined so far and test if it supports --run.
|
||
+# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||
+AC_DEFUN([AM_MISSING_HAS_RUN],
|
||
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||
+AC_REQUIRE_AUX_FILE([missing])dnl
|
||
+if test x"${MISSING+set}" != xset; then
|
||
+ case $am_aux_dir in
|
||
+ *\ * | *\ *)
|
||
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||
+ *)
|
||
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||
+ esac
|
||
+fi
|
||
+# Use eval to expand $SHELL
|
||
+if eval "$MISSING --run true"; then
|
||
+ am_missing_run="$MISSING --run "
|
||
+else
|
||
+ am_missing_run=
|
||
+ AC_MSG_WARN([`missing' script is too old or missing])
|
||
+fi
|
||
+])
|
||
+
|
||
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# AM_PROG_MKDIR_P
|
||
+# ---------------
|
||
+# Check for `mkdir -p'.
|
||
+AC_DEFUN([AM_PROG_MKDIR_P],
|
||
+[AC_PREREQ([2.60])dnl
|
||
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||
+dnl while keeping a definition of mkdir_p for backward compatibility.
|
||
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||
+dnl adjustment using top_builddir (which is defined more often than
|
||
+dnl MKDIR_P).
|
||
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||
+case $mkdir_p in
|
||
+ [[\\/$]]* | ?:[[\\/]]*) ;;
|
||
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||
+esac
|
||
+])
|
||
+
|
||
+# Helper functions for option handling. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 4
|
||
+
|
||
+# _AM_MANGLE_OPTION(NAME)
|
||
+# -----------------------
|
||
+AC_DEFUN([_AM_MANGLE_OPTION],
|
||
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||
+
|
||
+# _AM_SET_OPTION(NAME)
|
||
+# ------------------------------
|
||
+# Set option NAME. Presently that only means defining a flag for this option.
|
||
+AC_DEFUN([_AM_SET_OPTION],
|
||
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||
+
|
||
+# _AM_SET_OPTIONS(OPTIONS)
|
||
+# ----------------------------------
|
||
+# OPTIONS is a space-separated list of Automake options.
|
||
+AC_DEFUN([_AM_SET_OPTIONS],
|
||
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||
+
|
||
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||
+# -------------------------------------------
|
||
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||
+AC_DEFUN([_AM_IF_OPTION],
|
||
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||
+
|
||
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||
+# Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 5
|
||
+
|
||
+# AM_SANITY_CHECK
|
||
+# ---------------
|
||
+AC_DEFUN([AM_SANITY_CHECK],
|
||
+[AC_MSG_CHECKING([whether build environment is sane])
|
||
+# Just in case
|
||
+sleep 1
|
||
+echo timestamp > conftest.file
|
||
+# Reject unsafe characters in $srcdir or the absolute working directory
|
||
+# name. Accept space and tab only in the latter.
|
||
+am_lf='
|
||
+'
|
||
+case `pwd` in
|
||
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
|
||
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||
+esac
|
||
+case $srcdir in
|
||
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||
+esac
|
||
+
|
||
+# Do `set' in a subshell so we don't clobber the current shell's
|
||
+# arguments. Must try -L first in case configure is actually a
|
||
+# symlink; some systems play weird games with the mod time of symlinks
|
||
+# (eg FreeBSD returns the mod time of the symlink's containing
|
||
+# directory).
|
||
+if (
|
||
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||
+ if test "$[*]" = "X"; then
|
||
+ # -L didn't work.
|
||
+ set X `ls -t "$srcdir/configure" conftest.file`
|
||
+ fi
|
||
+ rm -f conftest.file
|
||
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||
+
|
||
+ # If neither matched, then we have a broken ls. This can happen
|
||
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
|
||
+ # broken ls alias from the environment. This has actually
|
||
+ # happened. Such a system could not be considered "sane".
|
||
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||
+alias in your environment])
|
||
+ fi
|
||
+
|
||
+ test "$[2]" = conftest.file
|
||
+ )
|
||
+then
|
||
+ # Ok.
|
||
+ :
|
||
+else
|
||
+ AC_MSG_ERROR([newly created file is older than distributed files!
|
||
+Check your system clock])
|
||
+fi
|
||
+AC_MSG_RESULT(yes)])
|
||
+
|
||
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# AM_PROG_INSTALL_STRIP
|
||
+# ---------------------
|
||
+# One issue with vendor `install' (even GNU) is that you can't
|
||
+# specify the program used to strip binaries. This is especially
|
||
+# annoying in cross-compiling environments, where the build's strip
|
||
+# is unlikely to handle the host's binaries.
|
||
+# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||
+# always use install-sh in `make install-strip', and initialize
|
||
+# STRIPPROG with the value of the STRIP variable (set by the user).
|
||
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||
+# Installed binaries are usually stripped using `strip' when the user
|
||
+# run `make install-strip'. However `strip' might not be the right
|
||
+# tool to use in cross-compilation environments, therefore Automake
|
||
+# will honor the `STRIP' environment variable to overrule this program.
|
||
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||
+if test "$cross_compiling" != no; then
|
||
+ AC_CHECK_TOOL([STRIP], [strip], :)
|
||
+fi
|
||
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||
+
|
||
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 2
|
||
+
|
||
+# _AM_SUBST_NOTMAKE(VARIABLE)
|
||
+# ---------------------------
|
||
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||
+# This macro is traced by Automake.
|
||
+AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||
+
|
||
+# AM_SUBST_NOTMAKE(VARIABLE)
|
||
+# ---------------------------
|
||
+# Public sister of _AM_SUBST_NOTMAKE.
|
||
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||
+
|
||
+# Check how to create a tarball. -*- Autoconf -*-
|
||
+
|
||
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||
+#
|
||
+# This file is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy and/or distribute it,
|
||
+# with or without modifications, as long as this notice is preserved.
|
||
+
|
||
+# serial 2
|
||
+
|
||
+# _AM_PROG_TAR(FORMAT)
|
||
+# --------------------
|
||
+# Check how to create a tarball in format FORMAT.
|
||
+# FORMAT should be one of `v7', `ustar', or `pax'.
|
||
+#
|
||
+# Substitute a variable $(am__tar) that is a command
|
||
+# writing to stdout a FORMAT-tarball containing the directory
|
||
+# $tardir.
|
||
+# tardir=directory && $(am__tar) > result.tar
|
||
+#
|
||
+# Substitute a variable $(am__untar) that extract such
|
||
+# a tarball read from stdin.
|
||
+# $(am__untar) < result.tar
|
||
+AC_DEFUN([_AM_PROG_TAR],
|
||
+[# Always define AMTAR for backward compatibility.
|
||
+AM_MISSING_PROG([AMTAR], [tar])
|
||
+m4_if([$1], [v7],
|
||
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||
+ [m4_case([$1], [ustar],, [pax],,
|
||
+ [m4_fatal([Unknown tar format])])
|
||
+AC_MSG_CHECKING([how to create a $1 tar archive])
|
||
+# Loop over all known methods to create a tar archive until one works.
|
||
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||
+# Do not fold the above two line into one, because Tru64 sh and
|
||
+# Solaris sh will not grok spaces in the rhs of `-'.
|
||
+for _am_tool in $_am_tools
|
||
+do
|
||
+ case $_am_tool in
|
||
+ gnutar)
|
||
+ for _am_tar in tar gnutar gtar;
|
||
+ do
|
||
+ AM_RUN_LOG([$_am_tar --version]) && break
|
||
+ done
|
||
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||
+ am__untar="$_am_tar -xf -"
|
||
+ ;;
|
||
+ plaintar)
|
||
+ # Must skip GNU tar: if it does not support --format= it doesn't create
|
||
+ # ustar tarball either.
|
||
+ (tar --version) >/dev/null 2>&1 && continue
|
||
+ am__tar='tar chf - "$$tardir"'
|
||
+ am__tar_='tar chf - "$tardir"'
|
||
+ am__untar='tar xf -'
|
||
+ ;;
|
||
+ pax)
|
||
+ am__tar='pax -L -x $1 -w "$$tardir"'
|
||
+ am__tar_='pax -L -x $1 -w "$tardir"'
|
||
+ am__untar='pax -r'
|
||
+ ;;
|
||
+ cpio)
|
||
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||
+ am__untar='cpio -i -H $1 -d'
|
||
+ ;;
|
||
+ none)
|
||
+ am__tar=false
|
||
+ am__tar_=false
|
||
+ am__untar=false
|
||
+ ;;
|
||
+ esac
|
||
+
|
||
+ # If the value was cached, stop now. We just wanted to have am__tar
|
||
+ # and am__untar set.
|
||
+ test -n "${am_cv_prog_tar_$1}" && break
|
||
+
|
||
+ # tar/untar a dummy directory, and stop if the command works
|
||
+ rm -rf conftest.dir
|
||
+ mkdir conftest.dir
|
||
+ echo GrepMe > conftest.dir/file
|
||
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||
+ rm -rf conftest.dir
|
||
+ if test -s conftest.tar; then
|
||
+ AM_RUN_LOG([$am__untar <conftest.tar])
|
||
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||
+ fi
|
||
+done
|
||
+rm -rf conftest.dir
|
||
+
|
||
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||
+AC_SUBST([am__tar])
|
||
+AC_SUBST([am__untar])
|
||
+]) # _AM_PROG_TAR
|
||
+
|
||
+m4_include([../../../acinclude.m4])
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/arpa/inet.h newlib-1.20.0-psp/newlib/libc/sys/psp/arpa/inet.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/arpa/inet.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/arpa/inet.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,26 @@
|
||
+/* arpa/inet.h - Functions for converting IP addresses between strings and numbers */
|
||
+
|
||
+#ifndef _ARPA_INET_H_
|
||
+#define _ARPA_INET_H_
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#include <netinet/in.h>
|
||
+
|
||
+in_addr_t sceNetInetInetAddr(const char *ip);
|
||
+int sceNetInetInetAton(const char *ip, struct in_addr *in);
|
||
+const char* sceNetInetInetNtop(int af, const void *src, char *dst, socklen_t cnt);
|
||
+int sceNetInetInetPton(int af, const char *src, void *dst);
|
||
+
|
||
+char *inet_ntoa(struct in_addr in);
|
||
+#define inet_addr sceNetInetInetAddr
|
||
+#define inet_aton sceNetInetInetAton
|
||
+#define inet_ntop sceNetInetInetNtop
|
||
+#define inet_pton sceNetInetInetPton
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+#endif /* _ARPA_INET_H_ */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/confdefs.h newlib-1.20.0-psp/newlib/libc/sys/psp/confdefs.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/confdefs.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/confdefs.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1 @@
|
||
+
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/configure newlib-1.20.0-psp/newlib/libc/sys/psp/configure
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/configure 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/configure 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,4745 @@
|
||
+#! /bin/sh
|
||
+# Guess values for system-dependent variables and create Makefiles.
|
||
+# Generated by GNU Autoconf 2.68 for newlib 1.20.0.
|
||
+#
|
||
+#
|
||
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
||
+# Foundation, Inc.
|
||
+#
|
||
+#
|
||
+# This configure script is free software; the Free Software Foundation
|
||
+# gives unlimited permission to copy, distribute and modify it.
|
||
+## -------------------- ##
|
||
+## M4sh Initialization. ##
|
||
+## -------------------- ##
|
||
+
|
||
+# Be more Bourne compatible
|
||
+DUALCASE=1; export DUALCASE # for MKS sh
|
||
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
|
||
+ emulate sh
|
||
+ NULLCMD=:
|
||
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
|
||
+ # is contrary to our usage. Disable this feature.
|
||
+ alias -g '${1+"$@"}'='"$@"'
|
||
+ setopt NO_GLOB_SUBST
|
||
+else
|
||
+ case `(set -o) 2>/dev/null` in #(
|
||
+ *posix*) :
|
||
+ set -o posix ;; #(
|
||
+ *) :
|
||
+ ;;
|
||
+esac
|
||
+fi
|
||
+
|
||
+
|
||
+as_nl='
|
||
+'
|
||
+export as_nl
|
||
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
|
||
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
|
||
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
|
||
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
|
||
+# Prefer a ksh shell builtin over an external printf program on Solaris,
|
||
+# but without wasting forks for bash or zsh.
|
||
+if test -z "$BASH_VERSION$ZSH_VERSION" \
|
||
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
|
||
+ as_echo='print -r --'
|
||
+ as_echo_n='print -rn --'
|
||
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
|
||
+ as_echo='printf %s\n'
|
||
+ as_echo_n='printf %s'
|
||
+else
|
||
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
|
||
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
|
||
+ as_echo_n='/usr/ucb/echo -n'
|
||
+ else
|
||
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
|
||
+ as_echo_n_body='eval
|
||
+ arg=$1;
|
||
+ case $arg in #(
|
||
+ *"$as_nl"*)
|
||
+ expr "X$arg" : "X\\(.*\\)$as_nl";
|
||
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
|
||
+ esac;
|
||
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
|
||
+ '
|
||
+ export as_echo_n_body
|
||
+ as_echo_n='sh -c $as_echo_n_body as_echo'
|
||
+ fi
|
||
+ export as_echo_body
|
||
+ as_echo='sh -c $as_echo_body as_echo'
|
||
+fi
|
||
+
|
||
+# The user is always right.
|
||
+if test "${PATH_SEPARATOR+set}" != set; then
|
||
+ PATH_SEPARATOR=:
|
||
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
|
||
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
|
||
+ PATH_SEPARATOR=';'
|
||
+ }
|
||
+fi
|
||
+
|
||
+
|
||
+# IFS
|
||
+# We need space, tab and new line, in precisely that order. Quoting is
|
||
+# there to prevent editors from complaining about space-tab.
|
||
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
|
||
+# splitting by setting IFS to empty value.)
|
||
+IFS=" "" $as_nl"
|
||
+
|
||
+# Find who we are. Look in the path if we contain no directory separator.
|
||
+as_myself=
|
||
+case $0 in #((
|
||
+ *[\\/]* ) as_myself=$0 ;;
|
||
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+ ;;
|
||
+esac
|
||
+# We did not find ourselves, most probably we were run as `sh COMMAND'
|
||
+# in which case we are not to be found in the path.
|
||
+if test "x$as_myself" = x; then
|
||
+ as_myself=$0
|
||
+fi
|
||
+if test ! -f "$as_myself"; then
|
||
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
|
||
+ exit 1
|
||
+fi
|
||
+
|
||
+# Unset variables that we do not need and which cause bugs (e.g. in
|
||
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
|
||
+# suppresses any "Segmentation fault" message there. '((' could
|
||
+# trigger a bug in pdksh 5.2.14.
|
||
+for as_var in BASH_ENV ENV MAIL MAILPATH
|
||
+do eval test x\${$as_var+set} = xset \
|
||
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
|
||
+done
|
||
+PS1='$ '
|
||
+PS2='> '
|
||
+PS4='+ '
|
||
+
|
||
+# NLS nuisances.
|
||
+LC_ALL=C
|
||
+export LC_ALL
|
||
+LANGUAGE=C
|
||
+export LANGUAGE
|
||
+
|
||
+# CDPATH.
|
||
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||
+
|
||
+if test "x$CONFIG_SHELL" = x; then
|
||
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
||
+ emulate sh
|
||
+ NULLCMD=:
|
||
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
|
||
+ # is contrary to our usage. Disable this feature.
|
||
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
|
||
+ setopt NO_GLOB_SUBST
|
||
+else
|
||
+ case \`(set -o) 2>/dev/null\` in #(
|
||
+ *posix*) :
|
||
+ set -o posix ;; #(
|
||
+ *) :
|
||
+ ;;
|
||
+esac
|
||
+fi
|
||
+"
|
||
+ as_required="as_fn_return () { (exit \$1); }
|
||
+as_fn_success () { as_fn_return 0; }
|
||
+as_fn_failure () { as_fn_return 1; }
|
||
+as_fn_ret_success () { return 0; }
|
||
+as_fn_ret_failure () { return 1; }
|
||
+
|
||
+exitcode=0
|
||
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
|
||
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
|
||
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
|
||
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
|
||
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
|
||
+
|
||
+else
|
||
+ exitcode=1; echo positional parameters were not saved.
|
||
+fi
|
||
+test x\$exitcode = x0 || exit 1"
|
||
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
||
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
||
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
||
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
|
||
+ if (eval "$as_required") 2>/dev/null; then :
|
||
+ as_have_required=yes
|
||
+else
|
||
+ as_have_required=no
|
||
+fi
|
||
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
|
||
+
|
||
+else
|
||
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+as_found=false
|
||
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ as_found=:
|
||
+ case $as_dir in #(
|
||
+ /*)
|
||
+ for as_base in sh bash ksh sh5; do
|
||
+ # Try only shells that exist, to save several forks.
|
||
+ as_shell=$as_dir/$as_base
|
||
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
|
||
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
|
||
+ CONFIG_SHELL=$as_shell as_have_required=yes
|
||
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
|
||
+ break 2
|
||
+fi
|
||
+fi
|
||
+ done;;
|
||
+ esac
|
||
+ as_found=false
|
||
+done
|
||
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
|
||
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
|
||
+ CONFIG_SHELL=$SHELL as_have_required=yes
|
||
+fi; }
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+
|
||
+ if test "x$CONFIG_SHELL" != x; then :
|
||
+ # We cannot yet assume a decent shell, so we have to provide a
|
||
+ # neutralization value for shells without unset; and this also
|
||
+ # works around shells that cannot unset nonexistent variables.
|
||
+ # Preserve -v and -x to the replacement shell.
|
||
+ BASH_ENV=/dev/null
|
||
+ ENV=/dev/null
|
||
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
||
+ export CONFIG_SHELL
|
||
+ case $- in # ((((
|
||
+ *v*x* | *x*v* ) as_opts=-vx ;;
|
||
+ *v* ) as_opts=-v ;;
|
||
+ *x* ) as_opts=-x ;;
|
||
+ * ) as_opts= ;;
|
||
+ esac
|
||
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
|
||
+fi
|
||
+
|
||
+ if test x$as_have_required = xno; then :
|
||
+ $as_echo "$0: This script requires a shell more modern than all"
|
||
+ $as_echo "$0: the shells that I found on your system."
|
||
+ if test x${ZSH_VERSION+set} = xset ; then
|
||
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
|
||
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
|
||
+ else
|
||
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
|
||
+$0: including any error possibly output before this
|
||
+$0: message. Then install a modern shell, or manually run
|
||
+$0: the script under such a shell if you do have one."
|
||
+ fi
|
||
+ exit 1
|
||
+fi
|
||
+fi
|
||
+fi
|
||
+SHELL=${CONFIG_SHELL-/bin/sh}
|
||
+export SHELL
|
||
+# Unset more variables known to interfere with behavior of common tools.
|
||
+CLICOLOR_FORCE= GREP_OPTIONS=
|
||
+unset CLICOLOR_FORCE GREP_OPTIONS
|
||
+
|
||
+## --------------------- ##
|
||
+## M4sh Shell Functions. ##
|
||
+## --------------------- ##
|
||
+# as_fn_unset VAR
|
||
+# ---------------
|
||
+# Portably unset VAR.
|
||
+as_fn_unset ()
|
||
+{
|
||
+ { eval $1=; unset $1;}
|
||
+}
|
||
+as_unset=as_fn_unset
|
||
+
|
||
+# as_fn_set_status STATUS
|
||
+# -----------------------
|
||
+# Set $? to STATUS, without forking.
|
||
+as_fn_set_status ()
|
||
+{
|
||
+ return $1
|
||
+} # as_fn_set_status
|
||
+
|
||
+# as_fn_exit STATUS
|
||
+# -----------------
|
||
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
|
||
+as_fn_exit ()
|
||
+{
|
||
+ set +e
|
||
+ as_fn_set_status $1
|
||
+ exit $1
|
||
+} # as_fn_exit
|
||
+
|
||
+# as_fn_mkdir_p
|
||
+# -------------
|
||
+# Create "$as_dir" as a directory, including parents if necessary.
|
||
+as_fn_mkdir_p ()
|
||
+{
|
||
+
|
||
+ case $as_dir in #(
|
||
+ -*) as_dir=./$as_dir;;
|
||
+ esac
|
||
+ test -d "$as_dir" || eval $as_mkdir_p || {
|
||
+ as_dirs=
|
||
+ while :; do
|
||
+ case $as_dir in #(
|
||
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
|
||
+ *) as_qdir=$as_dir;;
|
||
+ esac
|
||
+ as_dirs="'$as_qdir' $as_dirs"
|
||
+ as_dir=`$as_dirname -- "$as_dir" ||
|
||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
|
||
+ X"$as_dir" : 'X\(//\)$' \| \
|
||
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$as_dir" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ test -d "$as_dir" && break
|
||
+ done
|
||
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
|
||
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
|
||
+
|
||
+
|
||
+} # as_fn_mkdir_p
|
||
+# as_fn_append VAR VALUE
|
||
+# ----------------------
|
||
+# Append the text in VALUE to the end of the definition contained in VAR. Take
|
||
+# advantage of any shell optimizations that allow amortized linear growth over
|
||
+# repeated appends, instead of the typical quadratic growth present in naive
|
||
+# implementations.
|
||
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
|
||
+ eval 'as_fn_append ()
|
||
+ {
|
||
+ eval $1+=\$2
|
||
+ }'
|
||
+else
|
||
+ as_fn_append ()
|
||
+ {
|
||
+ eval $1=\$$1\$2
|
||
+ }
|
||
+fi # as_fn_append
|
||
+
|
||
+# as_fn_arith ARG...
|
||
+# ------------------
|
||
+# Perform arithmetic evaluation on the ARGs, and store the result in the
|
||
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
|
||
+# must be portable across $(()) and expr.
|
||
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
|
||
+ eval 'as_fn_arith ()
|
||
+ {
|
||
+ as_val=$(( $* ))
|
||
+ }'
|
||
+else
|
||
+ as_fn_arith ()
|
||
+ {
|
||
+ as_val=`expr "$@" || test $? -eq 1`
|
||
+ }
|
||
+fi # as_fn_arith
|
||
+
|
||
+
|
||
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
|
||
+# ----------------------------------------
|
||
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
|
||
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
|
||
+# script with STATUS, using 1 if that was 0.
|
||
+as_fn_error ()
|
||
+{
|
||
+ as_status=$1; test $as_status -eq 0 && as_status=1
|
||
+ if test "$4"; then
|
||
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
|
||
+ fi
|
||
+ $as_echo "$as_me: error: $2" >&2
|
||
+ as_fn_exit $as_status
|
||
+} # as_fn_error
|
||
+
|
||
+if expr a : '\(a\)' >/dev/null 2>&1 &&
|
||
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
||
+ as_expr=expr
|
||
+else
|
||
+ as_expr=false
|
||
+fi
|
||
+
|
||
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
|
||
+ as_basename=basename
|
||
+else
|
||
+ as_basename=false
|
||
+fi
|
||
+
|
||
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
|
||
+ as_dirname=dirname
|
||
+else
|
||
+ as_dirname=false
|
||
+fi
|
||
+
|
||
+as_me=`$as_basename -- "$0" ||
|
||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
|
||
+ X"$0" : 'X\(//\)$' \| \
|
||
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X/"$0" |
|
||
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\/\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\/\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+
|
||
+# Avoid depending upon Character Ranges.
|
||
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
|
||
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
|
||
+as_cr_digits='0123456789'
|
||
+as_cr_alnum=$as_cr_Letters$as_cr_digits
|
||
+
|
||
+
|
||
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
|
||
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
|
||
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
|
||
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
|
||
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
|
||
+ sed -n '
|
||
+ p
|
||
+ /[$]LINENO/=
|
||
+ ' <$as_myself |
|
||
+ sed '
|
||
+ s/[$]LINENO.*/&-/
|
||
+ t lineno
|
||
+ b
|
||
+ :lineno
|
||
+ N
|
||
+ :loop
|
||
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
|
||
+ t loop
|
||
+ s/-\n.*//
|
||
+ ' >$as_me.lineno &&
|
||
+ chmod +x "$as_me.lineno" ||
|
||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
||
+
|
||
+ # Don't try to exec as it changes $[0], causing all sort of problems
|
||
+ # (the dirname of $[0] is not the place where we might find the
|
||
+ # original and so on. Autoconf is especially sensitive to this).
|
||
+ . "./$as_me.lineno"
|
||
+ # Exit status is that of the last command.
|
||
+ exit
|
||
+}
|
||
+
|
||
+ECHO_C= ECHO_N= ECHO_T=
|
||
+case `echo -n x` in #(((((
|
||
+-n*)
|
||
+ case `echo 'xy\c'` in
|
||
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
|
||
+ xy) ECHO_C='\c';;
|
||
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
|
||
+ ECHO_T=' ';;
|
||
+ esac;;
|
||
+*)
|
||
+ ECHO_N='-n';;
|
||
+esac
|
||
+
|
||
+rm -f conf$$ conf$$.exe conf$$.file
|
||
+if test -d conf$$.dir; then
|
||
+ rm -f conf$$.dir/conf$$.file
|
||
+else
|
||
+ rm -f conf$$.dir
|
||
+ mkdir conf$$.dir 2>/dev/null
|
||
+fi
|
||
+if (echo >conf$$.file) 2>/dev/null; then
|
||
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
|
||
+ as_ln_s='ln -s'
|
||
+ # ... but there are two gotchas:
|
||
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||
+ # In both cases, we have to default to `cp -p'.
|
||
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||
+ as_ln_s='cp -p'
|
||
+ elif ln conf$$.file conf$$ 2>/dev/null; then
|
||
+ as_ln_s=ln
|
||
+ else
|
||
+ as_ln_s='cp -p'
|
||
+ fi
|
||
+else
|
||
+ as_ln_s='cp -p'
|
||
+fi
|
||
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||
+rmdir conf$$.dir 2>/dev/null
|
||
+
|
||
+if mkdir -p . 2>/dev/null; then
|
||
+ as_mkdir_p='mkdir -p "$as_dir"'
|
||
+else
|
||
+ test -d ./-p && rmdir ./-p
|
||
+ as_mkdir_p=false
|
||
+fi
|
||
+
|
||
+if test -x / >/dev/null 2>&1; then
|
||
+ as_test_x='test -x'
|
||
+else
|
||
+ if ls -dL / >/dev/null 2>&1; then
|
||
+ as_ls_L_option=L
|
||
+ else
|
||
+ as_ls_L_option=
|
||
+ fi
|
||
+ as_test_x='
|
||
+ eval sh -c '\''
|
||
+ if test -d "$1"; then
|
||
+ test -d "$1/.";
|
||
+ else
|
||
+ case $1 in #(
|
||
+ -*)set "./$1";;
|
||
+ esac;
|
||
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
||
+ ???[sx]*):;;*)false;;esac;fi
|
||
+ '\'' sh
|
||
+ '
|
||
+fi
|
||
+as_executable_p=$as_test_x
|
||
+
|
||
+# Sed expression to map a string onto a valid CPP name.
|
||
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||
+
|
||
+# Sed expression to map a string onto a valid variable name.
|
||
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
|
||
+
|
||
+
|
||
+test -n "$DJDIR" || exec 7<&0 </dev/null
|
||
+exec 6>&1
|
||
+
|
||
+# Name of the host.
|
||
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
|
||
+# so uname gets run too.
|
||
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
|
||
+
|
||
+#
|
||
+# Initializations.
|
||
+#
|
||
+ac_default_prefix=/usr/local
|
||
+ac_clean_files=
|
||
+ac_config_libobj_dir=.
|
||
+LIBOBJS=
|
||
+cross_compiling=no
|
||
+subdirs=
|
||
+MFLAGS=
|
||
+MAKEFLAGS=
|
||
+
|
||
+# Identity of this package.
|
||
+PACKAGE_NAME='newlib'
|
||
+PACKAGE_TARNAME='newlib'
|
||
+PACKAGE_VERSION='1.20.0'
|
||
+PACKAGE_STRING='newlib 1.20.0'
|
||
+PACKAGE_BUGREPORT=''
|
||
+PACKAGE_URL=''
|
||
+
|
||
+ac_unique_file="libcglue.c"
|
||
+ac_subst_vars='LTLIBOBJS
|
||
+LIBOBJS
|
||
+sys_dir
|
||
+machine_dir
|
||
+libm_machine_dir
|
||
+lpfx
|
||
+aext
|
||
+oext
|
||
+OBJEXT
|
||
+USE_LIBTOOL_FALSE
|
||
+USE_LIBTOOL_TRUE
|
||
+ELIX_LEVEL_4_FALSE
|
||
+ELIX_LEVEL_4_TRUE
|
||
+ELIX_LEVEL_3_FALSE
|
||
+ELIX_LEVEL_3_TRUE
|
||
+ELIX_LEVEL_2_FALSE
|
||
+ELIX_LEVEL_2_TRUE
|
||
+ELIX_LEVEL_1_FALSE
|
||
+ELIX_LEVEL_1_TRUE
|
||
+ELIX_LEVEL_0_FALSE
|
||
+ELIX_LEVEL_0_TRUE
|
||
+LDFLAGS
|
||
+NO_INCLUDE_LIST
|
||
+NEWLIB_CFLAGS
|
||
+CCASFLAGS
|
||
+CCAS
|
||
+MAINT
|
||
+MAINTAINER_MODE_FALSE
|
||
+MAINTAINER_MODE_TRUE
|
||
+READELF
|
||
+RANLIB
|
||
+AR
|
||
+AS
|
||
+am__fastdepCC_FALSE
|
||
+am__fastdepCC_TRUE
|
||
+CCDEPMODE
|
||
+AMDEPBACKSLASH
|
||
+AMDEP_FALSE
|
||
+AMDEP_TRUE
|
||
+am__quote
|
||
+am__include
|
||
+DEPDIR
|
||
+CC
|
||
+am__untar
|
||
+am__tar
|
||
+AMTAR
|
||
+am__leading_dot
|
||
+SET_MAKE
|
||
+AWK
|
||
+mkdir_p
|
||
+MKDIR_P
|
||
+INSTALL_STRIP_PROGRAM
|
||
+STRIP
|
||
+install_sh
|
||
+MAKEINFO
|
||
+AUTOHEADER
|
||
+AUTOMAKE
|
||
+AUTOCONF
|
||
+ACLOCAL
|
||
+VERSION
|
||
+PACKAGE
|
||
+CYGPATH_W
|
||
+am__isrc
|
||
+INSTALL_DATA
|
||
+INSTALL_SCRIPT
|
||
+INSTALL_PROGRAM
|
||
+host_os
|
||
+host_vendor
|
||
+host_cpu
|
||
+host
|
||
+build_os
|
||
+build_vendor
|
||
+build_cpu
|
||
+build
|
||
+newlib_basedir
|
||
+MAY_SUPPLY_SYSCALLS_FALSE
|
||
+MAY_SUPPLY_SYSCALLS_TRUE
|
||
+target_alias
|
||
+host_alias
|
||
+build_alias
|
||
+LIBS
|
||
+ECHO_T
|
||
+ECHO_N
|
||
+ECHO_C
|
||
+DEFS
|
||
+mandir
|
||
+localedir
|
||
+libdir
|
||
+psdir
|
||
+pdfdir
|
||
+dvidir
|
||
+htmldir
|
||
+infodir
|
||
+docdir
|
||
+oldincludedir
|
||
+includedir
|
||
+localstatedir
|
||
+sharedstatedir
|
||
+sysconfdir
|
||
+datadir
|
||
+datarootdir
|
||
+libexecdir
|
||
+sbindir
|
||
+bindir
|
||
+program_transform_name
|
||
+prefix
|
||
+exec_prefix
|
||
+PACKAGE_URL
|
||
+PACKAGE_BUGREPORT
|
||
+PACKAGE_STRING
|
||
+PACKAGE_VERSION
|
||
+PACKAGE_TARNAME
|
||
+PACKAGE_NAME
|
||
+PATH_SEPARATOR
|
||
+SHELL'
|
||
+ac_subst_files=''
|
||
+ac_user_opts='
|
||
+enable_option_checking
|
||
+enable_multilib
|
||
+enable_target_optspace
|
||
+enable_malloc_debugging
|
||
+enable_newlib_multithread
|
||
+enable_newlib_iconv
|
||
+enable_newlib_elix_level
|
||
+enable_newlib_io_float
|
||
+enable_newlib_supplied_syscalls
|
||
+enable_dependency_tracking
|
||
+enable_maintainer_mode
|
||
+'
|
||
+ ac_precious_vars='build_alias
|
||
+host_alias
|
||
+target_alias
|
||
+CCAS
|
||
+CCASFLAGS'
|
||
+
|
||
+
|
||
+# Initialize some variables set by options.
|
||
+ac_init_help=
|
||
+ac_init_version=false
|
||
+ac_unrecognized_opts=
|
||
+ac_unrecognized_sep=
|
||
+# The variables have the same names as the options, with
|
||
+# dashes changed to underlines.
|
||
+cache_file=/dev/null
|
||
+exec_prefix=NONE
|
||
+no_create=
|
||
+no_recursion=
|
||
+prefix=NONE
|
||
+program_prefix=NONE
|
||
+program_suffix=NONE
|
||
+program_transform_name=s,x,x,
|
||
+silent=
|
||
+site=
|
||
+srcdir=
|
||
+verbose=
|
||
+x_includes=NONE
|
||
+x_libraries=NONE
|
||
+
|
||
+# Installation directory options.
|
||
+# These are left unexpanded so users can "make install exec_prefix=/foo"
|
||
+# and all the variables that are supposed to be based on exec_prefix
|
||
+# by default will actually change.
|
||
+# Use braces instead of parens because sh, perl, etc. also accept them.
|
||
+# (The list follows the same order as the GNU Coding Standards.)
|
||
+bindir='${exec_prefix}/bin'
|
||
+sbindir='${exec_prefix}/sbin'
|
||
+libexecdir='${exec_prefix}/libexec'
|
||
+datarootdir='${prefix}/share'
|
||
+datadir='${datarootdir}'
|
||
+sysconfdir='${prefix}/etc'
|
||
+sharedstatedir='${prefix}/com'
|
||
+localstatedir='${prefix}/var'
|
||
+includedir='${prefix}/include'
|
||
+oldincludedir='/usr/include'
|
||
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||
+infodir='${datarootdir}/info'
|
||
+htmldir='${docdir}'
|
||
+dvidir='${docdir}'
|
||
+pdfdir='${docdir}'
|
||
+psdir='${docdir}'
|
||
+libdir='${exec_prefix}/lib'
|
||
+localedir='${datarootdir}/locale'
|
||
+mandir='${datarootdir}/man'
|
||
+
|
||
+ac_prev=
|
||
+ac_dashdash=
|
||
+for ac_option
|
||
+do
|
||
+ # If the previous option needs an argument, assign it.
|
||
+ if test -n "$ac_prev"; then
|
||
+ eval $ac_prev=\$ac_option
|
||
+ ac_prev=
|
||
+ continue
|
||
+ fi
|
||
+
|
||
+ case $ac_option in
|
||
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
|
||
+ *=) ac_optarg= ;;
|
||
+ *) ac_optarg=yes ;;
|
||
+ esac
|
||
+
|
||
+ # Accept the important Cygnus configure options, so we can diagnose typos.
|
||
+
|
||
+ case $ac_dashdash$ac_option in
|
||
+ --)
|
||
+ ac_dashdash=yes ;;
|
||
+
|
||
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
|
||
+ ac_prev=bindir ;;
|
||
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
|
||
+ bindir=$ac_optarg ;;
|
||
+
|
||
+ -build | --build | --buil | --bui | --bu)
|
||
+ ac_prev=build_alias ;;
|
||
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
|
||
+ build_alias=$ac_optarg ;;
|
||
+
|
||
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
|
||
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||
+ ac_prev=cache_file ;;
|
||
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
|
||
+ cache_file=$ac_optarg ;;
|
||
+
|
||
+ --config-cache | -C)
|
||
+ cache_file=config.cache ;;
|
||
+
|
||
+ -datadir | --datadir | --datadi | --datad)
|
||
+ ac_prev=datadir ;;
|
||
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
|
||
+ datadir=$ac_optarg ;;
|
||
+
|
||
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
|
||
+ | --dataroo | --dataro | --datar)
|
||
+ ac_prev=datarootdir ;;
|
||
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
|
||
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
|
||
+ datarootdir=$ac_optarg ;;
|
||
+
|
||
+ -disable-* | --disable-*)
|
||
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
|
||
+ # Reject names that are not valid shell variable names.
|
||
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||
+ as_fn_error $? "invalid feature name: $ac_useropt"
|
||
+ ac_useropt_orig=$ac_useropt
|
||
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||
+ case $ac_user_opts in
|
||
+ *"
|
||
+"enable_$ac_useropt"
|
||
+"*) ;;
|
||
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
|
||
+ ac_unrecognized_sep=', ';;
|
||
+ esac
|
||
+ eval enable_$ac_useropt=no ;;
|
||
+
|
||
+ -docdir | --docdir | --docdi | --doc | --do)
|
||
+ ac_prev=docdir ;;
|
||
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
|
||
+ docdir=$ac_optarg ;;
|
||
+
|
||
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
|
||
+ ac_prev=dvidir ;;
|
||
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
|
||
+ dvidir=$ac_optarg ;;
|
||
+
|
||
+ -enable-* | --enable-*)
|
||
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
|
||
+ # Reject names that are not valid shell variable names.
|
||
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||
+ as_fn_error $? "invalid feature name: $ac_useropt"
|
||
+ ac_useropt_orig=$ac_useropt
|
||
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||
+ case $ac_user_opts in
|
||
+ *"
|
||
+"enable_$ac_useropt"
|
||
+"*) ;;
|
||
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
|
||
+ ac_unrecognized_sep=', ';;
|
||
+ esac
|
||
+ eval enable_$ac_useropt=\$ac_optarg ;;
|
||
+
|
||
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
|
||
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
|
||
+ | --exec | --exe | --ex)
|
||
+ ac_prev=exec_prefix ;;
|
||
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
|
||
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
|
||
+ | --exec=* | --exe=* | --ex=*)
|
||
+ exec_prefix=$ac_optarg ;;
|
||
+
|
||
+ -gas | --gas | --ga | --g)
|
||
+ # Obsolete; use --with-gas.
|
||
+ with_gas=yes ;;
|
||
+
|
||
+ -help | --help | --hel | --he | -h)
|
||
+ ac_init_help=long ;;
|
||
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
|
||
+ ac_init_help=recursive ;;
|
||
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
|
||
+ ac_init_help=short ;;
|
||
+
|
||
+ -host | --host | --hos | --ho)
|
||
+ ac_prev=host_alias ;;
|
||
+ -host=* | --host=* | --hos=* | --ho=*)
|
||
+ host_alias=$ac_optarg ;;
|
||
+
|
||
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
|
||
+ ac_prev=htmldir ;;
|
||
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
|
||
+ | --ht=*)
|
||
+ htmldir=$ac_optarg ;;
|
||
+
|
||
+ -includedir | --includedir | --includedi | --included | --include \
|
||
+ | --includ | --inclu | --incl | --inc)
|
||
+ ac_prev=includedir ;;
|
||
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
|
||
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
|
||
+ includedir=$ac_optarg ;;
|
||
+
|
||
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
|
||
+ ac_prev=infodir ;;
|
||
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
|
||
+ infodir=$ac_optarg ;;
|
||
+
|
||
+ -libdir | --libdir | --libdi | --libd)
|
||
+ ac_prev=libdir ;;
|
||
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
|
||
+ libdir=$ac_optarg ;;
|
||
+
|
||
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
|
||
+ | --libexe | --libex | --libe)
|
||
+ ac_prev=libexecdir ;;
|
||
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
|
||
+ | --libexe=* | --libex=* | --libe=*)
|
||
+ libexecdir=$ac_optarg ;;
|
||
+
|
||
+ -localedir | --localedir | --localedi | --localed | --locale)
|
||
+ ac_prev=localedir ;;
|
||
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
|
||
+ localedir=$ac_optarg ;;
|
||
+
|
||
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
|
||
+ | --localstate | --localstat | --localsta | --localst | --locals)
|
||
+ ac_prev=localstatedir ;;
|
||
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
|
||
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
|
||
+ localstatedir=$ac_optarg ;;
|
||
+
|
||
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
|
||
+ ac_prev=mandir ;;
|
||
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
|
||
+ mandir=$ac_optarg ;;
|
||
+
|
||
+ -nfp | --nfp | --nf)
|
||
+ # Obsolete; use --without-fp.
|
||
+ with_fp=no ;;
|
||
+
|
||
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
|
||
+ | --no-cr | --no-c | -n)
|
||
+ no_create=yes ;;
|
||
+
|
||
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
|
||
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
|
||
+ no_recursion=yes ;;
|
||
+
|
||
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
|
||
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
|
||
+ | --oldin | --oldi | --old | --ol | --o)
|
||
+ ac_prev=oldincludedir ;;
|
||
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
|
||
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
|
||
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
|
||
+ oldincludedir=$ac_optarg ;;
|
||
+
|
||
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
||
+ ac_prev=prefix ;;
|
||
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
||
+ prefix=$ac_optarg ;;
|
||
+
|
||
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
|
||
+ | --program-pre | --program-pr | --program-p)
|
||
+ ac_prev=program_prefix ;;
|
||
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
|
||
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
|
||
+ program_prefix=$ac_optarg ;;
|
||
+
|
||
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
|
||
+ | --program-suf | --program-su | --program-s)
|
||
+ ac_prev=program_suffix ;;
|
||
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
|
||
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
|
||
+ program_suffix=$ac_optarg ;;
|
||
+
|
||
+ -program-transform-name | --program-transform-name \
|
||
+ | --program-transform-nam | --program-transform-na \
|
||
+ | --program-transform-n | --program-transform- \
|
||
+ | --program-transform | --program-transfor \
|
||
+ | --program-transfo | --program-transf \
|
||
+ | --program-trans | --program-tran \
|
||
+ | --progr-tra | --program-tr | --program-t)
|
||
+ ac_prev=program_transform_name ;;
|
||
+ -program-transform-name=* | --program-transform-name=* \
|
||
+ | --program-transform-nam=* | --program-transform-na=* \
|
||
+ | --program-transform-n=* | --program-transform-=* \
|
||
+ | --program-transform=* | --program-transfor=* \
|
||
+ | --program-transfo=* | --program-transf=* \
|
||
+ | --program-trans=* | --program-tran=* \
|
||
+ | --progr-tra=* | --program-tr=* | --program-t=*)
|
||
+ program_transform_name=$ac_optarg ;;
|
||
+
|
||
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
|
||
+ ac_prev=pdfdir ;;
|
||
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
|
||
+ pdfdir=$ac_optarg ;;
|
||
+
|
||
+ -psdir | --psdir | --psdi | --psd | --ps)
|
||
+ ac_prev=psdir ;;
|
||
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
|
||
+ psdir=$ac_optarg ;;
|
||
+
|
||
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||
+ | -silent | --silent | --silen | --sile | --sil)
|
||
+ silent=yes ;;
|
||
+
|
||
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||
+ ac_prev=sbindir ;;
|
||
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||
+ | --sbi=* | --sb=*)
|
||
+ sbindir=$ac_optarg ;;
|
||
+
|
||
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
|
||
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
|
||
+ | --sharedst | --shareds | --shared | --share | --shar \
|
||
+ | --sha | --sh)
|
||
+ ac_prev=sharedstatedir ;;
|
||
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
|
||
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
|
||
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
|
||
+ | --sha=* | --sh=*)
|
||
+ sharedstatedir=$ac_optarg ;;
|
||
+
|
||
+ -site | --site | --sit)
|
||
+ ac_prev=site ;;
|
||
+ -site=* | --site=* | --sit=*)
|
||
+ site=$ac_optarg ;;
|
||
+
|
||
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||
+ ac_prev=srcdir ;;
|
||
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||
+ srcdir=$ac_optarg ;;
|
||
+
|
||
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
|
||
+ | --syscon | --sysco | --sysc | --sys | --sy)
|
||
+ ac_prev=sysconfdir ;;
|
||
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
|
||
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
|
||
+ sysconfdir=$ac_optarg ;;
|
||
+
|
||
+ -target | --target | --targe | --targ | --tar | --ta | --t)
|
||
+ ac_prev=target_alias ;;
|
||
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
|
||
+ target_alias=$ac_optarg ;;
|
||
+
|
||
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
|
||
+ verbose=yes ;;
|
||
+
|
||
+ -version | --version | --versio | --versi | --vers | -V)
|
||
+ ac_init_version=: ;;
|
||
+
|
||
+ -with-* | --with-*)
|
||
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
|
||
+ # Reject names that are not valid shell variable names.
|
||
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||
+ as_fn_error $? "invalid package name: $ac_useropt"
|
||
+ ac_useropt_orig=$ac_useropt
|
||
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||
+ case $ac_user_opts in
|
||
+ *"
|
||
+"with_$ac_useropt"
|
||
+"*) ;;
|
||
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
|
||
+ ac_unrecognized_sep=', ';;
|
||
+ esac
|
||
+ eval with_$ac_useropt=\$ac_optarg ;;
|
||
+
|
||
+ -without-* | --without-*)
|
||
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
|
||
+ # Reject names that are not valid shell variable names.
|
||
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
|
||
+ as_fn_error $? "invalid package name: $ac_useropt"
|
||
+ ac_useropt_orig=$ac_useropt
|
||
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
|
||
+ case $ac_user_opts in
|
||
+ *"
|
||
+"with_$ac_useropt"
|
||
+"*) ;;
|
||
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
|
||
+ ac_unrecognized_sep=', ';;
|
||
+ esac
|
||
+ eval with_$ac_useropt=no ;;
|
||
+
|
||
+ --x)
|
||
+ # Obsolete; use --with-x.
|
||
+ with_x=yes ;;
|
||
+
|
||
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
|
||
+ | --x-incl | --x-inc | --x-in | --x-i)
|
||
+ ac_prev=x_includes ;;
|
||
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
|
||
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
|
||
+ x_includes=$ac_optarg ;;
|
||
+
|
||
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
|
||
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
|
||
+ ac_prev=x_libraries ;;
|
||
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
|
||
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
|
||
+ x_libraries=$ac_optarg ;;
|
||
+
|
||
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
|
||
+Try \`$0 --help' for more information"
|
||
+ ;;
|
||
+
|
||
+ *=*)
|
||
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
|
||
+ # Reject names that are not valid shell variable names.
|
||
+ case $ac_envvar in #(
|
||
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
|
||
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
|
||
+ esac
|
||
+ eval $ac_envvar=\$ac_optarg
|
||
+ export $ac_envvar ;;
|
||
+
|
||
+ *)
|
||
+ # FIXME: should be removed in autoconf 3.0.
|
||
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
|
||
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
|
||
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
|
||
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
|
||
+ ;;
|
||
+
|
||
+ esac
|
||
+done
|
||
+
|
||
+if test -n "$ac_prev"; then
|
||
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
|
||
+ as_fn_error $? "missing argument to $ac_option"
|
||
+fi
|
||
+
|
||
+if test -n "$ac_unrecognized_opts"; then
|
||
+ case $enable_option_checking in
|
||
+ no) ;;
|
||
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
|
||
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
|
||
+ esac
|
||
+fi
|
||
+
|
||
+# Check all directory arguments for consistency.
|
||
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||
+ datadir sysconfdir sharedstatedir localstatedir includedir \
|
||
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||
+ libdir localedir mandir
|
||
+do
|
||
+ eval ac_val=\$$ac_var
|
||
+ # Remove trailing slashes.
|
||
+ case $ac_val in
|
||
+ */ )
|
||
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
|
||
+ eval $ac_var=\$ac_val;;
|
||
+ esac
|
||
+ # Be sure to have absolute directory names.
|
||
+ case $ac_val in
|
||
+ [\\/$]* | ?:[\\/]* ) continue;;
|
||
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
|
||
+ esac
|
||
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
|
||
+done
|
||
+
|
||
+# There might be people who depend on the old broken behavior: `$host'
|
||
+# used to hold the argument of --host etc.
|
||
+# FIXME: To remove some day.
|
||
+build=$build_alias
|
||
+host=$host_alias
|
||
+target=$target_alias
|
||
+
|
||
+# FIXME: To remove some day.
|
||
+if test "x$host_alias" != x; then
|
||
+ if test "x$build_alias" = x; then
|
||
+ cross_compiling=maybe
|
||
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
|
||
+ If a cross compiler is detected then cross compile mode will be used" >&2
|
||
+ elif test "x$build_alias" != "x$host_alias"; then
|
||
+ cross_compiling=yes
|
||
+ fi
|
||
+fi
|
||
+
|
||
+ac_tool_prefix=
|
||
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
|
||
+
|
||
+test "$silent" = yes && exec 6>/dev/null
|
||
+
|
||
+
|
||
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
|
||
+ac_ls_di=`ls -di .` &&
|
||
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
|
||
+ as_fn_error $? "working directory cannot be determined"
|
||
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
|
||
+ as_fn_error $? "pwd does not report name of working directory"
|
||
+
|
||
+
|
||
+# Find the source files, if location was not specified.
|
||
+if test -z "$srcdir"; then
|
||
+ ac_srcdir_defaulted=yes
|
||
+ # Try the directory containing this script, then the parent directory.
|
||
+ ac_confdir=`$as_dirname -- "$as_myself" ||
|
||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$as_myself" : 'X\(//\)[^/]' \| \
|
||
+ X"$as_myself" : 'X\(//\)$' \| \
|
||
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$as_myself" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ srcdir=$ac_confdir
|
||
+ if test ! -r "$srcdir/$ac_unique_file"; then
|
||
+ srcdir=..
|
||
+ fi
|
||
+else
|
||
+ ac_srcdir_defaulted=no
|
||
+fi
|
||
+if test ! -r "$srcdir/$ac_unique_file"; then
|
||
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
|
||
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
|
||
+fi
|
||
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
|
||
+ac_abs_confdir=`(
|
||
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
|
||
+ pwd)`
|
||
+# When building in place, set srcdir=.
|
||
+if test "$ac_abs_confdir" = "$ac_pwd"; then
|
||
+ srcdir=.
|
||
+fi
|
||
+# Remove unnecessary trailing slashes from srcdir.
|
||
+# Double slashes in file names in object file debugging info
|
||
+# mess up M-x gdb in Emacs.
|
||
+case $srcdir in
|
||
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
|
||
+esac
|
||
+for ac_var in $ac_precious_vars; do
|
||
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
|
||
+ eval ac_env_${ac_var}_value=\$${ac_var}
|
||
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
|
||
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
|
||
+done
|
||
+
|
||
+#
|
||
+# Report the --help message.
|
||
+#
|
||
+if test "$ac_init_help" = "long"; then
|
||
+ # Omit some internal or obsolete options to make the list less imposing.
|
||
+ # This message is too long to be a string in the A/UX 3.1 sh.
|
||
+ cat <<_ACEOF
|
||
+\`configure' configures newlib 1.20.0 to adapt to many kinds of systems.
|
||
+
|
||
+Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
+
|
||
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
||
+VAR=VALUE. See below for descriptions of some of the useful variables.
|
||
+
|
||
+Defaults for the options are specified in brackets.
|
||
+
|
||
+Configuration:
|
||
+ -h, --help display this help and exit
|
||
+ --help=short display options specific to this package
|
||
+ --help=recursive display the short help of all the included packages
|
||
+ -V, --version display version information and exit
|
||
+ -q, --quiet, --silent do not print \`checking ...' messages
|
||
+ --cache-file=FILE cache test results in FILE [disabled]
|
||
+ -C, --config-cache alias for \`--cache-file=config.cache'
|
||
+ -n, --no-create do not create output files
|
||
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
|
||
+
|
||
+Installation directories:
|
||
+ --prefix=PREFIX install architecture-independent files in PREFIX
|
||
+ [$ac_default_prefix]
|
||
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
|
||
+ [PREFIX]
|
||
+
|
||
+By default, \`make install' will install all the files in
|
||
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
|
||
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
|
||
+for instance \`--prefix=\$HOME'.
|
||
+
|
||
+For better control, use the options below.
|
||
+
|
||
+Fine tuning of the installation directories:
|
||
+ --bindir=DIR user executables [EPREFIX/bin]
|
||
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
|
||
+ --libexecdir=DIR program executables [EPREFIX/libexec]
|
||
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||
+ --libdir=DIR object code libraries [EPREFIX/lib]
|
||
+ --includedir=DIR C header files [PREFIX/include]
|
||
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
|
||
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
|
||
+ --infodir=DIR info documentation [DATAROOTDIR/info]
|
||
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
|
||
+ --mandir=DIR man documentation [DATAROOTDIR/man]
|
||
+ --docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
|
||
+ --htmldir=DIR html documentation [DOCDIR]
|
||
+ --dvidir=DIR dvi documentation [DOCDIR]
|
||
+ --pdfdir=DIR pdf documentation [DOCDIR]
|
||
+ --psdir=DIR ps documentation [DOCDIR]
|
||
+_ACEOF
|
||
+
|
||
+ cat <<\_ACEOF
|
||
+
|
||
+Program names:
|
||
+ --program-prefix=PREFIX prepend PREFIX to installed program names
|
||
+ --program-suffix=SUFFIX append SUFFIX to installed program names
|
||
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
|
||
+
|
||
+System types:
|
||
+ --build=BUILD configure for building on BUILD [guessed]
|
||
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
|
||
+_ACEOF
|
||
+fi
|
||
+
|
||
+if test -n "$ac_init_help"; then
|
||
+ case $ac_init_help in
|
||
+ short | recursive ) echo "Configuration of newlib 1.20.0:";;
|
||
+ esac
|
||
+ cat <<\_ACEOF
|
||
+
|
||
+Optional Features:
|
||
+ --disable-option-checking ignore unrecognized --enable/--with options
|
||
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||
+ --enable-multilib build many library versions (default)
|
||
+ --enable-target-optspace optimize for space
|
||
+ --enable-malloc-debugging indicate malloc debugging requested
|
||
+ --enable-newlib-multithread enable support for multiple threads
|
||
+ --enable-newlib-iconv enable iconv library support
|
||
+ --enable-newlib-elix-level supply desired elix library level (1-4)
|
||
+ --disable-newlib-io-float disable printf/scanf family float support
|
||
+ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
|
||
+ --disable-dependency-tracking speeds up one-time build
|
||
+ --enable-dependency-tracking do not reject slow dependency extractors
|
||
+ --enable-maintainer-mode enable make rules and dependencies not useful
|
||
+ (and sometimes confusing) to the casual installer
|
||
+
|
||
+Some influential environment variables:
|
||
+ CCAS assembler compiler command (defaults to CC)
|
||
+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
|
||
+
|
||
+Use these variables to override the choices made by `configure' or to help
|
||
+it to find libraries and programs with nonstandard names/locations.
|
||
+
|
||
+Report bugs to the package provider.
|
||
+_ACEOF
|
||
+ac_status=$?
|
||
+fi
|
||
+
|
||
+if test "$ac_init_help" = "recursive"; then
|
||
+ # If there are subdirs, report their specific --help.
|
||
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
|
||
+ test -d "$ac_dir" ||
|
||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
|
||
+ continue
|
||
+ ac_builddir=.
|
||
+
|
||
+case "$ac_dir" in
|
||
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
|
||
+*)
|
||
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
|
||
+ # A ".." for each directory in $ac_dir_suffix.
|
||
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
|
||
+ case $ac_top_builddir_sub in
|
||
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
|
||
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
|
||
+ esac ;;
|
||
+esac
|
||
+ac_abs_top_builddir=$ac_pwd
|
||
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
|
||
+# for backward compatibility:
|
||
+ac_top_builddir=$ac_top_build_prefix
|
||
+
|
||
+case $srcdir in
|
||
+ .) # We are building in place.
|
||
+ ac_srcdir=.
|
||
+ ac_top_srcdir=$ac_top_builddir_sub
|
||
+ ac_abs_top_srcdir=$ac_pwd ;;
|
||
+ [\\/]* | ?:[\\/]* ) # Absolute name.
|
||
+ ac_srcdir=$srcdir$ac_dir_suffix;
|
||
+ ac_top_srcdir=$srcdir
|
||
+ ac_abs_top_srcdir=$srcdir ;;
|
||
+ *) # Relative name.
|
||
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
|
||
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
|
||
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
|
||
+esac
|
||
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
|
||
+
|
||
+ cd "$ac_dir" || { ac_status=$?; continue; }
|
||
+ # Check for guested configure.
|
||
+ if test -f "$ac_srcdir/configure.gnu"; then
|
||
+ echo &&
|
||
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
|
||
+ elif test -f "$ac_srcdir/configure"; then
|
||
+ echo &&
|
||
+ $SHELL "$ac_srcdir/configure" --help=recursive
|
||
+ else
|
||
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
|
||
+ fi || ac_status=$?
|
||
+ cd "$ac_pwd" || { ac_status=$?; break; }
|
||
+ done
|
||
+fi
|
||
+
|
||
+test -n "$ac_init_help" && exit $ac_status
|
||
+if $ac_init_version; then
|
||
+ cat <<\_ACEOF
|
||
+newlib configure 1.20.0
|
||
+generated by GNU Autoconf 2.68
|
||
+
|
||
+Copyright (C) 2010 Free Software Foundation, Inc.
|
||
+This configure script is free software; the Free Software Foundation
|
||
+gives unlimited permission to copy, distribute and modify it.
|
||
+_ACEOF
|
||
+ exit
|
||
+fi
|
||
+
|
||
+## ------------------------ ##
|
||
+## Autoconf initialization. ##
|
||
+## ------------------------ ##
|
||
+
|
||
+# ac_fn_c_try_compile LINENO
|
||
+# --------------------------
|
||
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
|
||
+ac_fn_c_try_compile ()
|
||
+{
|
||
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||
+ rm -f conftest.$ac_objext
|
||
+ if { { ac_try="$ac_compile"
|
||
+case "(($ac_try" in
|
||
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||
+ *) ac_try_echo=$ac_try;;
|
||
+esac
|
||
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||
+$as_echo "$ac_try_echo"; } >&5
|
||
+ (eval "$ac_compile") 2>conftest.err
|
||
+ ac_status=$?
|
||
+ if test -s conftest.err; then
|
||
+ grep -v '^ *+' conftest.err >conftest.er1
|
||
+ cat conftest.er1 >&5
|
||
+ mv -f conftest.er1 conftest.err
|
||
+ fi
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||
+ test $ac_status = 0; } && {
|
||
+ test -z "$ac_c_werror_flag" ||
|
||
+ test ! -s conftest.err
|
||
+ } && test -s conftest.$ac_objext; then :
|
||
+ ac_retval=0
|
||
+else
|
||
+ $as_echo "$as_me: failed program was:" >&5
|
||
+sed 's/^/| /' conftest.$ac_ext >&5
|
||
+
|
||
+ ac_retval=1
|
||
+fi
|
||
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||
+ as_fn_set_status $ac_retval
|
||
+
|
||
+} # ac_fn_c_try_compile
|
||
+cat >config.log <<_ACEOF
|
||
+This file contains any messages produced by compilers while
|
||
+running configure, to aid debugging if configure makes a mistake.
|
||
+
|
||
+It was created by newlib $as_me 1.20.0, which was
|
||
+generated by GNU Autoconf 2.68. Invocation command line was
|
||
+
|
||
+ $ $0 $@
|
||
+
|
||
+_ACEOF
|
||
+exec 5>>config.log
|
||
+{
|
||
+cat <<_ASUNAME
|
||
+## --------- ##
|
||
+## Platform. ##
|
||
+## --------- ##
|
||
+
|
||
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
|
||
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
||
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
||
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
|
||
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
|
||
+
|
||
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
|
||
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
|
||
+
|
||
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
|
||
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
|
||
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
|
||
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
|
||
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
|
||
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
|
||
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
|
||
+
|
||
+_ASUNAME
|
||
+
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ $as_echo "PATH: $as_dir"
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+} >&5
|
||
+
|
||
+cat >&5 <<_ACEOF
|
||
+
|
||
+
|
||
+## ----------- ##
|
||
+## Core tests. ##
|
||
+## ----------- ##
|
||
+
|
||
+_ACEOF
|
||
+
|
||
+
|
||
+# Keep a trace of the command line.
|
||
+# Strip out --no-create and --no-recursion so they do not pile up.
|
||
+# Strip out --silent because we don't want to record it for future runs.
|
||
+# Also quote any args containing shell meta-characters.
|
||
+# Make two passes to allow for proper duplicate-argument suppression.
|
||
+ac_configure_args=
|
||
+ac_configure_args0=
|
||
+ac_configure_args1=
|
||
+ac_must_keep_next=false
|
||
+for ac_pass in 1 2
|
||
+do
|
||
+ for ac_arg
|
||
+ do
|
||
+ case $ac_arg in
|
||
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
|
||
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||
+ | -silent | --silent | --silen | --sile | --sil)
|
||
+ continue ;;
|
||
+ *\'*)
|
||
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
|
||
+ esac
|
||
+ case $ac_pass in
|
||
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
|
||
+ 2)
|
||
+ as_fn_append ac_configure_args1 " '$ac_arg'"
|
||
+ if test $ac_must_keep_next = true; then
|
||
+ ac_must_keep_next=false # Got value, back to normal.
|
||
+ else
|
||
+ case $ac_arg in
|
||
+ *=* | --config-cache | -C | -disable-* | --disable-* \
|
||
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
|
||
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
|
||
+ | -with-* | --with-* | -without-* | --without-* | --x)
|
||
+ case "$ac_configure_args0 " in
|
||
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
|
||
+ esac
|
||
+ ;;
|
||
+ -* ) ac_must_keep_next=true ;;
|
||
+ esac
|
||
+ fi
|
||
+ as_fn_append ac_configure_args " '$ac_arg'"
|
||
+ ;;
|
||
+ esac
|
||
+ done
|
||
+done
|
||
+{ ac_configure_args0=; unset ac_configure_args0;}
|
||
+{ ac_configure_args1=; unset ac_configure_args1;}
|
||
+
|
||
+# When interrupted or exit'd, cleanup temporary files, and complete
|
||
+# config.log. We remove comments because anyway the quotes in there
|
||
+# would cause problems or look ugly.
|
||
+# WARNING: Use '\'' to represent an apostrophe within the trap.
|
||
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
|
||
+trap 'exit_status=$?
|
||
+ # Save into config.log some information that might help in debugging.
|
||
+ {
|
||
+ echo
|
||
+
|
||
+ $as_echo "## ---------------- ##
|
||
+## Cache variables. ##
|
||
+## ---------------- ##"
|
||
+ echo
|
||
+ # The following way of writing the cache mishandles newlines in values,
|
||
+(
|
||
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
|
||
+ eval ac_val=\$$ac_var
|
||
+ case $ac_val in #(
|
||
+ *${as_nl}*)
|
||
+ case $ac_var in #(
|
||
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
|
||
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
|
||
+ esac
|
||
+ case $ac_var in #(
|
||
+ _ | IFS | as_nl) ;; #(
|
||
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
|
||
+ *) { eval $ac_var=; unset $ac_var;} ;;
|
||
+ esac ;;
|
||
+ esac
|
||
+ done
|
||
+ (set) 2>&1 |
|
||
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
|
||
+ *${as_nl}ac_space=\ *)
|
||
+ sed -n \
|
||
+ "s/'\''/'\''\\\\'\'''\''/g;
|
||
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
|
||
+ ;; #(
|
||
+ *)
|
||
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
|
||
+ ;;
|
||
+ esac |
|
||
+ sort
|
||
+)
|
||
+ echo
|
||
+
|
||
+ $as_echo "## ----------------- ##
|
||
+## Output variables. ##
|
||
+## ----------------- ##"
|
||
+ echo
|
||
+ for ac_var in $ac_subst_vars
|
||
+ do
|
||
+ eval ac_val=\$$ac_var
|
||
+ case $ac_val in
|
||
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
|
||
+ esac
|
||
+ $as_echo "$ac_var='\''$ac_val'\''"
|
||
+ done | sort
|
||
+ echo
|
||
+
|
||
+ if test -n "$ac_subst_files"; then
|
||
+ $as_echo "## ------------------- ##
|
||
+## File substitutions. ##
|
||
+## ------------------- ##"
|
||
+ echo
|
||
+ for ac_var in $ac_subst_files
|
||
+ do
|
||
+ eval ac_val=\$$ac_var
|
||
+ case $ac_val in
|
||
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
|
||
+ esac
|
||
+ $as_echo "$ac_var='\''$ac_val'\''"
|
||
+ done | sort
|
||
+ echo
|
||
+ fi
|
||
+
|
||
+ if test -s confdefs.h; then
|
||
+ $as_echo "## ----------- ##
|
||
+## confdefs.h. ##
|
||
+## ----------- ##"
|
||
+ echo
|
||
+ cat confdefs.h
|
||
+ echo
|
||
+ fi
|
||
+ test "$ac_signal" != 0 &&
|
||
+ $as_echo "$as_me: caught signal $ac_signal"
|
||
+ $as_echo "$as_me: exit $exit_status"
|
||
+ } >&5
|
||
+ rm -f core *.core core.conftest.* &&
|
||
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
|
||
+ exit $exit_status
|
||
+' 0
|
||
+for ac_signal in 1 2 13 15; do
|
||
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
|
||
+done
|
||
+ac_signal=0
|
||
+
|
||
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
|
||
+rm -f -r conftest* confdefs.h
|
||
+
|
||
+$as_echo "/* confdefs.h */" > confdefs.h
|
||
+
|
||
+# Predefined preprocessor variables.
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_NAME "$PACKAGE_NAME"
|
||
+_ACEOF
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
|
||
+_ACEOF
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
|
||
+_ACEOF
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_STRING "$PACKAGE_STRING"
|
||
+_ACEOF
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
|
||
+_ACEOF
|
||
+
|
||
+cat >>confdefs.h <<_ACEOF
|
||
+#define PACKAGE_URL "$PACKAGE_URL"
|
||
+_ACEOF
|
||
+
|
||
+
|
||
+# Let the site file select an alternate cache file if it wants to.
|
||
+# Prefer an explicitly selected file to automatically selected ones.
|
||
+ac_site_file1=NONE
|
||
+ac_site_file2=NONE
|
||
+if test -n "$CONFIG_SITE"; then
|
||
+ # We do not want a PATH search for config.site.
|
||
+ case $CONFIG_SITE in #((
|
||
+ -*) ac_site_file1=./$CONFIG_SITE;;
|
||
+ */*) ac_site_file1=$CONFIG_SITE;;
|
||
+ *) ac_site_file1=./$CONFIG_SITE;;
|
||
+ esac
|
||
+elif test "x$prefix" != xNONE; then
|
||
+ ac_site_file1=$prefix/share/config.site
|
||
+ ac_site_file2=$prefix/etc/config.site
|
||
+else
|
||
+ ac_site_file1=$ac_default_prefix/share/config.site
|
||
+ ac_site_file2=$ac_default_prefix/etc/config.site
|
||
+fi
|
||
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
|
||
+do
|
||
+ test "x$ac_site_file" = xNONE && continue
|
||
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
|
||
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
|
||
+ sed 's/^/| /' "$ac_site_file" >&5
|
||
+ . "$ac_site_file" \
|
||
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||
+as_fn_error $? "failed to load site script $ac_site_file
|
||
+See \`config.log' for more details" "$LINENO" 5; }
|
||
+ fi
|
||
+done
|
||
+
|
||
+if test -r "$cache_file"; then
|
||
+ # Some versions of bash will fail to source /dev/null (special files
|
||
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
|
||
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
|
||
+$as_echo "$as_me: loading cache $cache_file" >&6;}
|
||
+ case $cache_file in
|
||
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
|
||
+ *) . "./$cache_file";;
|
||
+ esac
|
||
+ fi
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
|
||
+$as_echo "$as_me: creating cache $cache_file" >&6;}
|
||
+ >$cache_file
|
||
+fi
|
||
+
|
||
+# Check that the precious variables saved in the cache have kept the same
|
||
+# value.
|
||
+ac_cache_corrupted=false
|
||
+for ac_var in $ac_precious_vars; do
|
||
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
|
||
+ eval ac_new_set=\$ac_env_${ac_var}_set
|
||
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
|
||
+ eval ac_new_val=\$ac_env_${ac_var}_value
|
||
+ case $ac_old_set,$ac_new_set in
|
||
+ set,)
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
|
||
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
|
||
+ ac_cache_corrupted=: ;;
|
||
+ ,set)
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
|
||
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
|
||
+ ac_cache_corrupted=: ;;
|
||
+ ,);;
|
||
+ *)
|
||
+ if test "x$ac_old_val" != "x$ac_new_val"; then
|
||
+ # differences in whitespace do not lead to failure.
|
||
+ ac_old_val_w=`echo x $ac_old_val`
|
||
+ ac_new_val_w=`echo x $ac_new_val`
|
||
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
|
||
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
|
||
+ ac_cache_corrupted=:
|
||
+ else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
|
||
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
|
||
+ eval $ac_var=\$ac_old_val
|
||
+ fi
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
|
||
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
|
||
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
|
||
+ fi;;
|
||
+ esac
|
||
+ # Pass precious variables to config.status.
|
||
+ if test "$ac_new_set" = set; then
|
||
+ case $ac_new_val in
|
||
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
|
||
+ *) ac_arg=$ac_var=$ac_new_val ;;
|
||
+ esac
|
||
+ case " $ac_configure_args " in
|
||
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
|
||
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
|
||
+ esac
|
||
+ fi
|
||
+done
|
||
+if $ac_cache_corrupted; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
|
||
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
|
||
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
|
||
+fi
|
||
+## -------------------- ##
|
||
+## Main body of script. ##
|
||
+## -------------------- ##
|
||
+
|
||
+ac_ext=c
|
||
+ac_cpp='$CPP $CPPFLAGS'
|
||
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+ac_aux_dir=
|
||
+for ac_dir in ../../../.. "$srcdir"/../../../..; do
|
||
+ if test -f "$ac_dir/install-sh"; then
|
||
+ ac_aux_dir=$ac_dir
|
||
+ ac_install_sh="$ac_aux_dir/install-sh -c"
|
||
+ break
|
||
+ elif test -f "$ac_dir/install.sh"; then
|
||
+ ac_aux_dir=$ac_dir
|
||
+ ac_install_sh="$ac_aux_dir/install.sh -c"
|
||
+ break
|
||
+ elif test -f "$ac_dir/shtool"; then
|
||
+ ac_aux_dir=$ac_dir
|
||
+ ac_install_sh="$ac_aux_dir/shtool install -c"
|
||
+ break
|
||
+ fi
|
||
+done
|
||
+if test -z "$ac_aux_dir"; then
|
||
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../../.. \"$srcdir\"/../../../.." "$LINENO" 5
|
||
+fi
|
||
+
|
||
+# These three variables are undocumented and unsupported,
|
||
+# and are intended to be withdrawn in a future Autoconf release.
|
||
+# They can cause serious problems if a builder's source tree is in a directory
|
||
+# whose full name contains unusual characters.
|
||
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
|
||
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
|
||
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+# Make sure we can run config.sub.
|
||
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
|
||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
|
||
+$as_echo_n "checking build system type... " >&6; }
|
||
+if ${ac_cv_build+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ ac_build_alias=$build_alias
|
||
+test "x$ac_build_alias" = x &&
|
||
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
|
||
+test "x$ac_build_alias" = x &&
|
||
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
|
||
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
|
||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
|
||
+
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
|
||
+$as_echo "$ac_cv_build" >&6; }
|
||
+case $ac_cv_build in
|
||
+*-*-*) ;;
|
||
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
|
||
+esac
|
||
+build=$ac_cv_build
|
||
+ac_save_IFS=$IFS; IFS='-'
|
||
+set x $ac_cv_build
|
||
+shift
|
||
+build_cpu=$1
|
||
+build_vendor=$2
|
||
+shift; shift
|
||
+# Remember, the first character of IFS is used to create $*,
|
||
+# except with old shells:
|
||
+build_os=$*
|
||
+IFS=$ac_save_IFS
|
||
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
|
||
+
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
|
||
+$as_echo_n "checking host system type... " >&6; }
|
||
+if ${ac_cv_host+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test "x$host_alias" = x; then
|
||
+ ac_cv_host=$ac_cv_build
|
||
+else
|
||
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
|
||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
|
||
+fi
|
||
+
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
|
||
+$as_echo "$ac_cv_host" >&6; }
|
||
+case $ac_cv_host in
|
||
+*-*-*) ;;
|
||
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
|
||
+esac
|
||
+host=$ac_cv_host
|
||
+ac_save_IFS=$IFS; IFS='-'
|
||
+set x $ac_cv_host
|
||
+shift
|
||
+host_cpu=$1
|
||
+host_vendor=$2
|
||
+shift; shift
|
||
+# Remember, the first character of IFS is used to create $*,
|
||
+# except with old shells:
|
||
+host_os=$*
|
||
+IFS=$ac_save_IFS
|
||
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
|
||
+
|
||
+
|
||
+am__api_version='1.11'
|
||
+
|
||
+# Find a good install program. We prefer a C program (faster),
|
||
+# so one script is as good as another. But avoid the broken or
|
||
+# incompatible versions:
|
||
+# SysV /etc/install, /usr/sbin/install
|
||
+# SunOS /usr/etc/install
|
||
+# IRIX /sbin/install
|
||
+# AIX /bin/install
|
||
+# AmigaOS /C/install, which installs bootblocks on floppy discs
|
||
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
|
||
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
||
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||
+# OS/2's system install, which has a completely different semantic
|
||
+# ./install, which can be erroneously created by make from ./install.sh.
|
||
+# Reject install programs that cannot install multiple files.
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
|
||
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
|
||
+if test -z "$INSTALL"; then
|
||
+if ${ac_cv_path_install+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ # Account for people who put trailing slashes in PATH elements.
|
||
+case $as_dir/ in #((
|
||
+ ./ | .// | /[cC]/* | \
|
||
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
|
||
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
|
||
+ /usr/ucb/* ) ;;
|
||
+ *)
|
||
+ # OSF1 and SCO ODT 3.0 have their own names for install.
|
||
+ # Don't use installbsd from OSF since it installs stuff as root
|
||
+ # by default.
|
||
+ for ac_prog in ginstall scoinst install; do
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
|
||
+ if test $ac_prog = install &&
|
||
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||
+ # AIX install. It has an incompatible calling convention.
|
||
+ :
|
||
+ elif test $ac_prog = install &&
|
||
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||
+ # program-specific install script used by HP pwplus--don't use.
|
||
+ :
|
||
+ else
|
||
+ rm -rf conftest.one conftest.two conftest.dir
|
||
+ echo one > conftest.one
|
||
+ echo two > conftest.two
|
||
+ mkdir conftest.dir
|
||
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
|
||
+ test -s conftest.one && test -s conftest.two &&
|
||
+ test -s conftest.dir/conftest.one &&
|
||
+ test -s conftest.dir/conftest.two
|
||
+ then
|
||
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
|
||
+ break 3
|
||
+ fi
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+ done
|
||
+ ;;
|
||
+esac
|
||
+
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+rm -rf conftest.one conftest.two conftest.dir
|
||
+
|
||
+fi
|
||
+ if test "${ac_cv_path_install+set}" = set; then
|
||
+ INSTALL=$ac_cv_path_install
|
||
+ else
|
||
+ # As a last resort, use the slow shell script. Don't cache a
|
||
+ # value for INSTALL within a source directory, because that will
|
||
+ # break other packages using the cache if that directory is
|
||
+ # removed, or if the value is a relative name.
|
||
+ INSTALL=$ac_install_sh
|
||
+ fi
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
|
||
+$as_echo "$INSTALL" >&6; }
|
||
+
|
||
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
||
+# It thinks the first close brace ends the variable substitution.
|
||
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
||
+
|
||
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
|
||
+
|
||
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
|
||
+$as_echo_n "checking whether build environment is sane... " >&6; }
|
||
+# Just in case
|
||
+sleep 1
|
||
+echo timestamp > conftest.file
|
||
+# Reject unsafe characters in $srcdir or the absolute working directory
|
||
+# name. Accept space and tab only in the latter.
|
||
+am_lf='
|
||
+'
|
||
+case `pwd` in
|
||
+ *[\\\"\#\$\&\'\`$am_lf]*)
|
||
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
|
||
+esac
|
||
+case $srcdir in
|
||
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
|
||
+esac
|
||
+
|
||
+# Do `set' in a subshell so we don't clobber the current shell's
|
||
+# arguments. Must try -L first in case configure is actually a
|
||
+# symlink; some systems play weird games with the mod time of symlinks
|
||
+# (eg FreeBSD returns the mod time of the symlink's containing
|
||
+# directory).
|
||
+if (
|
||
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||
+ if test "$*" = "X"; then
|
||
+ # -L didn't work.
|
||
+ set X `ls -t "$srcdir/configure" conftest.file`
|
||
+ fi
|
||
+ rm -f conftest.file
|
||
+ if test "$*" != "X $srcdir/configure conftest.file" \
|
||
+ && test "$*" != "X conftest.file $srcdir/configure"; then
|
||
+
|
||
+ # If neither matched, then we have a broken ls. This can happen
|
||
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
|
||
+ # broken ls alias from the environment. This has actually
|
||
+ # happened. Such a system could not be considered "sane".
|
||
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
|
||
+alias in your environment" "$LINENO" 5
|
||
+ fi
|
||
+
|
||
+ test "$2" = conftest.file
|
||
+ )
|
||
+then
|
||
+ # Ok.
|
||
+ :
|
||
+else
|
||
+ as_fn_error $? "newly created file is older than distributed files!
|
||
+Check your system clock" "$LINENO" 5
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||
+$as_echo "yes" >&6; }
|
||
+test "$program_prefix" != NONE &&
|
||
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
|
||
+# Use a double $ so make ignores it.
|
||
+test "$program_suffix" != NONE &&
|
||
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
|
||
+# Double any \ or $.
|
||
+# By default was `s,x,x', remove it if useless.
|
||
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
|
||
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
|
||
+
|
||
+# expand $ac_aux_dir to an absolute path
|
||
+am_aux_dir=`cd $ac_aux_dir && pwd`
|
||
+
|
||
+if test x"${MISSING+set}" != xset; then
|
||
+ case $am_aux_dir in
|
||
+ *\ * | *\ *)
|
||
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||
+ *)
|
||
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||
+ esac
|
||
+fi
|
||
+# Use eval to expand $SHELL
|
||
+if eval "$MISSING --run true"; then
|
||
+ am_missing_run="$MISSING --run "
|
||
+else
|
||
+ am_missing_run=
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
|
||
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
|
||
+fi
|
||
+
|
||
+if test x"${install_sh}" != xset; then
|
||
+ case $am_aux_dir in
|
||
+ *\ * | *\ *)
|
||
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||
+ *)
|
||
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||
+ esac
|
||
+fi
|
||
+
|
||
+# Installed binaries are usually stripped using `strip' when the user
|
||
+# run `make install-strip'. However `strip' might not be the right
|
||
+# tool to use in cross-compilation environments, therefore Automake
|
||
+# will honor the `STRIP' environment variable to overrule this program.
|
||
+if test "$cross_compiling" != no; then
|
||
+ if test -n "$ac_tool_prefix"; then
|
||
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
|
||
+set dummy ${ac_tool_prefix}strip; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_STRIP+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$STRIP"; then
|
||
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+STRIP=$ac_cv_prog_STRIP
|
||
+if test -n "$STRIP"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
|
||
+$as_echo "$STRIP" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+fi
|
||
+if test -z "$ac_cv_prog_STRIP"; then
|
||
+ ac_ct_STRIP=$STRIP
|
||
+ # Extract the first word of "strip", so it can be a program name with args.
|
||
+set dummy strip; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$ac_ct_STRIP"; then
|
||
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_ac_ct_STRIP="strip"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
|
||
+if test -n "$ac_ct_STRIP"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
|
||
+$as_echo "$ac_ct_STRIP" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+ if test "x$ac_ct_STRIP" = x; then
|
||
+ STRIP=":"
|
||
+ else
|
||
+ case $cross_compiling:$ac_tool_warned in
|
||
+yes:)
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||
+ac_tool_warned=yes ;;
|
||
+esac
|
||
+ STRIP=$ac_ct_STRIP
|
||
+ fi
|
||
+else
|
||
+ STRIP="$ac_cv_prog_STRIP"
|
||
+fi
|
||
+
|
||
+fi
|
||
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
|
||
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
|
||
+if test -z "$MKDIR_P"; then
|
||
+ if ${ac_cv_path_mkdir+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_prog in mkdir gmkdir; do
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
|
||
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
|
||
+ 'mkdir (GNU coreutils) '* | \
|
||
+ 'mkdir (coreutils) '* | \
|
||
+ 'mkdir (fileutils) '4.1*)
|
||
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
|
||
+ break 3;;
|
||
+ esac
|
||
+ done
|
||
+ done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+
|
||
+ test -d ./--version && rmdir ./--version
|
||
+ if test "${ac_cv_path_mkdir+set}" = set; then
|
||
+ MKDIR_P="$ac_cv_path_mkdir -p"
|
||
+ else
|
||
+ # As a last resort, use the slow shell script. Don't cache a
|
||
+ # value for MKDIR_P within a source directory, because that will
|
||
+ # break other packages using the cache if that directory is
|
||
+ # removed, or if the value is a relative name.
|
||
+ MKDIR_P="$ac_install_sh -d"
|
||
+ fi
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
|
||
+$as_echo "$MKDIR_P" >&6; }
|
||
+
|
||
+mkdir_p="$MKDIR_P"
|
||
+case $mkdir_p in
|
||
+ [\\/$]* | ?:[\\/]*) ;;
|
||
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||
+esac
|
||
+
|
||
+for ac_prog in gawk mawk nawk awk
|
||
+do
|
||
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
|
||
+set dummy $ac_prog; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_AWK+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$AWK"; then
|
||
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_AWK="$ac_prog"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+AWK=$ac_cv_prog_AWK
|
||
+if test -n "$AWK"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
|
||
+$as_echo "$AWK" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+ test -n "$AWK" && break
|
||
+done
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
|
||
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
|
||
+set x ${MAKE-make}
|
||
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
|
||
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ cat >conftest.make <<\_ACEOF
|
||
+SHELL = /bin/sh
|
||
+all:
|
||
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
|
||
+_ACEOF
|
||
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
|
||
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
|
||
+ *@@@%%%=?*=@@@%%%*)
|
||
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
|
||
+ *)
|
||
+ eval ac_cv_prog_make_${ac_make}_set=no;;
|
||
+esac
|
||
+rm -f conftest.make
|
||
+fi
|
||
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||
+$as_echo "yes" >&6; }
|
||
+ SET_MAKE=
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+ SET_MAKE="MAKE=${MAKE-make}"
|
||
+fi
|
||
+
|
||
+rm -rf .tst 2>/dev/null
|
||
+mkdir .tst 2>/dev/null
|
||
+if test -d .tst; then
|
||
+ am__leading_dot=.
|
||
+else
|
||
+ am__leading_dot=_
|
||
+fi
|
||
+rmdir .tst 2>/dev/null
|
||
+
|
||
+DEPDIR="${am__leading_dot}deps"
|
||
+
|
||
+ac_config_commands="$ac_config_commands depfiles"
|
||
+
|
||
+
|
||
+am_make=${MAKE-make}
|
||
+cat > confinc << 'END'
|
||
+am__doit:
|
||
+ @echo this is the am__doit target
|
||
+.PHONY: am__doit
|
||
+END
|
||
+# If we don't find an include directive, just comment out the code.
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
|
||
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
|
||
+am__include="#"
|
||
+am__quote=
|
||
+_am_result=none
|
||
+# First try GNU make style include.
|
||
+echo "include confinc" > confmf
|
||
+# Ignore all kinds of additional output from `make'.
|
||
+case `$am_make -s -f confmf 2> /dev/null` in #(
|
||
+*the\ am__doit\ target*)
|
||
+ am__include=include
|
||
+ am__quote=
|
||
+ _am_result=GNU
|
||
+ ;;
|
||
+esac
|
||
+# Now try BSD make style include.
|
||
+if test "$am__include" = "#"; then
|
||
+ echo '.include "confinc"' > confmf
|
||
+ case `$am_make -s -f confmf 2> /dev/null` in #(
|
||
+ *the\ am__doit\ target*)
|
||
+ am__include=.include
|
||
+ am__quote="\""
|
||
+ _am_result=BSD
|
||
+ ;;
|
||
+ esac
|
||
+fi
|
||
+
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
|
||
+$as_echo "$_am_result" >&6; }
|
||
+rm -f confinc confmf
|
||
+
|
||
+# Check whether --enable-dependency-tracking was given.
|
||
+if test "${enable_dependency_tracking+set}" = set; then :
|
||
+ enableval=$enable_dependency_tracking;
|
||
+fi
|
||
+
|
||
+if test "x$enable_dependency_tracking" != xno; then
|
||
+ am_depcomp="$ac_aux_dir/depcomp"
|
||
+ AMDEPBACKSLASH='\'
|
||
+fi
|
||
+ if test "x$enable_dependency_tracking" != xno; then
|
||
+ AMDEP_TRUE=
|
||
+ AMDEP_FALSE='#'
|
||
+else
|
||
+ AMDEP_TRUE='#'
|
||
+ AMDEP_FALSE=
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
+# Check whether --enable-multilib was given.
|
||
+if test "${enable_multilib+set}" = set; then :
|
||
+ enableval=$enable_multilib; case "${enableval}" in
|
||
+ yes) multilib=yes ;;
|
||
+ no) multilib=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for multilib option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ multilib=yes
|
||
+fi
|
||
+
|
||
+# Check whether --enable-target-optspace was given.
|
||
+if test "${enable_target_optspace+set}" = set; then :
|
||
+ enableval=$enable_target_optspace; case "${enableval}" in
|
||
+ yes) target_optspace=yes ;;
|
||
+ no) target_optspace=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for target-optspace option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ target_optspace=
|
||
+fi
|
||
+
|
||
+# Check whether --enable-malloc-debugging was given.
|
||
+if test "${enable_malloc_debugging+set}" = set; then :
|
||
+ enableval=$enable_malloc_debugging; case "${enableval}" in
|
||
+ yes) malloc_debugging=yes ;;
|
||
+ no) malloc_debugging=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for malloc-debugging option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ malloc_debugging=
|
||
+fi
|
||
+
|
||
+# Check whether --enable-newlib-multithread was given.
|
||
+if test "${enable_newlib_multithread+set}" = set; then :
|
||
+ enableval=$enable_newlib_multithread; case "${enableval}" in
|
||
+ yes) newlib_multithread=yes ;;
|
||
+ no) newlib_multithread=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for newlib-multithread option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ newlib_multithread=yes
|
||
+fi
|
||
+
|
||
+# Check whether --enable-newlib-iconv was given.
|
||
+if test "${enable_newlib_iconv+set}" = set; then :
|
||
+ enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
|
||
+ case "${enableval}" in
|
||
+ yes) newlib_iconv=yes ;;
|
||
+ no) newlib_iconv=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for newlib-iconv option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+ fi
|
||
+else
|
||
+ newlib_iconv=${newlib_iconv}
|
||
+fi
|
||
+
|
||
+# Check whether --enable-newlib-elix-level was given.
|
||
+if test "${enable_newlib_elix_level+set}" = set; then :
|
||
+ enableval=$enable_newlib_elix_level; case "${enableval}" in
|
||
+ 0) newlib_elix_level=0 ;;
|
||
+ 1) newlib_elix_level=1 ;;
|
||
+ 2) newlib_elix_level=2 ;;
|
||
+ 3) newlib_elix_level=3 ;;
|
||
+ 4) newlib_elix_level=4 ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for newlib-elix-level option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ newlib_elix_level=0
|
||
+fi
|
||
+
|
||
+# Check whether --enable-newlib-io-float was given.
|
||
+if test "${enable_newlib_io_float+set}" = set; then :
|
||
+ enableval=$enable_newlib_io_float; case "${enableval}" in
|
||
+ yes) newlib_io_float=yes ;;
|
||
+ no) newlib_io_float=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for newlib-io-float option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ newlib_io_float=yes
|
||
+fi
|
||
+
|
||
+# Check whether --enable-newlib-supplied-syscalls was given.
|
||
+if test "${enable_newlib_supplied_syscalls+set}" = set; then :
|
||
+ enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
|
||
+ yes) newlib_may_supply_syscalls=yes ;;
|
||
+ no) newlib_may_supply_syscalls=no ;;
|
||
+ *) as_fn_error $? "bad value ${enableval} for newlib-supplied-syscalls option" "$LINENO" 5 ;;
|
||
+ esac
|
||
+else
|
||
+ newlib_may_supply_syscalls=yes
|
||
+fi
|
||
+
|
||
+ if test x${newlib_may_supply_syscalls} = xyes; then
|
||
+ MAY_SUPPLY_SYSCALLS_TRUE=
|
||
+ MAY_SUPPLY_SYSCALLS_FALSE='#'
|
||
+else
|
||
+ MAY_SUPPLY_SYSCALLS_TRUE='#'
|
||
+ MAY_SUPPLY_SYSCALLS_FALSE=
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
+test -z "${with_target_subdir}" && with_target_subdir=.
|
||
+
|
||
+if test "${srcdir}" = "."; then
|
||
+ if test "${with_target_subdir}" != "."; then
|
||
+ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
|
||
+ else
|
||
+ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
|
||
+ fi
|
||
+else
|
||
+ newlib_basedir="${srcdir}/../../.."
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||
+ # is not polluted with repeated "-I."
|
||
+ am__isrc=' -I$(srcdir)'
|
||
+ # test to see if srcdir already configured
|
||
+ if test -f $srcdir/config.status; then
|
||
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
|
||
+ fi
|
||
+fi
|
||
+
|
||
+# test whether we have cygpath
|
||
+if test -z "$CYGPATH_W"; then
|
||
+ if (cygpath --version) >/dev/null 2>/dev/null; then
|
||
+ CYGPATH_W='cygpath -w'
|
||
+ else
|
||
+ CYGPATH_W=echo
|
||
+ fi
|
||
+fi
|
||
+
|
||
+
|
||
+# Define the identity of the package.
|
||
+ PACKAGE='newlib'
|
||
+ VERSION='1.20.0'
|
||
+
|
||
+
|
||
+# Some tools Automake needs.
|
||
+
|
||
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
|
||
+
|
||
+
|
||
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
|
||
+
|
||
+
|
||
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
|
||
+
|
||
+
|
||
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
|
||
+
|
||
+
|
||
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
|
||
+
|
||
+# We need awk for the "check" target. The system "awk" is bad on
|
||
+# some platforms.
|
||
+# Always define AMTAR for backward compatibility.
|
||
+
|
||
+AMTAR=${AMTAR-"${am_missing_run}tar"}
|
||
+
|
||
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
|
||
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
|
||
+# are probably using a cross compiler, which will not be able to fully
|
||
+# link an executable. This should really be fixed in autoconf
|
||
+# itself.
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+# Extract the first word of "gcc", so it can be a program name with args.
|
||
+set dummy gcc; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_CC+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$CC"; then
|
||
+ ac_cv_prog_CC="$CC" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_CC="gcc"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+CC=$ac_cv_prog_CC
|
||
+if test -n "$CC"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
|
||
+$as_echo "$CC" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
+depcc="$CC" am_compiler_list=
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
|
||
+$as_echo_n "checking dependency style of $depcc... " >&6; }
|
||
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||
+ # We make a subdir and do the tests there. Otherwise we can end up
|
||
+ # making bogus files that we don't know about and never remove. For
|
||
+ # instance it was reported that on HP-UX the gcc test will end up
|
||
+ # making a dummy file named `D' -- because `-MD' means `put the output
|
||
+ # in D'.
|
||
+ mkdir conftest.dir
|
||
+ # Copy depcomp to subdir because otherwise we won't find it if we're
|
||
+ # using a relative directory.
|
||
+ cp "$am_depcomp" conftest.dir
|
||
+ cd conftest.dir
|
||
+ # We will build objects and dependencies in a subdirectory because
|
||
+ # it helps to detect inapplicable dependency modes. For instance
|
||
+ # both Tru64's cc and ICC support -MD to output dependencies as a
|
||
+ # side effect of compilation, but ICC will put the dependencies in
|
||
+ # the current directory while Tru64 will put them in the object
|
||
+ # directory.
|
||
+ mkdir sub
|
||
+
|
||
+ am_cv_CC_dependencies_compiler_type=none
|
||
+ if test "$am_compiler_list" = ""; then
|
||
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
|
||
+ fi
|
||
+ am__universal=false
|
||
+ case " $depcc " in #(
|
||
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||
+ esac
|
||
+
|
||
+ for depmode in $am_compiler_list; do
|
||
+ # Setup a source with many dependencies, because some compilers
|
||
+ # like to wrap large dependency lists on column 80 (with \), and
|
||
+ # we should not choose a depcomp mode which is confused by this.
|
||
+ #
|
||
+ # We need to recreate these files for each test, as the compiler may
|
||
+ # overwrite some of them when testing with obscure command lines.
|
||
+ # This happens at least with the AIX C compiler.
|
||
+ : > sub/conftest.c
|
||
+ for i in 1 2 3 4 5 6; do
|
||
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||
+ # Solaris 8's {/usr,}/bin/sh.
|
||
+ touch sub/conftst$i.h
|
||
+ done
|
||
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||
+
|
||
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||
+ # mode. It turns out that the SunPro C++ compiler does not properly
|
||
+ # handle `-M -o', and we need to detect this. Also, some Intel
|
||
+ # versions had trouble with output in subdirs
|
||
+ am__obj=sub/conftest.${OBJEXT-o}
|
||
+ am__minus_obj="-o $am__obj"
|
||
+ case $depmode in
|
||
+ gcc)
|
||
+ # This depmode causes a compiler race in universal mode.
|
||
+ test "$am__universal" = false || continue
|
||
+ ;;
|
||
+ nosideeffect)
|
||
+ # after this tag, mechanisms are not by side-effect, so they'll
|
||
+ # only be used when explicitly requested
|
||
+ if test "x$enable_dependency_tracking" = xyes; then
|
||
+ continue
|
||
+ else
|
||
+ break
|
||
+ fi
|
||
+ ;;
|
||
+ msvisualcpp | msvcmsys)
|
||
+ # This compiler won't grok `-c -o', but also, the minuso test has
|
||
+ # not run yet. These depmodes are late enough in the game, and
|
||
+ # so weak that their functioning should not be impacted.
|
||
+ am__obj=conftest.${OBJEXT-o}
|
||
+ am__minus_obj=
|
||
+ ;;
|
||
+ none) break ;;
|
||
+ esac
|
||
+ if depmode=$depmode \
|
||
+ source=sub/conftest.c object=$am__obj \
|
||
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||
+ >/dev/null 2>conftest.err &&
|
||
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||
+ # icc doesn't choke on unknown options, it will just issue warnings
|
||
+ # or remarks (even with -Werror). So we grep stderr for any message
|
||
+ # that says an option was ignored or not supported.
|
||
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
|
||
+ # icc: Command line warning: ignoring option '-M'; no argument required
|
||
+ # The diagnosis changed in icc 8.0:
|
||
+ # icc: Command line remark: option '-MP' not supported
|
||
+ if (grep 'ignoring option' conftest.err ||
|
||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||
+ am_cv_CC_dependencies_compiler_type=$depmode
|
||
+ break
|
||
+ fi
|
||
+ fi
|
||
+ done
|
||
+
|
||
+ cd ..
|
||
+ rm -rf conftest.dir
|
||
+else
|
||
+ am_cv_CC_dependencies_compiler_type=none
|
||
+fi
|
||
+
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
|
||
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
|
||
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
|
||
+
|
||
+ if
|
||
+ test "x$enable_dependency_tracking" != xno \
|
||
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
|
||
+ am__fastdepCC_TRUE=
|
||
+ am__fastdepCC_FALSE='#'
|
||
+else
|
||
+ am__fastdepCC_TRUE='#'
|
||
+ am__fastdepCC_FALSE=
|
||
+fi
|
||
+
|
||
+
|
||
+if test -z "$CC"; then
|
||
+ # Extract the first word of "cc", so it can be a program name with args.
|
||
+set dummy cc; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_CC+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$CC"; then
|
||
+ ac_cv_prog_CC="$CC" # Let the user override the test.
|
||
+else
|
||
+ ac_prog_rejected=no
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
|
||
+ ac_prog_rejected=yes
|
||
+ continue
|
||
+ fi
|
||
+ ac_cv_prog_CC="cc"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+if test $ac_prog_rejected = yes; then
|
||
+ # We found a bogon in the path, so make sure we never use it.
|
||
+ set dummy $ac_cv_prog_CC
|
||
+ shift
|
||
+ if test $# != 0; then
|
||
+ # We chose a different compiler from the bogus one.
|
||
+ # However, it has the same basename, so the bogon will be chosen
|
||
+ # first if we set CC to just the basename; use the full file name.
|
||
+ shift
|
||
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
|
||
+ fi
|
||
+fi
|
||
+fi
|
||
+fi
|
||
+CC=$ac_cv_prog_CC
|
||
+if test -n "$CC"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
|
||
+$as_echo "$CC" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+ test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
|
||
+fi
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
|
||
+$as_echo_n "checking whether we are using GNU C... " >&6; }
|
||
+if ${ac_cv_c_compiler_gnu+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ cat > conftest.c <<EOF
|
||
+#ifdef __GNUC__
|
||
+ yes;
|
||
+#endif
|
||
+EOF
|
||
+if { ac_try='${CC-cc} -E conftest.c'
|
||
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
||
+ (eval $ac_try) 2>&5
|
||
+ ac_status=$?
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||
+ test $ac_status = 0; }; } | egrep yes >/dev/null 2>&1; then
|
||
+ ac_cv_c_compiler_gnu=yes
|
||
+else
|
||
+ ac_cv_c_compiler_gnu=no
|
||
+fi
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
|
||
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
|
||
+
|
||
+if test $ac_cv_c_compiler_gnu = yes; then
|
||
+ GCC=yes
|
||
+ ac_test_CFLAGS="${CFLAGS+set}"
|
||
+ ac_save_CFLAGS="$CFLAGS"
|
||
+ ac_test_CFLAGS=${CFLAGS+set}
|
||
+ac_save_CFLAGS=$CFLAGS
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
|
||
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
|
||
+if ${ac_cv_prog_cc_g+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ ac_save_c_werror_flag=$ac_c_werror_flag
|
||
+ ac_c_werror_flag=yes
|
||
+ ac_cv_prog_cc_g=no
|
||
+ CFLAGS="-g"
|
||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
+/* end confdefs.h. */
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+
|
||
+ ;
|
||
+ return 0;
|
||
+}
|
||
+_ACEOF
|
||
+if ac_fn_c_try_compile "$LINENO"; then :
|
||
+ ac_cv_prog_cc_g=yes
|
||
+else
|
||
+ CFLAGS=""
|
||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
+/* end confdefs.h. */
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+
|
||
+ ;
|
||
+ return 0;
|
||
+}
|
||
+_ACEOF
|
||
+if ac_fn_c_try_compile "$LINENO"; then :
|
||
+
|
||
+else
|
||
+ ac_c_werror_flag=$ac_save_c_werror_flag
|
||
+ CFLAGS="-g"
|
||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
+/* end confdefs.h. */
|
||
+
|
||
+int
|
||
+main ()
|
||
+{
|
||
+
|
||
+ ;
|
||
+ return 0;
|
||
+}
|
||
+_ACEOF
|
||
+if ac_fn_c_try_compile "$LINENO"; then :
|
||
+ ac_cv_prog_cc_g=yes
|
||
+fi
|
||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
+fi
|
||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
+fi
|
||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
+ ac_c_werror_flag=$ac_save_c_werror_flag
|
||
+fi
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
|
||
+$as_echo "$ac_cv_prog_cc_g" >&6; }
|
||
+if test "$ac_test_CFLAGS" = set; then
|
||
+ CFLAGS=$ac_save_CFLAGS
|
||
+elif test $ac_cv_prog_cc_g = yes; then
|
||
+ if test "$GCC" = yes; then
|
||
+ CFLAGS="-g -O2"
|
||
+ else
|
||
+ CFLAGS="-g"
|
||
+ fi
|
||
+else
|
||
+ if test "$GCC" = yes; then
|
||
+ CFLAGS="-O2"
|
||
+ else
|
||
+ CFLAGS=
|
||
+ fi
|
||
+fi
|
||
+ if test "$ac_test_CFLAGS" = set; then
|
||
+ CFLAGS="$ac_save_CFLAGS"
|
||
+ elif test $ac_cv_prog_cc_g = yes; then
|
||
+ CFLAGS="-g -O2"
|
||
+ else
|
||
+ CFLAGS="-O2"
|
||
+ fi
|
||
+else
|
||
+ GCC=
|
||
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||
+fi
|
||
+
|
||
+
|
||
+if test -n "$ac_tool_prefix"; then
|
||
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
|
||
+set dummy ${ac_tool_prefix}as; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_AS+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$AS"; then
|
||
+ ac_cv_prog_AS="$AS" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_AS="${ac_tool_prefix}as"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+AS=$ac_cv_prog_AS
|
||
+if test -n "$AS"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
|
||
+$as_echo "$AS" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+fi
|
||
+if test -z "$ac_cv_prog_AS"; then
|
||
+ ac_ct_AS=$AS
|
||
+ # Extract the first word of "as", so it can be a program name with args.
|
||
+set dummy as; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$ac_ct_AS"; then
|
||
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_ac_ct_AS="as"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
|
||
+if test -n "$ac_ct_AS"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
|
||
+$as_echo "$ac_ct_AS" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+ if test "x$ac_ct_AS" = x; then
|
||
+ AS=""
|
||
+ else
|
||
+ case $cross_compiling:$ac_tool_warned in
|
||
+yes:)
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||
+ac_tool_warned=yes ;;
|
||
+esac
|
||
+ AS=$ac_ct_AS
|
||
+ fi
|
||
+else
|
||
+ AS="$ac_cv_prog_AS"
|
||
+fi
|
||
+
|
||
+if test -n "$ac_tool_prefix"; then
|
||
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
|
||
+set dummy ${ac_tool_prefix}ar; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_AR+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$AR"; then
|
||
+ ac_cv_prog_AR="$AR" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+AR=$ac_cv_prog_AR
|
||
+if test -n "$AR"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
|
||
+$as_echo "$AR" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+fi
|
||
+if test -z "$ac_cv_prog_AR"; then
|
||
+ ac_ct_AR=$AR
|
||
+ # Extract the first word of "ar", so it can be a program name with args.
|
||
+set dummy ar; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$ac_ct_AR"; then
|
||
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_ac_ct_AR="ar"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
|
||
+if test -n "$ac_ct_AR"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
|
||
+$as_echo "$ac_ct_AR" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+ if test "x$ac_ct_AR" = x; then
|
||
+ AR=""
|
||
+ else
|
||
+ case $cross_compiling:$ac_tool_warned in
|
||
+yes:)
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||
+ac_tool_warned=yes ;;
|
||
+esac
|
||
+ AR=$ac_ct_AR
|
||
+ fi
|
||
+else
|
||
+ AR="$ac_cv_prog_AR"
|
||
+fi
|
||
+
|
||
+if test -n "$ac_tool_prefix"; then
|
||
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
|
||
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_RANLIB+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$RANLIB"; then
|
||
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+RANLIB=$ac_cv_prog_RANLIB
|
||
+if test -n "$RANLIB"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
|
||
+$as_echo "$RANLIB" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+fi
|
||
+if test -z "$ac_cv_prog_RANLIB"; then
|
||
+ ac_ct_RANLIB=$RANLIB
|
||
+ # Extract the first word of "ranlib", so it can be a program name with args.
|
||
+set dummy ranlib; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$ac_ct_RANLIB"; then
|
||
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
|
||
+if test -n "$ac_ct_RANLIB"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
|
||
+$as_echo "$ac_ct_RANLIB" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+ if test "x$ac_ct_RANLIB" = x; then
|
||
+ RANLIB=":"
|
||
+ else
|
||
+ case $cross_compiling:$ac_tool_warned in
|
||
+yes:)
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||
+ac_tool_warned=yes ;;
|
||
+esac
|
||
+ RANLIB=$ac_ct_RANLIB
|
||
+ fi
|
||
+else
|
||
+ RANLIB="$ac_cv_prog_RANLIB"
|
||
+fi
|
||
+
|
||
+if test -n "$ac_tool_prefix"; then
|
||
+ # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
|
||
+set dummy ${ac_tool_prefix}readelf; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_READELF+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$READELF"; then
|
||
+ ac_cv_prog_READELF="$READELF" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_READELF="${ac_tool_prefix}readelf"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+READELF=$ac_cv_prog_READELF
|
||
+if test -n "$READELF"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
|
||
+$as_echo "$READELF" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+
|
||
+fi
|
||
+if test -z "$ac_cv_prog_READELF"; then
|
||
+ ac_ct_READELF=$READELF
|
||
+ # Extract the first word of "readelf", so it can be a program name with args.
|
||
+set dummy readelf; ac_word=$2
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||
+if ${ac_cv_prog_ac_ct_READELF+:} false; then :
|
||
+ $as_echo_n "(cached) " >&6
|
||
+else
|
||
+ if test -n "$ac_ct_READELF"; then
|
||
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
|
||
+else
|
||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||
+ ac_cv_prog_ac_ct_READELF="readelf"
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||
+ break 2
|
||
+ fi
|
||
+done
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+fi
|
||
+fi
|
||
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
|
||
+if test -n "$ac_ct_READELF"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
|
||
+$as_echo "$ac_ct_READELF" >&6; }
|
||
+else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||
+$as_echo "no" >&6; }
|
||
+fi
|
||
+
|
||
+ if test "x$ac_ct_READELF" = x; then
|
||
+ READELF=":"
|
||
+ else
|
||
+ case $cross_compiling:$ac_tool_warned in
|
||
+yes:)
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||
+ac_tool_warned=yes ;;
|
||
+esac
|
||
+ READELF=$ac_ct_READELF
|
||
+ fi
|
||
+else
|
||
+ READELF="$ac_cv_prog_READELF"
|
||
+fi
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
|
||
+ac_given_INSTALL=$INSTALL
|
||
+
|
||
+
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
|
||
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
|
||
+ # Check whether --enable-maintainer-mode was given.
|
||
+if test "${enable_maintainer_mode+set}" = set; then :
|
||
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
|
||
+else
|
||
+ USE_MAINTAINER_MODE=no
|
||
+fi
|
||
+
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
|
||
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
|
||
+ if test $USE_MAINTAINER_MODE = yes; then
|
||
+ MAINTAINER_MODE_TRUE=
|
||
+ MAINTAINER_MODE_FALSE='#'
|
||
+else
|
||
+ MAINTAINER_MODE_TRUE='#'
|
||
+ MAINTAINER_MODE_FALSE=
|
||
+fi
|
||
+
|
||
+ MAINT=$MAINTAINER_MODE_TRUE
|
||
+
|
||
+
|
||
+# By default we simply use the C compiler to build assembly code.
|
||
+
|
||
+test "${CCAS+set}" = set || CCAS=$CC
|
||
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
|
||
+# at least currently, we never actually build a program, so we never
|
||
+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
|
||
+# fails, because we are probably configuring with a cross compiler
|
||
+# which can't create executables. So we include AC_EXEEXT to keep
|
||
+# automake happy, but we don't execute it, since we don't care about
|
||
+# the result.
|
||
+if false; then
|
||
+
|
||
+ dummy_var=1
|
||
+fi
|
||
+
|
||
+. ${newlib_basedir}/configure.host
|
||
+
|
||
+newlib_cflags="${newlib_cflags} -fno-builtin"
|
||
+
|
||
+NEWLIB_CFLAGS=${newlib_cflags}
|
||
+
|
||
+
|
||
+NO_INCLUDE_LIST=${noinclude}
|
||
+
|
||
+
|
||
+LDFLAGS=${ldflags}
|
||
+
|
||
+
|
||
+ if test x${newlib_elix_level} = x0; then
|
||
+ ELIX_LEVEL_0_TRUE=
|
||
+ ELIX_LEVEL_0_FALSE='#'
|
||
+else
|
||
+ ELIX_LEVEL_0_TRUE='#'
|
||
+ ELIX_LEVEL_0_FALSE=
|
||
+fi
|
||
+
|
||
+ if test x${newlib_elix_level} = x1; then
|
||
+ ELIX_LEVEL_1_TRUE=
|
||
+ ELIX_LEVEL_1_FALSE='#'
|
||
+else
|
||
+ ELIX_LEVEL_1_TRUE='#'
|
||
+ ELIX_LEVEL_1_FALSE=
|
||
+fi
|
||
+
|
||
+ if test x${newlib_elix_level} = x2; then
|
||
+ ELIX_LEVEL_2_TRUE=
|
||
+ ELIX_LEVEL_2_FALSE='#'
|
||
+else
|
||
+ ELIX_LEVEL_2_TRUE='#'
|
||
+ ELIX_LEVEL_2_FALSE=
|
||
+fi
|
||
+
|
||
+ if test x${newlib_elix_level} = x3; then
|
||
+ ELIX_LEVEL_3_TRUE=
|
||
+ ELIX_LEVEL_3_FALSE='#'
|
||
+else
|
||
+ ELIX_LEVEL_3_TRUE='#'
|
||
+ ELIX_LEVEL_3_FALSE=
|
||
+fi
|
||
+
|
||
+ if test x${newlib_elix_level} = x4; then
|
||
+ ELIX_LEVEL_4_TRUE=
|
||
+ ELIX_LEVEL_4_FALSE='#'
|
||
+else
|
||
+ ELIX_LEVEL_4_TRUE='#'
|
||
+ ELIX_LEVEL_4_FALSE=
|
||
+fi
|
||
+
|
||
+
|
||
+ if test x${use_libtool} = xyes; then
|
||
+ USE_LIBTOOL_TRUE=
|
||
+ USE_LIBTOOL_FALSE='#'
|
||
+else
|
||
+ USE_LIBTOOL_TRUE='#'
|
||
+ USE_LIBTOOL_FALSE=
|
||
+fi
|
||
+
|
||
+
|
||
+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
|
||
+# use oext, which is set in configure.host based on the target platform.
|
||
+OBJEXT=${oext}
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+
|
||
+ac_config_files="$ac_config_files Makefile"
|
||
+
|
||
+cat >confcache <<\_ACEOF
|
||
+# This file is a shell script that caches the results of configure
|
||
+# tests run on this system so they can be shared between configure
|
||
+# scripts and configure runs, see configure's option --config-cache.
|
||
+# It is not useful on other systems. If it contains results you don't
|
||
+# want to keep, you may remove or edit it.
|
||
+#
|
||
+# config.status only pays attention to the cache file if you give it
|
||
+# the --recheck option to rerun configure.
|
||
+#
|
||
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
|
||
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
|
||
+# following values.
|
||
+
|
||
+_ACEOF
|
||
+
|
||
+# The following way of writing the cache mishandles newlines in values,
|
||
+# but we know of no workaround that is simple, portable, and efficient.
|
||
+# So, we kill variables containing newlines.
|
||
+# Ultrix sh set writes to stderr and can't be redirected directly,
|
||
+# and sets the high bit in the cache file unless we assign to the vars.
|
||
+(
|
||
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
|
||
+ eval ac_val=\$$ac_var
|
||
+ case $ac_val in #(
|
||
+ *${as_nl}*)
|
||
+ case $ac_var in #(
|
||
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
|
||
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
|
||
+ esac
|
||
+ case $ac_var in #(
|
||
+ _ | IFS | as_nl) ;; #(
|
||
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
|
||
+ *) { eval $ac_var=; unset $ac_var;} ;;
|
||
+ esac ;;
|
||
+ esac
|
||
+ done
|
||
+
|
||
+ (set) 2>&1 |
|
||
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
|
||
+ *${as_nl}ac_space=\ *)
|
||
+ # `set' does not quote correctly, so add quotes: double-quote
|
||
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
|
||
+ sed -n \
|
||
+ "s/'/'\\\\''/g;
|
||
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
|
||
+ ;; #(
|
||
+ *)
|
||
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
|
||
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
|
||
+ ;;
|
||
+ esac |
|
||
+ sort
|
||
+) |
|
||
+ sed '
|
||
+ /^ac_cv_env_/b end
|
||
+ t clear
|
||
+ :clear
|
||
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
|
||
+ t end
|
||
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
|
||
+ :end' >>confcache
|
||
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
|
||
+ if test -w "$cache_file"; then
|
||
+ if test "x$cache_file" != "x/dev/null"; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
|
||
+$as_echo "$as_me: updating cache $cache_file" >&6;}
|
||
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
|
||
+ cat confcache >"$cache_file"
|
||
+ else
|
||
+ case $cache_file in #(
|
||
+ */* | ?:*)
|
||
+ mv -f confcache "$cache_file"$$ &&
|
||
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
|
||
+ *)
|
||
+ mv -f confcache "$cache_file" ;;
|
||
+ esac
|
||
+ fi
|
||
+ fi
|
||
+ else
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
|
||
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
|
||
+ fi
|
||
+fi
|
||
+rm -f confcache
|
||
+
|
||
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
||
+# Let make expand exec_prefix.
|
||
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
||
+
|
||
+# Transform confdefs.h into DEFS.
|
||
+# Protect against shell expansion while executing Makefile rules.
|
||
+# Protect against Makefile macro expansion.
|
||
+#
|
||
+# If the first sed substitution is executed (which looks for macros that
|
||
+# take arguments), then branch to the quote section. Otherwise,
|
||
+# look for a macro that doesn't take arguments.
|
||
+ac_script='
|
||
+:mline
|
||
+/\\$/{
|
||
+ N
|
||
+ s,\\\n,,
|
||
+ b mline
|
||
+}
|
||
+t clear
|
||
+:clear
|
||
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
|
||
+t quote
|
||
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
|
||
+t quote
|
||
+b any
|
||
+:quote
|
||
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
|
||
+s/\[/\\&/g
|
||
+s/\]/\\&/g
|
||
+s/\$/$$/g
|
||
+H
|
||
+:any
|
||
+${
|
||
+ g
|
||
+ s/^\n//
|
||
+ s/\n/ /g
|
||
+ p
|
||
+}
|
||
+'
|
||
+DEFS=`sed -n "$ac_script" confdefs.h`
|
||
+
|
||
+
|
||
+ac_libobjs=
|
||
+ac_ltlibobjs=
|
||
+U=
|
||
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
|
||
+ # 1. Remove the extension, and $U if already installed.
|
||
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
|
||
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
|
||
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
|
||
+ # will be set to the directory where LIBOBJS objects are built.
|
||
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
|
||
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
|
||
+done
|
||
+LIBOBJS=$ac_libobjs
|
||
+
|
||
+LTLIBOBJS=$ac_ltlibobjs
|
||
+
|
||
+
|
||
+if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+
|
||
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"ELIX_LEVEL_0\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"ELIX_LEVEL_1\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"ELIX_LEVEL_2\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"ELIX_LEVEL_3\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"ELIX_LEVEL_4\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
|
||
+ as_fn_error $? "conditional \"USE_LIBTOOL\" was never defined.
|
||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||
+fi
|
||
+
|
||
+: "${CONFIG_STATUS=./config.status}"
|
||
+ac_write_fail=0
|
||
+ac_clean_files_save=$ac_clean_files
|
||
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
|
||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
|
||
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
|
||
+as_write_fail=0
|
||
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
|
||
+#! $SHELL
|
||
+# Generated by $as_me.
|
||
+# Run this file to recreate the current configuration.
|
||
+# Compiler output produced by configure, useful for debugging
|
||
+# configure, is in config.log if it exists.
|
||
+
|
||
+debug=false
|
||
+ac_cs_recheck=false
|
||
+ac_cs_silent=false
|
||
+
|
||
+SHELL=\${CONFIG_SHELL-$SHELL}
|
||
+export SHELL
|
||
+_ASEOF
|
||
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
|
||
+## -------------------- ##
|
||
+## M4sh Initialization. ##
|
||
+## -------------------- ##
|
||
+
|
||
+# Be more Bourne compatible
|
||
+DUALCASE=1; export DUALCASE # for MKS sh
|
||
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
|
||
+ emulate sh
|
||
+ NULLCMD=:
|
||
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
|
||
+ # is contrary to our usage. Disable this feature.
|
||
+ alias -g '${1+"$@"}'='"$@"'
|
||
+ setopt NO_GLOB_SUBST
|
||
+else
|
||
+ case `(set -o) 2>/dev/null` in #(
|
||
+ *posix*) :
|
||
+ set -o posix ;; #(
|
||
+ *) :
|
||
+ ;;
|
||
+esac
|
||
+fi
|
||
+
|
||
+
|
||
+as_nl='
|
||
+'
|
||
+export as_nl
|
||
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
|
||
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
|
||
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
|
||
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
|
||
+# Prefer a ksh shell builtin over an external printf program on Solaris,
|
||
+# but without wasting forks for bash or zsh.
|
||
+if test -z "$BASH_VERSION$ZSH_VERSION" \
|
||
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
|
||
+ as_echo='print -r --'
|
||
+ as_echo_n='print -rn --'
|
||
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
|
||
+ as_echo='printf %s\n'
|
||
+ as_echo_n='printf %s'
|
||
+else
|
||
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
|
||
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
|
||
+ as_echo_n='/usr/ucb/echo -n'
|
||
+ else
|
||
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
|
||
+ as_echo_n_body='eval
|
||
+ arg=$1;
|
||
+ case $arg in #(
|
||
+ *"$as_nl"*)
|
||
+ expr "X$arg" : "X\\(.*\\)$as_nl";
|
||
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
|
||
+ esac;
|
||
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
|
||
+ '
|
||
+ export as_echo_n_body
|
||
+ as_echo_n='sh -c $as_echo_n_body as_echo'
|
||
+ fi
|
||
+ export as_echo_body
|
||
+ as_echo='sh -c $as_echo_body as_echo'
|
||
+fi
|
||
+
|
||
+# The user is always right.
|
||
+if test "${PATH_SEPARATOR+set}" != set; then
|
||
+ PATH_SEPARATOR=:
|
||
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
|
||
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
|
||
+ PATH_SEPARATOR=';'
|
||
+ }
|
||
+fi
|
||
+
|
||
+
|
||
+# IFS
|
||
+# We need space, tab and new line, in precisely that order. Quoting is
|
||
+# there to prevent editors from complaining about space-tab.
|
||
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
|
||
+# splitting by setting IFS to empty value.)
|
||
+IFS=" "" $as_nl"
|
||
+
|
||
+# Find who we are. Look in the path if we contain no directory separator.
|
||
+as_myself=
|
||
+case $0 in #((
|
||
+ *[\\/]* ) as_myself=$0 ;;
|
||
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||
+for as_dir in $PATH
|
||
+do
|
||
+ IFS=$as_save_IFS
|
||
+ test -z "$as_dir" && as_dir=.
|
||
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
|
||
+ done
|
||
+IFS=$as_save_IFS
|
||
+
|
||
+ ;;
|
||
+esac
|
||
+# We did not find ourselves, most probably we were run as `sh COMMAND'
|
||
+# in which case we are not to be found in the path.
|
||
+if test "x$as_myself" = x; then
|
||
+ as_myself=$0
|
||
+fi
|
||
+if test ! -f "$as_myself"; then
|
||
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
|
||
+ exit 1
|
||
+fi
|
||
+
|
||
+# Unset variables that we do not need and which cause bugs (e.g. in
|
||
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
|
||
+# suppresses any "Segmentation fault" message there. '((' could
|
||
+# trigger a bug in pdksh 5.2.14.
|
||
+for as_var in BASH_ENV ENV MAIL MAILPATH
|
||
+do eval test x\${$as_var+set} = xset \
|
||
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
|
||
+done
|
||
+PS1='$ '
|
||
+PS2='> '
|
||
+PS4='+ '
|
||
+
|
||
+# NLS nuisances.
|
||
+LC_ALL=C
|
||
+export LC_ALL
|
||
+LANGUAGE=C
|
||
+export LANGUAGE
|
||
+
|
||
+# CDPATH.
|
||
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||
+
|
||
+
|
||
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
|
||
+# ----------------------------------------
|
||
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
|
||
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
|
||
+# script with STATUS, using 1 if that was 0.
|
||
+as_fn_error ()
|
||
+{
|
||
+ as_status=$1; test $as_status -eq 0 && as_status=1
|
||
+ if test "$4"; then
|
||
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
|
||
+ fi
|
||
+ $as_echo "$as_me: error: $2" >&2
|
||
+ as_fn_exit $as_status
|
||
+} # as_fn_error
|
||
+
|
||
+
|
||
+# as_fn_set_status STATUS
|
||
+# -----------------------
|
||
+# Set $? to STATUS, without forking.
|
||
+as_fn_set_status ()
|
||
+{
|
||
+ return $1
|
||
+} # as_fn_set_status
|
||
+
|
||
+# as_fn_exit STATUS
|
||
+# -----------------
|
||
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
|
||
+as_fn_exit ()
|
||
+{
|
||
+ set +e
|
||
+ as_fn_set_status $1
|
||
+ exit $1
|
||
+} # as_fn_exit
|
||
+
|
||
+# as_fn_unset VAR
|
||
+# ---------------
|
||
+# Portably unset VAR.
|
||
+as_fn_unset ()
|
||
+{
|
||
+ { eval $1=; unset $1;}
|
||
+}
|
||
+as_unset=as_fn_unset
|
||
+# as_fn_append VAR VALUE
|
||
+# ----------------------
|
||
+# Append the text in VALUE to the end of the definition contained in VAR. Take
|
||
+# advantage of any shell optimizations that allow amortized linear growth over
|
||
+# repeated appends, instead of the typical quadratic growth present in naive
|
||
+# implementations.
|
||
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
|
||
+ eval 'as_fn_append ()
|
||
+ {
|
||
+ eval $1+=\$2
|
||
+ }'
|
||
+else
|
||
+ as_fn_append ()
|
||
+ {
|
||
+ eval $1=\$$1\$2
|
||
+ }
|
||
+fi # as_fn_append
|
||
+
|
||
+# as_fn_arith ARG...
|
||
+# ------------------
|
||
+# Perform arithmetic evaluation on the ARGs, and store the result in the
|
||
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
|
||
+# must be portable across $(()) and expr.
|
||
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
|
||
+ eval 'as_fn_arith ()
|
||
+ {
|
||
+ as_val=$(( $* ))
|
||
+ }'
|
||
+else
|
||
+ as_fn_arith ()
|
||
+ {
|
||
+ as_val=`expr "$@" || test $? -eq 1`
|
||
+ }
|
||
+fi # as_fn_arith
|
||
+
|
||
+
|
||
+if expr a : '\(a\)' >/dev/null 2>&1 &&
|
||
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
||
+ as_expr=expr
|
||
+else
|
||
+ as_expr=false
|
||
+fi
|
||
+
|
||
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
|
||
+ as_basename=basename
|
||
+else
|
||
+ as_basename=false
|
||
+fi
|
||
+
|
||
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
|
||
+ as_dirname=dirname
|
||
+else
|
||
+ as_dirname=false
|
||
+fi
|
||
+
|
||
+as_me=`$as_basename -- "$0" ||
|
||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
|
||
+ X"$0" : 'X\(//\)$' \| \
|
||
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X/"$0" |
|
||
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\/\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\/\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+
|
||
+# Avoid depending upon Character Ranges.
|
||
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
|
||
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
|
||
+as_cr_digits='0123456789'
|
||
+as_cr_alnum=$as_cr_Letters$as_cr_digits
|
||
+
|
||
+ECHO_C= ECHO_N= ECHO_T=
|
||
+case `echo -n x` in #(((((
|
||
+-n*)
|
||
+ case `echo 'xy\c'` in
|
||
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
|
||
+ xy) ECHO_C='\c';;
|
||
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
|
||
+ ECHO_T=' ';;
|
||
+ esac;;
|
||
+*)
|
||
+ ECHO_N='-n';;
|
||
+esac
|
||
+
|
||
+rm -f conf$$ conf$$.exe conf$$.file
|
||
+if test -d conf$$.dir; then
|
||
+ rm -f conf$$.dir/conf$$.file
|
||
+else
|
||
+ rm -f conf$$.dir
|
||
+ mkdir conf$$.dir 2>/dev/null
|
||
+fi
|
||
+if (echo >conf$$.file) 2>/dev/null; then
|
||
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
|
||
+ as_ln_s='ln -s'
|
||
+ # ... but there are two gotchas:
|
||
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||
+ # In both cases, we have to default to `cp -p'.
|
||
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||
+ as_ln_s='cp -p'
|
||
+ elif ln conf$$.file conf$$ 2>/dev/null; then
|
||
+ as_ln_s=ln
|
||
+ else
|
||
+ as_ln_s='cp -p'
|
||
+ fi
|
||
+else
|
||
+ as_ln_s='cp -p'
|
||
+fi
|
||
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||
+rmdir conf$$.dir 2>/dev/null
|
||
+
|
||
+
|
||
+# as_fn_mkdir_p
|
||
+# -------------
|
||
+# Create "$as_dir" as a directory, including parents if necessary.
|
||
+as_fn_mkdir_p ()
|
||
+{
|
||
+
|
||
+ case $as_dir in #(
|
||
+ -*) as_dir=./$as_dir;;
|
||
+ esac
|
||
+ test -d "$as_dir" || eval $as_mkdir_p || {
|
||
+ as_dirs=
|
||
+ while :; do
|
||
+ case $as_dir in #(
|
||
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
|
||
+ *) as_qdir=$as_dir;;
|
||
+ esac
|
||
+ as_dirs="'$as_qdir' $as_dirs"
|
||
+ as_dir=`$as_dirname -- "$as_dir" ||
|
||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
|
||
+ X"$as_dir" : 'X\(//\)$' \| \
|
||
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$as_dir" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ test -d "$as_dir" && break
|
||
+ done
|
||
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
|
||
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
|
||
+
|
||
+
|
||
+} # as_fn_mkdir_p
|
||
+if mkdir -p . 2>/dev/null; then
|
||
+ as_mkdir_p='mkdir -p "$as_dir"'
|
||
+else
|
||
+ test -d ./-p && rmdir ./-p
|
||
+ as_mkdir_p=false
|
||
+fi
|
||
+
|
||
+if test -x / >/dev/null 2>&1; then
|
||
+ as_test_x='test -x'
|
||
+else
|
||
+ if ls -dL / >/dev/null 2>&1; then
|
||
+ as_ls_L_option=L
|
||
+ else
|
||
+ as_ls_L_option=
|
||
+ fi
|
||
+ as_test_x='
|
||
+ eval sh -c '\''
|
||
+ if test -d "$1"; then
|
||
+ test -d "$1/.";
|
||
+ else
|
||
+ case $1 in #(
|
||
+ -*)set "./$1";;
|
||
+ esac;
|
||
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
||
+ ???[sx]*):;;*)false;;esac;fi
|
||
+ '\'' sh
|
||
+ '
|
||
+fi
|
||
+as_executable_p=$as_test_x
|
||
+
|
||
+# Sed expression to map a string onto a valid CPP name.
|
||
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||
+
|
||
+# Sed expression to map a string onto a valid variable name.
|
||
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
|
||
+
|
||
+
|
||
+exec 6>&1
|
||
+## ----------------------------------- ##
|
||
+## Main body of $CONFIG_STATUS script. ##
|
||
+## ----------------------------------- ##
|
||
+_ASEOF
|
||
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+# Save the log message, to keep $0 and so on meaningful, and to
|
||
+# report actual input values of CONFIG_FILES etc. instead of their
|
||
+# values after options handling.
|
||
+ac_log="
|
||
+This file was extended by newlib $as_me 1.20.0, which was
|
||
+generated by GNU Autoconf 2.68. Invocation command line was
|
||
+
|
||
+ CONFIG_FILES = $CONFIG_FILES
|
||
+ CONFIG_HEADERS = $CONFIG_HEADERS
|
||
+ CONFIG_LINKS = $CONFIG_LINKS
|
||
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
|
||
+ $ $0 $@
|
||
+
|
||
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
|
||
+"
|
||
+
|
||
+_ACEOF
|
||
+
|
||
+case $ac_config_files in *"
|
||
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
|
||
+esac
|
||
+
|
||
+
|
||
+
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+# Files that config.status was made for.
|
||
+config_files="$ac_config_files"
|
||
+config_commands="$ac_config_commands"
|
||
+
|
||
+_ACEOF
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+ac_cs_usage="\
|
||
+\`$as_me' instantiates files and other configuration actions
|
||
+from templates according to the current configuration. Unless the files
|
||
+and actions are specified as TAGs, all are instantiated by default.
|
||
+
|
||
+Usage: $0 [OPTION]... [TAG]...
|
||
+
|
||
+ -h, --help print this help, then exit
|
||
+ -V, --version print version number and configuration settings, then exit
|
||
+ --config print configuration, then exit
|
||
+ -q, --quiet, --silent
|
||
+ do not print progress messages
|
||
+ -d, --debug don't remove temporary files
|
||
+ --recheck update $as_me by reconfiguring in the same conditions
|
||
+ --file=FILE[:TEMPLATE]
|
||
+ instantiate the configuration file FILE
|
||
+
|
||
+Configuration files:
|
||
+$config_files
|
||
+
|
||
+Configuration commands:
|
||
+$config_commands
|
||
+
|
||
+Report bugs to the package provider."
|
||
+
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||
+ac_cs_version="\\
|
||
+newlib config.status 1.20.0
|
||
+configured by $0, generated by GNU Autoconf 2.68,
|
||
+ with options \\"\$ac_cs_config\\"
|
||
+
|
||
+Copyright (C) 2010 Free Software Foundation, Inc.
|
||
+This config.status script is free software; the Free Software Foundation
|
||
+gives unlimited permission to copy, distribute and modify it."
|
||
+
|
||
+ac_pwd='$ac_pwd'
|
||
+srcdir='$srcdir'
|
||
+INSTALL='$INSTALL'
|
||
+MKDIR_P='$MKDIR_P'
|
||
+AWK='$AWK'
|
||
+test -n "\$AWK" || AWK=awk
|
||
+_ACEOF
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+# The default lists apply if the user does not specify any file.
|
||
+ac_need_defaults=:
|
||
+while test $# != 0
|
||
+do
|
||
+ case $1 in
|
||
+ --*=?*)
|
||
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
|
||
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
|
||
+ ac_shift=:
|
||
+ ;;
|
||
+ --*=)
|
||
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
|
||
+ ac_optarg=
|
||
+ ac_shift=:
|
||
+ ;;
|
||
+ *)
|
||
+ ac_option=$1
|
||
+ ac_optarg=$2
|
||
+ ac_shift=shift
|
||
+ ;;
|
||
+ esac
|
||
+
|
||
+ case $ac_option in
|
||
+ # Handling of the options.
|
||
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
|
||
+ ac_cs_recheck=: ;;
|
||
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
|
||
+ $as_echo "$ac_cs_version"; exit ;;
|
||
+ --config | --confi | --conf | --con | --co | --c )
|
||
+ $as_echo "$ac_cs_config"; exit ;;
|
||
+ --debug | --debu | --deb | --de | --d | -d )
|
||
+ debug=: ;;
|
||
+ --file | --fil | --fi | --f )
|
||
+ $ac_shift
|
||
+ case $ac_optarg in
|
||
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
|
||
+ '') as_fn_error $? "missing file argument" ;;
|
||
+ esac
|
||
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
|
||
+ ac_need_defaults=false;;
|
||
+ --he | --h | --help | --hel | -h )
|
||
+ $as_echo "$ac_cs_usage"; exit ;;
|
||
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
|
||
+ ac_cs_silent=: ;;
|
||
+
|
||
+ # This is an error.
|
||
+ -*) as_fn_error $? "unrecognized option: \`$1'
|
||
+Try \`$0 --help' for more information." ;;
|
||
+
|
||
+ *) as_fn_append ac_config_targets " $1"
|
||
+ ac_need_defaults=false ;;
|
||
+
|
||
+ esac
|
||
+ shift
|
||
+done
|
||
+
|
||
+ac_configure_extra_args=
|
||
+
|
||
+if $ac_cs_silent; then
|
||
+ exec 6>/dev/null
|
||
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
|
||
+fi
|
||
+
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+if \$ac_cs_recheck; then
|
||
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
|
||
+ shift
|
||
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
|
||
+ CONFIG_SHELL='$SHELL'
|
||
+ export CONFIG_SHELL
|
||
+ exec "\$@"
|
||
+fi
|
||
+
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+exec 5>>config.log
|
||
+{
|
||
+ echo
|
||
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
||
+## Running $as_me. ##
|
||
+_ASBOX
|
||
+ $as_echo "$ac_log"
|
||
+} >&5
|
||
+
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+#
|
||
+# INIT-COMMANDS
|
||
+#
|
||
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
|
||
+
|
||
+_ACEOF
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+
|
||
+# Handling of arguments.
|
||
+for ac_config_target in $ac_config_targets
|
||
+do
|
||
+ case $ac_config_target in
|
||
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
||
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||
+
|
||
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||
+ esac
|
||
+done
|
||
+
|
||
+
|
||
+# If the user did not use the arguments to specify the items to instantiate,
|
||
+# then the envvar interface is used. Set only those that are not.
|
||
+# We use the long form for the default assignment because of an extremely
|
||
+# bizarre bug on SunOS 4.1.3.
|
||
+if $ac_need_defaults; then
|
||
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
|
||
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
|
||
+fi
|
||
+
|
||
+# Have a temporary directory for convenience. Make it in the build tree
|
||
+# simply because there is no reason against having it here, and in addition,
|
||
+# creating and moving files from /tmp can sometimes cause problems.
|
||
+# Hook for its removal unless debugging.
|
||
+# Note that there is a small window in which the directory will not be cleaned:
|
||
+# after its creation but before its name has been assigned to `$tmp'.
|
||
+$debug ||
|
||
+{
|
||
+ tmp= ac_tmp=
|
||
+ trap 'exit_status=$?
|
||
+ : "${ac_tmp:=$tmp}"
|
||
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
|
||
+' 0
|
||
+ trap 'as_fn_exit 1' 1 2 13 15
|
||
+}
|
||
+# Create a (secure) tmp directory for tmp files.
|
||
+
|
||
+{
|
||
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
|
||
+ test -d "$tmp"
|
||
+} ||
|
||
+{
|
||
+ tmp=./conf$$-$RANDOM
|
||
+ (umask 077 && mkdir "$tmp")
|
||
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
|
||
+ac_tmp=$tmp
|
||
+
|
||
+# Set up the scripts for CONFIG_FILES section.
|
||
+# No need to generate them if there are no CONFIG_FILES.
|
||
+# This happens for instance with `./config.status config.h'.
|
||
+if test -n "$CONFIG_FILES"; then
|
||
+
|
||
+
|
||
+ac_cr=`echo X | tr X '\015'`
|
||
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
|
||
+# But we know of no other shell where ac_cr would be empty at this
|
||
+# point, so we can use a bashism as a fallback.
|
||
+if test "x$ac_cr" = x; then
|
||
+ eval ac_cr=\$\'\\r\'
|
||
+fi
|
||
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
|
||
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
|
||
+ ac_cs_awk_cr='\\r'
|
||
+else
|
||
+ ac_cs_awk_cr=$ac_cr
|
||
+fi
|
||
+
|
||
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
|
||
+_ACEOF
|
||
+
|
||
+
|
||
+{
|
||
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
|
||
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
|
||
+ echo "_ACEOF"
|
||
+} >conf$$subs.sh ||
|
||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
|
||
+ac_delim='%!_!# '
|
||
+for ac_last_try in false false false false false :; do
|
||
+ . ./conf$$subs.sh ||
|
||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||
+
|
||
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
|
||
+ if test $ac_delim_n = $ac_delim_num; then
|
||
+ break
|
||
+ elif $ac_last_try; then
|
||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
|
||
+ else
|
||
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
|
||
+ fi
|
||
+done
|
||
+rm -f conf$$subs.sh
|
||
+
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
|
||
+_ACEOF
|
||
+sed -n '
|
||
+h
|
||
+s/^/S["/; s/!.*/"]=/
|
||
+p
|
||
+g
|
||
+s/^[^!]*!//
|
||
+:repl
|
||
+t repl
|
||
+s/'"$ac_delim"'$//
|
||
+t delim
|
||
+:nl
|
||
+h
|
||
+s/\(.\{148\}\)..*/\1/
|
||
+t more1
|
||
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
|
||
+p
|
||
+n
|
||
+b repl
|
||
+:more1
|
||
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
|
||
+p
|
||
+g
|
||
+s/.\{148\}//
|
||
+t nl
|
||
+:delim
|
||
+h
|
||
+s/\(.\{148\}\)..*/\1/
|
||
+t more2
|
||
+s/["\\]/\\&/g; s/^/"/; s/$/"/
|
||
+p
|
||
+b
|
||
+:more2
|
||
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
|
||
+p
|
||
+g
|
||
+s/.\{148\}//
|
||
+t delim
|
||
+' <conf$$subs.awk | sed '
|
||
+/^[^""]/{
|
||
+ N
|
||
+ s/\n//
|
||
+}
|
||
+' >>$CONFIG_STATUS || ac_write_fail=1
|
||
+rm -f conf$$subs.awk
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+_ACAWK
|
||
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
|
||
+ for (key in S) S_is_set[key] = 1
|
||
+ FS = ""
|
||
+
|
||
+}
|
||
+{
|
||
+ line = $ 0
|
||
+ nfields = split(line, field, "@")
|
||
+ substed = 0
|
||
+ len = length(field[1])
|
||
+ for (i = 2; i < nfields; i++) {
|
||
+ key = field[i]
|
||
+ keylen = length(key)
|
||
+ if (S_is_set[key]) {
|
||
+ value = S[key]
|
||
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
|
||
+ len += length(value) + length(field[++i])
|
||
+ substed = 1
|
||
+ } else
|
||
+ len += 1 + keylen
|
||
+ }
|
||
+
|
||
+ print line
|
||
+}
|
||
+
|
||
+_ACAWK
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
|
||
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
|
||
+else
|
||
+ cat
|
||
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|
||
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
|
||
+_ACEOF
|
||
+
|
||
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
|
||
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
|
||
+# trailing colons and then remove the whole line if VPATH becomes empty
|
||
+# (actually we leave an empty line to preserve line numbers).
|
||
+if test "x$srcdir" = x.; then
|
||
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
|
||
+h
|
||
+s///
|
||
+s/^/:/
|
||
+s/[ ]*$/:/
|
||
+s/:\$(srcdir):/:/g
|
||
+s/:\${srcdir}:/:/g
|
||
+s/:@srcdir@:/:/g
|
||
+s/^:*//
|
||
+s/:*$//
|
||
+x
|
||
+s/\(=[ ]*\).*/\1/
|
||
+G
|
||
+s/\n//
|
||
+s/^[^=]*=[ ]*$//
|
||
+}'
|
||
+fi
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+fi # test -n "$CONFIG_FILES"
|
||
+
|
||
+
|
||
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
|
||
+shift
|
||
+for ac_tag
|
||
+do
|
||
+ case $ac_tag in
|
||
+ :[FHLC]) ac_mode=$ac_tag; continue;;
|
||
+ esac
|
||
+ case $ac_mode$ac_tag in
|
||
+ :[FHL]*:*);;
|
||
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
|
||
+ :[FH]-) ac_tag=-:-;;
|
||
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
|
||
+ esac
|
||
+ ac_save_IFS=$IFS
|
||
+ IFS=:
|
||
+ set x $ac_tag
|
||
+ IFS=$ac_save_IFS
|
||
+ shift
|
||
+ ac_file=$1
|
||
+ shift
|
||
+
|
||
+ case $ac_mode in
|
||
+ :L) ac_source=$1;;
|
||
+ :[FH])
|
||
+ ac_file_inputs=
|
||
+ for ac_f
|
||
+ do
|
||
+ case $ac_f in
|
||
+ -) ac_f="$ac_tmp/stdin";;
|
||
+ *) # Look for the file first in the build tree, then in the source tree
|
||
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
|
||
+ # because $ac_f cannot contain `:'.
|
||
+ test -f "$ac_f" ||
|
||
+ case $ac_f in
|
||
+ [\\/$]*) false;;
|
||
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
|
||
+ esac ||
|
||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
|
||
+ esac
|
||
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
|
||
+ as_fn_append ac_file_inputs " '$ac_f'"
|
||
+ done
|
||
+
|
||
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
|
||
+ # use $as_me), people would be surprised to read:
|
||
+ # /* config.h. Generated by config.status. */
|
||
+ configure_input='Generated from '`
|
||
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
|
||
+ `' by configure.'
|
||
+ if test x"$ac_file" != x-; then
|
||
+ configure_input="$ac_file. $configure_input"
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
|
||
+$as_echo "$as_me: creating $ac_file" >&6;}
|
||
+ fi
|
||
+ # Neutralize special characters interpreted by sed in replacement strings.
|
||
+ case $configure_input in #(
|
||
+ *\&* | *\|* | *\\* )
|
||
+ ac_sed_conf_input=`$as_echo "$configure_input" |
|
||
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
|
||
+ *) ac_sed_conf_input=$configure_input;;
|
||
+ esac
|
||
+
|
||
+ case $ac_tag in
|
||
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
|
||
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
|
||
+ esac
|
||
+ ;;
|
||
+ esac
|
||
+
|
||
+ ac_dir=`$as_dirname -- "$ac_file" ||
|
||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$ac_file" : 'X\(//\)[^/]' \| \
|
||
+ X"$ac_file" : 'X\(//\)$' \| \
|
||
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$ac_file" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ as_dir="$ac_dir"; as_fn_mkdir_p
|
||
+ ac_builddir=.
|
||
+
|
||
+case "$ac_dir" in
|
||
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
|
||
+*)
|
||
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
|
||
+ # A ".." for each directory in $ac_dir_suffix.
|
||
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
|
||
+ case $ac_top_builddir_sub in
|
||
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
|
||
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
|
||
+ esac ;;
|
||
+esac
|
||
+ac_abs_top_builddir=$ac_pwd
|
||
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
|
||
+# for backward compatibility:
|
||
+ac_top_builddir=$ac_top_build_prefix
|
||
+
|
||
+case $srcdir in
|
||
+ .) # We are building in place.
|
||
+ ac_srcdir=.
|
||
+ ac_top_srcdir=$ac_top_builddir_sub
|
||
+ ac_abs_top_srcdir=$ac_pwd ;;
|
||
+ [\\/]* | ?:[\\/]* ) # Absolute name.
|
||
+ ac_srcdir=$srcdir$ac_dir_suffix;
|
||
+ ac_top_srcdir=$srcdir
|
||
+ ac_abs_top_srcdir=$srcdir ;;
|
||
+ *) # Relative name.
|
||
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
|
||
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
|
||
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
|
||
+esac
|
||
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
|
||
+
|
||
+
|
||
+ case $ac_mode in
|
||
+ :F)
|
||
+ #
|
||
+ # CONFIG_FILE
|
||
+ #
|
||
+
|
||
+ case $INSTALL in
|
||
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
|
||
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
|
||
+ esac
|
||
+ ac_MKDIR_P=$MKDIR_P
|
||
+ case $MKDIR_P in
|
||
+ [\\/$]* | ?:[\\/]* ) ;;
|
||
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
|
||
+ esac
|
||
+_ACEOF
|
||
+
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+# If the template does not know about datarootdir, expand it.
|
||
+# FIXME: This hack should be removed a few years after 2.60.
|
||
+ac_datarootdir_hack=; ac_datarootdir_seen=
|
||
+ac_sed_dataroot='
|
||
+/datarootdir/ {
|
||
+ p
|
||
+ q
|
||
+}
|
||
+/@datadir@/p
|
||
+/@docdir@/p
|
||
+/@infodir@/p
|
||
+/@localedir@/p
|
||
+/@mandir@/p'
|
||
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
|
||
+*datarootdir*) ac_datarootdir_seen=yes;;
|
||
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
|
||
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+ ac_datarootdir_hack='
|
||
+ s&@datadir@&$datadir&g
|
||
+ s&@docdir@&$docdir&g
|
||
+ s&@infodir@&$infodir&g
|
||
+ s&@localedir@&$localedir&g
|
||
+ s&@mandir@&$mandir&g
|
||
+ s&\\\${datarootdir}&$datarootdir&g' ;;
|
||
+esac
|
||
+_ACEOF
|
||
+
|
||
+# Neutralize VPATH when `$srcdir' = `.'.
|
||
+# Shell code in configure.ac might set extrasub.
|
||
+# FIXME: do we really want to maintain this feature?
|
||
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
+ac_sed_extra="$ac_vpsub
|
||
+$extrasub
|
||
+_ACEOF
|
||
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
+:t
|
||
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
|
||
+s|@configure_input@|$ac_sed_conf_input|;t t
|
||
+s&@top_builddir@&$ac_top_builddir_sub&;t t
|
||
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
|
||
+s&@srcdir@&$ac_srcdir&;t t
|
||
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
|
||
+s&@top_srcdir@&$ac_top_srcdir&;t t
|
||
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
|
||
+s&@builddir@&$ac_builddir&;t t
|
||
+s&@abs_builddir@&$ac_abs_builddir&;t t
|
||
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
|
||
+s&@INSTALL@&$ac_INSTALL&;t t
|
||
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
|
||
+$ac_datarootdir_hack
|
||
+"
|
||
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
|
||
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||
+
|
||
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
|
||
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
|
||
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
|
||
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
|
||
+which seems to be undefined. Please make sure it is defined" >&5
|
||
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
|
||
+which seems to be undefined. Please make sure it is defined" >&2;}
|
||
+
|
||
+ rm -f "$ac_tmp/stdin"
|
||
+ case $ac_file in
|
||
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
|
||
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
|
||
+ esac \
|
||
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||
+ ;;
|
||
+
|
||
+
|
||
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
|
||
+$as_echo "$as_me: executing $ac_file commands" >&6;}
|
||
+ ;;
|
||
+ esac
|
||
+
|
||
+
|
||
+ case $ac_file$ac_mode in
|
||
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
|
||
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||
+ # are listed without --file. Let's play safe and only enable the eval
|
||
+ # if we detect the quoting.
|
||
+ case $CONFIG_FILES in
|
||
+ *\'*) eval set x "$CONFIG_FILES" ;;
|
||
+ *) set x $CONFIG_FILES ;;
|
||
+ esac
|
||
+ shift
|
||
+ for mf
|
||
+ do
|
||
+ # Strip MF so we end up with the name of the file.
|
||
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||
+ # Check whether this is an Automake generated Makefile or not.
|
||
+ # We used to match only the files named `Makefile.in', but
|
||
+ # some people rename them; so instead we look at the file content.
|
||
+ # Grep'ing the first line is not enough: some people post-process
|
||
+ # each Makefile.in and add a new line on top of each file to say so.
|
||
+ # Grep'ing the whole file is not good either: AIX grep has a line
|
||
+ # limit of 2048, but all sed's we know have understand at least 4000.
|
||
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||
+ dirpart=`$as_dirname -- "$mf" ||
|
||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$mf" : 'X\(//\)[^/]' \| \
|
||
+ X"$mf" : 'X\(//\)$' \| \
|
||
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$mf" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ else
|
||
+ continue
|
||
+ fi
|
||
+ # Extract the definition of DEPDIR, am__include, and am__quote
|
||
+ # from the Makefile without running `make'.
|
||
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||
+ test -z "$DEPDIR" && continue
|
||
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||
+ test -z "am__include" && continue
|
||
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||
+ # When using ansi2knr, U may be empty or an underscore; expand it
|
||
+ U=`sed -n 's/^U = //p' < "$mf"`
|
||
+ # Find all dependency output files, they are included files with
|
||
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
|
||
+ # simplest approach to changing $(DEPDIR) to its actual value in the
|
||
+ # expansion.
|
||
+ for file in `sed -n "
|
||
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||
+ # Make sure the directory exists.
|
||
+ test -f "$dirpart/$file" && continue
|
||
+ fdir=`$as_dirname -- "$file" ||
|
||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||
+ X"$file" : 'X\(//\)[^/]' \| \
|
||
+ X"$file" : 'X\(//\)$' \| \
|
||
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
|
||
+$as_echo X"$file" |
|
||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)[^/].*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\/\)$/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ /^X\(\/\).*/{
|
||
+ s//\1/
|
||
+ q
|
||
+ }
|
||
+ s/.*/./; q'`
|
||
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
|
||
+ # echo "creating $dirpart/$file"
|
||
+ echo '# dummy' > "$dirpart/$file"
|
||
+ done
|
||
+ done
|
||
+}
|
||
+ ;;
|
||
+
|
||
+ esac
|
||
+done # for ac_tag
|
||
+
|
||
+
|
||
+as_fn_exit 0
|
||
+_ACEOF
|
||
+ac_clean_files=$ac_clean_files_save
|
||
+
|
||
+test $ac_write_fail = 0 ||
|
||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
|
||
+
|
||
+
|
||
+# configure is writing to config.log, and then calls config.status.
|
||
+# config.status does its own redirection, appending to config.log.
|
||
+# Unfortunately, on DOS this fails, as config.log is still kept open
|
||
+# by configure, so config.status won't be able to write to it; its
|
||
+# output is simply discarded. So we exec the FD to /dev/null,
|
||
+# effectively closing config.log, so it can be properly (re)opened and
|
||
+# appended to by config.status. When coming back to configure, we
|
||
+# need to make the FD available again.
|
||
+if test "$no_create" != yes; then
|
||
+ ac_cs_success=:
|
||
+ ac_config_status_args=
|
||
+ test "$silent" = yes &&
|
||
+ ac_config_status_args="$ac_config_status_args --quiet"
|
||
+ exec 5>/dev/null
|
||
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
|
||
+ exec 5>>config.log
|
||
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
|
||
+ # would make configure fail if this is the last instruction.
|
||
+ $ac_cs_success || as_fn_exit 1
|
||
+fi
|
||
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
|
||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
|
||
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
|
||
+fi
|
||
+
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/configure.in newlib-1.20.0-psp/newlib/libc/sys/psp/configure.in
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/configure.in 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/configure.in 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,14 @@
|
||
+dnl This is the newlib/libc/sys/sun4 configure.in file.
|
||
+dnl Process this file with autoconf to produce a configure script.
|
||
+
|
||
+AC_PREREQ(2.59)
|
||
+AC_INIT([newlib],[NEWLIB_VERSION])
|
||
+AC_CONFIG_SRCDIR([libcglue.c])
|
||
+
|
||
+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
|
||
+AC_CONFIG_AUX_DIR(../../../..)
|
||
+
|
||
+NEWLIB_CONFIGURE(../../..)
|
||
+
|
||
+AC_CONFIG_FILES(Makefile)
|
||
+AC_OUTPUT
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/crt0.c newlib-1.20.0-psp/newlib/libc/sys/psp/crt0.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/crt0.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/crt0.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,3 @@
|
||
+/* The real crt0.c lives in PSPSDK. */
|
||
+
|
||
+void _start() { }
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/fdman.c newlib-1.20.0-psp/newlib/libc/sys/psp/fdman.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/fdman.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/fdman.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,115 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * fdman.c - File descriptor management.
|
||
+ *
|
||
+ * Copyright (c) 2006 Rafael Cabezas <rafpsp@gmail.com>
|
||
+ */
|
||
+#include <psptypes.h>
|
||
+#include <errno.h>
|
||
+#include "fdman.h"
|
||
+
|
||
+extern int pspDisableInterrupts();
|
||
+extern void pspEnableInterrupts(int);
|
||
+
|
||
+static __psp_descriptormap_type __psp_descriptor_data_pool[__PSP_FILENO_MAX];
|
||
+__psp_descriptormap_type *__psp_descriptormap [__PSP_FILENO_MAX];
|
||
+
|
||
+void __psp_fdman_init()
|
||
+{
|
||
+ int scefd;
|
||
+
|
||
+ /* Initialize descriptor data*/
|
||
+ memset(__psp_descriptor_data_pool, 0, sizeof(__psp_descriptormap_type) *__PSP_FILENO_MAX);
|
||
+ /* Initialize descriptor map*/
|
||
+ memset(__psp_descriptormap, 0, sizeof(__psp_descriptormap_type*)*__PSP_FILENO_MAX);
|
||
+
|
||
+ scefd = sceKernelStdin();
|
||
+ if (scefd >= 0) {
|
||
+ __psp_descriptormap[0] = &__psp_descriptor_data_pool[0];
|
||
+ __psp_descriptormap[0]->sce_descriptor = scefd;
|
||
+ __psp_descriptormap[0]->type = __PSP_DESCRIPTOR_TYPE_TTY;
|
||
+ }
|
||
+ scefd = sceKernelStdout();
|
||
+ if (scefd >= 0) {
|
||
+ __psp_descriptormap[1] = &__psp_descriptor_data_pool[1];
|
||
+ __psp_descriptormap[1]->sce_descriptor = scefd;
|
||
+ __psp_descriptormap[1]->type = __PSP_DESCRIPTOR_TYPE_TTY;
|
||
+ }
|
||
+ scefd = sceKernelStderr();
|
||
+ if (scefd >= 0) {
|
||
+ __psp_descriptormap[2] = &__psp_descriptor_data_pool[2];
|
||
+ __psp_descriptormap[2]->sce_descriptor = scefd;
|
||
+ __psp_descriptormap[2]->type = __PSP_DESCRIPTOR_TYPE_TTY;
|
||
+ }
|
||
+}
|
||
+
|
||
+int __psp_fdman_get_new_descriptor()
|
||
+{
|
||
+ int i = 0;
|
||
+ int inten;
|
||
+
|
||
+ inten = pspDisableInterrupts(); /* lock here to make thread safe */
|
||
+ for (i = 0; i < __PSP_FILENO_MAX; i++) {
|
||
+ if (__psp_descriptormap[i] == NULL) {
|
||
+ __psp_descriptormap[i] = &__psp_descriptor_data_pool[i];
|
||
+ __psp_descriptormap[i]->ref_count++;
|
||
+ pspEnableInterrupts(inten); /* release lock */
|
||
+ return i;
|
||
+ }
|
||
+ }
|
||
+ pspEnableInterrupts(inten); /* release lock */
|
||
+
|
||
+ errno = ENOMEM;
|
||
+ return -1;
|
||
+}
|
||
+
|
||
+int __psp_fdman_get_dup_descriptor(int fd)
|
||
+{
|
||
+ int i = 0;
|
||
+ int inten;
|
||
+
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ inten = pspDisableInterrupts(); /* lock here to make thread safe */
|
||
+ for (i = 0; i < __PSP_FILENO_MAX; i++) {
|
||
+ if (__psp_descriptormap[i] == NULL) {
|
||
+ __psp_descriptormap[i] = &__psp_descriptor_data_pool[fd];
|
||
+ __psp_descriptormap[i]->ref_count++;
|
||
+ pspEnableInterrupts(inten); /* release lock */
|
||
+ return i;
|
||
+ }
|
||
+ }
|
||
+ pspEnableInterrupts(inten); /* release lock */
|
||
+
|
||
+ errno = ENOMEM;
|
||
+ return -1;
|
||
+}
|
||
+
|
||
+void __psp_fdman_release_descriptor(int fd)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return;
|
||
+ }
|
||
+
|
||
+ __psp_descriptormap[fd]->ref_count--;
|
||
+
|
||
+ if (__psp_descriptormap[fd]->ref_count == 0) {
|
||
+
|
||
+ if (__psp_descriptormap[fd]->filename != NULL) {
|
||
+ free(__psp_descriptormap[fd]->filename);
|
||
+ }
|
||
+ __psp_descriptormap[fd]->filename = NULL;
|
||
+ __psp_descriptormap[fd]->sce_descriptor = 0;
|
||
+ __psp_descriptormap[fd]->type = 0;
|
||
+ __psp_descriptormap[fd]->flags = 0;
|
||
+
|
||
+ }
|
||
+ __psp_descriptormap[fd] = NULL;
|
||
+}
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/fdman.h newlib-1.20.0-psp/newlib/libc/sys/psp/fdman.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/fdman.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/fdman.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,44 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * fdman.h - File descriptor management.
|
||
+ *
|
||
+ * Copyright (c) 2006 Rafael Cabezas <rafpsp@gmail.com>
|
||
+ */
|
||
+
|
||
+#ifndef _FDMAN_H_
|
||
+ #define _FDMAN_H_
|
||
+
|
||
+ #define __PSP_FILENO_MAX 1024
|
||
+
|
||
+ #define __PSP_IS_FD_VALID(FD) \
|
||
+ ( (FD >= 0) && (FD < __PSP_FILENO_MAX) && (__psp_descriptormap[FD] != NULL) )
|
||
+
|
||
+ #define __PSP_IS_FD_OF_TYPE(FD, TYPE) \
|
||
+ ( (__PSP_IS_FD_VALID(FD)) && (__psp_descriptormap[FD]->type == TYPE) )
|
||
+
|
||
+ typedef enum {
|
||
+ __PSP_DESCRIPTOR_TYPE_FILE ,
|
||
+ __PSP_DESCRIPTOR_TYPE_PIPE ,
|
||
+ __PSP_DESCRIPTOR_TYPE_SOCKET,
|
||
+ __PSP_DESCRIPTOR_TYPE_TTY
|
||
+ } __psp_fdman_fd_types;
|
||
+
|
||
+ typedef struct {
|
||
+ char * filename;
|
||
+ u8 type;
|
||
+ u32 sce_descriptor;
|
||
+ u32 flags;
|
||
+ u32 ref_count;
|
||
+ } __psp_descriptormap_type;
|
||
+
|
||
+ extern __psp_descriptormap_type *__psp_descriptormap[__PSP_FILENO_MAX];
|
||
+
|
||
+ void __psp_fdman_init();
|
||
+ int __psp_fdman_get_new_descriptor();
|
||
+ int __psp_fdman_get_dup_descriptor(int fd);
|
||
+ void __psp_fdman_release_descriptor(int fd);
|
||
+
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/include/netdb.h newlib-1.20.0-psp/newlib/libc/sys/psp/include/netdb.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/include/netdb.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/include/netdb.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,36 @@
|
||
+/* Simple gethostbyname and gethostbyaddr replacements, note not thread safe */
|
||
+#ifndef __NETDB_H__
|
||
+#define __NETDB_H__
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#define NETDB_INTERNAL -1 /* see errno */
|
||
+#define NETDB_SUCCESS 0 /* no problem */
|
||
+#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
|
||
+#define TRY_AGAIN 2 /* Non-Authoritative Host not found, or SERVERFAIL */
|
||
+#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
|
||
+#define NO_DATA 4 /* Valid name, no data record of requested type */
|
||
+#define NO_ADDRESS NO_DATA /* no address, look for MX record */
|
||
+
|
||
+extern int h_errno;
|
||
+
|
||
+struct hostent
|
||
+{
|
||
+ char *h_name;
|
||
+ char **h_aliases;
|
||
+ int h_addrtype;
|
||
+ int h_length;
|
||
+ char **h_addr_list;
|
||
+ char *h_addr;
|
||
+};
|
||
+
|
||
+struct hostent *gethostbyaddr(const void *addr, int len, int type);
|
||
+struct hostent *gethostbyname(const char *name);
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/interrupt.S newlib-1.20.0-psp/newlib/libc/sys/psp/interrupt.S
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/interrupt.S 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/interrupt.S 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,66 @@
|
||
+
|
||
+ .set noreorder
|
||
+ .set noat
|
||
+
|
||
+ .global pspDisableInterrupts
|
||
+ .ent pspDisableInterrupts
|
||
+
|
||
+pspDisableInterrupts:
|
||
+ mfic $v0, $0
|
||
+ mtic $0, $0
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ jr $ra
|
||
+ nop
|
||
+
|
||
+ .end pspDisableInterrupts
|
||
+
|
||
+ .global pspEnableInterrupts
|
||
+ .ent pspEnableInterrupts
|
||
+
|
||
+pspEnableInterrupts:
|
||
+ mtic $a0, $0
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ nop
|
||
+ jr $ra
|
||
+ nop
|
||
+
|
||
+ .end pspEnableInterrupts
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/libcglue.c newlib-1.20.0-psp/newlib/libc/sys/psp/libcglue.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/libcglue.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/libcglue.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,969 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * libcglue.c - Newlib-compatible system calls.
|
||
+ *
|
||
+ * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
|
||
+ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
|
||
+ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
|
||
+ * Copyright (c) 2005 Jim Paris <jim@jtan.com>
|
||
+ *
|
||
+ */
|
||
+#include <errno.h>
|
||
+#include <malloc.h>
|
||
+#include <reent.h>
|
||
+#include <stdarg.h>
|
||
+#include <stdlib.h>
|
||
+#include <string.h>
|
||
+#include <time.h>
|
||
+#include <sys/fcntl.h>
|
||
+#include <sys/stat.h>
|
||
+#include <sys/time.h>
|
||
+#include <sys/types.h>
|
||
+#include <sys/unistd.h>
|
||
+#include <sys/dirent.h>
|
||
+#include <sys/socket.h>
|
||
+
|
||
+#include <psptypes.h>
|
||
+#include <pspiofilemgr.h>
|
||
+#include <pspmodulemgr.h>
|
||
+#include <pspsysmem.h>
|
||
+#include <pspthreadman.h>
|
||
+#include <psputils.h>
|
||
+#include <psputility.h>
|
||
+#include <pspstdio.h>
|
||
+#include <pspintrman.h>
|
||
+#include "fdman.h"
|
||
+
|
||
+extern char __psp_cwd[MAXPATHLEN + 1];
|
||
+extern void __psp_init_cwd(char *argv_0);
|
||
+extern int __psp_path_absolute(const char *in, char *out, int len);
|
||
+extern int pspDisableInterrupts();
|
||
+extern void pspEnableInterrupts(int);
|
||
+
|
||
+/* The following functions are defined in socket.c. They have weak linkage so
|
||
+ that the user doesn't have to link against the PSP network libraries if they
|
||
+ don't use the sockets API. */
|
||
+extern int __psp_socket_close(int s) __attribute__((weak));
|
||
+extern ssize_t __psp_socket_recv(int s, void *buf, size_t len, int flags) __attribute__((weak));
|
||
+extern ssize_t __psp_socket_send(int s, const void *buf, size_t len, int flags) __attribute__((weak));
|
||
+
|
||
+extern int pipe(int fildes[2]);
|
||
+extern int __psp_pipe_close(int filedes);
|
||
+extern int __psp_pipe_nonblocking_read(int fd, void *buf, size_t len);
|
||
+extern int __psp_pipe_read(int fd, void *buf, size_t len);
|
||
+extern int __psp_pipe_write(int fd, const void *buf, size_t size);
|
||
+extern int __psp_pipe_nonblocking_write(int fd, const void *buf, size_t len);
|
||
+
|
||
+int __psp_set_errno(int code);
|
||
+
|
||
+#ifdef F___psp_set_errno
|
||
+int __psp_set_errno(int code)
|
||
+{
|
||
+ if ((code & 0x80010000) == 0x80010000) {
|
||
+ errno = code & 0xFFFF;
|
||
+ return -1;
|
||
+ }
|
||
+ return code;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_getcwd
|
||
+char *getcwd(char *buf, size_t size)
|
||
+{
|
||
+ if(!buf) {
|
||
+ errno = EINVAL;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ if(strlen(__psp_cwd) >= size) {
|
||
+ errno = ERANGE;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ strcpy(buf, __psp_cwd);
|
||
+ return buf;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_chdir
|
||
+int chdir(const char *path)
|
||
+{
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+ SceUID uid;
|
||
+
|
||
+ if(__psp_path_absolute(path, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ /* sceIoChdir doesn't give an indication of whether it worked,
|
||
+ so test for existence by attempting to open the dir */
|
||
+ uid = sceIoDopen(dest);
|
||
+ if(uid < 0) {
|
||
+ errno = ENOTDIR;
|
||
+ return -1;
|
||
+ }
|
||
+ sceIoDclose(uid);
|
||
+
|
||
+ sceIoChdir(dest);
|
||
+ strcpy(__psp_cwd, dest);
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_mkdir
|
||
+int mkdir(const char *pathname, mode_t mode)
|
||
+{
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(pathname, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return __psp_set_errno(sceIoMkdir(dest, mode));
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_rmdir
|
||
+int rmdir(const char *pathname)
|
||
+{
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(pathname, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return __psp_set_errno(sceIoRmdir(dest));
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_realpath
|
||
+char *realpath(const char *path, char *resolved_path)
|
||
+{
|
||
+ if(!path || !resolved_path) {
|
||
+ errno = EINVAL;
|
||
+ return NULL;
|
||
+ }
|
||
+ if(__psp_path_absolute(path, resolved_path, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return NULL;
|
||
+ }
|
||
+ if(access(resolved_path, F_OK) < 0) {
|
||
+ errno = ENOENT;
|
||
+ return NULL;
|
||
+ }
|
||
+ return resolved_path;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* Wrappers of the standard open(), close(), read(), write(), unlink() and lseek() routines. */
|
||
+#ifdef F__open
|
||
+int _open(const char *name, int flags, int mode)
|
||
+{
|
||
+ int scefd, fd;
|
||
+ int sce_flags;
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(name, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ /* O_RDONLY starts at 0, where PSP_O_RDONLY starts at 1, so remap the read/write
|
||
+ flags by adding 1. */
|
||
+ sce_flags = (flags & O_ACCMODE) + 1;
|
||
+
|
||
+ /* Translate standard open flags into the flags understood by the PSP kernel. */
|
||
+ if (flags & O_APPEND) {
|
||
+ sce_flags |= PSP_O_APPEND;
|
||
+ }
|
||
+ if (flags & O_CREAT) {
|
||
+ sce_flags |= PSP_O_CREAT;
|
||
+ }
|
||
+ if (flags & O_TRUNC) {
|
||
+ sce_flags |= PSP_O_TRUNC;
|
||
+ }
|
||
+ if (flags & O_EXCL) {
|
||
+ sce_flags |= PSP_O_EXCL;
|
||
+ }
|
||
+ if (flags & O_NONBLOCK) {
|
||
+ sce_flags |= PSP_O_NBLOCK;
|
||
+ }
|
||
+
|
||
+ scefd = sceIoOpen(dest, sce_flags, mode);
|
||
+ if (scefd >= 0) {
|
||
+ fd = __psp_fdman_get_new_descriptor();
|
||
+ if (fd != -1) {
|
||
+ __psp_descriptormap[fd]->sce_descriptor = scefd;
|
||
+ __psp_descriptormap[fd]->type = __PSP_DESCRIPTOR_TYPE_FILE;
|
||
+ __psp_descriptormap[fd]->flags = flags;
|
||
+ __psp_descriptormap[fd]->filename = strdup(dest);
|
||
+ return fd;
|
||
+ }
|
||
+ else {
|
||
+ sceIoClose(scefd);
|
||
+ errno = ENOMEM;
|
||
+ return -1;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ return __psp_set_errno(scefd);
|
||
+ }
|
||
+
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__close
|
||
+int _close(int fd)
|
||
+{
|
||
+ int ret = 0;
|
||
+
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ case __PSP_DESCRIPTOR_TYPE_TTY:
|
||
+ if (__psp_descriptormap[fd]->ref_count == 1) {
|
||
+ ret = __psp_set_errno(sceIoClose(__psp_descriptormap[fd]->sce_descriptor));
|
||
+ }
|
||
+ __psp_fdman_release_descriptor(fd);
|
||
+ return ret;
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ return __psp_pipe_close(fd);
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ if (__psp_socket_close != NULL) {
|
||
+ ret = __psp_socket_close(fd);
|
||
+ return ret;
|
||
+ }
|
||
+ break;
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__read
|
||
+int _read(int fd, void *buf, size_t size)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ case __PSP_DESCRIPTOR_TYPE_TTY:
|
||
+ return __psp_set_errno(sceIoRead(__psp_descriptormap[fd]->sce_descriptor, buf, size));
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ if (__psp_descriptormap[fd]->flags & O_NONBLOCK) {
|
||
+ return __psp_pipe_nonblocking_read(fd, buf, size);
|
||
+ }
|
||
+ else {
|
||
+ return __psp_pipe_read(fd, buf, size);
|
||
+ }
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ if (__psp_socket_recv != NULL) {
|
||
+ return __psp_socket_recv(fd, buf, size, 0);
|
||
+ }
|
||
+ break;
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__write
|
||
+int _write(int fd, const void *buf, size_t size)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ case __PSP_DESCRIPTOR_TYPE_TTY:
|
||
+ return __psp_set_errno(sceIoWrite(__psp_descriptormap[fd]->sce_descriptor, buf, size));
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ if (__psp_descriptormap[fd]->flags & O_NONBLOCK) {
|
||
+ return __psp_pipe_nonblocking_write(fd, buf, size);
|
||
+ }
|
||
+ else {
|
||
+ return __psp_pipe_write(fd, buf, size);
|
||
+ }
|
||
+ break;
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ if (__psp_socket_send != NULL) {
|
||
+ return __psp_socket_send(fd, buf, size, 0);
|
||
+ }
|
||
+ break;
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__lseek
|
||
+off_t _lseek(int fd, off_t offset, int whence)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ /* We don't have to do anything with the whence argument because SEEK_* == PSP_SEEK_*. */
|
||
+ return (off_t) __psp_set_errno(sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, offset, whence));
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ break;
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__unlink
|
||
+int _unlink(const char *path)
|
||
+{
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(path, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return __psp_set_errno(sceIoRemove(dest));
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__link
|
||
+int _link(const char *name1, const char *name2)
|
||
+{
|
||
+ errno = ENOSYS;
|
||
+ return -1; /* not supported */
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_opendir
|
||
+DIR *opendir(const char *filename)
|
||
+{
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+ DIR *dirp;
|
||
+ SceUID uid;
|
||
+
|
||
+ /* Normalize pathname so that opendir(".") works */
|
||
+ if(__psp_path_absolute(filename, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENOENT;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ dirp = (DIR *)malloc(sizeof(DIR));
|
||
+
|
||
+ uid = sceIoDopen(dest);
|
||
+
|
||
+ if (uid < 0)
|
||
+ {
|
||
+ free(dirp);
|
||
+ (void) __psp_set_errno(uid);
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ dirp->uid = uid;
|
||
+
|
||
+ return dirp;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_readdir
|
||
+struct dirent *readdir(DIR *dirp)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ /* Zero the dirent, to avoid possible problems with sceIoDread */
|
||
+ memset(&dirp->de, 0, sizeof(struct dirent));
|
||
+
|
||
+ ret = sceIoDread(dirp->uid, (SceIoDirent *)&dirp->de);
|
||
+ if (ret == 0) {
|
||
+ /* EOF */
|
||
+ errno = 0;
|
||
+ return NULL;
|
||
+ }
|
||
+ if (ret < 0) {
|
||
+ (void) __psp_set_errno(ret);
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ return &dirp->de;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_closedir
|
||
+int closedir(DIR *dirp)
|
||
+{
|
||
+ if (dirp != NULL)
|
||
+ {
|
||
+ int uid;
|
||
+ uid = dirp->uid;
|
||
+ free (dirp);
|
||
+ return __psp_set_errno(sceIoDclose(uid));
|
||
+ }
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* Time routines. These wrap around the routines provided by the kernel. */
|
||
+#ifdef F__gettimeofday
|
||
+int _gettimeofday(struct timeval *tp, struct timezone *tzp)
|
||
+{
|
||
+ int ret;
|
||
+ time_t t;
|
||
+ struct timeval tv1, tv2;
|
||
+
|
||
+ /* The kernel sceKernelLibcGettimeofday only returns time
|
||
+ since midnight. To get a proper timeval return value, we
|
||
+ get seconds using sceKernelLibcTime and microseconds using
|
||
+ sceKernelLibcGettimeofday. Since we are reading the time
|
||
+ with two different function calls, we need to be careful
|
||
+ to avoid glitches when the time changes between calls. */
|
||
+
|
||
+ retry:
|
||
+ /* Get seconds and microseconds since midnight */
|
||
+ ret = __psp_set_errno(sceKernelLibcGettimeofday(&tv1, tzp));
|
||
+ if (ret < 0)
|
||
+ return ret;
|
||
+
|
||
+ /* Get seconds since epoch */
|
||
+ ret = __psp_set_errno(sceKernelLibcTime(&t));
|
||
+ if (ret < 0)
|
||
+ return ret;
|
||
+
|
||
+ /* Get seconds and microseconds since midnight, again */
|
||
+ ret = __psp_set_errno(sceKernelLibcGettimeofday(&tv2, tzp));
|
||
+ if (ret < 0)
|
||
+ return ret;
|
||
+
|
||
+ /* Retry if microseconds wrapped around */
|
||
+ if (tv2.tv_usec < tv1.tv_usec)
|
||
+ goto retry;
|
||
+
|
||
+ /* Return the actual time since epoch */
|
||
+ tp->tv_sec = t;
|
||
+ tp->tv_usec = tv2.tv_usec;
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+#endif
|
||
+
|
||
+#if defined(F_clock)
|
||
+clock_t clock(void)
|
||
+{
|
||
+ return sceKernelLibcClock();
|
||
+}
|
||
+#endif
|
||
+
|
||
+#if defined(F_time)
|
||
+time_t time(time_t *t)
|
||
+{
|
||
+ return __psp_set_errno(sceKernelLibcTime(t));
|
||
+}
|
||
+#endif
|
||
+
|
||
+#if defined(F_sleep)
|
||
+unsigned int sleep(unsigned int secs) {
|
||
+ while(secs--) {
|
||
+ sceKernelDelayThreadCB(1000000);
|
||
+ }
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* PSP-compatible sbrk(). */
|
||
+#if defined(F__sbrk) || defined(F_glue__sbrk)
|
||
+
|
||
+#define DEFAULT_PRX_HEAP_SIZE_KB 64
|
||
+
|
||
+/* If defined it specifies the desired size of the heap, in KB. */
|
||
+extern int sce_newlib_heap_kb_size __attribute__((weak));
|
||
+extern int __pspsdk_is_prx __attribute__((weak));
|
||
+
|
||
+/* UID of the memory block that represents the heap. */
|
||
+static SceUID __psp_heap_blockid;
|
||
+
|
||
+void * _sbrk(ptrdiff_t incr)
|
||
+{
|
||
+ static void * heap_bottom = NULL;
|
||
+ static void * heap_top = NULL;
|
||
+ static void * heap_ptr = NULL;
|
||
+
|
||
+ /* Has our heap been initialized? */
|
||
+ if (heap_bottom == NULL) {
|
||
+ /* No, initialize the heap. */
|
||
+ SceSize heap_size = (SceSize) -1;
|
||
+
|
||
+ if (&sce_newlib_heap_kb_size != NULL) {
|
||
+ heap_size = sce_newlib_heap_kb_size;
|
||
+ } else if(&__pspsdk_is_prx != NULL) {
|
||
+ heap_size = DEFAULT_PRX_HEAP_SIZE_KB;
|
||
+ }
|
||
+
|
||
+ heap_size *= 1024;
|
||
+ if ((int)heap_size < 0) {
|
||
+ heap_size += sceKernelMaxFreeMemSize();
|
||
+ }
|
||
+
|
||
+ if (heap_size != 0) {
|
||
+ __psp_heap_blockid = sceKernelAllocPartitionMemory(2, "block", PSP_SMEM_Low, heap_size, NULL);
|
||
+ if (__psp_heap_blockid > 0) {
|
||
+ heap_bottom = sceKernelGetBlockHeadAddr(__psp_heap_blockid);
|
||
+ heap_ptr = heap_bottom;
|
||
+ heap_top = (unsigned char *) heap_bottom + heap_size;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+
|
||
+ void * heap_addr = (void *) -1;
|
||
+ void * next_heap_ptr = (void *) ((ptrdiff_t) heap_ptr + incr);
|
||
+ if ((heap_bottom != NULL) && (next_heap_ptr >= heap_bottom) && (next_heap_ptr < heap_top)) {
|
||
+ heap_addr = heap_ptr;
|
||
+ heap_ptr = next_heap_ptr;
|
||
+ }
|
||
+
|
||
+ return heap_addr;
|
||
+}
|
||
+
|
||
+/* Free the heap. */
|
||
+int __psp_free_heap(void)
|
||
+{
|
||
+ if (__psp_heap_blockid > 0) {
|
||
+ return sceKernelFreePartitionMemory(__psp_heap_blockid);
|
||
+ }
|
||
+
|
||
+ return __psp_heap_blockid;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* Other POSIX routines that must be defined. */
|
||
+#ifdef F__fstat
|
||
+int _fstat(int fd, struct stat *sbuf)
|
||
+{
|
||
+ int ret;
|
||
+ SceOff oldpos;
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_TTY:
|
||
+ memset(sbuf, '\0', sizeof(struct stat));
|
||
+ sbuf->st_mode = S_IFCHR;
|
||
+ return 0;
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ if (__psp_descriptormap[fd]->filename != NULL) {
|
||
+ ret = stat(__psp_descriptormap[fd]->filename, sbuf);
|
||
+
|
||
+ /* Find true size of the open file */
|
||
+ oldpos = sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, 0, SEEK_CUR);
|
||
+ if (oldpos != (off_t) -1) {
|
||
+ sbuf->st_size = (off_t) sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, 0, SEEK_END);
|
||
+ sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, oldpos, SEEK_SET);
|
||
+ }
|
||
+ return ret;
|
||
+ }
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_isatty
|
||
+int isatty(int fd)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return 0;
|
||
+ }
|
||
+
|
||
+ if (__psp_descriptormap[fd]->type == __PSP_DESCRIPTOR_TYPE_TTY) {
|
||
+ return 1;
|
||
+ }
|
||
+ else {
|
||
+ return 0;
|
||
+ }
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__isatty
|
||
+int _isatty(int fd)
|
||
+{
|
||
+ return isatty(fd);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__stat
|
||
+static time_t psp_to_epoch_time(ScePspDateTime psp_time)
|
||
+{
|
||
+ struct tm conv_time;
|
||
+ conv_time.tm_year = psp_time.year;
|
||
+ conv_time.tm_mon = psp_time.month;
|
||
+ conv_time.tm_mday = psp_time.day;
|
||
+ conv_time.tm_hour = psp_time.hour;
|
||
+ conv_time.tm_min = psp_time.minute;
|
||
+ conv_time.tm_sec = psp_time.second;
|
||
+ conv_time.tm_isdst = -1;
|
||
+ return mktime(&conv_time);
|
||
+}
|
||
+
|
||
+int _stat(const char *filename, struct stat *buf)
|
||
+{
|
||
+ SceIoStat psp_stat;
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+ int ret;
|
||
+
|
||
+ if(__psp_path_absolute(filename, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ memset(buf, '\0', sizeof(struct stat));
|
||
+ ret = sceIoGetstat(dest, &psp_stat);
|
||
+ if (ret < 0) {
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+
|
||
+ buf->st_ctime = psp_to_epoch_time(psp_stat.st_ctime);
|
||
+ buf->st_atime = psp_to_epoch_time(psp_stat.st_atime);
|
||
+ buf->st_mtime = psp_to_epoch_time(psp_stat.st_mtime);
|
||
+
|
||
+ buf->st_mode = (psp_stat.st_mode & 0xfff) |
|
||
+ ((FIO_S_ISLNK(psp_stat.st_mode))?(S_IFLNK):(0)) |
|
||
+ ((FIO_S_ISREG(psp_stat.st_mode))?(S_IFREG):(0)) |
|
||
+ ((FIO_S_ISDIR(psp_stat.st_mode))?(S_IFDIR):(0));
|
||
+ buf->st_size = psp_stat.st_size;
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* from stat.h in ps2sdk, this function may be correct */
|
||
+#define FIO_CST_SIZE 0x0004
|
||
+
|
||
+#ifdef F_truncate
|
||
+int truncate(const char *filename, off_t length)
|
||
+{
|
||
+ SceIoStat psp_stat;
|
||
+ char dest[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(filename, dest, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ psp_stat.st_size = length;
|
||
+ if(length < 0)
|
||
+ {
|
||
+ errno = EINVAL;
|
||
+ return -1;
|
||
+ }
|
||
+ return __psp_set_errno(sceIoChstat(dest, &psp_stat, FIO_CST_SIZE));
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* Unsupported newlib system calls. */
|
||
+#ifdef F__fork
|
||
+pid_t fork(void)
|
||
+{
|
||
+ errno = ENOSYS;
|
||
+ return (pid_t) -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__getpid
|
||
+pid_t _getpid(void)
|
||
+{
|
||
+ errno = ENOSYS;
|
||
+ return (pid_t) -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__kill
|
||
+int _kill(int unused, int unused2)
|
||
+{
|
||
+ errno = ENOSYS;
|
||
+ return -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__wait
|
||
+pid_t _wait(int *unused)
|
||
+{
|
||
+ errno = ENOSYS;
|
||
+ return (pid_t) -1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_access
|
||
+int access(const char *fn, int flags)
|
||
+{
|
||
+ struct stat s;
|
||
+ if (stat(fn, &s))
|
||
+ return -1;
|
||
+ if (s.st_mode & S_IFDIR)
|
||
+ return 0;
|
||
+ if (flags & W_OK)
|
||
+ {
|
||
+ if (s.st_mode & S_IWRITE)
|
||
+ return 0;
|
||
+ errno = EACCES;
|
||
+ return -1;
|
||
+ }
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__fcntl
|
||
+int _fcntl(int fd, int cmd, ...)
|
||
+{
|
||
+ if (!__PSP_IS_FD_VALID(fd)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ switch (cmd)
|
||
+ {
|
||
+ case F_DUPFD:
|
||
+ {
|
||
+ return __psp_fdman_get_dup_descriptor(fd);
|
||
+ break;
|
||
+ }
|
||
+ case F_GETFL:
|
||
+ {
|
||
+ return __psp_descriptormap[fd]->flags;
|
||
+ break;
|
||
+ }
|
||
+ case F_SETFL:
|
||
+ {
|
||
+ int newfl;
|
||
+ va_list args;
|
||
+
|
||
+ va_start (args, cmd); /* Initialize the argument list. */
|
||
+ newfl = va_arg(args, int);
|
||
+ va_end (args); /* Clean up. */
|
||
+
|
||
+ __psp_descriptormap[fd]->flags = newfl;
|
||
+
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ if (newfl & O_NONBLOCK)
|
||
+ {
|
||
+ int one = 1;
|
||
+ return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&one, sizeof(one));
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ int zero = 0;
|
||
+ return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&zero, sizeof(zero));
|
||
+ }
|
||
+ break;
|
||
+ default:
|
||
+ break;
|
||
+ }
|
||
+ return 0;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+}
|
||
+#endif /* F__fcntl */
|
||
+
|
||
+#ifdef F_tzset
|
||
+void tzset(void)
|
||
+{
|
||
+ static int initialized = 0;
|
||
+
|
||
+ if (!initialized)
|
||
+ {
|
||
+ initialized = 1;
|
||
+
|
||
+ /* Don't init if TZ has already been set once, this probably means the user
|
||
+ wanted to override what we would set below. */
|
||
+ if (getenv("TZ") == NULL)
|
||
+ {
|
||
+ /* Initialize timezone from PSP configuration */
|
||
+ int tzOffset = 0;
|
||
+ sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_TIMEZONE, &tzOffset);
|
||
+ int tzOffsetAbs = tzOffset < 0 ? -tzOffset : tzOffset;
|
||
+ int hours = tzOffsetAbs / 60;
|
||
+ int minutes = tzOffsetAbs - hours * 60;
|
||
+ int pspDaylight = 0;
|
||
+ sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_DAYLIGHTSAVINGS, &pspDaylight);
|
||
+ static char tz[18];
|
||
+ sprintf(tz, "GMT%s%02i:%02i%s", tzOffset < 0 ? "+" : "-", hours, minutes, pspDaylight ? "daylight" : "");
|
||
+ setenv("TZ", tz, 1);
|
||
+ }
|
||
+ }
|
||
+
|
||
+ _tzset_r(_REENT);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_mlock
|
||
+static unsigned int lock_count = 0;
|
||
+static unsigned int intr_flags = 0;
|
||
+
|
||
+void __malloc_lock(struct _reent *ptr)
|
||
+{
|
||
+ unsigned int flags = pspDisableInterrupts();
|
||
+
|
||
+ if (lock_count == 0) {
|
||
+ intr_flags = flags;
|
||
+ }
|
||
+
|
||
+ lock_count++;
|
||
+}
|
||
+
|
||
+void __malloc_unlock(struct _reent *ptr)
|
||
+{
|
||
+ if (--lock_count == 0) {
|
||
+ pspEnableInterrupts(intr_flags);
|
||
+ }
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* Exit. */
|
||
+#if defined(F__exit) || defined(F_glue__exit)
|
||
+extern int sce_newlib_nocreate_thread_in_start __attribute__((weak));
|
||
+
|
||
+extern int __psp_free_heap(void);
|
||
+
|
||
+void _exit(int status)
|
||
+{
|
||
+ if (&sce_newlib_nocreate_thread_in_start == NULL) {
|
||
+ /* Free the heap created by _sbrk(). */
|
||
+ __psp_free_heap();
|
||
+
|
||
+ sceKernelSelfStopUnloadModule(1, 0, NULL);
|
||
+ } else {
|
||
+ if (status == 0) {
|
||
+ /* Free the heap created by _sbrk(). */
|
||
+ __psp_free_heap();
|
||
+ }
|
||
+
|
||
+ sceKernelExitThread(status);
|
||
+ }
|
||
+
|
||
+ while (1) ;
|
||
+}
|
||
+
|
||
+/* Note: This function is being linked into _exit.o.
|
||
+
|
||
+ Because __psp_libc_init is a weak import in crt0.c, the linker
|
||
+ chooses to ignore an object file in libc.a that contains just this
|
||
+ function, since it's not necessary for successful compilation.
|
||
+
|
||
+ By putting it instead in _exit.o, which is already used by crt0.c,
|
||
+ the linker sees __psp_libc_init and resolves the symbol properly.
|
||
+*/
|
||
+void __psp_libc_init(int argc, char *argv[])
|
||
+{
|
||
+ (void) argc;
|
||
+
|
||
+ /* Initialize cwd from this program's path */
|
||
+ __psp_init_cwd(argv[0]);
|
||
+
|
||
+ /* Initialize filedescriptor management */
|
||
+ __psp_fdman_init();
|
||
+}
|
||
+
|
||
+#endif /* F__exit */
|
||
+
|
||
+#ifdef F__rename
|
||
+int _rename(const char *old, const char *new)
|
||
+{
|
||
+ char oldname[MAXPATHLEN + 1];
|
||
+ char newname[MAXPATHLEN + 1];
|
||
+
|
||
+ if(__psp_path_absolute(old, oldname, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ if(__psp_path_absolute(new, newname, MAXPATHLEN) < 0) {
|
||
+ errno = ENAMETOOLONG;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return __psp_set_errno(sceIoRename(oldname, newname));
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_nanosleep
|
||
+/* note: we don't use rem as we have no signals */
|
||
+int nanosleep(const struct timespec *req, struct timespec *rem)
|
||
+{
|
||
+ if( req == NULL )
|
||
+ return EFAULT;
|
||
+
|
||
+ if( rem != NULL ) {
|
||
+ rem->tv_sec = 0;
|
||
+ rem->tv_nsec = 0;
|
||
+ }
|
||
+
|
||
+ sceKernelDelayThreadCB( 1000000 * req->tv_sec + (req->tv_nsec / 1000) );
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/netdb.c newlib-1.20.0-psp/newlib/libc/sys/psp/netdb.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/netdb.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/netdb.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,103 @@
|
||
+/* Simple gethostbyname and gethostbyaddr replacements using the resolver lib */
|
||
+#include <stdio.h>
|
||
+#include <netdb.h>
|
||
+#include <netinet/in.h>
|
||
+#include <arpa/inet.h>
|
||
+#include <sys/socket.h>
|
||
+#include <pspkerneltypes.h>
|
||
+#include <pspnet_resolver.h>
|
||
+
|
||
+#define MAX_NAME 512
|
||
+
|
||
+#ifdef F_h_errno
|
||
+int h_errno = NETDB_SUCCESS;
|
||
+#endif
|
||
+
|
||
+#ifdef F_gethostbyaddr
|
||
+struct hostent *gethostbyaddr(const void *addr, int len, int type)
|
||
+{
|
||
+ static struct hostent ent;
|
||
+ static char * aliases[1] = { NULL };
|
||
+ char buf[1024];
|
||
+ static char sname[MAX_NAME] = "";
|
||
+ static struct in_addr saddr = { 0 };
|
||
+ static char *addrlist[2] = { (char *) &saddr, NULL };
|
||
+ int rid;
|
||
+ int err;
|
||
+
|
||
+ if((len != sizeof(struct in_addr)) || (type != AF_INET) || (addr == NULL))
|
||
+ {
|
||
+ h_errno = HOST_NOT_FOUND;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ memcpy(&saddr, addr, len);
|
||
+
|
||
+ if(sceNetResolverCreate(&rid, buf, sizeof(buf)) < 0)
|
||
+ {
|
||
+ h_errno = NO_RECOVERY;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ err = sceNetResolverStartAtoN(rid, &saddr, sname, sizeof(sname), 2, 3);
|
||
+ sceNetResolverStop(rid);
|
||
+ sceNetResolverDelete(rid);
|
||
+ if(err < 0)
|
||
+ {
|
||
+ h_errno = HOST_NOT_FOUND;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ ent.h_name = sname;
|
||
+ ent.h_aliases = aliases;
|
||
+ ent.h_addrtype = AF_INET;
|
||
+ ent.h_length = sizeof(struct in_addr);
|
||
+ ent.h_addr_list = addrlist;
|
||
+ ent.h_addr = (char *) &saddr;
|
||
+
|
||
+ return &ent;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_gethostbyname
|
||
+struct hostent *gethostbyname(const char *name)
|
||
+{
|
||
+ static struct hostent ent;
|
||
+ char buf[1024];
|
||
+ static char sname[MAX_NAME] = "";
|
||
+ static struct in_addr saddr = { 0 };
|
||
+ static char *addrlist[2] = { (char *) &saddr, NULL };
|
||
+ int rid;
|
||
+
|
||
+ if(sceNetInetInetAton(name, &saddr) == 0)
|
||
+ {
|
||
+ int err;
|
||
+
|
||
+ if(sceNetResolverCreate(&rid, buf, sizeof(buf)) < 0)
|
||
+ {
|
||
+ h_errno = NO_RECOVERY;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ err = sceNetResolverStartNtoA(rid, name, &saddr, 2, 3);
|
||
+ sceNetResolverDelete(rid);
|
||
+ if(err < 0)
|
||
+ {
|
||
+ h_errno = HOST_NOT_FOUND;
|
||
+ return NULL;
|
||
+ }
|
||
+
|
||
+ }
|
||
+
|
||
+ snprintf(sname, MAX_NAME, "%s", name);
|
||
+ ent.h_name = sname;
|
||
+ ent.h_aliases = 0;
|
||
+ ent.h_addrtype = AF_INET;
|
||
+ ent.h_length = sizeof(struct in_addr);
|
||
+ ent.h_addr_list = addrlist;
|
||
+ ent.h_addr = (char *) &saddr;
|
||
+
|
||
+ return &ent;
|
||
+}
|
||
+
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/netinet/in.h newlib-1.20.0-psp/newlib/libc/sys/psp/netinet/in.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/netinet/in.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/netinet/in.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,271 @@
|
||
+/* $NetBSD: in.h,v 1.71 2005/08/05 09:21:25 elad Exp $ */
|
||
+
|
||
+/*
|
||
+ * Copyright (c) 1982, 1986, 1990, 1993
|
||
+ * The Regents of the University of California. All rights reserved.
|
||
+ *
|
||
+ * Redistribution and use in source and binary forms, with or without
|
||
+ * modification, are permitted provided that the following conditions
|
||
+ * are met:
|
||
+ * 1. Redistributions of source code must retain the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer.
|
||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer in the
|
||
+ * documentation and/or other materials provided with the distribution.
|
||
+ * 3. Neither the name of the University nor the names of its contributors
|
||
+ * may be used to endorse or promote products derived from this software
|
||
+ * without specific prior written permission.
|
||
+ *
|
||
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+ * SUCH DAMAGE.
|
||
+ *
|
||
+ * @(#)in.h 8.3 (Berkeley) 1/3/94
|
||
+ */
|
||
+
|
||
+/*
|
||
+ * Constants and structures defined by the internet system,
|
||
+ * Per RFC 790, September 1981, and numerous additions.
|
||
+ */
|
||
+
|
||
+#ifndef _NETINET_IN_H_
|
||
+#define _NETINET_IN_H_
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#include <sys/socket.h>
|
||
+
|
||
+typedef uint32_t in_addr_t;
|
||
+typedef uint16_t in_port_t;
|
||
+
|
||
+/*
|
||
+ * Protocols
|
||
+ */
|
||
+#define IPPROTO_IP 0 /* dummy for IP */
|
||
+#define IPPROTO_HOPOPTS 0 /* IP6 hop-by-hop options */
|
||
+#define IPPROTO_ICMP 1 /* control message protocol */
|
||
+#define IPPROTO_IGMP 2 /* group mgmt protocol */
|
||
+#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
|
||
+#define IPPROTO_IPV4 4 /* IP header */
|
||
+#define IPPROTO_IPIP 4 /* IP inside IP */
|
||
+#define IPPROTO_TCP 6 /* tcp */
|
||
+#define IPPROTO_EGP 8 /* exterior gateway protocol */
|
||
+#define IPPROTO_PUP 12 /* pup */
|
||
+#define IPPROTO_UDP 17 /* user datagram protocol */
|
||
+#define IPPROTO_IDP 22 /* xns idp */
|
||
+#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */
|
||
+#define IPPROTO_IPV6 41 /* IP6 header */
|
||
+#define IPPROTO_ROUTING 43 /* IP6 routing header */
|
||
+#define IPPROTO_FRAGMENT 44 /* IP6 fragmentation header */
|
||
+#define IPPROTO_RSVP 46 /* resource reservation */
|
||
+#define IPPROTO_GRE 47 /* GRE encaps RFC 1701 */
|
||
+#define IPPROTO_ESP 50 /* encap. security payload */
|
||
+#define IPPROTO_AH 51 /* authentication header */
|
||
+#define IPPROTO_MOBILE 55 /* IP Mobility RFC 2004 */
|
||
+#define IPPROTO_IPV6_ICMP 58 /* IPv6 ICMP */
|
||
+#define IPPROTO_ICMPV6 58 /* ICMP6 */
|
||
+#define IPPROTO_NONE 59 /* IP6 no next header */
|
||
+#define IPPROTO_DSTOPTS 60 /* IP6 destination option */
|
||
+#define IPPROTO_EON 80 /* ISO cnlp */
|
||
+#define IPPROTO_ETHERIP 97 /* Ethernet-in-IP */
|
||
+#define IPPROTO_ENCAP 98 /* encapsulation header */
|
||
+#define IPPROTO_PIM 103 /* Protocol indep. multicast */
|
||
+#define IPPROTO_IPCOMP 108 /* IP Payload Comp. Protocol */
|
||
+#define IPPROTO_VRRP 112 /* VRRP RFC 2338 */
|
||
+
|
||
+#define IPPROTO_RAW 255 /* raw IP packet */
|
||
+#define IPPROTO_MAX 256
|
||
+
|
||
+/* last return value of *_input(), meaning "all job for this pkt is done". */
|
||
+#define IPPROTO_DONE 257
|
||
+
|
||
+/* sysctl placeholder for (FAST_)IPSEC */
|
||
+#define CTL_IPPROTO_IPSEC 258
|
||
+
|
||
+
|
||
+/*
|
||
+ * Local port number conventions:
|
||
+ *
|
||
+ * Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
|
||
+ * unless a kernel is compiled with IPNOPRIVPORTS defined.
|
||
+ *
|
||
+ * When a user does a bind(2) or connect(2) with a port number of zero,
|
||
+ * a non-conflicting local port address is chosen.
|
||
+ *
|
||
+ * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
|
||
+ * that is settable by sysctl(3); net.inet.ip.anonportmin and
|
||
+ * net.inet.ip.anonportmax respectively.
|
||
+ *
|
||
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
|
||
+ * default assignment range.
|
||
+ *
|
||
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
|
||
+ *
|
||
+ * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
|
||
+ * and exists only for FreeBSD compatibility purposes.
|
||
+ *
|
||
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
|
||
+ * that is (by convention) restricted to privileged processes.
|
||
+ * This convention is based on "vouchsafe" principles only.
|
||
+ * It is only secure if you trust the remote host to restrict these ports.
|
||
+ * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
|
||
+ */
|
||
+
|
||
+#define IPPORT_RESERVED 1024
|
||
+#define IPPORT_ANONMIN 49152
|
||
+#define IPPORT_ANONMAX 65535
|
||
+#define IPPORT_RESERVEDMIN 600
|
||
+#define IPPORT_RESERVEDMAX (IPPORT_RESERVED-1)
|
||
+
|
||
+/*
|
||
+ * Internet address (a structure for historical reasons)
|
||
+ */
|
||
+struct in_addr {
|
||
+ in_addr_t s_addr;
|
||
+} __attribute__((__packed__));
|
||
+
|
||
+#define __IPADDR(x) ((uint32_t)(x))
|
||
+
|
||
+#define IN_CLASSA(i) (((uint32_t)(i) & __IPADDR(0x80000000)) == \
|
||
+ __IPADDR(0x00000000))
|
||
+#define IN_CLASSA_NET __IPADDR(0xff000000)
|
||
+#define IN_CLASSA_NSHIFT 24
|
||
+#define IN_CLASSA_HOST __IPADDR(0x00ffffff)
|
||
+#define IN_CLASSA_MAX 128
|
||
+
|
||
+#define IN_CLASSB(i) (((uint32_t)(i) & __IPADDR(0xc0000000)) == \
|
||
+ __IPADDR(0x80000000))
|
||
+#define IN_CLASSB_NET __IPADDR(0xffff0000)
|
||
+#define IN_CLASSB_NSHIFT 16
|
||
+#define IN_CLASSB_HOST __IPADDR(0x0000ffff)
|
||
+#define IN_CLASSB_MAX 65536
|
||
+
|
||
+#define IN_CLASSC(i) (((uint32_t)(i) & __IPADDR(0xe0000000)) == \
|
||
+ __IPADDR(0xc0000000))
|
||
+#define IN_CLASSC_NET __IPADDR(0xffffff00)
|
||
+#define IN_CLASSC_NSHIFT 8
|
||
+#define IN_CLASSC_HOST __IPADDR(0x000000ff)
|
||
+
|
||
+#define IN_CLASSD(i) (((uint32_t)(i) & __IPADDR(0xf0000000)) == \
|
||
+ __IPADDR(0xe0000000))
|
||
+/* These ones aren't really net and host fields, but routing needn't know. */
|
||
+#define IN_CLASSD_NET __IPADDR(0xf0000000)
|
||
+#define IN_CLASSD_NSHIFT 28
|
||
+#define IN_CLASSD_HOST __IPADDR(0x0fffffff)
|
||
+#define IN_MULTICAST(i) IN_CLASSD(i)
|
||
+
|
||
+#define IN_EXPERIMENTAL(i) (((uint32_t)(i) & __IPADDR(0xf0000000)) == \
|
||
+ __IPADDR(0xf0000000))
|
||
+#define IN_BADCLASS(i) (((uint32_t)(i) & __IPADDR(0xf0000000)) == \
|
||
+ __IPADDR(0xf0000000))
|
||
+
|
||
+#define IN_LOCAL_GROUP(i) (((uint32_t)(i) & __IPADDR(0xffffff00)) == \
|
||
+ __IPADDR(0xe0000000))
|
||
+
|
||
+#define INADDR_ANY __IPADDR(0x00000000)
|
||
+#define INADDR_LOOPBACK __IPADDR(0x7f000001)
|
||
+#define INADDR_BROADCAST __IPADDR(0xffffffff) /* must be masked */
|
||
+
|
||
+#define INADDR_UNSPEC_GROUP __IPADDR(0xe0000000) /* 224.0.0.0 */
|
||
+#define INADDR_ALLHOSTS_GROUP __IPADDR(0xe0000001) /* 224.0.0.1 */
|
||
+#define INADDR_ALLRTRS_GROUP __IPADDR(0xe0000002) /* 224.0.0.2 */
|
||
+#define INADDR_MAX_LOCAL_GROUP __IPADDR(0xe00000ff) /* 224.0.0.255 */
|
||
+
|
||
+#define IN_LOOPBACKNET 127 /* official! */
|
||
+
|
||
+/*
|
||
+ * Socket address, internet style.
|
||
+ */
|
||
+struct sockaddr_in {
|
||
+ uint8_t sin_len;
|
||
+ sa_family_t sin_family;
|
||
+ in_port_t sin_port;
|
||
+ struct in_addr sin_addr;
|
||
+ int8_t sin_zero[8];
|
||
+};
|
||
+
|
||
+#define INET_ADDRSTRLEN 16
|
||
+
|
||
+/*
|
||
+ * Structure used to describe IP options.
|
||
+ * Used to store options internally, to pass them to a process,
|
||
+ * or to restore options retrieved earlier.
|
||
+ * The ip_dst is used for the first-hop gateway when using a source route
|
||
+ * (this gets put into the header proper).
|
||
+ */
|
||
+struct ip_opts {
|
||
+ struct in_addr ip_dst; /* first hop, 0 w/o src rt */
|
||
+#if defined(__cplusplus)
|
||
+ int8_t Ip_opts[40]; /* actually variable in size */
|
||
+#else
|
||
+ int8_t ip_opts[40]; /* actually variable in size */
|
||
+#endif
|
||
+};
|
||
+
|
||
+/*
|
||
+ * Options for use with [gs]etsockopt at the IP level.
|
||
+ * First word of comment is data type; bool is stored in int.
|
||
+ */
|
||
+#define IP_OPTIONS 1 /* buf/ip_opts; set/get IP options */
|
||
+#define IP_HDRINCL 2 /* int; header is included with data */
|
||
+#define IP_TOS 3 /* int; IP type of service and preced. */
|
||
+#define IP_TTL 4 /* int; IP time to live */
|
||
+#define IP_RECVOPTS 5 /* bool; receive all IP opts w/dgram */
|
||
+#define IP_RECVRETOPTS 6 /* bool; receive IP opts for response */
|
||
+#define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/dgram */
|
||
+#define IP_RETOPTS 8 /* ip_opts; set/get IP options */
|
||
+#define IP_MULTICAST_IF 9 /* in_addr; set/get IP multicast i/f */
|
||
+#define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */
|
||
+#define IP_MULTICAST_LOOP 11 /* u_char; set/get IP multicast loopback */
|
||
+#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */
|
||
+#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */
|
||
+#define IP_PORTRANGE 19 /* int; range to use for ephemeral port */
|
||
+#define IP_RECVIF 20 /* bool; receive reception if w/dgram */
|
||
+#define IP_ERRORMTU 21 /* int; get MTU of last xmit = EMSGSIZE */
|
||
+#if 1 /*IPSEC*/
|
||
+#define IP_IPSEC_POLICY 22 /* struct; get/set security policy */
|
||
+#endif
|
||
+
|
||
+/*
|
||
+ * Defaults and limits for options
|
||
+ */
|
||
+#define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */
|
||
+#define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */
|
||
+#define IP_MAX_MEMBERSHIPS 20 /* per socket; must fit in one mbuf */
|
||
+
|
||
+/*
|
||
+ * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
|
||
+ */
|
||
+struct ip_mreq {
|
||
+ struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||
+ struct in_addr imr_interface; /* local IP address of interface */
|
||
+};
|
||
+
|
||
+/*
|
||
+ * Argument for IP_PORTRANGE:
|
||
+ * - which range to search when port is unspecified at bind() or connect()
|
||
+ */
|
||
+#define IP_PORTRANGE_DEFAULT 0 /* default range */
|
||
+#define IP_PORTRANGE_HIGH 1 /* same as DEFAULT (FreeBSD compat) */
|
||
+#define IP_PORTRANGE_LOW 2 /* use privileged range */
|
||
+
|
||
+#define ntohs(x) __builtin_allegrex_wsbh(x)
|
||
+#define ntohl(x) __builtin_allegrex_wsbw(x)
|
||
+#define htons(x) __builtin_allegrex_wsbh(x)
|
||
+#define htonl(x) __builtin_allegrex_wsbw(x)
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+
|
||
+#endif /* !_NETINET_IN_H_ */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/netinet/tcp.h newlib-1.20.0-psp/newlib/libc/sys/psp/netinet/tcp.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/netinet/tcp.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/netinet/tcp.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,12 @@
|
||
+#ifndef __NETINET_TCP_H__
|
||
+#define __NETINET_TCP_H__
|
||
+
|
||
+#include <netinet/in.h>
|
||
+
|
||
+#define SOL_TCP IPPROTO_TCP
|
||
+
|
||
+/* Socket options */
|
||
+#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
|
||
+#define TCP_MAXSEG 0x02 /* set maximum segment size */
|
||
+
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/pipe.c newlib-1.20.0-psp/newlib/libc/sys/psp/pipe.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/pipe.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/pipe.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,305 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * pipe.c - Socket wrappers to provide similar functions to normal unix
|
||
+ *
|
||
+ * Copyright (c) 2006 Rafael Cabezas <rafpsp@gmail.com>
|
||
+ *
|
||
+ * - 20070630 Alper Akcan "anhanguera" <distchx@yahoo.com>
|
||
+ * [non]blocking read/write() fix
|
||
+ * illegal size fix for read/write()
|
||
+ *
|
||
+ */
|
||
+#include <stdio.h>
|
||
+#include <errno.h>
|
||
+#include <sys/syslimits.h>
|
||
+#include <sys/fd_set.h>
|
||
+
|
||
+#include <psptypes.h>
|
||
+#include <pspthreadman.h>
|
||
+#include <pspmodulemgr.h>
|
||
+#include <pspkerror.h>
|
||
+#include "fdman.h"
|
||
+
|
||
+/* Pipe functions */
|
||
+/* Returns how many bytes are in the pipe -- waiting to be read */
|
||
+size_t __psp_pipe_peekmsgsize(int fd)
|
||
+{
|
||
+ SceKernelMppInfo info;
|
||
+ info.size = sizeof(info);
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &info) == 0) {
|
||
+ return (info.bufSize - info.freeSize);
|
||
+ }
|
||
+ else {
|
||
+ return -1;
|
||
+ }
|
||
+}
|
||
+
|
||
+int pipe(int fildes[2])
|
||
+{
|
||
+ static int iIndex = 0;
|
||
+ char name[32];
|
||
+ iIndex++;
|
||
+
|
||
+ sprintf(name, "__psp_pipe_%02d", iIndex);
|
||
+
|
||
+ SceUID uid = sceKernelCreateMsgPipe(name, PSP_MEMORY_PARTITION_USER, 0, (void *)PIPE_BUF, NULL);
|
||
+
|
||
+ if (uid >= 0) {
|
||
+ fildes[0] = __psp_fdman_get_new_descriptor();
|
||
+ if (fildes[0] != -1) {
|
||
+ __psp_descriptormap[fildes[0]]->sce_descriptor = uid;
|
||
+ __psp_descriptormap[fildes[0]]->type = __PSP_DESCRIPTOR_TYPE_PIPE;
|
||
+ }
|
||
+ else {
|
||
+ sceKernelDeleteMsgPipe(uid);
|
||
+ errno = EFAULT;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ fildes[1] = __psp_fdman_get_dup_descriptor(fildes[0]);
|
||
+ if (fildes[1] != -1) {
|
||
+ __psp_descriptormap[fildes[1]]->sce_descriptor = uid;
|
||
+ return 0;
|
||
+ }
|
||
+ else {
|
||
+ sceKernelDeleteMsgPipe(uid);
|
||
+ errno = EFAULT;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ }
|
||
+ else {
|
||
+ errno = EFAULT;
|
||
+ return -1;
|
||
+ }
|
||
+}
|
||
+
|
||
+int __psp_pipe_close(int fd)
|
||
+{
|
||
+ int ret = 0;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+
|
||
+ if ( __psp_descriptormap[fd]->ref_count == 1 ) {
|
||
+ /**
|
||
+ * Delete a message pipe
|
||
+ *
|
||
+ * @param uid - The UID of the pipe
|
||
+ *
|
||
+ * @return 0 on success, < 0 on error
|
||
+ */
|
||
+ ret = sceKernelDeleteMsgPipe(__psp_descriptormap[fd]->sce_descriptor);
|
||
+ }
|
||
+
|
||
+ __psp_fdman_release_descriptor(fd);
|
||
+
|
||
+ if(ret < 0) {
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+int __psp_pipe_nonblocking_read(int fd, void *buf, size_t len)
|
||
+{
|
||
+ int ret;
|
||
+ int sceuid;
|
||
+ int size;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ sceuid = __psp_descriptormap[fd]->sce_descriptor;
|
||
+
|
||
+ size = __psp_pipe_peekmsgsize(fd);
|
||
+ if (size > 0) {
|
||
+ if (size < len) {
|
||
+ len = size;
|
||
+ }
|
||
+ }
|
||
+ else if (size == 0) {
|
||
+ errno = EAGAIN;
|
||
+ return -1;
|
||
+ }
|
||
+ else {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ /**
|
||
+ * Receive a message from a pipe
|
||
+ *
|
||
+ * @param uid - The UID of the pipe
|
||
+ * @param message - Pointer to the message
|
||
+ * @param size - Size of the message
|
||
+ * @param unk1 - Unknown
|
||
+ * @param unk2 - Unknown
|
||
+ * @param timeout - Timeout for receive
|
||
+ *
|
||
+ * @return 0 on success, < 0 on error
|
||
+ */
|
||
+ ret = sceKernelTryReceiveMsgPipe(sceuid, buf, len, 0, 0);
|
||
+
|
||
+ if (ret == 0) {/* Success - Data */
|
||
+ return len;
|
||
+ }
|
||
+ else if (ret == SCE_KERNEL_ERROR_MPP_EMPTY) {/* No data */
|
||
+ errno = EAGAIN;
|
||
+ return -1;
|
||
+ }
|
||
+ else {/* Error */
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+}
|
||
+
|
||
+int __psp_pipe_read(int fd, void *buf, size_t len)
|
||
+{
|
||
+ int ret;
|
||
+ int sceuid;
|
||
+ int size;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ sceuid = __psp_descriptormap[fd]->sce_descriptor;
|
||
+
|
||
+#if 0
|
||
+ /* we should block until there is some data (or maybe for enough data),
|
||
+ * peeking the msg size should be only for nonblocking reads
|
||
+ */
|
||
+ size = __psp_pipe_peekmsgsize(fd);
|
||
+ if (size > 0) {
|
||
+ if (size < len) {
|
||
+ len = size;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+#endif
|
||
+ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
|
||
+ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should read at least
|
||
+ * PIPE_BUF bytes, and return the number of bytes read.
|
||
+ */
|
||
+ if (len > PIPE_BUF) {
|
||
+ len = PIPE_BUF;
|
||
+ }
|
||
+
|
||
+ /**
|
||
+ * Receive a message from a pipe
|
||
+ *
|
||
+ * @param uid - The UID of the pipe
|
||
+ * @param message - Pointer to the message
|
||
+ * @param size - Size of the message
|
||
+ * @param unk1 - Unknown
|
||
+ * @param unk2 - Unknown
|
||
+ * @param timeout - Timeout for receive
|
||
+ *
|
||
+ * @return 0 on success, < 0 on error
|
||
+ */
|
||
+ ret = sceKernelReceiveMsgPipe(sceuid, buf, len, 0, NULL, NULL);
|
||
+
|
||
+ if (ret == 0) {/* Success - Data */
|
||
+ return len;
|
||
+ }
|
||
+ else {/* Error */
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+}
|
||
+
|
||
+int __psp_pipe_write(int fd, const void *buf, size_t len)
|
||
+{
|
||
+ int ret;
|
||
+ int sceuid;
|
||
+ char *cbuf;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ sceuid = __psp_descriptormap[fd]->sce_descriptor;
|
||
+
|
||
+ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
|
||
+ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should write at least
|
||
+ * PIPE_BUF bytes, and return the number of bytes written.
|
||
+ */
|
||
+ if (len > PIPE_BUF) {
|
||
+ len = PIPE_BUF;
|
||
+ }
|
||
+
|
||
+ /**
|
||
+ * Send a message to a pipe
|
||
+ *
|
||
+ * @param uid - The UID of the pipe
|
||
+ * @param message - Pointer to the message
|
||
+ * @param size - Size of the message
|
||
+ * @param unk1 - Unknown
|
||
+ * @param unk2 - Unknown
|
||
+ * @param timeout - Timeout for send
|
||
+ *
|
||
+ * @return 0 on success, < 0 on error
|
||
+ */
|
||
+ cbuf = (char *)buf;
|
||
+ ret = sceKernelSendMsgPipe(sceuid, cbuf, len, 0, NULL, NULL);
|
||
+ if (ret == 0) {/* Success - Data */
|
||
+ return len;
|
||
+ }
|
||
+ else {/* Error */
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+}
|
||
+
|
||
+int __psp_pipe_nonblocking_write(int fd, const void *buf, size_t len)
|
||
+{
|
||
+ int ret;
|
||
+ int sceuid;
|
||
+ char *cbuf;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ sceuid = __psp_descriptormap[fd]->sce_descriptor;
|
||
+
|
||
+ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
|
||
+ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should write at least
|
||
+ * PIPE_BUF bytes, and return the number of bytes written.
|
||
+ */
|
||
+ if (len > PIPE_BUF) {
|
||
+ len = PIPE_BUF;
|
||
+ }
|
||
+
|
||
+ cbuf = (char *)buf;
|
||
+ ret = sceKernelTrySendMsgPipe(sceuid, cbuf, len, 0, 0);
|
||
+
|
||
+ if (ret == 0) {/* Success - Data */
|
||
+ return len;
|
||
+ }
|
||
+ else if (ret == SCE_KERNEL_ERROR_MPP_FULL) {
|
||
+ errno = EAGAIN;
|
||
+ return -1;
|
||
+ }
|
||
+ else {/* Error */
|
||
+ return __psp_set_errno(ret);
|
||
+ }
|
||
+}
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/pspcwd.c newlib-1.20.0-psp/newlib/libc/sys/psp/pspcwd.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/pspcwd.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/pspcwd.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,166 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * pspcwd.c - Current working directory emulation helper functions
|
||
+ *
|
||
+ * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
|
||
+ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
|
||
+ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
|
||
+ * Copyright (c) 2005 Jim Paris <jim@jtan.com>
|
||
+ *
|
||
+ */
|
||
+#include <string.h>
|
||
+#include <sys/types.h>
|
||
+#include <sys/unistd.h>
|
||
+
|
||
+#include <psptypes.h>
|
||
+#include <pspiofilemgr.h>
|
||
+
|
||
+char __psp_cwd[MAXPATHLEN + 1] = { 0 };
|
||
+
|
||
+/* Set the current working directory (CWD) to the path where the module was launched. */
|
||
+void __psp_init_cwd(char *argv_0)
|
||
+{
|
||
+ if (argv_0 != NULL) {
|
||
+ char base_path[MAXPATHLEN + 1];
|
||
+ char *end;
|
||
+
|
||
+ strncpy(base_path, argv_0, sizeof(base_path) - 1);
|
||
+ base_path[sizeof(base_path) - 1] = '\0';
|
||
+ end = strrchr(base_path, '/');
|
||
+ if (end != NULL) {
|
||
+ *(end + 1) = '\0';
|
||
+ chdir(base_path);
|
||
+ }
|
||
+ }
|
||
+}
|
||
+
|
||
+/* Return the number of bytes taken up by the "drive:" prefix,
|
||
+ or -1 if it's not found */
|
||
+int __psp_get_drive(const char *d)
|
||
+{
|
||
+ int i;
|
||
+ for(i=0; d[i]; i++) {
|
||
+ if(! ((d[i] >= 'a' && d[i] <= 'z') ||
|
||
+ (d[i] >= '0' && d[i] <= '9') ))
|
||
+ break;
|
||
+ }
|
||
+ if(d[i] == ':') return i+1;
|
||
+ return -1;
|
||
+}
|
||
+
|
||
+/* Like strcpy, but returns 0 if the string doesn't fit */
|
||
+int __psp_safe_strcpy(char *out, const char *in, int maxlen)
|
||
+{
|
||
+ for( ; maxlen > 0 && *in ; maxlen-- )
|
||
+ *(out++) = *(in++);
|
||
+ if(maxlen < 1) return 0;
|
||
+ *out = 0;
|
||
+ return 1;
|
||
+}
|
||
+
|
||
+/* Like strcat, but returns 0 if the string doesn't fit */
|
||
+int __psp_safe_strcat(char *out, const char *in, int maxlen)
|
||
+{
|
||
+ for( ; *out ; out++,maxlen-- )
|
||
+ continue;
|
||
+ return __psp_safe_strcpy(out, in, maxlen);
|
||
+}
|
||
+
|
||
+/* Normalize a pathname (without leading "drive:") by removing
|
||
+ . and .. components, duplicated /, etc. */
|
||
+int __psp_path_normalize(char *out, int len)
|
||
+{
|
||
+ int i, j;
|
||
+ int first, next;
|
||
+
|
||
+ /* First append "/" to make the rest easier */
|
||
+ if(!__psp_safe_strcat(out,"/",len)) return -10;
|
||
+
|
||
+ /* Convert "//" to "/" */
|
||
+ for(i=0; out[i+1]; i++) {
|
||
+ if(out[i]=='/' && out[i+1]=='/') {
|
||
+ for(j=i+1; out[j]; j++)
|
||
+ out[j] = out[j+1];
|
||
+ i--;
|
||
+ }
|
||
+ }
|
||
+
|
||
+ /* Convert "/./" to "/" */
|
||
+ for(i=0; out[i] && out[i+1] && out[i+2]; i++) {
|
||
+ if(out[i]=='/' && out[i+1]=='.' && out[i+2]=='/') {
|
||
+ for(j=i+1; out[j]; j++)
|
||
+ out[j] = out[j+2];
|
||
+ i--;
|
||
+ }
|
||
+ }
|
||
+
|
||
+ /* Convert "/asdf/../" to "/" until we can't anymore. Also
|
||
+ * convert leading "/../" to "/" */
|
||
+ first = next = 0;
|
||
+ while(1) {
|
||
+ /* If a "../" follows, remove it and the parent */
|
||
+ if(out[next+1] && out[next+1]=='.' &&
|
||
+ out[next+2] && out[next+2]=='.' &&
|
||
+ out[next+3] && out[next+3]=='/') {
|
||
+ for(j=0; out[first+j+1]; j++)
|
||
+ out[first+j+1] = out[next+j+4];
|
||
+ first = next = 0;
|
||
+ continue;
|
||
+ }
|
||
+
|
||
+ /* Find next slash */
|
||
+ first = next;
|
||
+ for(next=first+1; out[next] && out[next] != '/'; next++)
|
||
+ continue;
|
||
+ if(!out[next]) break;
|
||
+ }
|
||
+
|
||
+ /* Remove trailing "/" */
|
||
+ for(i=1; out[i]; i++)
|
||
+ continue;
|
||
+ if(i >= 1 && out[i-1] == '/')
|
||
+ out[i-1] = 0;
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+/* Convert relative path to absolute path. */
|
||
+int __psp_path_absolute(const char *in, char *out, int len)
|
||
+{
|
||
+ int dr;
|
||
+
|
||
+ /* See what the relative URL starts with */
|
||
+ dr = __psp_get_drive(in);
|
||
+ if(dr > 0 && in[dr] == '/') {
|
||
+ /* It starts with "drive:/", so it's already absolute */
|
||
+ if(!__psp_safe_strcpy(out, in, len))
|
||
+ return -1;
|
||
+ } else if(in[0] == '/') {
|
||
+ /* It's absolute, but missing the drive, so use cwd's drive */
|
||
+ if(strlen(__psp_cwd) >= len)
|
||
+ return -2;
|
||
+ strcpy(out, __psp_cwd);
|
||
+ dr = __psp_get_drive(out);
|
||
+ out[dr] = 0;
|
||
+ if(!__psp_safe_strcat(out, in, len))
|
||
+ return -3;
|
||
+ } else {
|
||
+ /* It's not absolute, so append it to the current cwd */
|
||
+ if(strlen(__psp_cwd) >= len)
|
||
+ return -4;
|
||
+ strcpy(out, __psp_cwd);
|
||
+ if(!__psp_safe_strcat(out, "/", len))
|
||
+ return -6;
|
||
+ if(!__psp_safe_strcat(out, in, len))
|
||
+ return -7;
|
||
+ }
|
||
+
|
||
+ /* Now normalize the pathname portion */
|
||
+ dr = __psp_get_drive(out);
|
||
+ if(dr < 0) dr = 0;
|
||
+ return __psp_path_normalize(out + dr, len - dr);
|
||
+}
|
||
+
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/select.c newlib-1.20.0-psp/newlib/libc/sys/psp/select.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/select.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/select.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,199 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * select.c - Socket wrappers to provide similar functions to normal unix
|
||
+ *
|
||
+ * Copyright (c) 2006 Rafael Cabezas <rafpsp@gmail.com>
|
||
+ *
|
||
+ * - 20070701 Alper Akcan "anhanguera" <distchx@yahoo.com>
|
||
+ * select EBADF fix
|
||
+ *
|
||
+ */
|
||
+#include <fcntl.h>
|
||
+#include <errno.h>
|
||
+#include <sys/select.h>
|
||
+#include <psptypes.h>
|
||
+#include <pspthreadman.h>
|
||
+
|
||
+#include "fdman.h"
|
||
+
|
||
+#define SELECT_POLLING_DELAY_IN_us 100
|
||
+
|
||
+static int __psp_poll_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds);
|
||
+
|
||
+int select(int n, fd_set *readfds, fd_set *writefds,
|
||
+ fd_set *exceptfds, struct timeval *timeout)
|
||
+{
|
||
+ int count;
|
||
+ clock_t start_time, time;
|
||
+
|
||
+ start_time = clock();
|
||
+
|
||
+ count = 0;
|
||
+
|
||
+ if (timeout) {
|
||
+ time = (timeout->tv_sec * CLOCKS_PER_SEC) + (timeout->tv_usec * (1*1000*1000/CLOCKS_PER_SEC));
|
||
+ }
|
||
+ else {
|
||
+ time = 0;
|
||
+ }
|
||
+
|
||
+ for (;;) {
|
||
+ count = __psp_poll_select(n, readfds, writefds, exceptfds);
|
||
+ /* If timeout == NULL, then don't timeout! */
|
||
+ if ( (count > 0) || ((timeout != NULL) && ((clock() - start_time) >= time)) ) {
|
||
+ break;
|
||
+ }
|
||
+ if (count < 0) {
|
||
+ /* anhanguera - 20070701
|
||
+ * error, lets let the caller to handle error state
|
||
+ */
|
||
+ break;
|
||
+ }
|
||
+ else {
|
||
+ /* Nothing found, and not timed-out yet; let's yield for SELECT_POLLING_DELAY_IN_us, so we're not in a busy loop */
|
||
+ sceKernelDelayThread(SELECT_POLLING_DELAY_IN_us);
|
||
+ }
|
||
+ }
|
||
+
|
||
+ return count;
|
||
+}
|
||
+
|
||
+#define SCE_FD_SET(n, p) \
|
||
+ ((p)->fds_bits[((n) & 0xFF) /__NFDBITS] |= (1 << ((n) % __NFDBITS)))
|
||
+
|
||
+static int __psp_poll_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
||
+{
|
||
+ int fd, count;
|
||
+ fd_set ready_readfds, ready_writefds, ready_exceptfds;
|
||
+ fd_set scereadfds, scewritefds, sceexceptfds;
|
||
+ SceKernelMppInfo info;
|
||
+ struct timeval scetv;
|
||
+
|
||
+ FD_ZERO(&ready_readfds);
|
||
+ FD_ZERO(&ready_writefds);
|
||
+ FD_ZERO(&ready_exceptfds);
|
||
+
|
||
+ info.size = sizeof(info);
|
||
+ scetv.tv_sec = 0;
|
||
+ scetv.tv_usec = 0;
|
||
+ count = 0;
|
||
+
|
||
+ for (fd = 0; fd < n; fd++)
|
||
+ {
|
||
+ if (__psp_descriptormap[fd] != NULL) {
|
||
+ switch(__psp_descriptormap[fd]->type)
|
||
+ {
|
||
+ case __PSP_DESCRIPTOR_TYPE_PIPE:
|
||
+ if (readfds && FD_ISSET(fd, readfds)) {
|
||
+ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &info) == 0) {
|
||
+ if (info.bufSize != info.freeSize) {
|
||
+ FD_SET(fd, &ready_readfds);
|
||
+ count++;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ FD_SET(fd, &ready_exceptfds);
|
||
+ count++;
|
||
+ }
|
||
+ }
|
||
+ if (writefds && FD_ISSET(fd, writefds)) {
|
||
+ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &info) == 0) {
|
||
+ if (info.freeSize > 0) {
|
||
+ FD_SET(fd, &ready_writefds);
|
||
+ count++;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ FD_SET(fd, &ready_exceptfds);
|
||
+ count++;
|
||
+ }
|
||
+ }
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_FILE:
|
||
+ if (readfds && FD_ISSET(fd, readfds)) {
|
||
+ if (readfds && FD_ISSET(fd, readfds)) {
|
||
+ /** Just set it for now */
|
||
+ FD_SET(fd, &ready_readfds);
|
||
+ count++;
|
||
+ }
|
||
+ }
|
||
+ break;
|
||
+ case __PSP_DESCRIPTOR_TYPE_SOCKET:
|
||
+ if (readfds && FD_ISSET(fd, readfds)) {
|
||
+ int sce_ret, sce_fd;
|
||
+ sce_fd = __psp_descriptormap[fd]->sce_descriptor;
|
||
+ FD_ZERO(&scereadfds);
|
||
+ SCE_FD_SET(sce_fd, &scereadfds);
|
||
+ errno = 0;
|
||
+ sce_ret = sceNetInetSelect (sce_fd+1, &scereadfds, NULL, NULL, &scetv);
|
||
+ if (sce_ret>0) {
|
||
+ FD_SET(fd, &ready_readfds);
|
||
+ count++;
|
||
+ }
|
||
+ else if (sce_ret == -1) {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ if (exceptfds && FD_ISSET(fd, exceptfds)) {
|
||
+ FD_SET(fd, &ready_exceptfds);
|
||
+ count++;
|
||
+ } else {
|
||
+ count = -1;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+ if (writefds && FD_ISSET(fd, writefds)) {
|
||
+ int sce_ret;
|
||
+ FD_ZERO(&scewritefds);
|
||
+ SCE_FD_SET(__psp_descriptormap[fd]->sce_descriptor, &scewritefds);
|
||
+ sce_ret = sceNetInetSelect (__psp_descriptormap[fd]->sce_descriptor+1, NULL, &scewritefds, NULL, &scetv);
|
||
+ if (sce_ret>0) {
|
||
+ FD_SET(fd, &ready_writefds);
|
||
+ count++;
|
||
+ }
|
||
+ else if (sce_ret == -1) {
|
||
+ if (exceptfds && FD_ISSET(fd, exceptfds)) {
|
||
+ FD_SET(fd, &ready_exceptfds);
|
||
+ count++;
|
||
+ }
|
||
+ else {
|
||
+ count = -1;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+ break;
|
||
+ }
|
||
+ } else {
|
||
+ /* anhanguera - 20070701
|
||
+ *
|
||
+ * here we know that, system has no idea about 'fd'. if caller requested
|
||
+ * information about 'fd', return '-1' and set errno to 'EBADF'. we should
|
||
+ * increse the count and set exceptfd for fd, but it is safe to obey select
|
||
+ * manual.
|
||
+ *
|
||
+ * from manual;
|
||
+ * On error, -1 is returned, and errno is set appropriately; the sets and
|
||
+ * timeout become undefined, so do not rely on their contents after an error.
|
||
+ */
|
||
+ if ((readfds && FD_ISSET(fd, readfds)) ||
|
||
+ (writefds && FD_ISSET(fd, writefds)) ||
|
||
+ (exceptfds && FD_ISSET(fd, exceptfds))) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+
|
||
+ if (count > 0) {
|
||
+ if (readfds)
|
||
+ *readfds = ready_readfds;
|
||
+ if (writefds)
|
||
+ *writefds = ready_writefds;
|
||
+ if (exceptfds)
|
||
+ *exceptfds = ready_exceptfds;
|
||
+ }
|
||
+
|
||
+ return count;
|
||
+}
|
||
+
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/socket.c newlib-1.20.0-psp/newlib/libc/sys/psp/socket.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/socket.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/socket.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,390 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * socket.c - Socket wrappers to provide similar functions to normal unix
|
||
+ *
|
||
+ * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
|
||
+ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
|
||
+ *
|
||
+ */
|
||
+#include <fcntl.h>
|
||
+#include <errno.h>
|
||
+#include <sys/socket.h>
|
||
+#include <sys/select.h>
|
||
+#include <netinet/in.h>
|
||
+#include <arpa/inet.h>
|
||
+
|
||
+#include <psptypes.h>
|
||
+#include "fdman.h"
|
||
+
|
||
+#ifdef F_socket
|
||
+int socket(int domain, int type, int protocol)
|
||
+{
|
||
+ int sock, scesock;
|
||
+ int i;
|
||
+
|
||
+ scesock = sceNetInetSocket(domain, type, protocol);
|
||
+ if(scesock < 0) {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ sock = __psp_fdman_get_new_descriptor();
|
||
+ if( sock != -1 ) {
|
||
+ __psp_descriptormap[sock]->sce_descriptor = scesock;
|
||
+ __psp_descriptormap[sock]->type = __PSP_DESCRIPTOR_TYPE_SOCKET;
|
||
+ }
|
||
+ else {
|
||
+ sceNetInetClose(scesock);
|
||
+ errno = ENOENT;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return sock;
|
||
+}
|
||
+
|
||
+/* These are glue routines that are called from _close(), _read(), and
|
||
+ _write(). They are here so that any program that uses socket() will pull
|
||
+ them in and have expanded socket capability. */
|
||
+
|
||
+int __psp_socket_close(int sock)
|
||
+{
|
||
+ int ret = 0;
|
||
+
|
||
+ if (__psp_descriptormap[sock]->ref_count == 1) {
|
||
+ ret = sceNetInetClose(__psp_descriptormap[sock]->sce_descriptor);
|
||
+ }
|
||
+
|
||
+ __psp_fdman_release_descriptor(sock);
|
||
+
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ /* If close is defined likely errno is */
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+
|
||
+ssize_t __psp_socket_recv(int s, void *buf, size_t len, int flags)
|
||
+{
|
||
+ return recv(s, buf, len, flags);
|
||
+}
|
||
+
|
||
+ssize_t __psp_socket_send(int s, const void *buf, size_t len, int flags)
|
||
+{
|
||
+ return send(s, buf, len, flags);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_accept
|
||
+int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
|
||
+{
|
||
+ int newscesock, newsock;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ newscesock = sceNetInetAccept(__psp_descriptormap[s]->sce_descriptor, addr, addrlen);
|
||
+ if( (newscesock >= 0) ) {
|
||
+ newsock = __psp_fdman_get_new_descriptor();
|
||
+ if ( newsock != -1 ) {
|
||
+ __psp_descriptormap[newsock]->sce_descriptor = newscesock;
|
||
+ __psp_descriptormap[newsock]->type = __PSP_DESCRIPTOR_TYPE_SOCKET;
|
||
+ }
|
||
+ else {
|
||
+ sceNetInetClose(newscesock);
|
||
+ errno = ENOENT;
|
||
+ return -1;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ errno = ENOENT;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return newsock;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_bind
|
||
+int bind(int s, const struct sockaddr *my_addr, socklen_t addrlen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetBind(__psp_descriptormap[s]->sce_descriptor, my_addr, addrlen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_connect
|
||
+int connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetConnect(__psp_descriptormap[s]->sce_descriptor, serv_addr, addrlen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_setsockopt
|
||
+int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetGetsockopt(__psp_descriptormap[s]->sce_descriptor, level, optname, optval, optlen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_listen
|
||
+int listen(int s, int backlog)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetListen(__psp_descriptormap[s]->sce_descriptor, backlog);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_recv
|
||
+ssize_t recv(int s, void *buf, size_t len, int flags)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetRecv(__psp_descriptormap[s]->sce_descriptor, buf, len, flags);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_recvfrom
|
||
+ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetRecvfrom(__psp_descriptormap[s]->sce_descriptor, buf, len, flags, from, fromlen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_send
|
||
+ssize_t send(int s, const void *buf, size_t len, int flags)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetSend(__psp_descriptormap[s]->sce_descriptor, buf, len, flags);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_sendto
|
||
+ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetSendto(__psp_descriptormap[s]->sce_descriptor, buf, len, flags, to, tolen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_setsockopt
|
||
+int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetSetsockopt(__psp_descriptormap[s]->sce_descriptor, level, optname, optval, optlen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+ else
|
||
+ {
|
||
+ if ( (level == SOL_SOCKET) && (optname == SO_NONBLOCK) ) {
|
||
+ if (*((int*)optval) == 1) {
|
||
+ __psp_descriptormap[s]->flags |= O_NONBLOCK;
|
||
+ }
|
||
+ else {
|
||
+ __psp_descriptormap[s]->flags &= ~O_NONBLOCK;
|
||
+ }
|
||
+ }
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_shutdown
|
||
+int shutdown(int s, int how)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetShutdown(__psp_descriptormap[s]->sce_descriptor, how);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_getpeername
|
||
+int getpeername(int s, struct sockaddr *name, socklen_t *namelen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetGetpeername(__psp_descriptormap[s]->sce_descriptor, name, namelen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_getsockname
|
||
+int getsockname(int s, struct sockaddr *name, socklen_t *namelen)
|
||
+{
|
||
+ int ret;
|
||
+
|
||
+ if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
|
||
+ errno = EBADF;
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ ret = sceNetInetGetsockname(__psp_descriptormap[s]->sce_descriptor, name, namelen);
|
||
+ if(ret < 0)
|
||
+ {
|
||
+ errno = sceNetInetGetErrno();
|
||
+ return -1;
|
||
+ }
|
||
+
|
||
+ return 0;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_inet_ntoa
|
||
+char *inet_ntoa(struct in_addr in)
|
||
+{
|
||
+ static char ip_addr[INET_ADDRSTRLEN+1];
|
||
+
|
||
+ if(sceNetInetInetNtop(AF_INET, &in, ip_addr, INET_ADDRSTRLEN) == NULL)
|
||
+ {
|
||
+ strcpy(ip_addr, "Invalid");
|
||
+ }
|
||
+
|
||
+ return ip_addr;
|
||
+}
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/dirent.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/dirent.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/dirent.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/dirent.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,39 @@
|
||
+#ifndef _SYS_DIRENT_H
|
||
+#define _SYS_DIRENT_H
|
||
+
|
||
+/* PSP dirent.h, based on pspiofilemgr_dirent.h
|
||
+ by Jim Paris <jim@jtan.com> */
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#include <pspiofilemgr_dirent.h>
|
||
+
|
||
+#define MAXNAMLEN 255
|
||
+
|
||
+/* Same as SceIoDirent, just with a different name. */
|
||
+struct dirent {
|
||
+ /** File status. */
|
||
+ SceIoStat d_stat;
|
||
+ /** File name. */
|
||
+ char d_name[256];
|
||
+ /** Device-specific data. */
|
||
+ void * d_private;
|
||
+ int dummy;
|
||
+};
|
||
+
|
||
+typedef struct {
|
||
+ SceUID uid;
|
||
+ struct dirent de;
|
||
+} DIR;
|
||
+
|
||
+DIR *opendir (const char *);
|
||
+struct dirent *readdir (DIR *);
|
||
+int closedir (DIR *);
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+
|
||
+#endif
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/errno.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/errno.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/errno.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/errno.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,158 @@
|
||
+/* errno.h for PSP, based on newlib/libc/include/sys/errno.h. */
|
||
+
|
||
+#ifndef _SYS_ERRNO_H_
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+#define _SYS_ERRNO_H_
|
||
+
|
||
+#include <sys/reent.h>
|
||
+
|
||
+#ifndef _REENT_ONLY
|
||
+#define errno (*__errno())
|
||
+extern int *__errno _PARAMS ((void));
|
||
+#endif
|
||
+
|
||
+/* Please don't use these variables directly.
|
||
+ Use strerror instead. */
|
||
+extern __IMPORT _CONST char * _CONST _sys_errlist[];
|
||
+extern __IMPORT int _sys_nerr;
|
||
+#ifdef __CYGWIN__
|
||
+extern __IMPORT const char * const sys_errlist[];
|
||
+extern __IMPORT int sys_nerr;
|
||
+#endif
|
||
+
|
||
+#define __errno_r(ptr) ((ptr)->_errno)
|
||
+
|
||
+#define EPERM 1 /* Not super-user */
|
||
+#define ENOENT 2 /* No such file or directory */
|
||
+#define ESRCH 3 /* No such process */
|
||
+#define EINTR 4 /* Interrupted system call */
|
||
+#define EIO 5 /* I/O error */
|
||
+#define ENXIO 6 /* No such device or address */
|
||
+#define E2BIG 7 /* Arg list too long */
|
||
+#define ENOEXEC 8 /* Exec format error */
|
||
+#define EBADF 9 /* Bad file number */
|
||
+#define ECHILD 10 /* No children */
|
||
+#define EAGAIN 11 /* No more processes */
|
||
+#define ENOMEM 12 /* Not enough core */
|
||
+#define EACCES 13 /* Permission denied */
|
||
+#define EFAULT 14 /* Bad address */
|
||
+#define ENOTBLK 15 /* Block device required */
|
||
+#define EBUSY 16 /* Mount device busy */
|
||
+#define EEXIST 17 /* File exists */
|
||
+#define EXDEV 18 /* Cross-device link */
|
||
+#define ENODEV 19 /* No such device */
|
||
+#define ENOTDIR 20 /* Not a directory */
|
||
+#define EISDIR 21 /* Is a directory */
|
||
+#define EINVAL 22 /* Invalid argument */
|
||
+#define ENFILE 23 /* Too many open files in system */
|
||
+#define EMFILE 24 /* Too many open files */
|
||
+#define ENOTTY 25 /* Not a typewriter */
|
||
+#define ETXTBSY 26 /* Text file busy */
|
||
+#define EFBIG 27 /* File too large */
|
||
+#define ENOSPC 28 /* No space left on device */
|
||
+#define ESPIPE 29 /* Illegal seek */
|
||
+#define EROFS 30 /* Read only file system */
|
||
+#define EMLINK 31 /* Too many links */
|
||
+#define EPIPE 32 /* Broken pipe */
|
||
+#define EDOM 33 /* Math arg out of domain of func */
|
||
+#define ERANGE 34 /* Math result not representable */
|
||
+#define ENOMSG 35 /* No message of desired type */
|
||
+#define EIDRM 36 /* Identifier removed */
|
||
+#define ECHRNG 37 /* Channel number out of range */
|
||
+#define EL2NSYNC 38 /* Level 2 not synchronized */
|
||
+#define EL3HLT 39 /* Level 3 halted */
|
||
+#define EL3RST 40 /* Level 3 reset */
|
||
+#define ELNRNG 41 /* Link number out of range */
|
||
+#define EUNATCH 42 /* Protocol driver not attached */
|
||
+#define ENOCSI 43 /* No CSI structure available */
|
||
+#define EL2HLT 44 /* Level 2 halted */
|
||
+#define EDEADLK 45 /* Deadlock condition */
|
||
+#define ENOLCK 46 /* No record locks available */
|
||
+#define EBADE 50 /* Invalid exchange */
|
||
+#define EBADR 51 /* Invalid request descriptor */
|
||
+#define EXFULL 52 /* Exchange full */
|
||
+#define ENOANO 53 /* No anode */
|
||
+#define EBADRQC 54 /* Invalid request code */
|
||
+#define EBADSLT 55 /* Invalid slot */
|
||
+#define EDEADLOCK 56 /* File locking deadlock error */
|
||
+#define EBFONT 57 /* Bad font file fmt */
|
||
+#define ENOSTR 60 /* Device not a stream */
|
||
+#define ENODATA 61 /* No data (for no delay io) */
|
||
+#define ETIME 62 /* Timer expired */
|
||
+#define ENOSR 63 /* Out of streams resources */
|
||
+#define ENONET 64 /* Machine is not on the network */
|
||
+#define ENOPKG 65 /* Package not installed */
|
||
+#define EREMOTE 66 /* The object is remote */
|
||
+#define ENOLINK 67 /* The link has been severed */
|
||
+#define EADV 68 /* Advertise error */
|
||
+#define ESRMNT 69 /* Srmount error */
|
||
+#define ECOMM 70 /* Communication error on send */
|
||
+#define EPROTO 71 /* Protocol error */
|
||
+#define EMULTIHOP 74 /* Multihop attempted */
|
||
+#define ELBIN 75 /* Inode is remote (not really error) */
|
||
+#define EDOTDOT 76 /* Cross mount point (not really error) */
|
||
+#define EBADMSG 77 /* Trying to read unreadable message */
|
||
+#define EFTYPE 79 /* Inappropriate file type or format */
|
||
+#define ENOTUNIQ 80 /* Given log. name not unique */
|
||
+#define EBADFD 81 /* f.d. invalid for this operation */
|
||
+#define EREMCHG 82 /* Remote address changed */
|
||
+#define ELIBACC 83 /* Can't access a needed shared lib */
|
||
+#define ELIBBAD 84 /* Accessing a corrupted shared lib */
|
||
+#define ELIBSCN 85 /* .lib section in a.out corrupted */
|
||
+#define ELIBMAX 86 /* Attempting to link in too many libs */
|
||
+#define ELIBEXEC 87 /* Attempting to exec a shared library */
|
||
+#define ENOSYS 88 /* Function not implemented */
|
||
+#define ENMFILE 89 /* No more files */
|
||
+#define ENOTEMPTY 90 /* Directory not empty */
|
||
+#define ENAMETOOLONG 91 /* File or path name too long */
|
||
+#define ELOOP 92 /* Too many symbolic links */
|
||
+#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
|
||
+#define EPFNOSUPPORT 96 /* Protocol family not supported */
|
||
+#define ECONNRESET 104 /* Connection reset by peer */
|
||
+#define ENOBUFS 105 /* No buffer space available */
|
||
+#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
|
||
+#define EPROTOTYPE 107 /* Protocol wrong type for socket */
|
||
+#define ENOTSOCK 108 /* Socket operation on non-socket */
|
||
+#define ENOPROTOOPT 109 /* Protocol not available */
|
||
+#define ESHUTDOWN 110 /* Can't send after socket shutdown */
|
||
+#define ECONNREFUSED 111 /* Connection refused */
|
||
+#define EADDRINUSE 112 /* Address already in use */
|
||
+#define ECONNABORTED 113 /* Connection aborted */
|
||
+#define ENETUNREACH 114 /* Network is unreachable */
|
||
+#define ENETDOWN 115 /* Network interface is not configured */
|
||
+#define ETIMEDOUT 116 /* Connection timed out */
|
||
+#define EHOSTDOWN 117 /* Host is down */
|
||
+#define EHOSTUNREACH 118 /* Host is unreachable */
|
||
+#define EINPROGRESS 119 /* Connection already in progress */
|
||
+#define EALREADY 120 /* Socket already connected */
|
||
+#define EDESTADDRREQ 121 /* Destination address required */
|
||
+#define EMSGSIZE 122 /* Message too long */
|
||
+#define EPROTONOSUPPORT 123 /* Unknown protocol */
|
||
+#define ESOCKTNOSUPPORT 124 /* Socket type not supported */
|
||
+#define EADDRNOTAVAIL 125 /* Address not available */
|
||
+#define ENETRESET 126
|
||
+#define EISCONN 127 /* Socket is already connected */
|
||
+#define ENOTCONN 128 /* Socket is not connected */
|
||
+#define ETOOMANYREFS 129
|
||
+#define EPROCLIM 130
|
||
+#define EUSERS 131
|
||
+#define EDQUOT 132
|
||
+#define ESTALE 133
|
||
+#define ENOTSUP 134 /* Not supported */
|
||
+#define ENOMEDIUM 135 /* No medium (in tape drive) */
|
||
+#define ENOSHARE 136 /* No such host or network path */
|
||
+#define ECASECLASH 137 /* Filename exists with different case */
|
||
+#define EILSEQ 138
|
||
+#define EOVERFLOW 139 /* Value too large for defined data type */
|
||
+
|
||
+/* From cygwin32. */
|
||
+#define EWOULDBLOCK EAGAIN /* Operation would block */
|
||
+
|
||
+#define __ELASTERROR 2000 /* Users can add values starting here */
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+#endif /* _SYS_ERRNO_H */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/fd_set.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/fd_set.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/fd_set.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/fd_set.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,69 @@
|
||
+/* $NetBSD: fd_set.h,v 1.1 2005/05/22 12:44:24 kleink Exp $ */
|
||
+
|
||
+/*-
|
||
+ * Copyright (c) 1992, 1993
|
||
+ * The Regents of the University of California. All rights reserved.
|
||
+ *
|
||
+ * Redistribution and use in source and binary forms, with or without
|
||
+ * modification, are permitted provided that the following conditions
|
||
+ * are met:
|
||
+ * 1. Redistributions of source code must retain the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer.
|
||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer in the
|
||
+ * documentation and/or other materials provided with the distribution.
|
||
+ * 3. Neither the name of the University nor the names of its contributors
|
||
+ * may be used to endorse or promote products derived from this software
|
||
+ * without specific prior written permission.
|
||
+ *
|
||
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+ * SUCH DAMAGE.
|
||
+ *
|
||
+ * from: @(#)types.h 8.4 (Berkeley) 1/21/94
|
||
+ */
|
||
+
|
||
+#ifndef _SYS_FD_SET_H_
|
||
+#define _SYS_FD_SET_H_
|
||
+
|
||
+#include <sys/socket.h>
|
||
+#include <stdint.h>
|
||
+
|
||
+/*
|
||
+ * Implementation dependent defines, hidden from user space. X/Open does not
|
||
+ * specify them.
|
||
+ */
|
||
+#define __NBBY 8 /* number of bits in a byte */
|
||
+typedef uint32_t __fd_mask;
|
||
+
|
||
+/* bits per mask */
|
||
+#define __NFDBITS ((unsigned int)sizeof(__fd_mask) * __NBBY)
|
||
+
|
||
+#define __howmany(x, y) (((x) + ((y) - 1)) / (y))
|
||
+
|
||
+#define FD_SETSIZE 256
|
||
+
|
||
+typedef struct fd_set {
|
||
+ __fd_mask fds_bits[__howmany(FD_SETSIZE, __NFDBITS)];
|
||
+} fd_set;
|
||
+
|
||
+#define FD_SET(n, p) \
|
||
+ ((p)->fds_bits[(n) /__NFDBITS] |= (1 << ((n) % __NFDBITS)))
|
||
+
|
||
+#define FD_CLR(n, p) \
|
||
+ ((p)->fds_bits[(n) /__NFDBITS] &= ~(1 << ((n) % __NFDBITS)))
|
||
+
|
||
+#define FD_ISSET(n, p) \
|
||
+ ((p)->fds_bits[(n) /__NFDBITS] & (1 << ((n) % __NFDBITS)))
|
||
+
|
||
+#define FD_ZERO(p) (void)__builtin_memset((p), 0, sizeof(*(p)))
|
||
+
|
||
+#endif /* _SYS_FD_SET_H_ */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/ioctl.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/ioctl.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/ioctl.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/ioctl.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1 @@
|
||
+/* Empty file, here for compatibility */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/select.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/select.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/select.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/select.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,54 @@
|
||
+/* $NetBSD: select.h,v 1.24 2005/05/22 12:44:24 kleink Exp $ */
|
||
+
|
||
+/*-
|
||
+ * Copyright (c) 1992, 1993
|
||
+ * The Regents of the University of California. All rights reserved.
|
||
+ *
|
||
+ * Redistribution and use in source and binary forms, with or without
|
||
+ * modification, are permitted provided that the following conditions
|
||
+ * are met:
|
||
+ * 1. Redistributions of source code must retain the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer.
|
||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer in the
|
||
+ * documentation and/or other materials provided with the distribution.
|
||
+ * 3. Neither the name of the University nor the names of its contributors
|
||
+ * may be used to endorse or promote products derived from this software
|
||
+ * without specific prior written permission.
|
||
+ *
|
||
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+ * SUCH DAMAGE.
|
||
+ *
|
||
+ * @(#)select.h 8.2 (Berkeley) 1/4/94
|
||
+ */
|
||
+
|
||
+#ifndef _SYS_SELECT_H_
|
||
+#define _SYS_SELECT_H_
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#include <sys/fd_set.h>
|
||
+#include <sys/time.h>
|
||
+
|
||
+int sceNetInetSelect(int n, fd_set *readfds, fd_set *writefds,
|
||
+ fd_set *exceptfds, struct timeval *timeout);
|
||
+
|
||
+int select(int n, fd_set *readfds, fd_set *writefds,
|
||
+ fd_set *exceptfds, struct timeval *timeout);
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+
|
||
+#endif /* !_SYS_SELECT_H_ */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/sys/socket.h newlib-1.20.0-psp/newlib/libc/sys/psp/sys/socket.h
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/sys/socket.h 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/sys/socket.h 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,294 @@
|
||
+/* $NetBSD: socket.h,v 1.77 2005/11/29 03:12:16 christos Exp $ */
|
||
+
|
||
+/*
|
||
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||
+ * All rights reserved.
|
||
+ *
|
||
+ * Redistribution and use in source and binary forms, with or without
|
||
+ * modification, are permitted provided that the following conditions
|
||
+ * are met:
|
||
+ * 1. Redistributions of source code must retain the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer.
|
||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer in the
|
||
+ * documentation and/or other materials provided with the distribution.
|
||
+ * 3. Neither the name of the project nor the names of its contributors
|
||
+ * may be used to endorse or promote products derived from this software
|
||
+ * without specific prior written permission.
|
||
+ *
|
||
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+ * SUCH DAMAGE.
|
||
+ */
|
||
+
|
||
+/*
|
||
+ * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
|
||
+ * The Regents of the University of California. All rights reserved.
|
||
+ *
|
||
+ * Redistribution and use in source and binary forms, with or without
|
||
+ * modification, are permitted provided that the following conditions
|
||
+ * are met:
|
||
+ * 1. Redistributions of source code must retain the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer.
|
||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
+ * notice, this list of conditions and the following disclaimer in the
|
||
+ * documentation and/or other materials provided with the distribution.
|
||
+ * 3. Neither the name of the University nor the names of its contributors
|
||
+ * may be used to endorse or promote products derived from this software
|
||
+ * without specific prior written permission.
|
||
+ *
|
||
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
+ * SUCH DAMAGE.
|
||
+ *
|
||
+ * @(#)socket.h 8.6 (Berkeley) 5/3/95
|
||
+ */
|
||
+
|
||
+#ifndef _SYS_SOCKET_H_
|
||
+#define _SYS_SOCKET_H_
|
||
+
|
||
+#ifdef __cplusplus
|
||
+extern "C" {
|
||
+#endif
|
||
+
|
||
+#include <stdint.h>
|
||
+#include <stddef.h>
|
||
+#include <sys/types.h>
|
||
+
|
||
+typedef uint8_t sa_family_t;
|
||
+typedef uint32_t socklen_t;
|
||
+
|
||
+/*
|
||
+ * Socket types.
|
||
+ */
|
||
+#define SOCK_STREAM 1 /* stream socket */
|
||
+#define SOCK_DGRAM 2 /* datagram socket */
|
||
+#define SOCK_RAW 3 /* raw-protocol interface */
|
||
+#define SOCK_RDM 4 /* reliably-delivered message */
|
||
+#define SOCK_SEQPACKET 5 /* sequenced packet stream */
|
||
+
|
||
+/*
|
||
+ * Option flags per-socket.
|
||
+ */
|
||
+#define SO_DEBUG 0x0001 /* turn on debugging info recording */
|
||
+#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
|
||
+#define SO_REUSEADDR 0x0004 /* allow local address reuse */
|
||
+#define SO_KEEPALIVE 0x0008 /* keep connections alive */
|
||
+#define SO_DONTROUTE 0x0010 /* just use interface addresses */
|
||
+#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
|
||
+#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
|
||
+#define SO_LINGER 0x0080 /* linger on close if data present */
|
||
+#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
|
||
+#define SO_REUSEPORT 0x0200 /* allow local address & port reuse */
|
||
+#define SO_TIMESTAMP 0x0400 /* timestamp received dgram traffic */
|
||
+
|
||
+/*
|
||
+ * Additional options, not kept in so_options.
|
||
+ */
|
||
+#define SO_SNDBUF 0x1001 /* send buffer size */
|
||
+#define SO_RCVBUF 0x1002 /* receive buffer size */
|
||
+#define SO_SNDLOWAT 0x1003 /* send low-water mark */
|
||
+#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
|
||
+#define SO_SNDTIMEO 0x1005 /* send timeout */
|
||
+#define SO_RCVTIMEO 0x1006 /* receive timeout */
|
||
+#define SO_ERROR 0x1007 /* get error status and clear */
|
||
+#define SO_TYPE 0x1008 /* get socket type */
|
||
+#define SO_OVERFLOWED 0x1009 /* datagrams: return packets dropped */
|
||
+#define SO_NONBLOCK 0x1009 /* non-blocking I/O */
|
||
+
|
||
+/*
|
||
+ * Structure used for manipulating linger option.
|
||
+ */
|
||
+struct linger {
|
||
+ int l_onoff; /* option on/off */
|
||
+ int l_linger; /* linger time in seconds */
|
||
+};
|
||
+
|
||
+/*
|
||
+ * Level number for (get/set)sockopt() to apply to socket itself.
|
||
+ */
|
||
+#define SOL_SOCKET 0xffff /* options for socket level */
|
||
+
|
||
+/*
|
||
+ * Address families.
|
||
+ */
|
||
+#define AF_UNSPEC 0 /* unspecified */
|
||
+#define AF_LOCAL 1 /* local to host (pipes, portals) */
|
||
+#define AF_UNIX AF_LOCAL /* backward compatibility */
|
||
+#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
|
||
+#define AF_IMPLINK 3 /* arpanet imp addresses */
|
||
+#define AF_PUP 4 /* pup protocols: e.g. BSP */
|
||
+#define AF_CHAOS 5 /* mit CHAOS protocols */
|
||
+#define AF_NS 6 /* XEROX NS protocols */
|
||
+#define AF_ISO 7 /* ISO protocols */
|
||
+#define AF_OSI AF_ISO
|
||
+#define AF_ECMA 8 /* european computer manufacturers */
|
||
+#define AF_DATAKIT 9 /* datakit protocols */
|
||
+#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
|
||
+#define AF_SNA 11 /* IBM SNA */
|
||
+#define AF_DECnet 12 /* DECnet */
|
||
+#define AF_DLI 13 /* DEC Direct data link interface */
|
||
+#define AF_LAT 14 /* LAT */
|
||
+#define AF_HYLINK 15 /* NSC Hyperchannel */
|
||
+#define AF_APPLETALK 16 /* Apple Talk */
|
||
+#define AF_ROUTE 17 /* Internal Routing Protocol */
|
||
+#define AF_LINK 18 /* Link layer interface */
|
||
+#define AF_COIP 20 /* connection-oriented IP, aka ST II */
|
||
+#define AF_CNT 21 /* Computer Network Technology */
|
||
+#define AF_IPX 23 /* Novell Internet Protocol */
|
||
+#define AF_INET6 24 /* IP version 6 */
|
||
+#define AF_ISDN 26 /* Integrated Services Digital Network*/
|
||
+#define AF_E164 AF_ISDN /* CCITT E.164 recommendation */
|
||
+#define AF_NATM 27 /* native ATM access */
|
||
+#define AF_ARP 28 /* (rev.) addr. res. prot. (RFC 826) */
|
||
+#define AF_MAX 31
|
||
+
|
||
+/*
|
||
+ * Structure used by kernel to store most
|
||
+ * addresses.
|
||
+ */
|
||
+struct sockaddr {
|
||
+ uint8_t sa_len; /* total length */
|
||
+ sa_family_t sa_family; /* address family */
|
||
+ char sa_data[14]; /* actually longer; address value */
|
||
+};
|
||
+
|
||
+/*
|
||
+ * Protocol families, same as address families for now.
|
||
+ */
|
||
+#define PF_UNSPEC AF_UNSPEC
|
||
+#define PF_LOCAL AF_LOCAL
|
||
+#define PF_UNIX PF_LOCAL /* backward compatibility */
|
||
+#define PF_INET AF_INET
|
||
+#define PF_IMPLINK AF_IMPLINK
|
||
+#define PF_PUP AF_PUP
|
||
+#define PF_CHAOS AF_CHAOS
|
||
+#define PF_NS AF_NS
|
||
+#define PF_ISO AF_ISO
|
||
+#define PF_OSI AF_ISO
|
||
+#define PF_ECMA AF_ECMA
|
||
+#define PF_DATAKIT AF_DATAKIT
|
||
+#define PF_CCITT AF_CCITT
|
||
+#define PF_SNA AF_SNA
|
||
+#define PF_DECnet AF_DECnet
|
||
+#define PF_DLI AF_DLI
|
||
+#define PF_LAT AF_LAT
|
||
+#define PF_HYLINK AF_HYLINK
|
||
+#define PF_APPLETALK AF_APPLETALK
|
||
+#define PF_ROUTE AF_ROUTE
|
||
+#define PF_LINK AF_LINK
|
||
+#if defined(_NETBSD_SOURCE)
|
||
+#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */
|
||
+#endif
|
||
+#define PF_COIP AF_COIP
|
||
+#define PF_CNT AF_CNT
|
||
+#define PF_INET6 AF_INET6
|
||
+#define PF_IPX AF_IPX /* same format as AF_NS */
|
||
+#if defined(_NETBSD_SOURCE)
|
||
+#define PF_RTIP pseudo_AF_RTIP /* same format as AF_INET */
|
||
+#define PF_PIP pseudo_AF_PIP
|
||
+#endif
|
||
+#define PF_ISDN AF_ISDN /* same as E164 */
|
||
+#define PF_E164 AF_E164
|
||
+#define PF_NATM AF_NATM
|
||
+#define PF_ARP AF_ARP
|
||
+#if defined(_NETBSD_SOURCE)
|
||
+#define PF_KEY pseudo_AF_KEY /* like PF_ROUTE, only for key mgmt */
|
||
+#endif
|
||
+
|
||
+#define PF_MAX AF_MAX
|
||
+
|
||
+#define MSG_OOB 0x1 /* process out-of-band data */
|
||
+#define MSG_PEEK 0x2 /* peek at incoming message */
|
||
+#define MSG_DONTROUTE 0x4 /* send without using routing tables */
|
||
+#define MSG_EOR 0x8 /* data completes record */
|
||
+#define MSG_TRUNC 0x10 /* data discarded before delivery */
|
||
+#define MSG_CTRUNC 0x20 /* control data lost before delivery */
|
||
+#define MSG_WAITALL 0x40 /* wait for full request or error */
|
||
+#define MSG_DONTWAIT 0x80 /* this message should be nonblocking */
|
||
+#define MSG_BCAST 0x100 /* this message was rcvd using link-level brdcst */
|
||
+#define MSG_MCAST 0x200 /* this message was rcvd using link-level mcast */
|
||
+
|
||
+/*
|
||
+ * Types of socket shutdown(2).
|
||
+ */
|
||
+#define SHUT_RD 0 /* Disallow further receives. */
|
||
+#define SHUT_WR 1 /* Disallow further sends. */
|
||
+#define SHUT_RDWR 2 /* Disallow further sends/receives. */
|
||
+
|
||
+struct iovec {
|
||
+ void *iov_base; /* Base address. */
|
||
+ size_t iov_len; /* Length. */
|
||
+};
|
||
+
|
||
+struct msghdr {
|
||
+ void *msg_name; /* optional address */
|
||
+ socklen_t msg_namelen; /* size of address */
|
||
+ struct iovec *msg_iov; /* scatter/gather array */
|
||
+ int msg_iovlen; /* # elements in msg_iov */
|
||
+ void *msg_control; /* ancillary data, see below */
|
||
+ socklen_t msg_controllen; /* ancillary data buffer len */
|
||
+ int msg_flags; /* flags on received message */
|
||
+};
|
||
+
|
||
+/* BSD-compatible socket API. */
|
||
+int accept(int, struct sockaddr * __restrict, socklen_t * __restrict);
|
||
+int bind(int, const struct sockaddr *, socklen_t);
|
||
+int connect(int, const struct sockaddr *, socklen_t);
|
||
+int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict);
|
||
+int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict);
|
||
+int getsockopt(int, int, int, void * __restrict, socklen_t * __restrict);
|
||
+int listen(int, int);
|
||
+ssize_t recv(int, void *, size_t, int);
|
||
+ssize_t recvfrom(int, void * __restrict, size_t, int,
|
||
+ struct sockaddr * __restrict, socklen_t * __restrict);
|
||
+ssize_t recvmsg(int s, struct msghdr *msg, int flags);
|
||
+ssize_t send(int, const void *, size_t, int);
|
||
+ssize_t sendto(int, const void *,
|
||
+ size_t, int, const struct sockaddr *, socklen_t);
|
||
+ssize_t sendmsg(int s, const struct msghdr *msg, int flags);
|
||
+int setsockopt(int, int, int, const void *, socklen_t);
|
||
+int shutdown(int, int);
|
||
+int socket(int, int, int);
|
||
+
|
||
+/* sceNetInet socket API. */
|
||
+int sceNetInetAccept(int s, struct sockaddr *addr, socklen_t *addrlen);
|
||
+int sceNetInetBind(int s, const struct sockaddr *my_addr, socklen_t addrlen);
|
||
+int sceNetInetConnect(int s, const struct sockaddr *serv_addr, socklen_t addrlen);
|
||
+int sceNetInetGetsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
|
||
+int sceNetInetListen(int s, int backlog);
|
||
+ssize_t sceNetInetRecv(int s, void *buf, size_t len, int flags);
|
||
+ssize_t sceNetInetRecvfrom(int s, void *buf, size_t flags, int, struct sockaddr *from, socklen_t *fromlen);
|
||
+ssize_t sceNetInetRecvmsg(int s, struct msghdr *msg, int flags);
|
||
+ssize_t sceNetInetSend(int s, const void *buf, size_t len, int flags);
|
||
+ssize_t sceNetInetSendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
|
||
+ssize_t sceNetInetSendmsg(int s, const struct msghdr *msg, int flags);
|
||
+int sceNetInetSetsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
|
||
+int sceNetInetShutdown(int s, int how);
|
||
+int sceNetInetSocket(int domain, int type, int protocol);
|
||
+int sceNetInetClose(int s);
|
||
+int sceNetInetGetErrno(void);
|
||
+int sceNetInetGetsockname(int s, struct sockaddr *name, socklen_t *namelen);
|
||
+int sceNetInetGetpeername(int s, struct sockaddr *name, socklen_t *namelen);
|
||
+
|
||
+#ifdef __cplusplus
|
||
+}
|
||
+#endif
|
||
+
|
||
+#endif /* !_SYS_SOCKET_H_ */
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/syscalls.c newlib-1.20.0-psp/newlib/libc/sys/psp/syscalls.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/syscalls.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/syscalls.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,19 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * syscalls.c - functions in systeam namespace goes here
|
||
+ *
|
||
+ * Copyright (c) 2007 Alper Akcan "anhanguera" <distchx@yahoo.com>
|
||
+ *
|
||
+ */
|
||
+
|
||
+#include <stdio.h>
|
||
+
|
||
+int __psp_set_errno (int code);
|
||
+
|
||
+time_t _times (time_t *t)
|
||
+{
|
||
+ return __psp_set_errno(sceKernelLibcTime(t));
|
||
+}
|
||
diff -Nbaur newlib-1.20.0/newlib/libc/sys/psp/xprintf.c newlib-1.20.0-psp/newlib/libc/sys/psp/xprintf.c
|
||
--- newlib-1.20.0/newlib/libc/sys/psp/xprintf.c 1970-01-01 01:00:00.000000000 +0100
|
||
+++ newlib-1.20.0-psp/newlib/libc/sys/psp/xprintf.c 2012-02-25 14:10:35.000000000 +0000
|
||
@@ -0,0 +1,984 @@
|
||
+/*
|
||
+ * PSP Software Development Kit - http://www.pspdev.org
|
||
+ * -----------------------------------------------------------------------
|
||
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
||
+ *
|
||
+ * xprintf.c - Various *printf functions.
|
||
+ *
|
||
+ * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
|
||
+ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
|
||
+ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
|
||
+ *
|
||
+ * $Id: newlib-1.13.0.patch 1891 2006-05-02 15:32:28Z raf $
|
||
+ */
|
||
+/* Code borrowed from mysql's xprintf.c, by Richard Hipp */
|
||
+/* This xprintf.c file on which this one is based is in public domain. */
|
||
+
|
||
+#include <stdio.h>
|
||
+#include <string.h>
|
||
+#include <malloc.h>
|
||
+
|
||
+#include <stdarg.h>
|
||
+#include <stddef.h>
|
||
+
|
||
+/*
|
||
+** The maximum number of digits of accuracy in a floating-point conversion.
|
||
+*/
|
||
+#define MAXDIG 20
|
||
+
|
||
+/* Instead of including ctype.h, use the isdigit() prototype because psplibc doesn't
|
||
+ know about newlib, and newlib defines isdigit as a macro that uses _ctype_. */
|
||
+int isdigit(int __c);
|
||
+
|
||
+int vxprintf(void (*func)(char *, int, void *), void *arg, const char *format, va_list ap);
|
||
+
|
||
+#ifdef F_vxprintf
|
||
+/*
|
||
+** Conversion types fall into various categories as defined by the
|
||
+** following enumeration.
|
||
+*/
|
||
+
|
||
+enum e_type { /* The type of the format field */
|
||
+ RADIX, /* Integer types. %d, %x, %o, and so forth */
|
||
+ FLOAT, /* Floating point. %f */
|
||
+ EXP, /* Exponentional notation. %e and %E */
|
||
+ GENERIC, /* Floating or exponential, depending on exponent. %g */
|
||
+ SIZE, /* Return number of characters processed so far. %n */
|
||
+ STRING, /* Strings. %s */
|
||
+ PERCENT, /* Percent symbol. %% */
|
||
+ CHAR, /* Characters. %c */
|
||
+ ERROR, /* Used to indicate no such conversion type */
|
||
+/* The rest are extensions, not normally found in printf() */
|
||
+ CHARLIT, /* Literal characters. %' */
|
||
+ SEEIT, /* Strings with visible control characters. %S */
|
||
+ MEM_STRING, /* A string which should be deleted after use. %z */
|
||
+ ORDINAL, /* 1st, 2nd, 3rd and so forth */
|
||
+};
|
||
+
|
||
+/*
|
||
+** Each builtin conversion character (ex: the 'd' in "%d") is described
|
||
+** by an instance of the following structure
|
||
+*/
|
||
+typedef struct s_info { /* Information about each format field */
|
||
+ int fmttype; /* The format field code letter */
|
||
+ int base; /* The base for radix conversion */
|
||
+ char *charset; /* The character set for conversion */
|
||
+ int flag_signed; /* Is the quantity signed? */
|
||
+ char *prefix; /* Prefix on non-zero values in alt format */
|
||
+ enum e_type type; /* Conversion paradigm */
|
||
+} info;
|
||
+
|
||
+/*
|
||
+** The following table is searched linearly, so it is good to put the
|
||
+** most frequently used conversion types first.
|
||
+*/
|
||
+static info fmtinfo[] = {
|
||
+ { 'd', 10, "0123456789", 1, 0, RADIX, },
|
||
+ { 's', 0, 0, 0, 0, STRING, },
|
||
+ { 'S', 0, 0, 0, 0, SEEIT, },
|
||
+ { 'z', 0, 0, 0, 0, MEM_STRING, },
|
||
+ { 'c', 0, 0, 0, 0, CHAR, },
|
||
+ { 'o', 8, "01234567", 0, "0", RADIX, },
|
||
+ { 'u', 10, "0123456789", 0, 0, RADIX, },
|
||
+ { 'x', 16, "0123456789abcdef", 0, "x0", RADIX, },
|
||
+ { 'X', 16, "0123456789ABCDEF", 0, "X0", RADIX, },
|
||
+ { 'r', 10, "0123456789", 0, 0, ORDINAL, },
|
||
+ { 'f', 0, 0, 1, 0, FLOAT, },
|
||
+ { 'e', 0, "e", 1, 0, EXP, },
|
||
+ { 'E', 0, "E", 1, 0, EXP, },
|
||
+ { 'g', 0, "e", 1, 0, GENERIC, },
|
||
+ { 'G', 0, "E", 1, 0, GENERIC, },
|
||
+ { 'i', 10, "0123456789", 1, 0, RADIX, },
|
||
+ { 'n', 0, 0, 0, 0, SIZE, },
|
||
+ { 'S', 0, 0, 0, 0, SEEIT, },
|
||
+ { '%', 0, 0, 0, 0, PERCENT, },
|
||
+ { 'b', 2, "01", 0, "b0", RADIX, }, /* Binary notation */
|
||
+ { 'p', 16, "0123456789ABCDEF", 0, "x0", RADIX, }, /* Pointers */
|
||
+ { '\'', 0, 0, 0, 0, CHARLIT, }, /* Literal char */
|
||
+};
|
||
+#define NINFO (sizeof(fmtinfo)/sizeof(info)) /* Size of the fmtinfo table */
|
||
+
|
||
+/*
|
||
+** If NOFLOATINGPOINT is defined, then none of the floating point
|
||
+** conversions will work.
|
||
+*/
|
||
+#ifndef NOFLOATINGPOINT
|
||
+/*
|
||
+** "*val" is a double such that 0.1 <= *val < 10.0
|
||
+** Return the ascii code for the leading digit of *val, then
|
||
+** multiply "*val" by 10.0 to renormalize.
|
||
+**
|
||
+** Example:
|
||
+** input: *val = 3.14159
|
||
+** output: *val = 1.4159 function return = '3'
|
||
+**
|
||
+** The counter *cnt is incremented each time. After counter exceeds
|
||
+** 16 (the number of significant digits in a 64-bit float) '0' is
|
||
+** always returned.
|
||
+*/
|
||
+static int getdigit(long double *val, int *cnt){
|
||
+ int digit;
|
||
+ long double d;
|
||
+ if( (*cnt)++ >= MAXDIG ) return '0';
|
||
+ digit = (int)*val;
|
||
+ d = digit;
|
||
+ digit += '0';
|
||
+ *val = (*val - d)*10.0;
|
||
+ return digit;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/*
|
||
+** Setting the size of the BUFFER involves trade-offs. No %d or %f
|
||
+** conversion can have more than BUFSIZE characters. If the field
|
||
+** width is larger than BUFSIZE, it is silently shortened. On the
|
||
+** other hand, this routine consumes more stack space with larger
|
||
+** BUFSIZEs. If you have some threads for which you want to minimize
|
||
+** stack space, you should keep BUFSIZE small.
|
||
+*/
|
||
+#define BUFSIZE 100 /* Size of the output buffer */
|
||
+
|
||
+/*
|
||
+** The root program. All variations call this core.
|
||
+**
|
||
+** INPUTS:
|
||
+** func This is a pointer to a function taking three arguments
|
||
+** 1. A pointer to the list of characters to be output
|
||
+** (Note, this list is NOT null terminated.)
|
||
+** 2. An integer number of characters to be output.
|
||
+** (Note: This number might be zero.)
|
||
+** 3. A pointer to anything. Same as the "arg" parameter.
|
||
+**
|
||
+** arg This is the pointer to anything which will be passed as the
|
||
+** third argument to "func". Use it for whatever you like.
|
||
+**
|
||
+** fmt This is the format string, as in the usual print.
|
||
+**
|
||
+** ap This is a pointer to a list of arguments. Same as in
|
||
+** vfprint.
|
||
+**
|
||
+** OUTPUTS:
|
||
+** The return value is the total number of characters sent to
|
||
+** the function "func". Returns -1 on a error.
|
||
+**
|
||
+** Note that the order in which automatic variables are declared below
|
||
+** seems to make a big difference in determining how fast this beast
|
||
+** will run.
|
||
+*/
|
||
+
|
||
+int vxprintf(func,arg,format,ap)
|
||
+ void (*func)(char*,int,void*);
|
||
+ void *arg;
|
||
+ const char *format;
|
||
+ va_list ap;
|
||
+{
|
||
+ register const char *fmt; /* The format string. */
|
||
+ register int c; /* Next character in the format string */
|
||
+ register char *bufpt; /* Pointer to the conversion buffer */
|
||
+ register int precision; /* Precision of the current field */
|
||
+ register int length; /* Length of the field */
|
||
+ register int idx; /* A general purpose loop counter */
|
||
+ int count; /* Total number of characters output */
|
||
+ int width; /* Width of the current field */
|
||
+ int flag_leftjustify; /* True if "-" flag is present */
|
||
+ int flag_plussign; /* True if "+" flag is present */
|
||
+ int flag_blanksign; /* True if " " flag is present */
|
||
+ int flag_alternateform; /* True if "#" flag is present */
|
||
+ int flag_zeropad; /* True if field width constant starts with zero */
|
||
+ int flag_long; /* True if "l" flag is present */
|
||
+ int flag_center; /* True if "=" flag is present */
|
||
+ unsigned long long longvalue; /* Value for integer types */
|
||
+
|
||
+ long double realvalue; /* Value for real types */
|
||
+ info *infop; /* Pointer to the appropriate info structure */
|
||
+ char buf[BUFSIZE]; /* Conversion buffer */
|
||
+ char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */
|
||
+ int errorflag = 0; /* True if an error is encountered */
|
||
+ enum e_type xtype; /* Conversion paradigm */
|
||
+ char *zMem = 0; /* String to be freed */
|
||
+ static char spaces[] =
|
||
+ " ";
|
||
+#define SPACESIZE (sizeof(spaces)-1)
|
||
+#ifndef NOFLOATINGPOINT
|
||
+ int exp; /* exponent of real numbers */
|
||
+ long double rounder; /* Used for rounding floating point values */
|
||
+ int flag_dp; /* True if decimal point should be shown */
|
||
+ int flag_rtz; /* True if trailing zeros should be removed */
|
||
+ int flag_exp; /* True to force display of the exponent */
|
||
+ int nsd; /* Number of significant digits returned */
|
||
+#endif
|
||
+
|
||
+ fmt = format; /* Put in a register for speed */
|
||
+ count = length = 0;
|
||
+ bufpt = 0;
|
||
+ for(; (c=(*fmt))!=0; ++fmt){
|
||
+ if( c!='%' ){
|
||
+ register int amt;
|
||
+ bufpt = (char *)fmt;
|
||
+ amt = 1;
|
||
+ while( (c=(*++fmt))!='%' && c!=0 ) amt++;
|
||
+ (*func)(bufpt,amt,arg);
|
||
+ count += amt;
|
||
+ if( c==0 ) break;
|
||
+ }
|
||
+ if( (c=(*++fmt))==0 ){
|
||
+ errorflag = 1;
|
||
+ (*func)("%",1,arg);
|
||
+ count++;
|
||
+ break;
|
||
+ }
|
||
+ /* Find out what flags are present */
|
||
+ flag_leftjustify = flag_plussign = flag_blanksign =
|
||
+ flag_alternateform = flag_zeropad = flag_center = 0;
|
||
+ do{
|
||
+ switch( c ){
|
||
+ case '-': flag_leftjustify = 1; c = 0; break;
|
||
+ case '+': flag_plussign = 1; c = 0; break;
|
||
+ case ' ': flag_blanksign = 1; c = 0; break;
|
||
+ case '#': flag_alternateform = 1; c = 0; break;
|
||
+ case '0': flag_zeropad = 1; c = 0; break;
|
||
+ case '=': flag_center = 1; c = 0; break;
|
||
+ default: break;
|
||
+ }
|
||
+ }while( c==0 && (c=(*++fmt))!=0 );
|
||
+ if( flag_center ) flag_leftjustify = 0;
|
||
+ /* Get the field width */
|
||
+ width = 0;
|
||
+ if( c=='*' ){
|
||
+ width = va_arg(ap,int);
|
||
+ if( width<0 ){
|
||
+ flag_leftjustify = 1;
|
||
+ width = -width;
|
||
+ }
|
||
+ c = *++fmt;
|
||
+ }else{
|
||
+ while( isdigit(c) ){
|
||
+ width = width*10 + c - '0';
|
||
+ c = *++fmt;
|
||
+ }
|
||
+ }
|
||
+ if( width > BUFSIZE-10 ){
|
||
+ width = BUFSIZE-10;
|
||
+ }
|
||
+ /* Get the precision */
|
||
+ if( c=='.' ){
|
||
+ precision = 0;
|
||
+ c = *++fmt;
|
||
+ if( c=='*' ){
|
||
+ precision = va_arg(ap,int);
|
||
+#ifndef COMPATIBILITY
|
||
+ /* This is sensible, but SUN OS 4.1 doesn't do it. */
|
||
+ if( precision<0 ) precision = -precision;
|
||
+#endif
|
||
+ c = *++fmt;
|
||
+ }else{
|
||
+ while( isdigit(c) ){
|
||
+ precision = precision*10 + c - '0';
|
||
+ c = *++fmt;
|
||
+ }
|
||
+ }
|
||
+ /* Limit the precision to prevent overflowing buf[] during conversion */
|
||
+ if( precision>BUFSIZE-40 ) precision = BUFSIZE-40;
|
||
+ }else{
|
||
+ precision = -1;
|
||
+ }
|
||
+ /* Get the conversion type modifier */
|
||
+ if( c=='l' ){
|
||
+ flag_long = 1;
|
||
+ c = *++fmt;
|
||
+ if( c == 'l' ){
|
||
+ flag_long = 2;
|
||
+ c = *++fmt;
|
||
+ }
|
||
+ }else{
|
||
+ flag_long = 0;
|
||
+ }
|
||
+ /* Fetch the info entry for the field */
|
||
+ infop = 0;
|
||
+ for(idx=0; idx<NINFO; idx++){
|
||
+ if( c==fmtinfo[idx].fmttype ){
|
||
+ infop = &fmtinfo[idx];
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ /* No info entry found. It must be an error. */
|
||
+ if( infop==0 ){
|
||
+ xtype = ERROR;
|
||
+ }else{
|
||
+ xtype = infop->type;
|
||
+ }
|
||
+
|
||
+ /*
|
||
+ ** At this point, variables are initialized as follows:
|
||
+ **
|
||
+ ** flag_alternateform TRUE if a '#' is present.
|
||
+ ** flag_plussign TRUE if a '+' is present.
|
||
+ ** flag_leftjustify TRUE if a '-' is present or if the
|
||
+ ** field width was negative.
|
||
+ ** flag_zeropad TRUE if the width began with 0.
|
||
+ ** flag_long TRUE if the letter 'l' (ell) prefixed
|
||
+ ** the conversion character.
|
||
+ ** flag_blanksign TRUE if a ' ' is present.
|
||
+ ** width The specified field width. This is
|
||
+ ** always non-negative. Zero is the default.
|
||
+ ** precision The specified precision. The default
|
||
+ ** is -1.
|
||
+ ** xtype The class of the conversion.
|
||
+ ** infop Pointer to the appropriate info struct.
|
||
+ */
|
||
+ switch( xtype ){
|
||
+ case ORDINAL:
|
||
+ case RADIX:
|
||
+ if(( flag_long>1 )&&( infop->flag_signed )){
|
||
+ signed long long t = va_arg(ap,signed long long);
|
||
+ longvalue = t;
|
||
+ }else if(( flag_long>1 )&&( !infop->flag_signed )){
|
||
+ unsigned long long t = va_arg(ap,unsigned long long);
|
||
+ longvalue = t;
|
||
+ }else if(( flag_long )&&( infop->flag_signed )){
|
||
+ signed long t = va_arg(ap,signed long);
|
||
+ longvalue = t;
|
||
+ }else if(( flag_long )&&( !infop->flag_signed )){
|
||
+ unsigned long t = va_arg(ap,unsigned long);
|
||
+ longvalue = t;
|
||
+ }else if(( !flag_long )&&( infop->flag_signed )){
|
||
+ signed int t = va_arg(ap,signed int) & ((unsigned long) 0xffffffff);
|
||
+ longvalue = t;
|
||
+ }else{
|
||
+ unsigned int t = va_arg(ap,unsigned int) & ((unsigned long) 0xffffffff);
|
||
+ longvalue = t;
|
||
+ }
|
||
+#ifdef COMPATIBILITY
|
||
+ /* For the format %#x, the value zero is printed "0" not "0x0".
|
||
+ ** I think this is stupid. */
|
||
+ if( longvalue==0 ) flag_alternateform = 0;
|
||
+#else
|
||
+ /* More sensible: turn off the prefix for octal (to prevent "00"),
|
||
+ ** but leave the prefix for hex. */
|
||
+ if( longvalue==0 && infop->base==8 ) flag_alternateform = 0;
|
||
+#endif
|
||
+ if( infop->flag_signed ){
|
||
+ if( *(long long*)&longvalue<0 ){
|
||
+ longvalue = -*(long long*)&longvalue;
|
||
+ prefix = '-';
|
||
+ }else if( flag_plussign ) prefix = '+';
|
||
+ else if( flag_blanksign ) prefix = ' ';
|
||
+ else prefix = 0;
|
||
+ }else prefix = 0;
|
||
+ if( flag_zeropad && precision<width-(prefix!=0) ){
|
||
+ precision = width-(prefix!=0);
|
||
+ }
|
||
+ bufpt = &buf[BUFSIZE];
|
||
+ if( xtype==ORDINAL ){
|
||
+ long a,b;
|
||
+ a = longvalue%10;
|
||
+ b = longvalue%100;
|
||
+ bufpt -= 2;
|
||
+ if( a==0 || a>3 || (b>10 && b<14) ){
|
||
+ bufpt[0] = 't';
|
||
+ bufpt[1] = 'h';
|
||
+ }else if( a==1 ){
|
||
+ bufpt[0] = 's';
|
||
+ bufpt[1] = 't';
|
||
+ }else if( a==2 ){
|
||
+ bufpt[0] = 'n';
|
||
+ bufpt[1] = 'd';
|
||
+ }else if( a==3 ){
|
||
+ bufpt[0] = 'r';
|
||
+ bufpt[1] = 'd';
|
||
+ }
|
||
+ }
|
||
+ {
|
||
+ register char *cset; /* Use registers for speed */
|
||
+ register int base;
|
||
+ cset = infop->charset;
|
||
+ base = infop->base;
|
||
+ do{ /* Convert to ascii */
|
||
+ *(--bufpt) = cset[longvalue%base];
|
||
+ longvalue = longvalue/base;
|
||
+ }while( longvalue>0 );
|
||
+ }
|
||
+ length = (int)(&buf[BUFSIZE]-bufpt);
|
||
+ if(infop->fmttype == 'p')
|
||
+ {
|
||
+ precision = 8;
|
||
+ flag_alternateform = 1;
|
||
+ }
|
||
+
|
||
+ for(idx=precision-length; idx>0; idx--){
|
||
+ *(--bufpt) = '0'; /* Zero pad */
|
||
+ }
|
||
+ if( prefix ) *(--bufpt) = prefix; /* Add sign */
|
||
+ if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */
|
||
+ char *pre, x;
|
||
+ pre = infop->prefix;
|
||
+ if( *bufpt!=pre[0] ){
|
||
+ for(pre=infop->prefix; (x=(*pre))!=0; pre++) *(--bufpt) = x;
|
||
+ }
|
||
+ }
|
||
+
|
||
+ length = (int)(&buf[BUFSIZE]-bufpt);
|
||
+ break;
|
||
+ case FLOAT:
|
||
+ case EXP:
|
||
+ case GENERIC:
|
||
+ realvalue = va_arg(ap,double);
|
||
+#ifndef NOFLOATINGPOINT
|
||
+ if( precision<0 ) precision = 6; /* Set default precision */
|
||
+ if( precision>BUFSIZE-10 ) precision = BUFSIZE-10;
|
||
+ if( realvalue<0.0 ){
|
||
+ realvalue = -realvalue;
|
||
+ prefix = '-';
|
||
+ }else{
|
||
+ if( flag_plussign ) prefix = '+';
|
||
+ else if( flag_blanksign ) prefix = ' ';
|
||
+ else prefix = 0;
|
||
+ }
|
||
+ if( infop->type==GENERIC && precision>0 ) precision--;
|
||
+ rounder = 0.0;
|
||
+#ifdef COMPATIBILITY
|
||
+ /* Rounding works like BSD when the constant 0.4999 is used. Wierd! */
|
||
+ for(idx=precision, rounder=0.4999; idx>0; idx--, rounder*=0.1);
|
||
+#else
|
||
+ /* It makes more sense to use 0.5 */
|
||
+ if( precision>MAXDIG-1 ) idx = MAXDIG-1;
|
||
+ else idx = precision;
|
||
+ for(rounder=0.5; idx>0; idx--, rounder*=0.1);
|
||
+#endif
|
||
+ if( infop->type==FLOAT ) realvalue += rounder;
|
||
+ /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */
|
||
+ exp = 0;
|
||
+ if( realvalue>0.0 ){
|
||
+ int k = 0;
|
||
+ while( realvalue>=1e8 && k++<100 ){ realvalue *= 1e-8; exp+=8; }
|
||
+ while( realvalue>=10.0 && k++<100 ){ realvalue *= 0.1; exp++; }
|
||
+ while( realvalue<1e-8 && k++<100 ){ realvalue *= 1e8; exp-=8; }
|
||
+ while( realvalue<1.0 && k++<100 ){ realvalue *= 10.0; exp--; }
|
||
+ if( k>=100 ){
|
||
+ bufpt = "NaN";
|
||
+ length = 3;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ bufpt = buf;
|
||
+ /*
|
||
+ ** If the field type is GENERIC, then convert to either EXP
|
||
+ ** or FLOAT, as appropriate.
|
||
+ */
|
||
+ flag_exp = xtype==EXP;
|
||
+ if( xtype!=FLOAT ){
|
||
+ realvalue += rounder;
|
||
+ if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; }
|
||
+ }
|
||
+ if( xtype==GENERIC ){
|
||
+ flag_rtz = !flag_alternateform;
|
||
+ if( exp<-4 || exp>precision ){
|
||
+ xtype = EXP;
|
||
+ }else{
|
||
+ precision = precision - exp;
|
||
+ xtype = FLOAT;
|
||
+ }
|
||
+ }else{
|
||
+ flag_rtz = 0;
|
||
+ }
|
||
+ /*
|
||
+ ** The "exp+precision" test causes output to be of type EXP if
|
||
+ ** the precision is too large to fit in buf[].
|
||
+ */
|
||
+ nsd = 0;
|
||
+ if( xtype==FLOAT && exp+precision<BUFSIZE-30 ){
|
||
+ flag_dp = (precision>0 || flag_alternateform);
|
||
+ if( prefix ) *(bufpt++) = prefix; /* Sign */
|
||
+ if( exp<0 ) *(bufpt++) = '0'; /* Digits before "." */
|
||
+ else for(; exp>=0; exp--) *(bufpt++) = getdigit(&realvalue,&nsd);
|
||
+ if( flag_dp ) *(bufpt++) = '.'; /* The decimal point */
|
||
+ for(exp++; exp<0 && precision>0; precision--, exp++){
|
||
+ *(bufpt++) = '0';
|
||
+ }
|
||
+ while( (precision--)>0 ) *(bufpt++) = getdigit(&realvalue,&nsd);
|
||
+ *(bufpt--) = 0; /* Null terminate */
|
||
+ if( flag_rtz && flag_dp ){ /* Remove trailing zeros and "." */
|
||
+ while( bufpt>=buf && *bufpt=='0' ) *(bufpt--) = 0;
|
||
+ if( bufpt>=buf && *bufpt=='.' ) *(bufpt--) = 0;
|
||
+ }
|
||
+ bufpt++; /* point to next free slot */
|
||
+ }else{ /* EXP or GENERIC */
|
||
+ flag_dp = (precision>0 || flag_alternateform);
|
||
+ if( prefix ) *(bufpt++) = prefix; /* Sign */
|
||
+ *(bufpt++) = getdigit(&realvalue,&nsd); /* First digit */
|
||
+ if( flag_dp ) *(bufpt++) = '.'; /* Decimal point */
|
||
+ while( (precision--)>0 ) *(bufpt++) = getdigit(&realvalue,&nsd);
|
||
+ bufpt--; /* point to last digit */
|
||
+ if( flag_rtz && flag_dp ){ /* Remove tail zeros */
|
||
+ while( bufpt>=buf && *bufpt=='0' ) *(bufpt--) = 0;
|
||
+ if( bufpt>=buf && *bufpt=='.' ) *(bufpt--) = 0;
|
||
+ }
|
||
+ bufpt++; /* point to next free slot */
|
||
+ if( exp || flag_exp ){
|
||
+ *(bufpt++) = infop->charset[0];
|
||
+ if( exp<0 ){ *(bufpt++) = '-'; exp = -exp; } /* sign of exp */
|
||
+ else { *(bufpt++) = '+'; }
|
||
+ if( exp>=100 ){
|
||
+ *(bufpt++) = (exp/100)+'0'; /* 100's digit */
|
||
+ exp %= 100;
|
||
+ }
|
||
+ *(bufpt++) = exp/10+'0'; /* 10's digit */
|
||
+ *(bufpt++) = exp%10+'0'; /* 1's digit */
|
||
+ }
|
||
+ }
|
||
+ /* The converted number is in buf[] and zero terminated. Output it.
|
||
+ ** Note that the number is in the usual order, not reversed as with
|
||
+ ** integer conversions. */
|
||
+ length = (int)(bufpt-buf);
|
||
+ bufpt = buf;
|
||
+
|
||
+ /* Special case: Add leading zeros if the flag_zeropad flag is
|
||
+ ** set and we are not left justified */
|
||
+ if( flag_zeropad && !flag_leftjustify && length < width){
|
||
+ int i;
|
||
+ int nPad = width - length;
|
||
+ for(i=width; i>=nPad; i--){
|
||
+ bufpt[i] = bufpt[i-nPad];
|
||
+ }
|
||
+ i = prefix!=0;
|
||
+ while( nPad-- ) bufpt[i++] = '0';
|
||
+ length = width;
|
||
+ }
|
||
+#endif
|
||
+ break;
|
||
+ case SIZE:
|
||
+ *(va_arg(ap,int*)) = count;
|
||
+ length = width = 0;
|
||
+ break;
|
||
+ case PERCENT:
|
||
+ buf[0] = '%';
|
||
+ bufpt = buf;
|
||
+ length = 1;
|
||
+ break;
|
||
+ case CHARLIT:
|
||
+ case CHAR:
|
||
+ c = buf[0] = (xtype==CHAR ? va_arg(ap,int) : *++fmt);
|
||
+ if( precision>=0 ){
|
||
+ for(idx=1; idx<precision; idx++) buf[idx] = c;
|
||
+ length = precision;
|
||
+ }else{
|
||
+ length =1;
|
||
+ }
|
||
+ bufpt = buf;
|
||
+ break;
|
||
+ case STRING:
|
||
+ case MEM_STRING:
|
||
+ zMem = bufpt = va_arg(ap,char*);
|
||
+ if( bufpt==0 ) bufpt = "(null)";
|
||
+ length = strlen(bufpt);
|
||
+ if( precision>=0 && precision<length ) length = precision;
|
||
+ break;
|
||
+ case SEEIT:
|
||
+ {
|
||
+ int i;
|
||
+ int c;
|
||
+ char *arg = va_arg(ap,char*);
|
||
+ for(i=0; i<BUFSIZE-1 && (c = *arg++)!=0; i++){
|
||
+ if( c<0x20 || c>=0x7f ){
|
||
+ buf[i++] = '^';
|
||
+ buf[i] = (c&0x1f)+0x40;
|
||
+ }else{
|
||
+ buf[i] = c;
|
||
+ }
|
||
+ }
|
||
+ bufpt = buf;
|
||
+ length = i;
|
||
+ if( precision>=0 && precision<length ) length = precision;
|
||
+ }
|
||
+ break;
|
||
+ case ERROR:
|
||
+ buf[0] = '%';
|
||
+ buf[1] = c;
|
||
+ errorflag = 0;
|
||
+ idx = 1+(c!=0);
|
||
+ (*func)("%",idx,arg);
|
||
+ count += idx;
|
||
+ if( c==0 ) fmt--;
|
||
+ break;
|
||
+ }/* End switch over the format type */
|
||
+ /*
|
||
+ ** The text of the conversion is pointed to by "bufpt" and is
|
||
+ ** "length" characters long. The field width is "width". Do
|
||
+ ** the output.
|
||
+ */
|
||
+ if( !flag_leftjustify ){
|
||
+ register int nspace;
|
||
+ nspace = width-length;
|
||
+ if( nspace>0 ){
|
||
+ if( flag_center ){
|
||
+ nspace = nspace/2;
|
||
+ width -= nspace;
|
||
+ flag_leftjustify = 1;
|
||
+ }
|
||
+ count += nspace;
|
||
+ while( nspace>=SPACESIZE ){
|
||
+ (*func)(spaces,SPACESIZE,arg);
|
||
+ nspace -= SPACESIZE;
|
||
+ }
|
||
+ if( nspace>0 ) (*func)(spaces,nspace,arg);
|
||
+ }
|
||
+ }
|
||
+ if( length>0 ){
|
||
+ (*func)(bufpt,length,arg);
|
||
+ count += length;
|
||
+ }
|
||
+ if( xtype==MEM_STRING && zMem ){
|
||
+ free(zMem);
|
||
+ }
|
||
+ if( flag_leftjustify ){
|
||
+ register int nspace;
|
||
+ nspace = width-length;
|
||
+ if( nspace>0 ){
|
||
+ count += nspace;
|
||
+ while( nspace>=SPACESIZE ){
|
||
+ (*func)(spaces,SPACESIZE,arg);
|
||
+ nspace -= SPACESIZE;
|
||
+ }
|
||
+ if( nspace>0 ) (*func)(spaces,nspace,arg);
|
||
+ }
|
||
+ }
|
||
+ }/* End for loop over the format string */
|
||
+ return errorflag ? -1 : count;
|
||
+} /* End of function */
|
||
+#endif
|
||
+
|
||
+#ifdef F__xprintf
|
||
+/*
|
||
+** This non-standard function is still occasionally useful....
|
||
+*/
|
||
+int xprintf(
|
||
+ void (*func)(char*,int,void*),
|
||
+ void *arg,
|
||
+ const char *format,
|
||
+ ...
|
||
+){
|
||
+ va_list ap;
|
||
+ va_start(ap,format);
|
||
+ return vxprintf(func,arg,format,ap);
|
||
+}
|
||
+#endif
|
||
+
|
||
+/*
|
||
+** Now for string-print, also as found in any standard library.
|
||
+** Add to this the snprint function which stops added characters
|
||
+** to the string at a given length.
|
||
+**
|
||
+** Note that snprint returns the length of the string as it would
|
||
+** be if there were no limit on the output.
|
||
+*/
|
||
+struct s_strargument { /* Describes the string being written to */
|
||
+ char *next; /* Next free slot in the string */
|
||
+ char *last; /* Last available slot in the string */
|
||
+};
|
||
+
|
||
+void __sout(char *, int, void *);
|
||
+#ifdef F___sout
|
||
+void __sout(txt,amt,arg)
|
||
+ char *txt;
|
||
+ int amt;
|
||
+ void *arg;
|
||
+{
|
||
+ register char *head;
|
||
+ register const char *t;
|
||
+ register int a;
|
||
+ register char *tail;
|
||
+ a = amt;
|
||
+ t = txt;
|
||
+ head = ((struct s_strargument*)arg)->next;
|
||
+ tail = ((struct s_strargument*)arg)->last;
|
||
+ if( tail ){
|
||
+ while( a-- >0 && head<tail ) *(head++) = *(t++);
|
||
+ }else{
|
||
+ while( a-- >0 ) *(head++) = *(t++);
|
||
+ }
|
||
+ *head = 0;
|
||
+ ((struct s_strargument*)arg)->next = head;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_vsnprintf
|
||
+int vsnprintf(char *buf, size_t n, const char *fmt, va_list ap){
|
||
+ struct s_strargument arg;
|
||
+ arg.next = buf;
|
||
+ arg.last = &buf[n-1];
|
||
+ *buf = 0;
|
||
+ return vxprintf(__sout,&arg,fmt,ap);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_snprintf
|
||
+int snprintf(char *str, size_t sz, const char *format, ...)
|
||
+{
|
||
+ va_list args;
|
||
+ struct s_strargument arg;
|
||
+ int ret;
|
||
+
|
||
+ arg.next = str;
|
||
+ arg.last = &str[sz-1];
|
||
+
|
||
+ va_start(args, format);
|
||
+ ret = vxprintf(__sout, &arg, format, args);
|
||
+ va_end(args);
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_vsprintf
|
||
+int vsprintf(char *buf, const char *fmt, va_list ap){
|
||
+ struct s_strargument arg;
|
||
+ arg.next = buf;
|
||
+ arg.last = NULL;
|
||
+ *buf = 0;
|
||
+ return vxprintf(__sout,&arg,fmt,ap);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_sprintf
|
||
+int sprintf (char *str, const char *format, ...)
|
||
+{
|
||
+ va_list args;
|
||
+ struct s_strargument arg;
|
||
+ int ret;
|
||
+
|
||
+ arg.next = str;
|
||
+ arg.last = NULL;
|
||
+
|
||
+ va_start(args, format);
|
||
+ ret = vxprintf(__sout, &arg, format, args);
|
||
+ va_end(args);
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/*
|
||
+** The following section of code handles the mprintf routine, that
|
||
+** writes to memory obtained from malloc().
|
||
+*/
|
||
+
|
||
+/* This structure is used to store state information about the
|
||
+** write in progress
|
||
+*/
|
||
+struct sgMprintf {
|
||
+ char *zBase; /* A base allocation */
|
||
+ char *zText; /* The string collected so far */
|
||
+ int nChar; /* Length of the string so far */
|
||
+ int nAlloc; /* Amount of space allocated in zText */
|
||
+};
|
||
+
|
||
+void __mout(char *, int, void*);
|
||
+
|
||
+#ifdef F___mout
|
||
+/* The xprintf callback function. */
|
||
+void __mout(zNewText,nNewChar,arg)
|
||
+ char *zNewText;
|
||
+ int nNewChar;
|
||
+ void *arg;
|
||
+{
|
||
+ struct sgMprintf *pM = (struct sgMprintf*)arg;
|
||
+ if( pM->nChar + nNewChar + 1 > pM->nAlloc ){
|
||
+ pM->nAlloc = pM->nChar + nNewChar*2 + 1;
|
||
+ if( pM->zText==pM->zBase ){
|
||
+ pM->zText = malloc(pM->nAlloc);
|
||
+ if( pM->zText && pM->nChar ) memcpy(pM->zText,pM->zBase,pM->nChar);
|
||
+ }else{
|
||
+ pM->zText = realloc(pM->zText, pM->nAlloc);
|
||
+ }
|
||
+ }
|
||
+ if( pM->zText ){
|
||
+ memcpy(&pM->zText[pM->nChar], zNewText, nNewChar);
|
||
+ pM->nChar += nNewChar;
|
||
+ pM->zText[pM->nChar] = 0;
|
||
+ }
|
||
+}
|
||
+#endif
|
||
+
|
||
+/*
|
||
+** mprintf() works like printf(), but allocations memory to hold the
|
||
+** resulting string and returns a pointer to the allocated memory.
|
||
+**
|
||
+** We changed the name to TclMPrint() to conform with the Tcl private
|
||
+** routine naming conventions.
|
||
+*/
|
||
+
|
||
+#ifdef F_mprintf
|
||
+char *mprintf(const char *zFormat, ...){
|
||
+ va_list ap;
|
||
+ struct sgMprintf sMprintf;
|
||
+ char *zNew;
|
||
+ char zBuf[200];
|
||
+
|
||
+ va_start(ap,zFormat);
|
||
+ sMprintf.nChar = 0;
|
||
+ sMprintf.nAlloc = sizeof(zBuf);
|
||
+ sMprintf.zText = zBuf;
|
||
+ sMprintf.zBase = zBuf;
|
||
+ vxprintf(__mout,&sMprintf,zFormat,ap);
|
||
+ va_end(ap);
|
||
+ if( sMprintf.zText==sMprintf.zBase ){
|
||
+ zNew = malloc( sMprintf.nChar+1 );
|
||
+ if( zNew ) strcpy(zNew,zBuf);
|
||
+ }else{
|
||
+ zNew = realloc(sMprintf.zText,sMprintf.nChar+1);
|
||
+ }
|
||
+
|
||
+ return zNew;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/* This is the varargs version of mprintf.
|
||
+**
|
||
+** The name is changed to TclVMPrintf() to conform with Tcl naming
|
||
+** conventions.
|
||
+*/
|
||
+#ifdef F_vmprintf
|
||
+char *vmprintf(const char *zFormat,va_list ap){
|
||
+ struct sgMprintf sMprintf;
|
||
+ char zBuf[200];
|
||
+ sMprintf.nChar = 0;
|
||
+ sMprintf.zText = zBuf;
|
||
+ sMprintf.nAlloc = sizeof(zBuf);
|
||
+ sMprintf.zBase = zBuf;
|
||
+ vxprintf(__mout,&sMprintf,zFormat,ap);
|
||
+ if( sMprintf.zText==sMprintf.zBase ){
|
||
+ sMprintf.zText = malloc( strlen(zBuf)+1 );
|
||
+ if( sMprintf.zText ) strcpy(sMprintf.zText,zBuf);
|
||
+ }else{
|
||
+ sMprintf.zText = realloc(sMprintf.zText,sMprintf.nChar+1);
|
||
+ }
|
||
+ return sMprintf.zText;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_asprintf
|
||
+int asprintf(char ** strp, const char *zFormat, ...){
|
||
+ va_list ap;
|
||
+ struct sgMprintf sMprintf;
|
||
+ char *zNew;
|
||
+ char zBuf[200];
|
||
+
|
||
+ va_start(ap,zFormat);
|
||
+ sMprintf.nChar = 0;
|
||
+ sMprintf.nAlloc = sizeof(zBuf);
|
||
+ sMprintf.zText = zBuf;
|
||
+ sMprintf.zBase = zBuf;
|
||
+ vxprintf(__mout,&sMprintf,zFormat,ap);
|
||
+ va_end(ap);
|
||
+ if( sMprintf.zText==sMprintf.zBase ){
|
||
+ zNew = malloc( sMprintf.nChar+1 );
|
||
+ if( zNew ) strcpy(zNew,zBuf);
|
||
+ }else{
|
||
+ zNew = realloc(sMprintf.zText,sMprintf.nChar+1);
|
||
+ }
|
||
+
|
||
+ *strp = zNew;
|
||
+
|
||
+ return sMprintf.nChar+1;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_vasprintf
|
||
+int vasprintf(char **strp, const char *format, va_list ap) {
|
||
+ struct sgMprintf sMprintf;
|
||
+ char zBuf[200];
|
||
+ sMprintf.nChar = 0;
|
||
+ sMprintf.zText = zBuf;
|
||
+ sMprintf.nAlloc = sizeof(zBuf);
|
||
+ sMprintf.zBase = zBuf;
|
||
+ vxprintf(__mout,&sMprintf,format,ap);
|
||
+ if( sMprintf.zText==sMprintf.zBase ){
|
||
+ sMprintf.zText = malloc( strlen(zBuf)+1 );
|
||
+ if( sMprintf.zText ) strcpy(sMprintf.zText,zBuf);
|
||
+ }else{
|
||
+ sMprintf.zText = realloc(sMprintf.zText,sMprintf.nChar+1);
|
||
+ }
|
||
+ *strp = sMprintf.zText;
|
||
+ return sMprintf.nChar;
|
||
+}
|
||
+#endif
|
||
+
|
||
+/*
|
||
+** The following section of code handles the standard fprintf routines
|
||
+** for pthreads.
|
||
+*/
|
||
+
|
||
+void __fout(char *, int, void *);
|
||
+
|
||
+#ifdef F___fout
|
||
+void __fout(zNewText,nNewChar,arg)
|
||
+ char *zNewText;
|
||
+ int nNewChar;
|
||
+ void *arg;
|
||
+{
|
||
+ fwrite(zNewText,1,nNewChar,(FILE*)arg);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_fprintf
|
||
+/* The public interface routines */
|
||
+int fprintf(FILE *pOut, const char *zFormat, ...){
|
||
+ va_list ap;
|
||
+ int retc;
|
||
+
|
||
+ va_start(ap,zFormat);
|
||
+ retc = vxprintf(__fout,pOut,zFormat,ap);
|
||
+ va_end(ap);
|
||
+ return retc;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_vfprintf
|
||
+int vfprintf(FILE *pOut, const char *zFormat, va_list ap){
|
||
+ return vxprintf(__fout,pOut,zFormat,ap);
|
||
+}
|
||
+#endif
|
||
+
|
||
+
|
||
+#ifdef F_printf
|
||
+int printf(const char *format, ...)
|
||
+{
|
||
+ va_list args;
|
||
+ int ret;
|
||
+
|
||
+ va_start(args, format);
|
||
+ ret = vprintf(format, args);
|
||
+ va_end(args);
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F_vprintf
|
||
+int vprintf(const char *format, va_list args)
|
||
+{
|
||
+ return vxprintf(__fout, stdout, format, args);
|
||
+}
|
||
+#endif
|
||
+
|
||
+#ifdef F__sprintf_r
|
||
+/* Idiotic kludge to get around newlib stupidity. tmpnam() calls this
|
||
+ directly, but since sprintf() above replaces newlib's sprintf() (and
|
||
+ _sprintf_r()) we have to define this in order to link tmpnam(). */
|
||
+int _sprintf_r(struct _reent *unused, char *str, const char *format, ...)
|
||
+{
|
||
+ va_list args;
|
||
+ struct s_strargument arg;
|
||
+ int ret;
|
||
+
|
||
+ (void) unused;
|
||
+ arg.next = str;
|
||
+ arg.last = NULL;
|
||
+
|
||
+ va_start(args, format);
|
||
+ ret = vxprintf(__sout, &arg, format, args);
|
||
+ va_end(args);
|
||
+
|
||
+ return ret;
|
||
+}
|
||
+#endif
|