:nl The contents of this file are subject to the Mozilla Public License dnl Version 1.0 (the "License"); you may not use this file except in dnl compliance with the License. You may obtain a copy of the License dnl at http://www.mozilla.org/MPL/ dnl dnl Software distributed under the License is distributed on an "AS IS" dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See dnl the License for the specific language governing rights and dnl limitations under the License. dnl dnl The Original Code is this file as it was released upon August 6, 1998. dnl dnl The Initial Developer of this code under the MPL is Christopher dnl Seawood, . Portions created by Christopher Seawood dnl are Copyright (C) 1998 Christopher Seawood. All Rights Reserved. dnl dnl Contributors: dnl Jamie Zawinski gettimeofday args check dnl Christopher Blizzard dnl gnomefe update & enable-pthreads dnl dnl Process this file with autoconf to produce a configure script. dnl ======================================================== AC_INIT(config/config.mk) dnl AC_CONFIG_HEADER(include/config.h nsprpub/include/config.h) AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf) AC_CANONICAL_SYSTEM # Set this define to make fixes w/o breaking anything else AC_DEFINE(USE_AUTOCONF) d=`pwd` if [ test "${srcdir}" = "${d}" || test "${srcdir}" = "." ]; then AC_ERROR(Building in the srcdir is not supported! Please build from a separate objdir.) fi unset d dnl Set the version number of the libs included with mozilla dnl ======================================================== MOZJPEG=62 MOZPNG=95 dnl Set various checks dnl ======================================================== MISSING_X= MISSING_MOTIF= MISSING_QT= MISSING_GTK= MISSING_GNOME= dnl Checks for programs. dnl ======================================================== AC_PROG_CC AC_PROG_CXX AC_PROG_CPP AC_PROG_CXXCPP AC_PROG_CC_C_O AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PROG_AWK AC_PROG_RANLIB AC_PATH_PROGS(EMACS, xemacs lemacs emacs, :) AC_PATH_PROGS(PERL, perl5 perl, :) AC_PATH_PROG(WHOAMI, whoami, :) AC_PATH_PROG(UNZIP, unzip, :) AC_PATH_PROG(ZIP, zip, :) AC_PATH_X AC_PATH_XTRA dnl CFLAGS="$CFLAGS $X_CFLAGS" dnl LDFLAGS="$LDFLAGS $XLDFLAGS" dnl LIBS="$X_PRE_LIBS $X_EXTRA_LIBS $LIBS" XLDFLAGS="$X_LIBS" XLIBS="$X_EXTRA_LIBS" if [ test ! -z "$x_includes" ]; then MOTIF_XINCS="-xif -I$x_includes" fi MOTIF_VERSION=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS` MOTIF_INCLUDES=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -if` MOTIF_STATIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -sf` MOTIF_DYNAMIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -df` MOTIF_DYNAMIC_PATHS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -dp` MOTIF_REQUIRES_XPM=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -xpm` ${srcdir}/config/mkdetect/detect_motif.sh --cleanup if [ test "$GCC" = "yes" ]; then GNU_CC=1 fi if [ test "$GXX" = "yes" ]; then GNU_CXX=1 fi AC_SUBST(GNU_CC) AC_SUBST(GNU_CXX) dnl Checks for system specific bits dnl ======================================================== dnl the qsort routine under solaris is faulty dnl Linux Alpha needs -mieee for FPU to work correctly dnl Note this case statement doesn't seem to handle [] as part of a regexp dnl set the defaults first dnl ======================================================== MKSHLIB='$(LD) $(DSO_LDOPTS)' DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.so=%.so)' dnl gcc can come with its own linker so its better to use the pass-thru calls dnl ======================================================== if test "$GNU_CC" = 1; then MKSHLIB='$(CC) $(DSO_LDOPTS)' DSO_LDOPTS='-shared -Wl,-h -Wl,$(@:$(OBJDIR)/%.so=%.so)' fi dnl now the exceptions dnl ======================================================== case "$target" in *-*-solaris*) AC_DEFINE(BROKEN_QSORT) DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.so=%.so)' ;; alpha-*-linux*) CFLAGS="$CFLAGS -mieee" ;; *-freebsd*) DSO_LDOPTS="-Bshareable $DSO_LDOPTS" ;; esac dnl Checks for typedefs, structures, and compiler characteristics. dnl ======================================================== AC_C_CONST AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_UID_T AC_STRUCT_ST_BLKSIZE AC_STRUCT_ST_RDEV AC_STRUCT_TM AC_STRUCT_TIMEZONE dnl Checks for header files. dnl ======================================================== AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS(fcntl.h limits.h malloc.h paths.h strings.h unistd.h) AC_CHECK_HEADERS(sys/bittypes.h sys/file.h sys/ioctl.h sys/time.h) AC_CHECK_HEADERS(getopt.h ioctl.h sys/cdefs.h filio.h systeminfo.h) dnl Checks for library functions. dnl ======================================================== AC_FUNC_ALLOCA AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_FUNC_MMAP dnl AC_FUNC_SETVBUF_REVERSED AC_TYPE_SIGNAL AC_FUNC_STRCOLL AC_FUNC_STRFTIME AC_FUNC_UTIME_NULL AC_FUNC_VFORK AC_FUNC_VPRINTF AC_CHECK_FUNCS(ftime getcwd gethostname getwd mkdir mktime putenv rmdir select) AC_CHECK_FUNCS(socket strcspn strdup strerror strspn strstr strtol strtoul) AC_CHECK_FUNCS(uname qsort snprintf waitid fork1 remainder lchown) AC_MSG_CHECKING(how to call gettimeofday) AC_CACHE_VAL(ac_cv_gettimeofday_args, [AC_TRY_COMPILE([#include #include ], [struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp);], [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include #include ], [struct timeval tv; gettimeofday(&tv);], [ac_gettimeofday_args=1], [ac_gettimeofday_args=0])]) ac_cv_gettimeofday_args=$ac_gettimeofday_args]) ac_gettimeofday_args=$ac_cv_gettimeofday_args if test $ac_gettimeofday_args = 1 ; then AC_DEFINE(HAVE_GETTIMEOFDAY) AC_MSG_RESULT(one argument) elif test $ac_gettimeofday_args = 2 ; then AC_DEFINE(HAVE_GETTIMEOFDAY) AC_DEFINE(GETTIMEOFDAY_TWO_ARGS) AC_MSG_RESULT(two arguments) else AC_MSG_RESULT(unknown) fi dnl Checks for specific (libc) global variables AC_MSG_CHECKING(for sys_errlist/sys_nerr) AC_CACHE_VAL(ac_cv_syserrlist, [AC_TRY_COMPILE([#include #include ], [char *foo = sys_errlist[sys_nerr-1];], [ac_syserrlist=true], [ac_syserrlist=false]) ac_cv_syserrlist=$ac_syserrlist]) ac_syserrlist=$ac_cv_syserrlist if test $ac_syserrlist = true ; then AC_DEFINE(HAVE_SYSERRLIST) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi dnl Checks for libraries. dnl ======================================================== AC_CHECK_LIB(c, strcpy) AC_CHECK_LIB(m, atan) AC_CHECK_LIB(dl, dlopen) AC_CHECK_LIB(resolv, res_gethostbyaddr) AC_CHECK_LIB(socket, getnetbyaddr) AC_CHECK_LIB(util, login) AC_CHECK_LIB(nsl, xdr_string) AC_CHECK_LIB(C, demangle) AC_CHECK_LIB(elf, elf_rawdata) AC_CHECK_LIB(intl, textdomain) AC_CHECK_LIB(posix4, shm_open) AC_CHECK_LIB(w, iswupper) AC_CHECK_LIB(l, yywrap,, AC_CHECK_LIB(fl, yywrap)) dnl Replace `main' with a function in -lC_r: dnl AC_CHECK_LIB(C_r, main) dnl Replace `main' with a function in -lSgm: dnl AC_CHECK_LIB(Sgm, main) dnl Replace `main' with a function in -laudio: dnl AC_CHECK_LIB(audio, main) dnl Replace `main' with a function in -lc_r: dnl AC_CHECK_LIB(c_r, main) dnl Replace `main' with a function in -ldld: dnl AC_CHECK_LIB(dld, main) dnl Replace `main' with a function in -ldnet_stub: dnl AC_CHECK_LIB(dnet_stub, main) dnl Replace `main' with a function in -lgen: dnl AC_CHECK_LIB(gen, main) dnl Replace `main' with a function in -lhash: dnl AC_CHECK_LIB(hash, main) dnl Replace `main' with a function in -lip6: dnl AC_CHECK_LIB(ip6, main) dnl Replace `main' with a function in -lipc: dnl AC_CHECK_LIB(ipc, main) dnl Replace `main' with a function in -lmalloc_cv: dnl AC_CHECK_LIB(malloc_cv, main) dnl Replace `main' with a function in -lPW: dnl AC_CHECK_LIB(PW, main) dnl Replace `main' with a function in -lots: dnl AC_CHECK_LIB(ots, main) dnl Replace `main' with a function in -lrt: dnl AC_CHECK_LIB(rt, main) dnl Replace `main' with a function in -lsvld: dnl AC_CHECK_LIB(svld, main) dnl Mozilla specific options dnl ======================================================== AC_ARG_ENABLE(nglayout, [ --enable-nglayout enable the new generation layout features], [ if test "$enableval" = "yes"; then USE_NGLAYOUT=1 OS_TARGET=`uname -s` elif test "$enableval" = "gtk"; then USE_NGLAYOUT=1 OS_TARGET=`uname -s` USE_NGLAYOUT_GTK=1 else USE_NGLAYOUT= USE_NGLAYOUT_GTK= fi], USE_NGLAYOUT= ) AC_ARG_ENABLE(fe, [ --enable-fe=\$val enable \$val fe (defaults to x)], [fe_list=`echo "$enableval" | sed -e 's/,/ /g' -e 's|$| |'`], fe_list=USE_DEFAULT) if [ test "$fe_list" = "USE_DEFAULT" ]; then res=`echo $target_os| grep -c "^Rhapsody"` if [ test $res != 0 ]; then fe_list="yb " else fe_list="x " fi fi for fe in $fe_list; do # Test whether such a subdir really exists. if [ test -d $srcdir/cmd/${fe}fe ]; then MOZ_FE="$MOZ_FE $fe" else AC_MSG_ERROR(FE directory $srcdir/cmd/${fe}fe does not exist.) fi done echo "Using FE:${MOZ_FE}." unset fe_list FULL_STATIC_BUILD=1 AC_ARG_ENABLE(min-shared, [ --enable-min-shared enable use of minimal internal dynamic libs ], [if test "$enableval" = "yes"; then FULL_STATIC_BUILD= fi] ) AC_ARG_ENABLE(shared, [ --disable-shared disable building of internal shared libs], [if test "$enableval" = "no"; then NO_SHARED_LIB=1 fi] ) AC_ARG_ENABLE(static, [ --disable-static disable building of internal static libs (broken)], [if test "$enableval" = "no"; then NO_STATIC_LIB=1 fi] ) AC_ARG_ENABLE(crypto, [ --enable-crypto enable use of SSL (untested)], [if test "$enableval" = "yes"; then MOZ_SECURITY=1 else MOZ_SECURITY= fi], [MOZ_SECURITY= ]) AC_ARG_ENABLE(netcast, [ --enable-netcast enable use of netcast (untested)], [if test "$enableval" = "yes"; then MOZ_NETCAST=1 fi ] ) AC_ARG_ENABLE(java, [ --enable-java enable use of java applets (untested)], [if test "$enableval" = "yes"; then MOZ_JAVA=1 FULL_STATIC_BUILD= NO_SHARED_LIB= fi] ) AC_ARG_ENABLE(oji, [ --enable-oji enable use of Open JVM Interface], [if test "$enableval" = "yes"; then MOZ_OJI=1 FULL_STATIC_BUILD= NO_SHARED_LIB= fi] ) AC_ARG_ENABLE(debug, [ --enable-debug enable debug symbols], [if test "$enableval" = yes; then MOZ_DEBUG=1 CFLAGS="$CFLAGS -g" fi] ) AC_ARG_ENABLE(profile, [ --enable-profile enable profiling (solaris only)], [if test "$enableval" = "yes"; then MOZILLA_GPROF=1 fi] ) AC_ARG_ENABLE(mailnews, [ --enable-mailnews enable Mail & News (broken)], [if test "$enableval" = "yes"; then MOZ_DARK=1 fi] ) AC_ARG_ENABLE(editor, [ --enable-editor enable editor], [if test "$enableval" = "yes"; then MOZ_EDITOR=1 fi] ) AC_ARG_ENABLE(asserts, [ --disable-asserts disable asserts during debugging], [if test "$enableval" = "no"; then UNIX_SKIP_ASSERTS=1 fi] ) AC_ARG_ENABLE(async-dns, [ --disable-async-dns disable separate dns thread], [if test "$enableval" = "no"; then NO_UNIX_ASYNC_DNS=1 fi] ) AC_ARG_ENABLE(tests, [ --enable-tests enable test stubs], [if test "$enableval" = "yes"; then ENABLE_TESTS=1 fi]) AC_ARG_ENABLE(homedir, [ --enable-homedir=\$val set the homedir to \$val], [ res=`echo $enableval | grep -c "\/"` if [ test $res != 0 ]; then AC_MSG_ERROR("Homedir must be single relative path.") else MOZ_USER_DIR=\\\"$enableval\\\" fi], MOZ_USER_DIR='\".mozilla\"' ) AC_ARG_ENABLE(smart-mail, [ --enable-smart-mail enable HTML/RDF-based client-side mail (untested)], [if test "$enableval" = "yes"; then MOZ_SMART_MAIL=1 fi]) AC_ARG_ENABLE(dom, [ --enable-dom enable Level-1 Document Object Model support ], [if test "$enableval" = "yes"; then AC_DEFINE(DOM) MOZ_DOM=1 fi] ) AC_ARG_ENABLE(mail-compose, [ --enable-mail-compose enable old Messenger mail composer ], [if test "$enableval" = "yes"; then MOZ_MAIL_COMPOSE=1 MOZ_EDITOR=1 fi]) NO_UNIX_LDAP=1 AC_ARG_ENABLE(ldap, [ --enable-ldap enable ldap ], [if test "$enableval" = "yes"; then NO_UNIX_LDAP= fi] ) AC_SUBST(USE_NGLAYOUT) AC_SUBST(USE_NGLAYOUT_GTK) AC_SUBST(OS_TARGET) AC_SUBST(MOZ_FE) AC_SUBST(MOZ_SECURITY) AC_SUBST(MOZ_NETCAST) AC_SUBST(MOZ_JAVA) AC_SUBST(MOZ_OJI) AC_SUBST(MOZ_DEBUG) AC_SUBST(MOZILLA_GPROF) AC_SUBST(MOZ_DARK) AC_SUBST(MOZ_EDITOR) AC_SUBST(UNIX_SKIP_ASSERTS) AC_SUBST(NO_UNIX_ASYNC_DNS) AC_SUBST(NO_SHARED_LIB) AC_SUBST(NO_STATIC_LIB) AC_SUBST(ENABLE_TESTS) AC_SUBST(MOZ_USER_DIR) AC_SUBST(MOZ_SMART_MAIL) AC_SUBST(MOZ_DOM) AC_SUBST(USE_PTHREADS) AC_SUBST(MOZ_MAIL_COMPOSE) AC_SUBST(FULL_STATIC_BUILD) AC_SUBST(NO_UNIX_LDAP) dnl Checks for X libraries. dnl Ordering is important. dnl Xt is dependent upon SM as of X11R6 dnl ======================================================== _SAVE_LDFLAGS="$LDFLAGS" LDFLAGS="$XLDFLAGS $LDFLAGS" AC_CHECK_LIB(X11, XDrawLines, [XLIBS="-lX11 $XLIBS"], [MISSING_X="$MISSING_X -lX11"], $XLIBS) AC_CHECK_LIB(Xext, XextAddDisplay, [XLIBS="-lXext $XLIBS"], [MISSING_X="$MISSING_X -lXext"], $XLIBS) AC_CHECK_LIB(ICE, IceFlush, [XLIBS="-lICE $XLIBS"],, $XLIBS) AC_CHECK_LIB(SM, SmcCloseConnection, [XLIBS="-lSM $XLIBS"],, $XLIBS) AC_CHECK_LIB(Xt, XtFree, [XLIBS="-lXt $XLIBS"], [MISSING_X="$MISSING_X -lXt"], $XLIBS) AC_CHECK_LIB(Xmu, XmuLookupString, [XLIBS="-lXmu $XLIBS"], [MISSING_X="$MISSING_X -lXmu"], $XLIBS) LDFLAGS="$_SAVE_LDFLAGS" res=`echo :$MOZ_FE | grep -c " x"` if [ test $res != 0 ]; then if [ test "$MOTIF_REQUIRES_XPM" = "True" || test "$MOTIF_VERSION" = "2.1" ]; then _SAVE_LDFLAGS="$LDFLAGS" LDFLAGS="$XLDFLAGS $LDFLAGS" if [ test "$MOTIF_REQUIRES_XPM" = "True" ]; then AC_CHECK_LIB(Xpm, XpmWriteFileFromImage, FE_X_LIBS="-lXpm $FE_X_LIBS", [MISSING_MOTIF="-lXpm $MISSING_MOTIF"], $XLIBS) fi if [ test "$MOTIF_VERSION" = "2.1" ]; then AC_CHECK_LIB(Xp, XpGetPrinterList, FE_X_LIBS="-lXp $FE_X_LIBS", [MISSING_MOTIF="-lXp $MISSING_MOTIF"], $XLIBS) fi FE_X_LIBS="$XLDFLAGS $FE_X_LIBS" LDFLAGS="$_SAVE_LDFLAGS" fi if [ test "$MOTIF_STATIC_LIB" = "unknown" && test "$MOTIF_DYNAMIC_LIB" = "unknown" ]; then AC_ERROR("Cannot find neither dynamic nor static motif libraries.") fi # Get rid of offending error values if test "$MOTIF_DYNAMIC_PATHS" = "unknown"; then MOTIF_DYNAMIC_PATHS= fi if test "$MOTIF_DYNAMIC_FLAGS" = "unknown"; then MOTIF_DYNAMIC_FLAGS= fi if test "$MOTIF_STATIC_FLAGS" = "unknown"; then MOTIF_STATIC_FLAGS= fi if test "$MOTIF_INCLUDE_DIR" = "unknown"; then MOTIF_INCLUDE_DIR= fi AC_ARG_WITH(static-motif, [ --with-static-motif link motif statically if possible], sysstaticmotif=$withval) if [ test "$sysstaticmotif" != "yes" ]; then _SAVE_LDFLAGS="$LDFLAGS" LDFLAGS="$MOTIF_DYNAMIC_PATHS $XLDFLAGS $LDFLAGS" AC_CHECK_LIB(Xm, XmStringCreate, FE_X_LIBS="$MOTIF_DYNAMIC_PATHS $MOTIF_DYNAMIC_FLAGS $FE_X_LIBS", [MISSING_MOTIF="$MOTIF_DYNAMIC_FLAGS $MISSING_MOTIF"], $MOTIF_DYNAMIC_PATHS $FE_X_LIBS $XLIBS) LDFLAGS="$_SAVE_LDFLAGS" else AC_CHECK_LIB(Xm, XmStringCreate, FE_X_LIBS="$MOTIF_STATIC_FLAGS $FE_X_LIBS", [MISSING_MOTIF="$MOTIF_STATIC_FLAGS $MISSING_MOTIF"], $FE_X_LIBS $XLIBS) fi FE_X_CFLAGS="$MOTIF_INCLUDES" fi res=`echo :$MOZ_FE | grep -c " qt"` if [ test $res != 0 ]; then _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -L$QTDIR/lib" AC_CHECK_LIB(qt, set_new_handler, [FE_QT_LIBS='-L$(QTDIR)/lib -lqt' FE_QT_CFLAGS='-I$(QTDIR)/include'], [MISSING_QT=1]) LDFLAGS=$_SAVE_LDFLAGS AC_PATH_PROG(MOC, moc, :) fi res=`echo :$MOZ_FE | grep -c " gtk"` if [ test $res != 0 ]; then AC_CHECK_LIB(gtk, gtk_widget_set, [FE_GTK_LIBS="`gtk-config --libs`" FE_GTK_CFLAGS="`gtk-config --cflags`" ], [MISSING_GTK=1], `gtk-config --libs`) fi res=`echo :$MOZ_FE | grep -c " gnome"` if [ test $res != 0 ]; then AC_CHECK_LIB(gnome, gnome_init, [FE_GNOME_LIBS="`gnome-config --libs gnomeui`" FE_GNOME_CFLAGS="`gnome-config --cflags gnomeui`"], [MISSING_GNOME=1], `gnome-config --libs gnomeui`) fi XCFLAGS="$X_CFLAGS" AC_SUBST(XCFLAGS) AC_SUBST(XLDFLAGS) AC_SUBST(XLIBS) AC_SUBST(FE_X_CFLAGS) AC_SUBST(FE_X_LIBS) AC_SUBST(FE_QT_CFLAGS) AC_SUBST(FE_QT_LIBS) AC_SUBST(FE_GTK_CFLAGS) AC_SUBST(FE_GTK_LIBS) AC_SUBST(FE_GNOME_CFLAGS) AC_SUBST(FE_GNOME_LIBS) #if test -z "$USE_NGLAYOUT"; then dnl system JPEG support dnl ======================================================== AC_ARG_WITH(jpeg, [ --with-jpeg=\$dir use system libjpeg in \$dir if more recent], JPEG_DIR=$withval) _SAVE_CFLAGS=$CFLAGS _SAVE_LDFLAGS=$LDFLAGS _SAVE_LIBS=$LIBS CFLAGS="-I${JPEG_DIR}/include $CFLAGS" LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS" if test "$JPEG_DIR" = no; then SYSTEM_JPEG= else AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS) fi if [ test "$SYSTEM_JPEG" = 1 ]; then LIBS="$JPEG_LIBS $LIBS" AC_TRY_RUN( #include #include #include int main () { #if JPEG_LIB_VERSION >= $MOZJPEG exit(0); #else exit(1); #endif } , SYSTEM_JPEG=1, [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=], SYSTEM_JPEG= ) rm -f core fi CFLAGS=$_SAVE_CFLAGS LDFLAGS=$_SAVE_LDFLAGS LIBS=$_SAVE_LIBS if [ test -n "${JPEG_DIR}" && test -d "${JPEG_DIR}" && test "$SYSTEM_JPEG" = 1]; then JPEG_CFLAGS="-I${JPEG_DIR}/include" JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}" fi dnl system ZLIB support dnl ======================================================== AC_ARG_WITH(zlib, [ --with-zlib=\$dir use system libz in \$dir], ZLIB_DIR=$withval) _SAVE_CFLAGS=$CFLAGS _SAVE_LDFLAGS=$LDFLAGS CFLAGS="-I${ZLIB_DIR}/include $CFLAGS" LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS" if test "$ZLIB_DIR" = no; then SYSTEM_ZLIB= else AC_MSG_CHECKING("for zlib.h") AC_TRY_COMPILE([#include "zlib.h"], [], [result="yes" SYSTEM_ZLIB=1], [result="no" SYSTEM_ZLIB=]) AC_MSG_RESULT("$result") fi if [ test "$SYSTEM_ZLIB" = 1 ]; then AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"], [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS) fi CFLAGS=$_SAVE_CFLAGS LDFLAGS=$_SAVE_LDFLAGS if [ test -n "${ZLIB_DIR}" && test -d "${ZLIB_DIR}" && test "$SYSTEM_ZLIB" = 1 ]; then ZLIB_CFLAGS="-I${ZLIB_DIR}/include" ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}" fi dnl system PNG Support dnl ======================================================== AC_ARG_WITH(png, [ --with-png=\$dir use system libpng in \$dir if more recent], PNG_DIR=$withval) _SAVE_CFLAGS=$CFLAGS _SAVE_LDFLAGS=$LDFLAGS _SAVE_LIBS=$LIBS CFLAGS="-I${PNG_DIR}/include $ZLIB_CFLAGS $CFLAGS" LDFLAGS="-L${PNG_DIR}/lib $ZLIB_LIBS -lz $LDFLAGS" if test "$PNG_DIR" = no; then SYSTEM_PNG= else AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"], SYSTEM_PNG=, $PNG_LIBS) fi if [ test "$SYSTEM_PNG" = 1 ]; then LIBS="$PNG_LIBS $LIBS" AC_TRY_RUN( #include #include #include int main () { #if PNG_LIBPNG_VER >= $MOZPNG exit(0); #else exit(1); #endif } , SYSTEM_PNG=1, [SYSTEM_PNG= PNG_CFLAGS= PNG_LIBS=], SYSTEM_PNG= ) rm -f core fi CFLAGS=$_SAVE_CFLAGS LDFLAGS=$_SAVE_LDFLAGS LIBS=$_SAVE_LIBS if [ test -n "${PNG_DIR}" && test -d "${PNG_DIR}" && test "$SYSTEM_PNG" = 1 ]; then PNG_CFLAGS="-I${PNG_DIR}/include" PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}" fi #fi # !USE_NGLAYOUT dnl system NSPR support dnl we always use the system NSPR from now on...this option dnl tells where to find nspr rather than whether to use it dnl ======================================================== AC_ARG_WITH(pthreads, [ --with-pthreads use system pthread library ], [if test "$withval" = "yes"; then AC_CHECK_LIB(pthread, pthread_create, NSPR_LIBS="-lpthread $NSPR_LIBS" USE_PTHREADS=1) fi] ) AC_ARG_WITH(nspr, [ --with-nspr=\$dir location of nspr headers and libraries], NSPR_DIR=$withval) _SAVE_CFLAGS=$CFLAGS _SAVE_LDFLAGS=$LDFLAGS _SAVE_LIBS=$LIBS CFLAGS="$CFLAGS -I${NSPR_DIR}/include" LDFLAGS="$LDFLAGS -L${NSPR_DIR}/lib $NSPR_LIBS" dnl AC_MSG_CHECKING("for nspr.h") dnl AC_TRY_COMPILE([#include "nspr.h"], [], dnl [result="yes"], dnl [MISSING_NSPR="$MISSING_NSPR nspr.h" result="no"]) dnl AC_MSG_RESULT("$result") dnl AC_CHECK_LIB(nspr21, PR_GetUniqueIdentity, dnl [_FOUND_NSPR_LIB=1 NSPR_LIBS="-lnspr21 $NSPR_LIBS", dnl [MISSING_NSPR="$MISSING_NSPR -lnspr21"], $NSPR_LIBS) AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr21") LIBS="-lnspr21 $NSPR_LIBS $LIBS" AC_TRY_RUN( #include #include int main () { PRThread *dummy = PR_GetCurrentThread(); exit(0); } , [NSPR_LIBS="-lnspr21 $NSPR_LIBS" result="yes"], [_NSPR_NEEDS_THREAD_LIB=1 result="no"], [_NSPR_NEEDS_THREAD_LIB=1 result="no"] ) rm -f core AC_MSG_RESULT("$result") dnl XXX - Is this really the best way to do this check? - cls if [ test "$_NSPR_NEEDS_THREAD_LIB" = 1 ]; then LIBS=$_SAVE_LIBS case "$target" in *-*-linux*) AC_CHECK_LIB(pthread, pthread_create, NSPR_LIBS="-lpthread $NSPR_LIBS" USE_PTHREADS=1) ;; alpha-*-osf*) CFLAGS="$CFLAGS -pthread" _SAVE_CFLAGS="$_SAVE_CFLAGS -pthread" ;; esac AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr21 with thread lib") LIBS="-lnspr21 $NSPR_LIBS $LIBS" AC_TRY_RUN( #include #include int main () { PRThread *dummy = PR_GetCurrentThread(); exit(0); } , [NSPR_LIBS="-lnspr21 $NSPR_LIBS" result="yes"], [MISSING_NSPR="$MISSING_NSPR -lnspr21" result="no"], [MISSING_NSPR="$MISSING_NSPR -lnspr21" result="no"] ) rm -f core AC_MSG_RESULT("$result") fi dnl AC_CHECK_LIB(nspr21, PR_GetUniqueIdentity, NSPR_LIBS="-lnspr21 $NSPR_LIBS", dnl [MISSING_NSPR="$MISSING_NSPR -lnspr21"], $NSPR_LIBS) AC_CHECK_LIB(plc21, PL_CreateOptState, NSPR_LIBS="-lplc21 $NSPR_LIBS", [MISSING_NSPR="$MISSING_NSPR -lplc21"], $NSPR_LIBS) AC_CHECK_LIB(plds21, PL_VectorAdd, NSPR_LIBS="-lplds21 $NSPR_LIBS", [MISSING_NSPR="$MISSING_NSPR -lplds21"], $NSPR_LIBS) CFLAGS=$_SAVE_CFLAGS LDFLAGS=$_SAVE_LDFLAGS LIBS=$_SAVE_LIBS if [ test -n "${NSPR_DIR}" && test -d "${NSPR_DIR}" ]; then NSPR_CFLAGS="-I${NSPR_DIR}/include" NSPR_LIBS="-L${NSPR_DIR}/lib ${NSPR_LIBS}" fi AC_SUBST(SYSTEM_JPEG) AC_SUBST(SYSTEM_PNG) AC_SUBST(SYSTEM_ZLIB) AC_SUBST(JPEG_CFLAGS) AC_SUBST(JPEG_LIBS) AC_SUBST(ZLIB_CFLAGS) AC_SUBST(ZLIB_LIBS) AC_SUBST(PNG_CFLAGS) AC_SUBST(PNG_LIBS) AC_SUBST(NSPR_CFLAGS) AC_SUBST(NSPR_LIBS) AC_SUBST(CFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(LIBS) AC_SUBST(MKSHLIB) AC_SUBST(DSO_LDOPTS) dnl Check for missing components if [ test "$MISSING_X" != "" ]; then AC_MSG_ERROR([ Could not find the following libraries: $MISSING_X ]); fi res=`echo :$MOZ_FE | grep -c " x"` if [ test $res != 0 ]; then if [ test "$MISSING_MOTIF" != "" ]; then AC_MSG_ERROR([ Could not the following libraries needed for xfe: $MISSING_MOTIF ]); else FE_X_MAKEFILES=" cmd/xfe/Makefile cmd/xfe/DtWidgets/Makefile cmd/xfe/Microline3.0/Makefile cmd/xfe/Microline3.0/XmL/Makefile cmd/xfe/Microline3.0/examples/Makefile cmd/xfe/XfeWidgets/Makefile cmd/xfe/XfeWidgets/Xfe/Makefile cmd/xfe/XfeWidgets/XfeBm/Makefile cmd/xfe/XfeWidgets/XfeCaption/Makefile cmd/xfe/XfeWidgets/XfeComboBox/Makefile cmd/xfe/XfeWidgets/XfeToolBar/Makefile cmd/xfe/XfeWidgets/XfeToolTip/Makefile cmd/xfe/XfeWidgets/XfeTest/Makefile cmd/xfe/XfeWidgets/tests/Makefile cmd/xfe/XfeWidgets/tests/Xfe/Makefile cmd/xfe/XfeWidgets/tests/XfeBm/Makefile cmd/xfe/XfeWidgets/tests/XfeCaption/Makefile cmd/xfe/XfeWidgets/tests/XfeComboBox/Makefile cmd/xfe/XfeWidgets/tests/XfeToolBar/Makefile cmd/xfe/XfeWidgets/tests/XfeToolTip/Makefile cmd/xfe/XfeWidgets/tests/XmL/Makefile cmd/xfe/icons/Makefile cmd/xfe/plugins/Makefile cmd/xfe/plugins/ImAlive/Makefile cmd/xfe/plugins/javatest/Makefile cmd/xfe/plugins/nullplugin/Makefile cmd/xfe/plugins/textplugin/Makefile cmd/xfe/src/Makefile" fi fi res=`echo :$MOZ_FE | grep -c " qt"` if [ test $res != 0 ]; then if [ test "$MISSING_QT" != "" ]; then AC_MSG_ERROR([ Could not find standard qt libraries.]); else FE_QT_MAKEFILES=" cmd/qtfe/Makefile cmd/qtfe/icons/Makefile" fi fi res=`echo :$MOZ_FE | grep -c " gtk"` if [ test $res != 0 ]; then if [ test "$MISSING_GTK" != "" ]; then AC_MSG_ERROR([ Could not find standard gtk libraries.]); else FE_GTK_MAKEFILES="" fi fi res=`echo :$MOZ_FE | grep -c " gnome"` if [ test $res != 0 ]; then if [ test "$MISSING_GNOME" != "" ]; then AC_MSG_ERROR([ Could not find standard gnome libraries.]); else FE_GNOME_MAKEFILES=" cmd/gnomefe/Makefile cmd/gnomefe/gnome-src/Makefile cmd/gnomefe/gnome-widgets/Makefile" fi fi if [ test "$MISSING_NSPR" != "" ]; then AC_MSG_ERROR([Could not find standard nspr headers or libraries.]); fi CLASSIC_MAKEFILES=" Makefile base/Makefile base/public/Makefile base/src/Makefile base/src/motif/Makefile base/src/gtk/Makefile base/tests/Makefile caps/Makefile caps/public/Makefile caps/include/Makefile caps/src/Makefile cmd/Makefile cmd/stubfe/Makefile $FE_GNOME_MAKEFILES $FE_GTK_MAKEFILES $FE_QT_MAKEFILES $FE_X_MAKEFILES config/Makefile config/autoconf.mk config/mkdepend/Makefile config/mkdetect/Makefile config/ports/Makefile dbm/Makefile dbm/include/Makefile dbm/src/Makefile dbm/tests/Makefile include/Makefile jpeg/Makefile js/Makefile js/jsd/Makefile js/jsd/classes/Makefile js/src/Makefile js/src/liveconnect/Makefile js/src/liveconnect/classes/Makefile js/src/xpcom/Makefile l10n/Makefile l10n/us/Makefile l10n/us/xp/Makefile lib/Makefile lib/htmldlgs/Makefile lib/layout/Makefile lib/libdom/Makefile lib/libi18n/Makefile lib/libi18n/unicode/Makefile lib/libi18n/unicode/tbltool/Makefile lib/libi18n/unicode/ufrmtbl/Makefile lib/libi18n/unicode/utotbl/Makefile lib/liblayer/Makefile lib/liblayer/include/Makefile lib/liblayer/src/Makefile lib/libmime/Makefile lib/libmisc/Makefile lib/libmocha/Makefile lib/libparse/Makefile lib/libpics/Makefile lib/libpwcac/Makefile lib/libstyle/Makefile lib/mailto/Makefile lib/mariner/Makefile lib/mariner/public/Makefile lib/mariner/src/Makefile lib/xlate/Makefile lib/xp/Makefile modules/Makefile modules/calendar/Makefile modules/calendar/src/Makefile modules/calendar/src/libcal/Makefile modules/edtplug/Makefile modules/edtplug/classes/Makefile modules/edtplug/classes/netscape/Makefile modules/edtplug/classes/netscape/plugin/Makefile modules/edtplug/classes/netscape/plugin/composer/Makefile modules/edtplug/classes/netscape/plugin/composer/io/Makefile modules/edtplug/classes/netscape/test/Makefile modules/edtplug/classes/netscape/test/plugin/Makefile modules/edtplug/classes/netscape/test/plugin/composer/Makefile modules/edtplug/include/Makefile modules/edtplug/src/Makefile modules/libfont/Makefile modules/libfont/classes/Makefile modules/libfont/classes/netscape/Makefile modules/libfont/classes/netscape/fonts/Makefile modules/libfont/producers/Makefile modules/libfont/public/Makefile modules/libfont/src/Makefile modules/libhook/Makefile modules/libhook/public/Makefile modules/libhook/src/Makefile modules/libimg/Makefile modules/libimg/classes/Makefile modules/libimg/classes/netscape/Makefile modules/libimg/classes/netscape/libimg/Makefile modules/libimg/png/Makefile modules/libimg/public/Makefile modules/libimg/src/Makefile modules/libpref/Makefile modules/libpref/admin/Makefile modules/libpref/l10n/Makefile modules/libpref/public/Makefile modules/libpref/src/Makefile modules/libreg/Makefile modules/libreg/include/Makefile modules/libreg/src/Makefile modules/libutil/Makefile modules/libutil/public/Makefile modules/libutil/src/Makefile modules/oji/Makefile modules/oji/public/Makefile modules/oji/src/Makefile modules/plugin/Makefile modules/plugin/nglsrc/Makefile modules/plugin/public/Makefile modules/plugin/src/Makefile modules/plugin/test/Makefile modules/progress/Makefile modules/progress/public/Makefile modules/progress/src/Makefile modules/rdf/Makefile modules/rdf/include/Makefile modules/rdf/src/Makefile modules/schedulr/Makefile modules/schedulr/public/Makefile modules/schedulr/src/Makefile modules/security/Makefile modules/security/freenav/Makefile modules/softupdt/Makefile modules/softupdt/classes/Makefile modules/softupdt/classes/netscape/Makefile modules/softupdt/classes/netscape/softupdate/Makefile modules/softupdt/include/Makefile modules/softupdt/src/Makefile modules/softupdt/src/nsdiff/Makefile modules/softupdt/src/nspatch/Makefile modules/xml/Makefile modules/xml/js/Makefile modules/xml/js/test/Makefile modules/zlib/Makefile modules/zlib/src/Makefile nav-java/Makefile nav-java/stubs/Makefile nav-java/stubs/include/Makefile nav-java/stubs/jri/Makefile nav-java/stubs/src/Makefile network/Makefile network/cache/Makefile network/cache/nu/Makefile network/cache/nu/include/Makefile network/cache/nu/public/Makefile network/cache/nu/src/Makefile network/client/Makefile network/cnvts/Makefile network/cstream/Makefile network/main/Makefile network/mimetype/Makefile network/module/Makefile network/module/tests/Makefile network/protocol/Makefile network/protocol/about/Makefile network/protocol/callback/Makefile network/protocol/certld/Makefile network/protocol/dataurl/Makefile network/protocol/file/Makefile network/protocol/ftp/Makefile network/protocol/gopher/Makefile network/protocol/http/Makefile network/protocol/imap4/Makefile network/protocol/js/Makefile network/protocol/ldap/Makefile network/protocol/mailbox/Makefile network/protocol/marimba/Makefile network/protocol/nntp/Makefile network/protocol/pop3/Makefile network/protocol/remote/Makefile network/protocol/smtp/Makefile network/util/Makefile privacy/Makefile privacy/public/Makefile privacy/src/Makefile sun-java/Makefile sun-java/stubs/Makefile sun-java/stubs/include/Makefile sun-java/stubs/jri/Makefile sun-java/stubs/src/Makefile xpcom/Makefile xpcom/public/Makefile xpcom/src/Makefile xpcom/tests/Makefile xpcom/tests/dynamic/Makefile " NG_MAKEFILES=" Makefile base/Makefile base/public/Makefile base/src/Makefile base/src/rhapsody/Makefile base/src/unix/Makefile base/src/gtk/Makefile base/tests/Makefile config/Makefile config/autoconf.mk config/mkdepend/Makefile config/mkdetect/Makefile config/ports/Makefile dbm/Makefile dbm/include/Makefile dbm/src/Makefile dbm/tests/Makefile dom/Makefile dom/public/Makefile dom/public/base/Makefile dom/public/coreDom/Makefile dom/public/coreEvents/Makefile dom/public/css/Makefile dom/public/events/Makefile dom/public/html/Makefile dom/src/Makefile dom/src/base/Makefile dom/src/build/Makefile dom/src/coreDOM/Makefile dom/src/css/Makefile dom/src/events/Makefile dom/src/html/Makefile dom/src/jsurl/Makefile dom/tools/Makefile gfx/Makefile gfx/public/Makefile gfx/src/Makefile gfx/src/gtk/Makefile gfx/src/motif/Makefile gfx/src/rhapsody/Makefile gfx/tests/Makefile htmlparser/Makefile htmlparser/robot/Makefile htmlparser/src/Makefile include/Makefile jpeg/Makefile js/Makefile js/jsd/Makefile js/jsd/classes/Makefile js/src/Makefile js/src/liveconnect/Makefile js/src/liveconnect/classes/Makefile js/src/xpcom/Makefile layout/Makefile layout/base/Makefile layout/base/public/Makefile layout/base/src/Makefile layout/base/tests/Makefile layout/build/Makefile layout/events/Makefile layout/events/public/Makefile layout/events/src/Makefile layout/html/Makefile layout/html/base/Makefile layout/html/base/src/Makefile layout/html/content/Makefile layout/html/content/public/Makefile layout/html/content/src/Makefile layout/html/document/Makefile layout/html/document/src/Makefile layout/html/forms/Makefile layout/html/forms/public/Makefile layout/html/forms/src/Makefile layout/html/style/Makefile layout/html/style/public/Makefile layout/html/style/src/Makefile layout/html/table/Makefile layout/html/table/src/Makefile layout/html/tests/Makefile layout/tools/Makefile lib/Makefile lib/liblayer/Makefile lib/liblayer/include/Makefile lib/liblayer/src/Makefile lib/libpwcac/Makefile lib/xp/Makefile modules/Makefile modules/libimg/Makefile modules/libimg/classes/Makefile modules/libimg/classes/netscape/Makefile modules/libimg/classes/netscape/libimg/Makefile modules/libimg/png/Makefile modules/libimg/public/Makefile modules/libimg/src/Makefile modules/libpref/Makefile modules/libpref/admin/Makefile modules/libpref/l10n/Makefile modules/libpref/public/Makefile modules/libpref/src/Makefile modules/libreg/Makefile modules/libreg/include/Makefile modules/libreg/src/Makefile modules/libutil/Makefile modules/libutil/public/Makefile modules/libutil/src/Makefile modules/oji/Makefile modules/oji/public/Makefile modules/oji/src/Makefile modules/plugin/Makefile modules/plugin/nglsrc/Makefile modules/plugin/public/Makefile modules/plugin/src/Makefile modules/plugin/test/Makefile modules/security/Makefile modules/security/freenav/Makefile modules/zlib/Makefile modules/zlib/src/Makefile nav-java/Makefile nav-java/stubs/Makefile nav-java/stubs/include/Makefile nav-java/stubs/jri/Makefile nav-java/stubs/src/Makefile network/Makefile network/cache/Makefile network/cache/nu/Makefile network/cache/nu/include/Makefile network/cache/nu/public/Makefile network/cache/nu/src/Makefile network/client/Makefile network/cnvts/Makefile network/cstream/Makefile network/main/Makefile network/mimetype/Makefile network/module/Makefile network/module/tests/Makefile network/protocol/Makefile network/protocol/about/Makefile network/protocol/callback/Makefile network/protocol/certld/Makefile network/protocol/dataurl/Makefile network/protocol/file/Makefile network/protocol/ftp/Makefile network/protocol/gopher/Makefile network/protocol/http/Makefile network/protocol/imap4/Makefile network/protocol/js/Makefile network/protocol/ldap/Makefile network/protocol/mailbox/Makefile network/protocol/marimba/Makefile network/protocol/nntp/Makefile network/protocol/pop3/Makefile network/protocol/remote/Makefile network/protocol/smtp/Makefile network/util/Makefile sun-java/Makefile sun-java/stubs/Makefile sun-java/stubs/include/Makefile sun-java/stubs/jri/Makefile sun-java/stubs/src/Makefile view/Makefile view/public/Makefile view/src/Makefile webshell/Makefile webshell/public/Makefile webshell/src/Makefile webshell/tests/Makefile webshell/tests/viewer/Makefile widget/Makefile widget/public/Makefile widget/src/Makefile widget/src/build/Makefile widget/src/motif/Makefile widget/src/rhapsody/Makefile widget/src/gtk/Makefile widget/src/xpwidgets/Makefile widget/tests/Makefile widget/tests/scribble/Makefile widget/tests/widget/Makefile xpcom/Makefile xpcom/public/Makefile xpcom/src/Makefile xpcom/tests/Makefile xpcom/tests/dynamic/Makefile" if test "$USE_NGLAYOUT" = 1; then THE_MAKEFILES="$NG_MAKEFILES" else THE_MAKEFILES="$CLASSIC_MAKEFILES" fi AC_OUTPUT($THE_MAKEFILES)