mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-13 23:35:30 +00:00
Add pthread support.
This commit is contained in:
parent
1f5e9b0758
commit
b6661a118c
5
CHANGES
5
CHANGES
@ -1,8 +1,11 @@
|
|||||||
CHANGES - 2007-09-15
|
CHANGES - 2007-09-22
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
CHANGES IN Mini-XML 2.4
|
CHANGES IN Mini-XML 2.4
|
||||||
|
|
||||||
|
- All global settings (custom, error, and entity callbacks
|
||||||
|
and the wrap margin) are now managed separately for each
|
||||||
|
thread.
|
||||||
- Added mxmlElementDeleteAttr() function (STR #59)
|
- Added mxmlElementDeleteAttr() function (STR #59)
|
||||||
- mxmlElementSetAttrf() did not work (STR #57)
|
- mxmlElementSetAttrf() did not work (STR #57)
|
||||||
- mxmlLoad*() incorrectly treated declarations as parent
|
- mxmlLoad*() incorrectly treated declarations as parent
|
||||||
|
@ -24,13 +24,14 @@ AR = @AR@
|
|||||||
ARFLAGS = @ARFLAGS@
|
ARFLAGS = @ARFLAGS@
|
||||||
ARCHFLAGS = @ARCHFLAGS@
|
ARCHFLAGS = @ARCHFLAGS@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = $(OPTIM) $(ARCHFLAGS) @CFLAGS@ @CPPFLAGS@
|
CFLAGS = $(OPTIM) $(ARCHFLAGS) @CFLAGS@ @CPPFLAGS@ @PTHREAD_FLAGS@
|
||||||
CP = @CP@
|
CP = @CP@
|
||||||
DSO = @DSO@
|
DSO = @DSO@
|
||||||
DSOFLAGS = @DSOFLAGS@
|
DSOFLAGS = @DSOFLAGS@
|
||||||
LDFLAGS = $(OPTIM) $(ARCHFLAGS) @LDFLAGS@
|
LDFLAGS = $(OPTIM) $(ARCHFLAGS) @LDFLAGS@
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
LIBMXML = @LIBMXML@
|
LIBMXML = @LIBMXML@
|
||||||
|
LIBS = @LIBS@ @PTHREAD_LIBS@
|
||||||
LN = @LN@ -s
|
LN = @LN@ -s
|
||||||
MKDIR = @MKDIR@
|
MKDIR = @MKDIR@
|
||||||
OPTIM = @OPTIM@
|
OPTIM = @OPTIM@
|
||||||
@ -279,10 +280,10 @@ libmxml.1.dylib: $(LIBOBJS)
|
|||||||
#
|
#
|
||||||
|
|
||||||
mxmldoc: $(LIBMXML) mxmldoc.o
|
mxmldoc: $(LIBMXML) mxmldoc.o
|
||||||
$(CC) -L. $(LDFLAGS) -o $@ mxmldoc.o -lmxml
|
$(CC) -L. $(LDFLAGS) -o $@ mxmldoc.o -lmxml $(LIBS)
|
||||||
|
|
||||||
mxmldoc-static: libmxml.a mxmldoc.o
|
mxmldoc-static: libmxml.a mxmldoc.o
|
||||||
$(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a
|
$(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a $(LIBS)
|
||||||
|
|
||||||
mxmldoc.o: mxml.h
|
mxmldoc.o: mxml.h
|
||||||
|
|
||||||
@ -292,7 +293,7 @@ mxmldoc.o: mxml.h
|
|||||||
#
|
#
|
||||||
|
|
||||||
testmxml: libmxml.a testmxml.o
|
testmxml: libmxml.a testmxml.o
|
||||||
$(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a
|
$(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS)
|
||||||
@echo Testing library...
|
@echo Testing library...
|
||||||
./testmxml test.xml >temp1.xml 2>temp1s.xml
|
./testmxml test.xml >temp1.xml 2>temp1s.xml
|
||||||
./testmxml temp1.xml >temp2.xml 2>temp2s.xml
|
./testmxml temp1.xml >temp2.xml 2>temp2s.xml
|
||||||
|
@ -56,6 +56,13 @@
|
|||||||
#undef HAVE_STRDUP
|
#undef HAVE_STRDUP
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have threading support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef HAVE_PTHREAD_H
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define prototypes for string functions as needed...
|
* Define prototypes for string functions as needed...
|
||||||
*/
|
*/
|
||||||
|
905
configure
vendored
905
configure
vendored
@ -577,6 +577,42 @@ PACKAGE_STRING=
|
|||||||
PACKAGE_BUGREPORT=
|
PACKAGE_BUGREPORT=
|
||||||
|
|
||||||
ac_unique_file="mxml.h"
|
ac_unique_file="mxml.h"
|
||||||
|
# Factoring default headers for most tests.
|
||||||
|
ac_includes_default="\
|
||||||
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
# include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
|
# include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <stddef.h>
|
||||||
|
#else
|
||||||
|
# ifdef HAVE_STDLIB_H
|
||||||
|
# include <stdlib.h>
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
|
||||||
|
# include <memory.h>
|
||||||
|
# endif
|
||||||
|
# include <string.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRINGS_H
|
||||||
|
# include <strings.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_INTTYPES_H
|
||||||
|
# include <inttypes.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif"
|
||||||
|
|
||||||
ac_subst_vars='SHELL
|
ac_subst_vars='SHELL
|
||||||
PATH_SEPARATOR
|
PATH_SEPARATOR
|
||||||
PACKAGE_NAME
|
PACKAGE_NAME
|
||||||
@ -637,6 +673,11 @@ LN
|
|||||||
MKDIR
|
MKDIR
|
||||||
RM
|
RM
|
||||||
ARFLAGS
|
ARFLAGS
|
||||||
|
CPP
|
||||||
|
GREP
|
||||||
|
EGREP
|
||||||
|
PTHREAD_FLAGS
|
||||||
|
PTHREAD_LIBS
|
||||||
DSO
|
DSO
|
||||||
DSOFLAGS
|
DSOFLAGS
|
||||||
LIBMXML
|
LIBMXML
|
||||||
@ -656,7 +697,8 @@ LIBS
|
|||||||
CPPFLAGS
|
CPPFLAGS
|
||||||
CXX
|
CXX
|
||||||
CXXFLAGS
|
CXXFLAGS
|
||||||
CCC'
|
CCC
|
||||||
|
CPP'
|
||||||
|
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
@ -1226,6 +1268,7 @@ Optional Features:
|
|||||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||||
--enable-debug turn on debugging, default=no
|
--enable-debug turn on debugging, default=no
|
||||||
|
--enable-threads enable multi-threading support
|
||||||
--enable-shared turn on shared libraries, default=no
|
--enable-shared turn on shared libraries, default=no
|
||||||
|
|
||||||
Optional Packages:
|
Optional Packages:
|
||||||
@ -1246,6 +1289,7 @@ Some influential environment variables:
|
|||||||
you have headers in a nonstandard directory <include dir>
|
you have headers in a nonstandard directory <include dir>
|
||||||
CXX C++ compiler command
|
CXX C++ compiler command
|
||||||
CXXFLAGS C++ compiler flags
|
CXXFLAGS C++ compiler flags
|
||||||
|
CPP C preprocessor
|
||||||
|
|
||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
@ -3712,6 +3756,858 @@ done
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check whether --enable-threads was given.
|
||||||
|
if test "${enable_threads+set}" = set; then
|
||||||
|
enableval=$enable_threads;
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
have_pthread=no
|
||||||
|
PTHREAD_FLAGS=""
|
||||||
|
PTHREAD_LIBS=""
|
||||||
|
|
||||||
|
if test "x$enable_threads" != xno; then
|
||||||
|
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
|
||||||
|
{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
|
||||||
|
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
|
||||||
|
# On Suns, sometimes $CPP names a directory.
|
||||||
|
if test -n "$CPP" && test -d "$CPP"; then
|
||||||
|
CPP=
|
||||||
|
fi
|
||||||
|
if test -z "$CPP"; then
|
||||||
|
if test "${ac_cv_prog_CPP+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
# Double quotes because CPP needs to be expanded
|
||||||
|
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
|
||||||
|
do
|
||||||
|
ac_preproc_ok=false
|
||||||
|
for ac_c_preproc_warn_flag in '' yes
|
||||||
|
do
|
||||||
|
# Use a header file that comes with gcc, so configuring glibc
|
||||||
|
# with a fresh cross-compiler works.
|
||||||
|
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||||
|
# <limits.h> exists even on freestanding compilers.
|
||||||
|
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||||
|
# not just through cpp. "Syntax error" is here to catch this case.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#ifdef __STDC__
|
||||||
|
# include <limits.h>
|
||||||
|
#else
|
||||||
|
# include <assert.h>
|
||||||
|
#endif
|
||||||
|
Syntax error
|
||||||
|
_ACEOF
|
||||||
|
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
# Broken: fails on valid input.
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
|
||||||
|
# OK, works on sane cases. Now check whether nonexistent headers
|
||||||
|
# can be detected and how.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <ac_nonexistent.h>
|
||||||
|
_ACEOF
|
||||||
|
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
# Broken: success on invalid input.
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
# Passes both tests.
|
||||||
|
ac_preproc_ok=:
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
|
||||||
|
done
|
||||||
|
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
if $ac_preproc_ok; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
ac_cv_prog_CPP=$CPP
|
||||||
|
|
||||||
|
fi
|
||||||
|
CPP=$ac_cv_prog_CPP
|
||||||
|
else
|
||||||
|
ac_cv_prog_CPP=$CPP
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $CPP" >&5
|
||||||
|
echo "${ECHO_T}$CPP" >&6; }
|
||||||
|
ac_preproc_ok=false
|
||||||
|
for ac_c_preproc_warn_flag in '' yes
|
||||||
|
do
|
||||||
|
# Use a header file that comes with gcc, so configuring glibc
|
||||||
|
# with a fresh cross-compiler works.
|
||||||
|
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||||
|
# <limits.h> exists even on freestanding compilers.
|
||||||
|
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||||
|
# not just through cpp. "Syntax error" is here to catch this case.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#ifdef __STDC__
|
||||||
|
# include <limits.h>
|
||||||
|
#else
|
||||||
|
# include <assert.h>
|
||||||
|
#endif
|
||||||
|
Syntax error
|
||||||
|
_ACEOF
|
||||||
|
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
# Broken: fails on valid input.
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
|
||||||
|
# OK, works on sane cases. Now check whether nonexistent headers
|
||||||
|
# can be detected and how.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <ac_nonexistent.h>
|
||||||
|
_ACEOF
|
||||||
|
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
# Broken: success on invalid input.
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
# Passes both tests.
|
||||||
|
ac_preproc_ok=:
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
|
||||||
|
done
|
||||||
|
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
if $ac_preproc_ok; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
{ { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
|
||||||
|
See \`config.log' for more details." >&5
|
||||||
|
echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
|
||||||
|
See \`config.log' for more details." >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
|
||||||
|
echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_path_GREP+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
# Extract the first word of "grep ggrep" to use in msg output
|
||||||
|
if test -z "$GREP"; then
|
||||||
|
set dummy grep ggrep; ac_prog_name=$2
|
||||||
|
if test "${ac_cv_path_GREP+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
ac_path_GREP_found=false
|
||||||
|
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_prog in grep ggrep; do
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
|
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
||||||
|
# Check for GNU ac_path_GREP and select it if it is found.
|
||||||
|
# Check for GNU $ac_path_GREP
|
||||||
|
case `"$ac_path_GREP" --version 2>&1` in
|
||||||
|
*GNU*)
|
||||||
|
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
||||||
|
*)
|
||||||
|
ac_count=0
|
||||||
|
echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||||
|
mv "conftest.tmp" "conftest.in"
|
||||||
|
cp "conftest.in" "conftest.nl"
|
||||||
|
echo 'GREP' >> "conftest.nl"
|
||||||
|
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||||
|
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||||
|
ac_count=`expr $ac_count + 1`
|
||||||
|
if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
||||||
|
# Best one so far, save it but keep looking for a better one
|
||||||
|
ac_cv_path_GREP="$ac_path_GREP"
|
||||||
|
ac_path_GREP_max=$ac_count
|
||||||
|
fi
|
||||||
|
# 10*(2^10) chars as input seems more than enough
|
||||||
|
test $ac_count -gt 10 && break
|
||||||
|
done
|
||||||
|
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
$ac_path_GREP_found && break 3
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
GREP="$ac_cv_path_GREP"
|
||||||
|
if test -z "$GREP"; then
|
||||||
|
{ { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
|
||||||
|
echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
ac_cv_path_GREP=$GREP
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
|
||||||
|
GREP="$ac_cv_path_GREP"
|
||||||
|
|
||||||
|
|
||||||
|
{ echo "$as_me:$LINENO: checking for egrep" >&5
|
||||||
|
echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_path_EGREP+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
|
||||||
|
then ac_cv_path_EGREP="$GREP -E"
|
||||||
|
else
|
||||||
|
# Extract the first word of "egrep" to use in msg output
|
||||||
|
if test -z "$EGREP"; then
|
||||||
|
set dummy egrep; ac_prog_name=$2
|
||||||
|
if test "${ac_cv_path_EGREP+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
ac_path_EGREP_found=false
|
||||||
|
# Loop through the user's path and test for each of PROGNAME-LIST
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
test -z "$as_dir" && as_dir=.
|
||||||
|
for ac_prog in egrep; do
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
|
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
||||||
|
# Check for GNU ac_path_EGREP and select it if it is found.
|
||||||
|
# Check for GNU $ac_path_EGREP
|
||||||
|
case `"$ac_path_EGREP" --version 2>&1` in
|
||||||
|
*GNU*)
|
||||||
|
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
|
||||||
|
*)
|
||||||
|
ac_count=0
|
||||||
|
echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
||||||
|
mv "conftest.tmp" "conftest.in"
|
||||||
|
cp "conftest.in" "conftest.nl"
|
||||||
|
echo 'EGREP' >> "conftest.nl"
|
||||||
|
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
||||||
|
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
||||||
|
ac_count=`expr $ac_count + 1`
|
||||||
|
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
|
||||||
|
# Best one so far, save it but keep looking for a better one
|
||||||
|
ac_cv_path_EGREP="$ac_path_EGREP"
|
||||||
|
ac_path_EGREP_max=$ac_count
|
||||||
|
fi
|
||||||
|
# 10*(2^10) chars as input seems more than enough
|
||||||
|
test $ac_count -gt 10 && break
|
||||||
|
done
|
||||||
|
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
$ac_path_EGREP_found && break 3
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
EGREP="$ac_cv_path_EGREP"
|
||||||
|
if test -z "$EGREP"; then
|
||||||
|
{ { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
|
||||||
|
echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
|
||||||
|
{ (exit 1); exit 1; }; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
ac_cv_path_EGREP=$EGREP
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
|
||||||
|
EGREP="$ac_cv_path_EGREP"
|
||||||
|
|
||||||
|
|
||||||
|
{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
|
||||||
|
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_header_stdc+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_compile") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest.$ac_objext; then
|
||||||
|
ac_cv_header_stdc=yes
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_cv_header_stdc=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
|
||||||
|
if test $ac_cv_header_stdc = yes; then
|
||||||
|
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||||
|
$EGREP "memchr" >/dev/null 2>&1; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
ac_cv_header_stdc=no
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ac_cv_header_stdc = yes; then
|
||||||
|
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||||
|
$EGREP "free" >/dev/null 2>&1; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
ac_cv_header_stdc=no
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ac_cv_header_stdc = yes; then
|
||||||
|
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
|
||||||
|
if test "$cross_compiling" = yes; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#if ((' ' & 0x0FF) == 0x020)
|
||||||
|
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
||||||
|
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
|
||||||
|
#else
|
||||||
|
# define ISLOWER(c) \
|
||||||
|
(('a' <= (c) && (c) <= 'i') \
|
||||||
|
|| ('j' <= (c) && (c) <= 'r') \
|
||||||
|
|| ('s' <= (c) && (c) <= 'z'))
|
||||||
|
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
if (XOR (islower (i), ISLOWER (i))
|
||||||
|
|| toupper (i) != TOUPPER (i))
|
||||||
|
return 2;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_link") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
|
||||||
|
{ (case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_try") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; }; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "$as_me: program exited with status $ac_status" >&5
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
( exit $ac_status )
|
||||||
|
ac_cv_header_stdc=no
|
||||||
|
fi
|
||||||
|
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
|
||||||
|
if test $ac_cv_header_stdc = yes; then
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||||
|
inttypes.h stdint.h unistd.h
|
||||||
|
do
|
||||||
|
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||||
|
{ echo "$as_me:$LINENO: checking for $ac_header" >&5
|
||||||
|
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
|
||||||
|
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
|
||||||
|
#include <$ac_header>
|
||||||
|
_ACEOF
|
||||||
|
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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_compile") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest.$ac_objext; then
|
||||||
|
eval "$as_ac_Header=yes"
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
eval "$as_ac_Header=no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
ac_res=`eval echo '${'$as_ac_Header'}'`
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_res" >&5
|
||||||
|
echo "${ECHO_T}$ac_res" >&6; }
|
||||||
|
if test `eval echo '${'$as_ac_Header'}'` = yes; then
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if test "${ac_cv_header_pthread_h+set}" = set; then
|
||||||
|
{ echo "$as_me:$LINENO: checking for pthread.h" >&5
|
||||||
|
echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_header_pthread_h+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_header_pthread_h" >&6; }
|
||||||
|
else
|
||||||
|
# Is the header compilable?
|
||||||
|
{ echo "$as_me:$LINENO: checking pthread.h usability" >&5
|
||||||
|
echo $ECHO_N "checking pthread.h usability... $ECHO_C" >&6; }
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
#include <pthread.h>
|
||||||
|
_ACEOF
|
||||||
|
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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_compile") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest.$ac_objext; then
|
||||||
|
ac_header_compiler=yes
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_header_compiler=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||||
|
echo "${ECHO_T}$ac_header_compiler" >&6; }
|
||||||
|
|
||||||
|
# Is the header present?
|
||||||
|
{ echo "$as_me:$LINENO: checking pthread.h presence" >&5
|
||||||
|
echo $ECHO_N "checking pthread.h presence... $ECHO_C" >&6; }
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <pthread.h>
|
||||||
|
_ACEOF
|
||||||
|
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } >/dev/null && {
|
||||||
|
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
}; then
|
||||||
|
ac_header_preproc=yes
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_header_preproc=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.err conftest.$ac_ext
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
|
||||||
|
echo "${ECHO_T}$ac_header_preproc" >&6; }
|
||||||
|
|
||||||
|
# So? What about this header?
|
||||||
|
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
|
||||||
|
yes:no: )
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the compiler's result" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: proceeding with the compiler's result" >&2;}
|
||||||
|
ac_header_preproc=yes
|
||||||
|
;;
|
||||||
|
no:yes:* )
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: present but cannot be compiled" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: present but cannot be compiled" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: check for missing prerequisite headers?" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: check for missing prerequisite headers?" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: see the Autoconf documentation" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: see the Autoconf documentation" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the preprocessor's result" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: proceeding with the preprocessor's result" >&2;}
|
||||||
|
{ echo "$as_me:$LINENO: WARNING: pthread.h: in the future, the compiler will take precedence" >&5
|
||||||
|
echo "$as_me: WARNING: pthread.h: in the future, the compiler will take precedence" >&2;}
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
{ echo "$as_me:$LINENO: checking for pthread.h" >&5
|
||||||
|
echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_header_pthread_h+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
ac_cv_header_pthread_h=$ac_header_preproc
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_header_pthread_h" >&6; }
|
||||||
|
|
||||||
|
fi
|
||||||
|
if test $ac_cv_header_pthread_h = yes; then
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_PTHREAD_H 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test x$ac_cv_header_pthread_h = xyes; then
|
||||||
|
for flag in -lpthreads -lpthread -pthread; do
|
||||||
|
{ echo "$as_me:$LINENO: checking for pthread_create using $flag" >&5
|
||||||
|
echo $ECHO_N "checking for pthread_create using $flag... $ECHO_C" >&6; }
|
||||||
|
SAVELIBS="$LIBS"
|
||||||
|
LIBS="$flag $LIBS"
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <pthread.h>
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
pthread_create(0, 0, 0, 0);
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_link") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext &&
|
||||||
|
$as_test_x conftest$ac_exeext; then
|
||||||
|
have_pthread=yes
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
{ echo "$as_me:$LINENO: result: $have_pthread" >&5
|
||||||
|
echo "${ECHO_T}$have_pthread" >&6; }
|
||||||
|
LIBS="$SAVELIBS"
|
||||||
|
|
||||||
|
if test $have_pthread = yes; then
|
||||||
|
PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
|
||||||
|
PTHREAD_LIBS="$flag"
|
||||||
|
|
||||||
|
# Solaris requires -D_POSIX_PTHREAD_SEMANTICS to
|
||||||
|
# be POSIX-compliant... :(
|
||||||
|
if test $uname = SunOS; then
|
||||||
|
PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS"
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DSO="${DSO:=:}"
|
DSO="${DSO:=:}"
|
||||||
DSOFLAGS="${DSOFLAGS:=}"
|
DSOFLAGS="${DSOFLAGS:=}"
|
||||||
|
|
||||||
@ -4570,6 +5466,11 @@ LN!$LN$ac_delim
|
|||||||
MKDIR!$MKDIR$ac_delim
|
MKDIR!$MKDIR$ac_delim
|
||||||
RM!$RM$ac_delim
|
RM!$RM$ac_delim
|
||||||
ARFLAGS!$ARFLAGS$ac_delim
|
ARFLAGS!$ARFLAGS$ac_delim
|
||||||
|
CPP!$CPP$ac_delim
|
||||||
|
GREP!$GREP$ac_delim
|
||||||
|
EGREP!$EGREP$ac_delim
|
||||||
|
PTHREAD_FLAGS!$PTHREAD_FLAGS$ac_delim
|
||||||
|
PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim
|
||||||
DSO!$DSO$ac_delim
|
DSO!$DSO$ac_delim
|
||||||
DSOFLAGS!$DSOFLAGS$ac_delim
|
DSOFLAGS!$DSOFLAGS$ac_delim
|
||||||
LIBMXML!$LIBMXML$ac_delim
|
LIBMXML!$LIBMXML$ac_delim
|
||||||
@ -4580,7 +5481,7 @@ LIBOBJS!$LIBOBJS$ac_delim
|
|||||||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 68; then
|
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 73; then
|
||||||
break
|
break
|
||||||
elif $ac_last_try; then
|
elif $ac_last_try; then
|
||||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||||
|
40
configure.in
40
configure.in
@ -106,6 +106,46 @@ if test "x$use_vsnprintf" != xyes; then
|
|||||||
AC_CHECK_FUNCS(snprintf vsnprintf)
|
AC_CHECK_FUNCS(snprintf vsnprintf)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Threading support
|
||||||
|
AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support])
|
||||||
|
|
||||||
|
have_pthread=no
|
||||||
|
PTHREAD_FLAGS=""
|
||||||
|
PTHREAD_LIBS=""
|
||||||
|
|
||||||
|
if test "x$enable_threads" != xno; then
|
||||||
|
AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
|
||||||
|
|
||||||
|
if test x$ac_cv_header_pthread_h = xyes; then
|
||||||
|
dnl Check various threading options for the platforms we support
|
||||||
|
for flag in -lpthreads -lpthread -pthread; do
|
||||||
|
AC_MSG_CHECKING([for pthread_create using $flag])
|
||||||
|
SAVELIBS="$LIBS"
|
||||||
|
LIBS="$flag $LIBS"
|
||||||
|
AC_TRY_LINK([#include <pthread.h>],
|
||||||
|
[pthread_create(0, 0, 0, 0);],
|
||||||
|
have_pthread=yes)
|
||||||
|
AC_MSG_RESULT([$have_pthread])
|
||||||
|
LIBS="$SAVELIBS"
|
||||||
|
|
||||||
|
if test $have_pthread = yes; then
|
||||||
|
PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
|
||||||
|
PTHREAD_LIBS="$flag"
|
||||||
|
|
||||||
|
# Solaris requires -D_POSIX_PTHREAD_SEMANTICS to
|
||||||
|
# be POSIX-compliant... :(
|
||||||
|
if test $uname = SunOS; then
|
||||||
|
PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS"
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(PTHREAD_FLAGS)
|
||||||
|
AC_SUBST(PTHREAD_LIBS)
|
||||||
|
|
||||||
dnl Shared library support...
|
dnl Shared library support...
|
||||||
DSO="${DSO:=:}"
|
DSO="${DSO:=:}"
|
||||||
DSOFLAGS="${DSOFLAGS:=}"
|
DSOFLAGS="${DSOFLAGS:=}"
|
||||||
|
@ -9,6 +9,10 @@ hspace="10" width="100" height="100" alt="B"></a>Release Notes</h1>
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
|
<li>All global settings (custom, error, and entity callbacks
|
||||||
|
and the wrap margin) are now managed separately for each
|
||||||
|
thread.</li>
|
||||||
|
|
||||||
<li>Added mxmlElementDeleteAttr() function (STR #59)</li>
|
<li>Added mxmlElementDeleteAttr() function (STR #59)</li>
|
||||||
|
|
||||||
<li>mxmlElementSetAttrf() did not work (STR #57)</li>
|
<li>mxmlElementSetAttrf() did not work (STR #57)</li>
|
||||||
|
106
mxml-private.c
106
mxml-private.c
@ -18,10 +18,10 @@
|
|||||||
* Contents:
|
* Contents:
|
||||||
*
|
*
|
||||||
* mxml_error() - Display an error message.
|
* mxml_error() - Display an error message.
|
||||||
* mxml_global() - Get global data.
|
|
||||||
* mxml_integer_cb() - Default callback for integer values.
|
* mxml_integer_cb() - Default callback for integer values.
|
||||||
* mxml_opaque_cb() - Default callback for opaque values.
|
* mxml_opaque_cb() - Default callback for opaque values.
|
||||||
* mxml_real_cb() - Default callback for real number values.
|
* mxml_real_cb() - Default callback for real number values.
|
||||||
|
* _mxml_global() - Get global data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -73,28 +73,6 @@ mxml_error(const char *format, /* I - Printf-style format string */
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 'mxml_global()' - Get global data.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_mxml_global_t * /* O - Global data */
|
|
||||||
_mxml_global(void)
|
|
||||||
{
|
|
||||||
static _mxml_global_t global = /* Global data */
|
|
||||||
{
|
|
||||||
NULL, /* error_cb */
|
|
||||||
1, /* num_entity_cbs */
|
|
||||||
{ _mxml_entity_cb }, /* entity_cbs */
|
|
||||||
72, /* wrap */
|
|
||||||
NULL, /* custom_load_cb */
|
|
||||||
NULL /* custom_save_cb */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
return (&global);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 'mxml_ignore_cb()' - Default callback for ignored values.
|
* 'mxml_ignore_cb()' - Default callback for ignored values.
|
||||||
*/
|
*/
|
||||||
@ -147,6 +125,88 @@ mxml_real_cb(mxml_node_t *node) /* I - Current node */
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_PTHREAD_H /**** POSIX threading ****/
|
||||||
|
# include <pthread.h>
|
||||||
|
|
||||||
|
static pthread_key_t _mxml_key = -1; /* Thread local storage key */
|
||||||
|
static pthread_once_t _mxml_key_once = PTHREAD_ONCE_INIT;
|
||||||
|
/* One-time initialization object */
|
||||||
|
static void _mxml_init(void);
|
||||||
|
static void _mxml_destructor(void *g);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* '_mxml_global()' - Get global data.
|
||||||
|
*/
|
||||||
|
|
||||||
|
_mxml_global_t * /* O - Global data */
|
||||||
|
_mxml_global(void)
|
||||||
|
{
|
||||||
|
_mxml_global_t *global; /* Global data */
|
||||||
|
|
||||||
|
|
||||||
|
pthread_once(&_mxml_key_once, _mxml_init);
|
||||||
|
|
||||||
|
if ((global = (_mxml_global_t *)pthread_getspecific(_mxml_key)) == NULL)
|
||||||
|
{
|
||||||
|
global = (_mxml_global_t *)calloc(1, sizeof(_mxml_global_t));
|
||||||
|
pthread_setspecific(_mxml_key, global);
|
||||||
|
|
||||||
|
global->num_entity_cbs = 1;
|
||||||
|
global->entity_cbs[0] = _mxml_entity_cb;
|
||||||
|
global->wrap = 72;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (global);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* '_mxml_init()' - Initialize global data...
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
_mxml_init(void)
|
||||||
|
{
|
||||||
|
pthread_key_create(&_mxml_key, _mxml_destructor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* '_mxml_destructor()' - Free memory used for globals...
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
_mxml_destructor(void *g) /* I - Global data */
|
||||||
|
{
|
||||||
|
free(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else /**** No threading ****/
|
||||||
|
/*
|
||||||
|
* '_mxml_global()' - Get global data.
|
||||||
|
*/
|
||||||
|
|
||||||
|
_mxml_global_t * /* O - Global data */
|
||||||
|
_mxml_global(void)
|
||||||
|
{
|
||||||
|
static _mxml_global_t global = /* Global data */
|
||||||
|
{
|
||||||
|
NULL, /* error_cb */
|
||||||
|
1, /* num_entity_cbs */
|
||||||
|
{ _mxml_entity_cb }, /* entity_cbs */
|
||||||
|
72, /* wrap */
|
||||||
|
NULL, /* custom_load_cb */
|
||||||
|
NULL /* custom_save_cb */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return (&global);
|
||||||
|
}
|
||||||
|
#endif /* HAVE_PTHREAD_H */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* End of "$Id$".
|
* End of "$Id$".
|
||||||
*/
|
*/
|
||||||
|
@ -6,5 +6,5 @@ includedir=@includedir@
|
|||||||
Name: Mini-XML
|
Name: Mini-XML
|
||||||
Description: Lightweight XML support library
|
Description: Lightweight XML support library
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Libs: @PC_LIBS@
|
Libs: @PC_LIBS@ @PHTREAD_LIBS@
|
||||||
Cflags: @PC_CFLAGS@
|
Cflags: @PC_CFLAGS@ @PTHREAD_FLAGS@
|
||||||
|
Loading…
Reference in New Issue
Block a user