# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_HEADERS([src/newt_core/incs/NewtConf.h]) # Checks for programs. AC_PROG_CC AC_PROG_YACC AC_PROG_LEX AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) # AC_CANONICAL_SYSTEM case "$target_os" in freebsd*) export LDFLAGS=-L/usr/local/lib export CPPFLAGS=-I/usr/local/include ;; esac # Checks for libraries. #AC_CHECK_LIB(iconv, iconv_open) SAVE_LIBS="$LIBS" LIBS="$LIBS -liconv" result='no' AC_MSG_CHECKING(checking for libiconv) AC_TRY_LINK([ #include #include ], [ iconv_t cd = iconv_open("", ""); iconv(cd, NULL, NULL, NULL, NULL); iconv_close(cd); ], AC_DEFINE(HAVE_LIBICONV) result='yes', LIBS="$SAVE_LIBS") AC_MSG_RESULT($result) HAVE_DLOPEN='no' AC_MSG_CHECKING(checking for dlopen) AC_TRY_LINK([ #include ], [ void * install_call; void * lib; lib = dlopen("", RTLD_LAZY); install_call = dlsym(lib, ""); dlclose(lib); ], HAVE_DLOPEN='yes', SAVE_LIBS="$LIBS" LIBS="$LIBS -ldl" AC_TRY_LINK([ #include ], [ void * install_call; void * lib; lib = dlopen("", RTLD_LAZY); install_call = dlsym(lib, ""); dlclose(lib); ], HAVE_DLOPEN='yes' LIBDL=" -ldl") LIBS="$SAVE_LIBS") AC_MSG_RESULT($HAVE_DLOPEN) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([inttypes.h memory.h stdint.h stdlib.h string.h unistd.h termios.h endian.h machine/endian.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_TYPE_SIZE_T # Checks for library functions. AC_FUNC_MALLOC AC_FUNC_MEMCMP AC_FUNC_REALLOC AC_FUNC_VPRINTF AC_CHECK_FUNCS([getcwd memchr memmove memset regcomp strcasecmp strchr strdup strncasecmp mmap chdir getpwnam]) # # AC_CANONICAL_SYSTEM case "$target_os" in darwin*) LIBNEWT_LDSHARED='$(CC) -dynamic -bundle -undefined suppress -flat_namespace' DLEXT='dylib' ;; cygwin*|mingw*) AC_DEFINE(__WIN32__) HAVE_DLOPEN='yes' NEWT_LDIMPORT='$(build)/libnewt.a' NEWT_LDFLAGS='-Wl,--export-all-symbols,--out-implib=$(LDIMPORT)' LIBNEWT_LDSHARED='$(CC) -shared' LIBREGEX='$(LIBREGEX)' DLEXT='dll' ;; linux*) # NEWT_LDFLAGS='-ldl -rdynamic' NEWT_LDFLAGS='-rdynamic' LIBNEWT_LDSHARED='$(CC) -shared' DLEXT='so' ;; freebsd*) NEWT_LDFLAGS='-rdynamic' LIBNEWT_LDSHARED='$(CC) -shared' DLEXT='so' ;; beos*) # NEWT_LDFLAGS='-ldl' LIBNEWT_LDSHARED='$(CC) -nostart $(build)/_APP_' LINK_NEWT_APP_='cd $@; ln -s newt _APP_' DLEXT='so' ;; *) NEWT_LDFLAGS='-rdynamic' LIBNEWT_LDSHARED='$(CC) -shared' DLEXT='so' ;; esac case "$target_vendor" in *ipod*) AC_DEFINE(__IPOD__) NEWT_LDFLAGS= ;; esac case "$HAVE_DLOPEN" in yes) AC_DEFINE(HAVE_DLOPEN) MAKE_EXT='ext' ;; esac test "x$prefix" = xNONE && prefix=$ac_default_prefix AC_ARG_WITH(sitedir, AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[PREFIX/lib/newt0]]]), [sitedir=$withval], [sitedir='${prefix}/lib/newt0']) SITE_DIR="`eval \"echo ${sitedir}\"`" AC_ARG_WITH(libffidir, AS_HELP_STRING([--with-libffidir=DIR], [where libffi libraries can be found [[PREFIX]]]), [libffidir=$withval], [libffidir='${prefix}']) AC_ARG_ENABLE(compat, AS_HELP_STRING([--enable-compat], [enable compatibility with the Newton, and break many features on the desktop]), [compat='yes'], [compat='no']) AC_ARG_ENABLE(contrib, AS_HELP_STRING([--enable-contrib], [include contrib packages (inwt, NativeCalls, and NewtObjC)]), [MAKE_CONTRIB='contrib']) test "x$compat" = xno && AC_DEFINE(__NAMED_MAGIC_POINTER__) AC_DEFINE_UNQUOTED(__PLATFORM__, "$target_os") AC_DEFINE_UNQUOTED(__DYLIBSUFFIX__, ".$DLEXT") AC_DEFINE_UNQUOTED(__LIBDIR__, "${SITE_DIR}") NEWT_LDFLAGS="$NEWT_LDFLAGS $LIBDL" AC_SUBST(NEWT_LDIMPORT) AC_SUBST(NEWT_LDFLAGS) AC_SUBST(LIBNEWT_LDSHARED) AC_SUBST(LINK_NEWT_APP_) AC_SUBST(DLEXT) AC_SUBST(MAKE_EXT) AC_SUBST(MAKE_CONTRIB) AC_SUBST(BINDIR) AC_SUBST(sitedir) AC_SUBST(libffidir) AC_SUBST(__NAMED_MAGIC_POINTER__) AC_SUBST(LIBREGEX) dnl dnl How to create static libraries dnl AC_PROG_RANLIB AC_PATH_PROG(AR, ar) if test "x$AR" = "x:"; then AC_MSG_ERROR(Configure could not find the library archiver, aborting.) fi if test "x$RANLIB" != "x:"; then LIBCOMMAND="$AR cr" else LIBCOMMAND="$AR crs" fi AC_SUBST(LIBCOMMAND) LIBEXT=".a" AC_SUBST(LIBEXT) AC_CONFIG_FILES([Makefile ext/protoFILE/Makefile ext/protoREGEX/Makefile contrib/inwt/Makefile contrib/NativeCalls/Makefile contrib/NewtObjC/Makefile]) AC_OUTPUT