mirror of
https://github.com/fadden/nulib2.git
synced 2025-01-15 07:34:38 +00:00
d41016e6c1
Generalized compression method enable/disable. Now any method can be removed. Applications can call NuTestFeature() to figure out what is supported by the copy of NufxLib they're linked against.
184 lines
5.5 KiB
Plaintext
184 lines
5.5 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(NufxLibPriv.h)
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
dnl Checks for programs.
|
|
AC_CANONICAL_HOST
|
|
dnl AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_RANLIB
|
|
|
|
dnl Checks for header files.
|
|
AC_CHECK_HEADERS(fcntl.h malloc.h stdlib.h sys/stat.h sys/time.h sys/types.h \
|
|
sys/utime.h unistd.h utime.h)
|
|
|
|
LIBS=""
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_SIZE_T
|
|
AC_STRUCT_TM
|
|
AC_CHECK_TYPE(uchar, unsigned char)
|
|
AC_CHECK_TYPE(ushort, unsigned short)
|
|
AC_CHECK_TYPE(uint, unsigned int)
|
|
AC_CHECK_TYPE(ulong, unsigned long)
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS(fdopen ftruncate memmove mkdir mkstemp mktime timelocal \
|
|
localtime_r snprintf strcasecmp strncasecmp strtoul strerror vsnprintf)
|
|
|
|
dnl Kent says: snprintf doesn't always have a declaration
|
|
AC_MSG_CHECKING(if snprintf is declared)
|
|
AC_CACHE_VAL(nufxlib_cv_snprintf_in_header, [
|
|
AC_EGREP_HEADER(snprintf, stdio.h,
|
|
[nufxlib_cv_snprintf_in_header=yes],
|
|
[nufxlib_cv_snprintf_in_header=no])
|
|
])
|
|
if test $nufxlib_cv_snprintf_in_header = "yes"; then
|
|
AC_DEFINE(SNPRINTF_DECLARED)
|
|
fi
|
|
AC_MSG_RESULT($nufxlib_cv_snprintf_in_header)
|
|
|
|
dnl Kent says: vsnprintf doesn't always have a declaration
|
|
AC_MSG_CHECKING(if vsnprintf is declared)
|
|
AC_CACHE_VAL(nufxlib_cv_vsnprintf_in_header, [
|
|
AC_EGREP_HEADER(vsnprintf, stdio.h,
|
|
[nufxlib_cv_vsnprintf_in_header=yes],
|
|
[nufxlib_cv_vsnprintf_in_header=no])
|
|
])
|
|
if test $nufxlib_cv_vsnprintf_in_header = "yes"; then
|
|
AC_DEFINE(VSNPRINTF_DECLARED)
|
|
fi
|
|
AC_MSG_RESULT($nufxlib_cv_vsnprintf_in_header)
|
|
|
|
dnl Figure out what the build and link flags should be
|
|
SHARE_FLAGS='-shared'
|
|
if test "$host_cpu" = "powerpc" -a "$host_os" = "beos"; then
|
|
dnl BeOS/PPC, with Metrowerks compiler
|
|
CC=cc
|
|
GCC=
|
|
CFLAGS='-proc 603 -opt full'
|
|
SHARE_FLAGS='-shared -nostdlib'
|
|
echo "forcing CC to \"$CC\" and CFLAGS to \"$CFLAGS\""
|
|
elif test "$host_os" = "beos"; then
|
|
dnl BeOS/x86
|
|
SHARE_FLAGS='-nostartfiles -Xlinker -soname="$@"'
|
|
fi
|
|
|
|
dnl if we're using gcc, include gcc-specific warning flags
|
|
if test -z "$GCC"; then
|
|
BUILD_FLAGS='$(OPT)'
|
|
else
|
|
BUILD_FLAGS='$(OPT) $(GCC_FLAGS)'
|
|
fi
|
|
|
|
AC_SUBST(BUILD_FLAGS)
|
|
AC_SUBST(SHARE_FLAGS)
|
|
|
|
|
|
dnl BeOS doesn't like /usr/local/include, and gets feisty about it. If libdir
|
|
dnl and includedir are set to defaults, replace them with BeOS values. This
|
|
dnl might be going a little too far...
|
|
if test "$host_os" = "beos"; then
|
|
if test "$prefix" = "NONE" -a \
|
|
"$includedir" = '${prefix}/include' -a \
|
|
"$libdir" = '${exec_prefix}/lib' -a \
|
|
"$bindir" = '${exec_prefix}/bin' -a \
|
|
"$mandir" = '${prefix}/man'
|
|
then
|
|
echo replacing install locations with BeOS values
|
|
prefix=/boot
|
|
includedir='${prefix}/develop/headers'
|
|
libdir='${exec_prefix}/home/config/lib'
|
|
bindir='${exec_prefix}/home/config/bin'
|
|
mandir='/tmp'
|
|
AC_SUBST(prefix)
|
|
AC_SUBST(includedir)
|
|
AC_SUBST(libdir)
|
|
AC_SUBST(bindir)
|
|
AC_SUBST(mandir)
|
|
fi
|
|
fi
|
|
|
|
dnl Test to see if sprintf does something reasonable. I'm going to assume
|
|
dnl that vsprintf and (if available) vsnprintf return the same thing.
|
|
AC_MSG_CHECKING(if sprintf returns int)
|
|
AC_CACHE_VAL(nufxlib_cv_sprintf_returns_int, [
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
int main(void)
|
|
{
|
|
int count;
|
|
char buf[8];
|
|
count = sprintf(buf, "123"); /* should return three */
|
|
exit(count != 3);
|
|
}
|
|
],
|
|
[nufxlib_cv_sprintf_returns_int=yes], [nufxlib_cv_sprintf_returns_int=no],
|
|
[nufxlib_cv_sprintf_returns_int=no])
|
|
])
|
|
if test $nufxlib_cv_sprintf_returns_int = "yes"; then
|
|
AC_DEFINE(SPRINTF_RETURNS_INT)
|
|
fi
|
|
AC_MSG_RESULT($nufxlib_cv_sprintf_returns_int)
|
|
|
|
dnl
|
|
dnl Allow selective disabling of compression algorithms. By default,
|
|
dnl all are enabled. We do a little extra work for libz and libbz2
|
|
dnl because they're not built in.
|
|
dnl
|
|
dnl If we're creating a shared library, we need to explicitly link
|
|
dnl against libz and/or libbz2 when those features are enabled.
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(sq,
|
|
[ --disable-sq disable SQ compression],
|
|
[ ], [ enable_sq=yes ])
|
|
if test $enable_sq = "yes"; then
|
|
AC_DEFINE(ENABLE_SQ)
|
|
fi
|
|
|
|
AC_ARG_ENABLE(lzw,
|
|
[ --disable-lzw disable LZW/1 and LZW/2 compression],
|
|
[ ], [ enable_lzw=yes ])
|
|
if test $enable_lzw = "yes"; then
|
|
AC_DEFINE(ENABLE_LZW)
|
|
fi
|
|
|
|
AC_ARG_ENABLE(lzc,
|
|
[ --disable-lzc disable 12- and 16-bit LZC compression],
|
|
[ ], [ enable_lzc=yes ])
|
|
if test $enable_lzc = "yes"; then
|
|
AC_DEFINE(ENABLE_LZC)
|
|
fi
|
|
|
|
AC_ARG_ENABLE(deflate,
|
|
[ --disable-deflate disable zlib deflate compression],
|
|
[ ], [ enable_deflate=yes ])
|
|
if test $enable_deflate = "yes"; then
|
|
dnl Check for zlib. Make sure it comes with zlib.h.
|
|
AC_CHECK_LIB(z, deflate,
|
|
AC_CHECK_HEADER(zlib.h, AC_DEFINE(ENABLE_DEFLATE) LIBS="$LIBS -lz"))
|
|
fi
|
|
|
|
AC_ARG_ENABLE(bzip2,
|
|
[ --enable-bzip2 enable libbz2 bzip2 compression],
|
|
[ ], [ enable_bzip2=no ])
|
|
if test $enable_bzip2 = "yes"; then
|
|
dnl Check for libbz2. Make sure it comes with bzlib.h.
|
|
AC_CHECK_LIB(bz2, BZ2_bzCompress,
|
|
AC_CHECK_HEADER(bzlib.h, AC_DEFINE(ENABLE_BZIP2) LIBS="$LIBS -lbz2"))
|
|
fi
|
|
|
|
|
|
AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc do dmalloc stuff],
|
|
[ echo "--- enabling dmalloc";
|
|
LIBS="$LIBS -L/usr/local/lib -ldmalloc"; AC_DEFINE(USE_DMALLOC) ])
|
|
|
|
AC_OUTPUT(Makefile samples/Makefile)
|