dnl 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 Ramiro Estrugo X11 makedepend support dnl dnl Process this file with autoconf to produce a configure script. dnl ======================================================== AC_PREREQ(2.12) 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 dnl Set this define to make fixes w/o breaking anything else AC_DEFINE(USE_AUTOCONF) AC_DEFINE(MOZILLA_CLIENT) dnl d=`pwd` dnl if [ test "${srcdir}" = "${d}" || test "${srcdir}" = "." ]; then dnl AC_ERROR(Building in the srcdir is not supported! Please build from a separate objdir.) dnl fi dnl unset d dnl Build optimized by default dnl ======================================================== CFLAGS="${CFLAGS=-O}" CXXFLAGS="${CXXFLAGS=-O}" dnl Set the version number of the libs included with mozilla dnl ======================================================== MOZJPEG=62 MOZPNG=95 dnl Set the minimum version of toolkit libs used by mozilla dnl ======================================================== GTK_VERSION=1.1.13 dnl Set various checks dnl ======================================================== MISSING_X= MISSING_MOTIF= MISSING_GTK= dnl Checks for programs. dnl ======================================================== AC_PROG_CC AC_PROG_CXX AC_PROG_CC_C_O if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then USING_HCC=1 _OLDCC=$CC _OLDCXX=$CXX CC="${srcdir}/build/hcc '$CC'" CXX="${srcdir}/build/hcpp '$CXX'" fi AC_PROG_CPP AC_PROG_CXXCPP 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_XTRA XLDFLAGS="$X_LIBS" XLIBS="$X_EXTRA_LIBS" 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 ======================================================== DLL_SUFFIX="so" MKSHLIB='$(LD) $(DSO_LDOPTS)' DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' DSO_CFLAGS='-KPIC' 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)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' DSO_CFLAGS='-fPIC' fi dnl now the exceptions dnl ======================================================== case "$target" in *-*-solaris*) AC_DEFINE(BROKEN_QSORT) if test -z "$GNU_CC"; then MKSHLIB='$(CXX) -xar $(DSO_LDOPTS)' DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' fi ;; alpha-*-linux*) CFLAGS="$CFLAGS -mieee" ;; alpha*-*-osf*) if [ test "$GNU_CC" = 1 ]; then DSO_LDOPTS='-shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' else CFLAGS="$CFLAGS -std1 -ieee_with_inexact" DSO_LDOPTS='-shared -expect_unresolved \* -soname $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' DSO_CFLAGS= fi ;; *-freebsd*) if test -z "$GNU_CC"; then DSO_LDOPTS="-Bshareable $DSO_LDOPTS" fi if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` = "elf"; then DLL_SUFFIX="so" else DLL_SUFFIX="so.1.0" fi ;; *-netbsd*) DLL_SUFFIX=".so.1.0" DSO_CFLAGS='-fPIC' DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))' MKSHLIB='$(LD) $(DSO_LDOPTS)' if test -z "`$CC -E - -dM #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 c++ features dnl Is there a way to make AC_TRY_COMPILE use CXX instead of CC? _SAVE_CC=$CC CC=$CXX AC_MSG_CHECKING(for ios::binary) AC_CACHE_VAL(ac_cv_ios_binary, [AC_TRY_COMPILE([#include ] [#include ], [char *buffer = "config.log"; fstream *mFileStream=new fstream(buffer, ios::binary);], [ac_ios_binary=true], [ac_ios_binary=false]) ac_cv_ios_binary=$ac_ios_binary]) ac_ios_binary=$ac_cv_ios_binary if test $ac_ios_binary = true ; then AC_DEFINE(HAVE_IOS_BINARY) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi CC=$_SAVE_CC dnl Checks for c++ features dnl Is there a way to make AC_TRY_COMPILE use CXX instead of CC? _SAVE_CC=$CC CC=$CXX AC_MSG_CHECKING(for ios::bin) AC_CACHE_VAL(ac_cv_ios_bin, [AC_TRY_COMPILE([#include ] [#include ], [char *buffer = "config.log"; fstream *mFileStream=new fstream(buffer, ios::bin);], [ac_ios_bin=true], [ac_ios_bin=false]) ac_cv_ios_bin=$ac_ios_bin]) ac_ios_bin=$ac_cv_ios_bin if test $ac_ios_bin = true ; then AC_DEFINE(HAVE_IOS_BIN) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi CC=$_SAVE_CC dnl Mozilla specific options dnl ======================================================== dnl nglayout only supports building with one toolkit dnl so ignore everything after the first , AC_ARG_ENABLE(toolkit, [ --enable-toolkit=\$val enable \$val fe (defaults to gtk)], [ res=`echo $target_os| grep -c "^Rhapsody"`; if test "$enableval" != "motif" && test "$enableval" != "gtk" && test $res = 0; then AC_MSG_ERROR(Toolkit must be either gtk or motif.) else MOZ_TOOLKIT=`echo "$enableval" | sed -e "s/,.*//g" ` fi ], MOZ_TOOLKIT=USE_DEFAULT) if [ test "$MOZ_TOOLKIT" = "USE_DEFAULT" ]; then res=`echo $target_os| grep -c "^Rhapsody"` if [ test $res != 0 ]; then MOZ_TOOLKIT="rhapsody" else MOZ_TOOLKIT="gtk" fi fi CFLAGS="$CFLAGS -DMOZ_TOOLKIT=$MOZ_TOOLKIT" OS_TARGET=`uname -s` 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" else MOZ_DEBUG_MODULES=`echo $enableval | sed 's|,| |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_MAIL_NEWS=1 fi] ) AC_ARG_ENABLE(ldap, [ --enable-ldap enable LDAP directory access], [if test "$enableval" = "yes"; then MOZ_LDAP=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(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_ARG_ENABLE(idltool, [ --enable-idltool build idl tool (default=no) ], [if test "$enableval" = "yes"; then MOZ_IDL_TOOL=1 fi] ) AC_SUBST(OS_TARGET) AC_SUBST(MOZ_TOOLKIT) AC_SUBST(MOZ_SECURITY) AC_SUBST(MOZ_NETCAST) AC_SUBST(MOZ_JAVA) AC_SUBST(MOZ_OJI) AC_SUBST(MOZ_DEBUG) AC_SUBST(MOZ_DEBUG_MODULES) AC_SUBST(MOZILLA_GPROF) AC_SUBST(MOZ_MAIL_NEWS) AC_SUBST(MOZ_LDAP) 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(MOZ_MAIL_COMPOSE) AC_SUBST(FULL_STATIC_BUILD) AC_SUBST(NO_UNIX_LDAP) AC_SUBST(MOZ_IDL_TOOL) dnl Checks for X libraries. dnl Ordering is important. dnl Xt is dependent upon SM as of X11R6 dnl ======================================================== if [ test "$no_x" != "yes" ]; then _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" dnl Check for toolkit libs dnl ======================================================== res=`echo :$MOZ_TOOLKIT | grep -c "motif"` if [ test $res != 0 ]; then if [ test "$no_x" != "yes" ]; then 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 fi 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, TK_MOTIF_LIBS="-lXpm $TK_MOTIF_LIBS", [MISSING_MOTIF="-lXpm $MISSING_MOTIF"], $XLIBS) fi if [ test "$MOTIF_VERSION" = "2.1" ]; then AC_CHECK_LIB(Xp, XpGetPrinterList, TK_MOTIF_LIBS="-lXp $TK_MOTIF_LIBS", [MISSING_MOTIF="-lXp $MISSING_MOTIF"], $XLIBS) fi TK_MOTIF_LIBS="$XLDFLAGS $TK_MOTIF_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, TK_MOTIF_LIBS="$MOTIF_DYNAMIC_PATHS $MOTIF_DYNAMIC_FLAGS $TK_MOTIF_LIBS", [MISSING_MOTIF="$MOTIF_DYNAMIC_FLAGS $MISSING_MOTIF"], $MOTIF_DYNAMIC_PATHS $TK_MOTIF_LIBS $XLIBS) LDFLAGS="$_SAVE_LDFLAGS" else AC_CHECK_LIB(Xm, XmStringCreate, TK_MOTIF_LIBS="$MOTIF_STATIC_FLAGS $TK_MOTIF_LIBS", [MISSING_MOTIF="$MOTIF_STATIC_FLAGS $MISSING_MOTIF"], $TK_MOTIF_LIBS $XLIBS) fi TK_MOTIF_CFLAGS="$MOTIF_INCLUDES" fi res=`echo :$MOZ_TOOLKIT | grep -c "gtk"` if [ test $res != 0 ]; then AM_PATH_GTK($GTK_VERSION,, AC_MSG_ERROR(Test for GTK failed.)) AC_ARG_WITH(static-gtk, [ --with-static-gtk link gtk statically if possible], sysstaticgtk=$withval) if [ test "$sysstaticgtk" != "yes" ]; then TK_GTK_LIBS=$GTK_LIBS else changequote(,) GTK_LIBS_LOC=`echo $GTK_LIBS | sed 's/\(.*\)\(-lgtk.*\)/\1/'` GTK_STATIC_LOC=`echo $GTK_LIBS | sed 's/^ *-L\([^ ]*\) .*$/\1/'` GTK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gtk[^ ]*\) .*/\1/'` GDK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gdk[^ ]*\) .*/\1/'` GLIB_STATIC_LOC=`echo $GTK_LIBS | sed -e 's/^.*-lgdk[^ ]* *-L\([^ ]*\).*$/\1/' -e 's/^.* -lgdk[^ ]* .*$//'` if test -z "$GLIB_STATIC_LOC" ; then GLIB_STATIC_LOC=$GTK_STATIC_LOC fi GMODULE_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gmodule[^ ]*\) .*/\1/'` GLIB_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(glib[^ ]*\) .*/\1/'` GTK_OTHER_LIBS=`echo $GTK_LIBS | sed 's/^.*-lglib *\(.*\)/\1/'` changequote([,]) TK_GTK_LIBS="$GTK_STATIC_LOC/lib${GTK_STATIC}.a" TK_GTK_LIBS="$TK_GTK_LIBS $GTK_STATIC_LOC/lib${GDK_STATIC}.a" TK_GTK_LIBS="$TK_GTK_LIBS $GLIB_STATIC_LOC/lib${GMODULE_STATIC}.a" TK_GTK_LIBS="$TK_GTK_LIBS $GLIB_STATIC_LOC/lib${GLIB_STATIC}.a" TK_GTK_LIBS="$TK_GTK_LIBS $GTK_LIBS_LOC $GTK_OTHER_LIBS" fi TK_GTK_CFLAGS=$GTK_CFLAGS fi fi # $no_x AC_SUBST(GTK_CONFIG) AC_SUBST(TK_GTK_CFLAGS) AC_SUBST(TK_GTK_LIBS) AC_SUBST(TK_MOTIF_CFLAGS) AC_SUBST(TK_MOTIF_LIBS) XCFLAGS="$X_CFLAGS" AC_SUBST(XCFLAGS) AC_SUBST(XLDFLAGS) AC_SUBST(XLIBS) 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 dnl system FullCircle/Talkback support dnl ======================================================== AC_ARG_WITH(fullcircle, [ --with-fullcircle=\$dir location of FullCircle headers and libraries], FULLCIRCLE_DIR=$withval, FULLCIRCLE_DIR=no) if test "$FULLCIRCLE_DIR" = no; then FULLCIRCLE_DIR= else _SAVE_CFLAGS=$CFLAGS _SAVE_LDFLAGS=$LDFLAGS _SAVE_LIBS=$LIBS CFLAGS="$CFLAGS -I${FULLCIRCLE_DIR}" LDFLAGS="$LDFLAGS -L${FULLCIRCLE_DIR}" AC_MSG_CHECKING("for FC_Initialize in -ltalkback"); LIBS="-ltalkback $LIBS" AC_TRY_LINK([ #include "fullcircle.h" #include ], [FC_Initialize(); exit(0);] ,[FULLCIRCLE_LIB="-ltalkback $FULLCIRCLE_LIB" result="yes"], [MISSING_FULLCIRCLE=1 result="no"]) AC_MSG_RESULT("$result") CFLAGS=$_SAVE_CFLAGS LDFLAGS=$_SAVE_LDFLAGS LIBS=$_SAVE_LIBS if [ test -n "$MISSING_FULLCIRCLE" ]; then AC_MSG_ERROR([Could not find FullCircle Library]); fi fi 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_attr_init, NSPR_LIBS="-lpthread $NSPR_LIBS" USE_PTHREADS=1) case "$target" in *-*-solaris*) CFLAGS="$CFLAGS -D_REENTRANT" ;; *-*-linux*) CFLAGS="$CFLAGS -D_REENTRANT" ;; alpha*-*-osf*) if [ test "$GNU_CC" = 1 ]; then CFLAGS="$CFLAGS -D_REENTRANT" else CFLAGS="$CFLAGS -pthread" fi ;; esac 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" 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 *-*-solaris*) AC_CHECK_LIB(pthread, pthread_attr_init, NSPR_LIBS="-lpthread $NSPR_LIBS") ;; *-*-linux*) AC_CHECK_LIB(pthread, pthread_attr_init, NSPR_LIBS="-lpthread $NSPR_LIBS") ;; 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_GetEvent, 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 dnl Support for X11 makedepend, if found on the system dnl ======================================================== AC_PATH_PROG(SYSTEM_MAKEDEPEND,makedepend) AC_SUBST(SYSTEM_MAKEDEPEND) 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_CFLAGS) AC_SUBST(DSO_LDOPTS) AC_SUBST(DLL_SUFFIX) if test "$USING_HCC"; then CC='${topsrcdir}/build/hcc' CC="$CC '$_OLDCC'" CXX='${topsrcdir}/build/hcpp' CXX="$CXX '$_OLDCXX'" AC_SUBST(CC) AC_SUBST(CXX) fi dnl Check for missing components if [ test "$no_x" != "yes" ]; then if [ test -n "$MISSING_X" ]; then AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]); fi if [ test -n "$MISSING_GTK" ]; then AC_MSG_ERROR([ Could not link sample program with the following gtk libraries: $MISSING_GTK ]) fi if [ test -n "$MISSING_MOTIF" ]; then AC_MSG_ERROR([ Could not find the following motif libraries: $MISSING_MOTIF ]); fi fi # $no_x if [ test -n "$MISSING_NSPR" ]; then AC_MSG_ERROR([Could not find the following nspr libraries or could not run sample program: $MISSING_NSPR]); fi dnl Need to manual make the directories to get around deficiency in AC_OUTPUT for d in lib modules modules/security; do if [ test ! -d $d ]; then rm -f $d; mkdir $d; fi done NG_MAKEFILES=" Makefile base/Makefile base/public/Makefile base/src/Makefile base/src/motif/Makefile base/src/rhapsody/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 editor/Makefile editor/public/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 intl/Makefile intl/uconv/Makefile intl/uconv/public/Makefile intl/uconv/src/Makefile intl/uconv/tests/Makefile intl/uconv/ucvja/Makefile intl/uconv/ucvlatin/Makefile jpeg/Makefile js/Makefile js/jsd/Makefile js/jsd/classes/Makefile js/src/Makefile js/src/fdlibm/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 layout/xml/Makefile layout/xml/content/Makefile layout/xml/content/public/Makefile layout/xml/content/src/Makefile layout/xml/document/Makefile layout/xml/document/public/Makefile layout/xml/document/src/Makefile layout/xul/Makefile layout/xul/base/Makefile layout/xul/base/src/Makefile layout/xul/content/Makefile layout/xul/content/src/Makefile lib/liblayer/Makefile lib/liblayer/include/Makefile lib/liblayer/src/Makefile lib/libpwcac/Makefile lib/xp/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/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/cache/nu/tests/Makefile network/cache/nu/tests/fftest/Makefile network/client/Makefile network/cnvts/Makefile network/cstream/Makefile network/main/Makefile network/mimetype/Makefile network/public/Makefile network/module/Makefile network/module/tests/Makefile network/protocol/Makefile network/protocol/about/Makefile network/protocol/callback/Makefile network/protocol/dataurl/Makefile network/protocol/file/Makefile network/protocol/ftp/Makefile network/protocol/gopher/Makefile network/protocol/http/Makefile network/protocol/js/Makefile network/protocol/ldap/Makefile network/protocol/marimba/Makefile network/protocol/remote/Makefile network/util/Makefile rdf/Makefile rdf/base/Makefile rdf/base/public/Makefile rdf/base/src/Makefile rdf/build/Makefile rdf/content/Makefile rdf/content/public/Makefile rdf/content/src/Makefile rdf/datasource/Makefile rdf/datasource/public/Makefile rdf/datasource/src/Makefile rdf/tests/Makefile rdf/tests/localfile/Makefile rdf/tests/rdfsink/Makefile sun-java/Makefile sun-java/stubs/Makefile sun-java/stubs/include/Makefile sun-java/stubs/jri/Makefile sun-java/stubs/src/Makefile caps/Makefile caps/include/Makefile caps/public/Makefile caps/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 webshell/tests/viewer/public/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 xpcom/tools/Makefile xpcom/tools/xpidl/Makefile xpcom/libxpt/Makefile xpcom/libxpt/public/Makefile xpcom/libxpt/src/Makefile xpcom/libxpt/tests/Makefile silentdl/Makefile xpfe/Makefile dnl xpfe/xpviewer/Makefile dnl xpfe/xpviewer/src/Makefile dnl xpfe/xpviewer/public/Makefile xpfe/appshell/Makefile xpfe/appshell/src/Makefile xpfe/appshell/public/Makefile xpfe/bootstrap/Makefile" EDITOR_MAKEFILES=" editor/core/Makefile editor/txmgr/Makefile editor/txmgr/public/Makefile editor/txmgr/src/Makefile editor/txmgr/tests/Makefile editor/guimgr/Makefile editor/guimgr/src/Makefile editor/guimgr/public/Makefile" MAILNEWS_MAKEFILES=" network/protocol/certld/Makefile network/protocol/imap4/Makefile network/protocol/mailbox/Makefile network/protocol/nntp/Makefile network/protocol/pop3/Makefile network/protocol/smtp/Makefile mailnews/Makefile mailnews/base/Makefile mailnews/base/public/Makefile mailnews/base/src/Makefile mailnews/base/build/Makefile mailnews/base/tests/Makefile mailnews/imap/Makefile mailnews/imap/public/Makefile mailnews/imap/src/Makefile mailnews/news/Makefile mailnews/news/public/Makefile mailnews/news/src/Makefile mailnews/news/tests/Makefile mailnews/mime/Makefile mailnews/mime/public/Makefile mailnews/mime/src/Makefile mailnews/public/Makefile " MAKEFILES="$NG_MAKEFILES" if test -n "$MOZ_EDITOR"; then MAKEFILES="$MAKEFILES $EDITOR_MAKEFILES" fi if test -n "$MOZ_MAIL_NEWS"; then MAKEFILES="$MAKEFILES $MAILNEWS_MAKEFILES" fi AC_OUTPUT($MAKEFILES)