aboutsummaryrefslogtreecommitdiff
path: root/BuildUnix/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'BuildUnix/configure.in')
-rw-r--r--BuildUnix/configure.in394
1 files changed, 394 insertions, 0 deletions
diff --git a/BuildUnix/configure.in b/BuildUnix/configure.in
new file mode 100644
index 0000000..eda554f
--- /dev/null
+++ b/BuildUnix/configure.in
@@ -0,0 +1,394 @@
+dnl ======================================================================================
+dnl Copyright (c) 1998-2001 Palm, Inc. or its subsidiaries.
+dnl All rights reserved.
+dnl ======================================================================================
+
+dnl ========================================================
+dnl Process this file with autoconf to produce a configure script.
+dnl ========================================================
+
+AC_INIT(../SrcUnix/Platform_Unix.cpp)
+AC_CANONICAL_SYSTEM
+AM_INIT_AUTOMAKE(pose, 0, no)
+
+AC_PROG_MAKE_SET
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_RANLIB
+
+
+dnl ========================================================
+dnl Check for programs.
+dnl ========================================================
+
+AC_PROG_CPP
+
+
+dnl ========================================================
+dnl Check for libraries.
+dnl ========================================================
+
+AC_PATH_XTRA
+
+AC_ARG_WITH(fltk,
+ [ --with-fltk=DIR use FLTK in DIR], [
+ CPPFLAGS="${CPPFLAGS} -I$withval/include"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
+])
+
+
+dnl ========================================================
+dnl Check for header files.
+dnl ========================================================
+
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS(endian.h machine/endian.h sys/isa_defs.h fcntl.h limits.h strings.h sys/time.h unistd.h)
+
+
+dnl ========================================================
+dnl Check for typedefs, structures, and compiler characteristics.
+dnl ========================================================
+
+AC_C_CONST
+AC_C_INLINE
+
+
+dnl ----------------------------
+dnl Check sa_len of sockaddr
+dnl ----------------------------
+
+AC_DEFUN(AC_STRUCT_SA_LEN,
+ [AC_CACHE_CHECK([for 'sa_len' in 'struct sockaddr'], ac_cv_struct_sa_len,
+ [AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ], [
+ struct sockaddr sa;
+ sa.sa_len = 0;
+ ], ac_cv_struct_sa_len=yes, ac_cv_struct_sa_len=no)])
+ if test "$ac_cv_struct_sa_len" = yes; then
+ AC_DEFINE(HAVE_SA_LEN)
+ fi])
+
+AC_DEFUN(AC_STRUCT_SIN_LEN,
+ [AC_CACHE_CHECK([for 'sin_len' in 'struct sockaddr_in'], ac_cv_struct_sin_len,
+ [AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ ], [
+ struct sockaddr_in sin;
+ sin.sin_len = 0;
+ ], ac_cv_struct_sin_len=yes, ac_cv_struct_sin_len=no)])
+ if test "$ac_cv_struct_sin_len" = yes; then
+ AC_DEFINE(HAVE_SIN_LEN)
+ fi])
+
+AC_DEFUN(AC_TYPE_SOCKLEN_T,
+ [AC_CACHE_CHECK([for 'socklen_t'], ac_cv_type_socklen_t,
+ [AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ], [
+ socklen_t var;
+ var = 0;
+ ], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no)])
+ if test "$ac_cv_type_socklen_t" = yes; then
+ AC_DEFINE(HAVE_TYPE_SOCKLEN_T)
+ fi])
+
+AC_STRUCT_SA_LEN
+AC_STRUCT_SIN_LEN
+AC_TYPE_SOCKLEN_T
+
+
+dnl ========================================================
+dnl Check for library functions.
+dnl ========================================================
+
+AC_FUNC_ALLOCA
+AC_CHECK_FUNCS(mkdir)
+AC_CHECK_FUNCS(mkstemp)
+AC_CHECK_FUNCS(tempnam)
+
+
+dnl ========================================================
+dnl Set the defaults first
+dnl ========================================================
+
+AR='ar'
+FLAGS_COMMON="-DPLATFORM_UNIX=1 -D__PALMOS_TRAPS__=0 -DEMULATION_LEVEL=EMULATION_UNIX"
+
+
+dnl ========================================================
+dnl Define some standard warning flags
+dnl ========================================================
+
+_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -fexceptions -Wall -Wno-multichar -Wno-unknown-pragmas -Wno-conversion"
+_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -fexceptions -Wall -Wno-multichar -Wno-unknown-pragmas -Wno-conversion"
+
+_COMPILER_CFLAGS="${_COMPILER_CFLAGS}"
+_COMPILER_CXXFLAGS="${_COMPILER_CXXFLAGS}"
+
+
+dnl ========================================================
+dnl Define the standard OMNITHREAD options
+dnl ========================================================
+
+THREAD_FLAGS="-D_REENTRANT -DNoNanoSleep -DPthreadDraftVersion=10"
+THREAD_LIBS="-lpthread"
+USE_SOLARIS_CPP="false"
+
+
+dnl ========================================================
+dnl System overrides of the defaults
+dnl ========================================================
+
+case "$target" in
+*-aix*)
+ THREAD_FLAGS="-DNoNanoSleep -DPthreadDraftVersion=8"
+ THREAD_LIBS="-lpthread"
+ ;;
+
+*-hpux*)
+ THREAD_FLAGS="-D_REENTRANT -DPthreadDraftVersion=4"
+ THREAD_LIBS="-lpthread -lmach -lc_r"
+ ;;
+
+*-irix*)
+ THREAD_FLAGS="-DUsePthread -D_REENTRANT -DPthreadDraftVersion=10 -DPthreadSupportThreadPriority"
+ THREAD_LIBS="-lpthread"
+ ;;
+
+*-linux*)
+ THREAD_FLAGS="-D_REENTRANT -DNoNanoSleep -DPthreadDraftVersion=10"
+ THREAD_LIBS="-lpthread"
+ ;;
+
+*-nto*)
+ THREAD_FLAGS="-D_REENTRANT -DPthreadDraftVersion=10"
+ THREAD_LIBS=""
+ POSER_CFLAGS="$POSER_CFLAGS -D_QNX_SOURCE -D_POSIX_SOURCE -D__i386__ -D_i386 -DNSCAP_NO_EXPLICIT -DNO_REGEX -DSTRINGS_ALIGNED -D_SEEKPOS_DEFINED_ -I/usr/gcc/lib/gcc-lib/ntox86/2.8.1/include"
+ POSER_CXXFLAGS="$POSER_CFLAGS"
+ _WARNINGS_CFLAGS='-w'
+ _WARNINGS_CXXFLAGS='-w'
+ LIBS="$LIBS -lsocket"
+ poser_optimize="-O2"
+ poser_debug="-gdwarf-2"
+ AR='/usr/local/bin/ar.elf'
+ ;;
+
+*-osf*)
+dnl I am not sure how to test for these versions...
+dnl Options for OSF 1.3.2
+dnl THREAD_FLAGS="-D_REENTRANT -DNoNanoSleep -DPthreadDraftVersion=4"
+dnl THREAD_LIBS="-lpthread -lmach -lc_r"
+dnl Options for OSF 1.4
+ THREAD_FLAGS="-D_REENTRANT -pthread -DNoNanoSleep -DPthreadDraftVersion=10"
+ THREAD_LIBS="-lcma"
+ ;;
+
+*-solaris*)
+ # -g somehow helps the assembler understand long symbol names
+ THREAD_FLAGS="-g -D_REENTRANT -DPthreadDraftVersion=10 -DPthreadSupportThreadPriority"
+ THREAD_LIBS="-lnsl -lsocket -lthread -lposix4"
+dnl I'd really like to check the compiler directly to see if it supports -fpermissive,
+dnl but I don't know how to get autoconf to do that.
+ _COMPILER_CFLAGS="${_COMPILER_CFLAGS} -fpermissive"
+ _COMPILER_CXXFLAGS="${_COMPILER_CXXFLAGS} -fpermissive"
+ USE_SOLARIS_CPP="true"
+ ;;
+
+*-sunos*)
+ # -g somehow helps the assembler understand long symbol names
+ THREAD_FLAGS="-g -D_REENTRANT -DPthreadDraftVersion=10 -DPthreadSupportThreadPriority"
+ THREAD_LIBS="-lnsl -lsocket -lthread -lposix4"
+ USE_SOLARIS_CPP="true"
+ ;;
+
+*-freebsd*)
+ THREAD_FLAGS="-pthread -D_THREAD_SAFE -D_REENTRANT -DPthreadDraftVersion=10"
+ THREAD_LIBS=
+ ;;
+
+*-bsdi4*)
+ THREAD_LIBS=
+ ;;
+esac
+
+
+dnl ========================================================
+dnl Check for gprof profiling
+dnl ========================================================
+
+AC_ARG_ENABLE(profile,
+ [ --enable-profile include gprof profiling (default no)],
+ FLAGS_PROFILE="-pg",
+ FLAGS_PROFILE="")
+
+
+dnl ========================================================
+dnl Check for built-in profiling
+dnl ========================================================
+
+AC_ARG_ENABLE(palm_profile,
+ [ --enable-palm-profile include profiling of Palm applications (default no)],
+ FLAGS_PALM_PROFILE="-DHAS_PROFILING=1",
+ FLAGS_PALM_PROFILE="-DHAS_PROFILING=0")
+
+
+dnl ========================================================
+dnl Check for static link.
+dnl ========================================================
+
+AC_ARG_ENABLE(static-link,
+ [ --enable-static-link static link; no shared libraries (default no)],
+ LDFLAGS="${LDFLAGS} -static"
+)
+
+
+dnl ========================================================
+dnl Check for Optimize
+dnl
+dnl NOTE: turning on optimizations when using egcs 1.1.2
+dnl runs afoul of a code generation bug on x86's (as
+dnl shipped with RedHat 6.0). The specific cases I know
+dnl about (in SkinScaleDown and SkinScaleUp) are coded
+dnl around, but there may be more lurking...
+dnl
+dnl I haven't checked this, but I hear the bug is fixed
+dnl in gcc 2.95.
+dnl ========================================================
+
+dnl This is now on by default. It gets turned off if the
+dnl user selects --enable-debug.
+dnl
+dnl AC_ARG_ENABLE(optimize,
+dnl [ --enable-optimize optimize code (default no)],
+dnl FLAGS_OPTIMIZE="-O2",
+dnl FLAGS_OPTIMIZE="")
+
+FLAGS_OPTIMIZE="-O2"
+
+
+dnl ========================================================
+dnl Check whether default arguments which call a virtual
+dnl function in another object work -- GCC 2.95.x crashes
+dnl trying to compile something like this.
+dnl ========================================================
+
+AC_LANG_CPLUSPLUS
+AC_CACHE_CHECK([whether virtual function default arguments work],
+ pose_cv_virtual_defarg_ok,
+ AC_TRY_COMPILE([
+ class C
+ {
+ public:
+ virtual int foo ();
+ } *c;
+ void bar (int = c->foo ());
+ ], [bar ();],
+ pose_cv_virtual_defarg_ok=yes, pose_cv_virtual_defarg_ok=no))
+
+if test $pose_cv_virtual_defarg_ok = no; then
+ AC_DEFINE(BROKEN_VIRTUAL_DEFAULT_ARGUMENTS)
+fi
+
+
+dnl ========================================================
+dnl Check for debugging
+dnl ========================================================
+
+AC_ARG_ENABLE(debug,
+ [ --enable-debug include debugging symbols (default no)],
+ FLAGS_DEBUG="-D_DEBUG -g"
+ FLAGS_PROFILE="-DHAS_PROFILING=1"
+ FLAGS_PALM_PROFILE=""
+ FLAGS_OPTIMIZE="",
+ FLAGS_DEBUG="-DNDEBUG")
+
+
+dnl ========================================================
+dnl Check for OpenGL. This is pretty much the same code
+dnl that FLTK uses to check for it. We'll assume that if
+dnl OpenGL is present, FLTK was configured to use it, and
+dnl so we need to link with it.
+dnl ========================================================
+
+GLLIB=
+
+AC_CHECK_HEADER(GL/gl.h,
+ AC_CHECK_LIB(GL, glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB="-lGL", \
+ AC_CHECK_LIB(MesaGL, glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB=" -lMesaGL",,\
+ -L${ac_x_libraries} -lX11 -lXext $X_EXTRA_LIBS -lm), \
+ -L${ac_x_libraries} -lX11 -lXext $X_EXTRA_LIBS -lm)
+)
+
+AC_CHECK_HEADER(GL/glu.h,
+ AC_DEFINE(HAVE_GL_GLU_H)
+ if test x$ac_cv_lib_GL_glXMakeCurrent = xyes; then
+ GLLIB="-lGLU $GLLIB"
+ fi
+ if test x$ac_cv_lib_MesaGL_glXMakeCurrent = xyes; then
+ GLLIB="-lMesaGLU $GLLIB"
+ fi
+)
+
+AC_SUBST(GLLIB)
+
+
+dnl ========================================================
+dnl Make sure FLTK is available. It must be installed on
+dnl a standard path, or on $x_libraries.
+dnl ========================================================
+
+AC_CACHE_SAVE
+
+dnl Temporarily add -lfltk and OTHER-LIBRARIES (cf AC_CHECK_LIB) to $LIBS
+save_LIBS="$LIBS"
+LIBS="-lfltk ${GLLIB} -L${ac_x_libraries} -lXext -lX11 -lm $X_EXTRA_LIBS $LIBS"
+
+AC_LANG_CPLUSPLUS
+AC_CACHE_CHECK([for 'int fl_height (void)' in -lfltk], pose_cv_lib_fltk_found,
+ AC_TRY_LINK([#include <Fl/fl_draw.H>], [fl_height ();],
+ pose_cv_lib_fltk_found=yes, pose_cv_lib_fltk_found=no))
+
+LIBS="$save_LIBS"
+
+if test $pose_cv_lib_fltk_found = yes; then
+ AC_DEFINE(HAVE_LIBFLTK)
+else
+ AC_MSG_ERROR(*** FLTK *must* be installed before running configure. ***)
+fi
+
+
+dnl ========================================================
+dnl = Append the FLAGS variable that contains options for
+dnl = debug, profiling and optimizing poser.
+dnl ========================================================
+
+FLAGS="$FLAGS_COMMON $FLAGS_OPTIMIZE $FLAGS_PROFILE $FLAGS_PALM_PROFILE $FLAGS_DEBUG"
+POSER_CFLAGS="$POSER_CFLAGS $FLAGS $_WARNINGS_CFLAGS $_COMPILER_CFLAGS"
+POSER_CXXFLAGS="$POSER_CXXFLAGS $FLAGS $_WARNINGS_CXXFLAGS $_COMPILER_CXXFLAGS"
+
+AC_SUBST(AR)
+AC_SUBST(POSER_CFLAGS)
+AC_SUBST(POSER_CXXFLAGS)
+AC_SUBST(THREAD_FLAGS)
+AC_SUBST(THREAD_LIBS)
+AC_SUBST(THREAD_SRC)
+
+
+dnl ========================================================
+dnl Determine which file to use for threading support. NB:
+dnl this may be obvious to most UNIX hacks, but it's very
+dnl important to put spaces around the '='. I didn't do
+dnl that the first time, and I guess "test" needs those
+dnl in order to know that '=' is an operator. Without the
+dnl spaces, I got incorrect results.
+dnl ========================================================
+
+AM_CONDITIONAL(SOLARIS, test x$USE_SOLARIS_CPP = xtrue)
+
+AC_OUTPUT(Makefile Gzip/Makefile jpeg/Makefile espws-2.0/Makefile)