AC_INIT(src) dnl ========================================================================== dnl dnl If you add a version number here, you *must* add an AC_SUBST line for dnl it too, or it will never make it into the spec file! dnl dnl ========================================================================== ART_REQUIRED=2.3.6 BONOBO_ACTIVATION_REQUIRED=0.9.3 BONOBO_REQUIRED=1.106 EEL_REQUIRED=1.0.2 ESOUND_REQUIRED=0.2.22 GCONF_REQUIRED=1.1.3 GDK_PIXBUF_REQUIRED=1.3.10 GLIB_REQUIRED=1.3.10 GNOME_CANVAS_REQUIRED=1.105 GNOME_REQUIRED=1.105 GNOME_UI_REQUIRED=1.105 GNOME_VFS_REQUIRED=1.1 GTK_REQUIRED=1.3.10 IMLIB_REQUIRED=1.9.8 MEDUSA_REQUIRED=0.5.1 ORBIT_REQUIRED=2.3.97 POPT_REQUIRED=1.5 RSVG_REQUIRED=1.1 SCROLLKEEPER_REQUIRED=0.1.4 XML_REQUIRED=2.4.6 AC_SUBST(EEL_REQUIRED) AC_SUBST(ESOUND_REQUIRED) AC_SUBST(GNOME_VFS_REQUIRED) AC_SUBST(IMLIB_REQUIRED) AC_SUBST(MEDUSA_REQUIRED) AC_SUBST(ORBIT_REQUIRED) AC_SUBST(POPT_REQUIRED) AC_SUBST(RSVG_REQUIRED) AC_SUBST(SCROLLKEEPER_REQUIRED) AC_SUBST(XML_REQUIRED) dnl =========================================================================== AM_INIT_AUTOMAKE(nautilus, 1.0.5) AM_CONFIG_HEADER(config.h) AM_SANITY_CHECK AM_MAINTAINER_MODE AC_C_BIGENDIAN AC_C_CONST AC_ISC_POSIX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AM_DISABLE_STATIC AM_PROG_LIBTOOL AM_PATH_ESD AM_PATH_ORBIT2 GNOME_PLATFORM_GNOME_2(yes) PKG_CHECK_MODULES(ALL, \ bonobo-activation-2.0 >= $BONOBO_ACTIVATION_REQUIRED \ eel-2.0 >= $EEL_REQUIRED \ glib-2.0 >= $GLIB_REQUIRED \ gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED \ gtk+-2.0 >= $GTK_REQUIRED \ libart-2.0 >= $ART_REQUIRED \ libbonobo-2.0 >= $BONOBO_REQUIRED \ libbonoboui-2.0 >= $BONOBO_REQUIRED \ libgnome-2.0 >= $GNOME_REQUIRED \ libgnomecanvas-2.0 >= $GNOME_CANVAS_REQUIRED \ libgnomeui-2.0 >= $GNOME_UI_REQUIRED \ librsvg-2.0 >= $RSVG_REQUIRED \ libxml-2.0 >= $XML_REQUIRED) dnl ========================================================================== ALL_LINGUAS="az ca cs da de el en_GB es fi fr ga gl hu it ja ko lt lv nl nn no pl pt pt_BR ro ru sk sl sv ta tr uk zh_TW" GETTEXT_PACKAGE=nautilus AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE") AM_GLIB_GNU_GETTEXT AC_PROG_INTLTOOL dnl ========================================================================== ENABLE_PROFILER= AC_ARG_ENABLE(profiler, [ --enable-profiler Enable profiler], ENABLE_PROFILER=1 AC_DEFINE(ENABLE_PROFILER)) if test "x$ENABLE_PROFILER" = "x1" then CFLAGS="-g -O -gdwarf-2 -finstrument-functions -D__NO_STRING_INLINES" LDFLAGS="/gnome/PROFILE/lib/libprofiler.so -lpthread" fi AC_SUBST(ENABLE_PROFILER) AM_CONDITIONAL(ENABLE_PROFILER, test "x$ENABLE_PROFILER" = "x1") dnl ========================================================================== AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) dnl ========================================================================== AC_CHECK_FUNCS(setmntent endmntent hasmntopt) AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h) dnl ========================================================================== AC_CHECK_FUNCS(setenv unsetenv putenv) dnl ========================================================================== dnl FAM FAM_MISSING_WARNING="Nautilus depends on FAM to provide notification when files are altered (either through filesystem polling, or a kernel notification mechanism). If Nautilus is built without FAM support, directories viewed with Nautilus will not remain in synch with the actual filesystem when they are altered by external processes. Particularly if you are a distributor please compile Nautilus with FAM support. FAM is available from http://oss.sgi.com/projects/fam/. A patch to add Linux Kernel 2.4 directory notify support to FAM (highly desirable) is available from http://people.redhat.com/alexl/files/" FAM_LIBS= AC_CHECK_LIB(fam, FAMOpen, [AC_CHECK_HEADERS(fam.h, [AC_DEFINE(HAVE_LIBFAM) FAM_LIBS="-lfam"], AC_MSG_WARN(*** FAM support will not be built (header files not found) $FAM_MISSING_WARNING ***))], AC_MSG_WARN(*** FAM support will not be built (FAM library not found) $FAM_MISSING_WARNING ***)) AC_SUBST(FAM_LIBS) dnl ========================================================================== AC_ARG_WITH(libiconv, [ --with-libiconv Use the libiconv library ],,with_libiconv=maybe) found_iconv=no if test "x$with_libiconv" != "xyes" ; then # # Check in the C library # AC_CHECK_FUNC(iconv_open, with_libiconv=no; found_iconv=yes) fi if test "x$with_libiconv" != "xno" ; then # # Check for libiconv # AC_CHECK_LIB(iconv, libiconv_open, with_libiconv=yes; found_iconv=yes) fi if test "x$found_iconv" = "xno" ; then AC_MSG_ERROR([*** No iconv() implementation found in C library or libiconv]) fi if test "x$with_libiconv" = "xyes" ; then ICONV_LIBS="-liconv" fi AC_SUBST(ICONV_LIBS) dnl ========================================================================== dnl x86 checks (used by audio routines in music component) _system_is_x86="no" AC_CHECK_HEADER( asm/vm86.h, _system_is_x86="yes" ) AM_CONDITIONAL(X86_OPTIMIZED, test "x$_system_is_x86" = "xyes") dnl ========================================================================== dnl ==================================== dnl = mozilla embedded component support dnl = dnl = The following voodoo does detection of mozilla libraries needed by dnl = the nautilus mozilla component. dnl = dnl = The nautilus mozilla component is only built if these libraries are found dnl = dnl = --disable-mozilla-component can be used to disable building of the dnl = mozilla component even if the mozilla development libraries are dnl = detected. dnl ==================================== mozilla_component_enabled="yes" AC_ARG_ENABLE(mozilla-component, [ --disable-mozilla-component Disable the mozilla component], mozilla_component_enabled="$enableval") dnl Dont build the mozilla component for profiled builds because the C++ compiler dnl used for mozilla rpms is not binary compatible with the one used for profiling. if test "x$ENABLE_PROFILER" = "x1" then mozilla_component_enabled="no" fi found_mozilla=false if test "x$mozilla_component_enabled" = "xyes" then _mozilla_lib_place=/usr/lib/mozilla AC_ARG_WITH(mozilla-lib-place, [ --with-mozilla-lib-place Set mozilla 'lib' place ], [ _mozilla_lib_place="$withval" ]) _mozilla_include_place=/usr/include/mozilla AC_ARG_WITH(mozilla-include-place, [ --with-mozilla-include-place Set mozilla 'include' place ], [ _mozilla_include_place="$withval" ]) _mozilla_nspr_include_place=$_mozilla_include_place/nspr AC_ARG_WITH(mozilla-nspr-include-place, [ --with-mozilla-nspr-include-place Set mozilla nspr directory 'include' place ], [ _mozilla_nspr_include_place="$withval" ]) dnl Save flags and compiler _save_cflags="$CFLAGS" _save_ldflags="$LDFLAGS" _save_cc="$CC" dnl Hack flags to find the mozilla stuff CFLAGS="$_save_cflags -I$_mozilla_include_place -I$_mozilla_include_place/nspr" LDFLAGS="$_save_ldflags -L$_mozilla_lib_place" _mozilla_nspr_libs= AC_CHECK_LIB(nspr4, PR_Init, [_mozilla_nspr_libs="-lnspr4"]) LDFLAGS="$LDFLAGS $_mozilla_nspr_libs" _mozilla_plc_libs= AC_CHECK_LIB(plc4, PL_strcmp, [_mozilla_plc_libs="-lplc4"]) _mozilla_plds_libs= AC_CHECK_LIB(plds4, PL_NewHashTable, [_mozilla_plds_libs="-lplds4"]) _mozilla_all_nspr_flags="$_mozilla_nspr_libs $_mozilla_plc_libs $_mozilla_plds_libs" dnl Now check for the evil c++ ones "by hand" CC="g++" LDFLAGS="$_save_ldflags -L$_mozilla_lib_place $_mozilla_all_nspr_flags -lxpcom" AC_MSG_CHECKING(for xpcom) AC_CACHE_VAL(have_xpcom, [AC_TRY_COMPILE([extern "C" int NS_RegistryGetFactory(void**);] [], [NS_RegistryGetFactory(0); return 0;], [have_xpcom=true], [have_xpcom=false])]) if test "$have_xpcom" = "true" ; then _mozilla_xpcom_libs="-lxpcom" AC_MSG_RESULT(yes) else _mozilla_xpcom_libs= AC_MSG_RESULT(no) fi dnl The next two are pure evil CC="$_save_cc" dnl gtk superwin library LDFLAGS="$_save_ldflags -L$_mozilla_lib_place $_mozilla_all_nspr_flags -lgtksuperwin" _mozilla_gtk_super_win_libs= AC_CHECK_LIB(gtksuperwin, gdk_superwin_get_type, [_mozilla_gtk_super_win_libs="-lgtksuperwin"]) dnl gtk moz embed library LDFLAGS="$_save_ldflags -L$_mozilla_lib_place $_mozilla_all_nspr_flags -lgtkembedmoz $_mozilla_xpcom_libs" _mozilla_gtk_moz_embed_libs= AC_CHECK_LIB(gtkembedmoz, gtk_moz_embed_get_type, [_mozilla_gtk_moz_embed_libs="-lgtkembedmoz"]) dnl Restore the flags and compiler CFLAGS="$_save_cflags" LDFLAGS="$_save_ldflags" CC="$_save_cc" dnl Now make sure all the libraries are good AC_MSG_CHECKING(for Mozilla) if test -n "$_mozilla_nspr_libs" -a \ -n "$_mozilla_plc_libs" -a \ -n "$_mozilla_plds_libs" -a \ -n "$_mozilla_xpcom_libs" -a \ -n "$_mozilla_gtk_super_win_libs" -a \ -n "$_mozilla_gtk_moz_embed_libs" then AC_MSG_RESULT(yes) AC_PROG_CXX found_mozilla=true MOZILLA_COMPONENT_RPATH_FLAGS=-Wl,-rpath=$_mozilla_lib_place MOZILLA_COMPONENT_LDFLAGS=-L$_mozilla_lib_place MOZILLA_COMPONENT_LIBS="$_mozilla_gtk_moz_embed_libs \ $_mozilla_gtk_super_win_libs \ $_mozilla_xpcom_libs \ $_mozilla_nspr_libs \ $_mozilla_plc_libs \ $_mozilla_plds_libs" AC_SUBST(MOZILLA_COMPONENT_RPATH_FLAGS) AC_SUBST(MOZILLA_COMPONENT_LDFLAGS) AC_SUBST(MOZILLA_COMPONENT_LIBS) else AC_MSG_RESULT(no) found_mozilla=false fi fi AM_CONDITIONAL(BUILD_MOZILLA_COMPONENT, test "$found_mozilla" = "true") if test "$found_mozilla" = "true" then grep -w gtk_moz_embed_set_profile_path $_mozilla_include_place/gtkembedmoz/gtkmozembed.h > /dev/null 2>&1 if test $? -eq 0 then MOZILLA_PROFILES_CFLAGS="-DMOZILLA_HAVE_PROFILES_SUPPORT" AC_SUBST(MOZILLA_PROFILES_CFLAGS) MOZILLA_COMPONENT_CFLAGS="-I$_mozilla_include_place -I$_mozilla_nspr_include_place -fno-rtti -fno-exceptions" for component in xpcom gfx widget gtkembedmoz dom \ webbrwsr docshell content layout pref uconv string; do MOZILLA_COMPONENT_CFLAGS="$MOZILLA_COMPONENT_CFLAGS -I$_mozilla_include_place/$component" done AC_SUBST(MOZILLA_COMPONENT_CFLAGS) else AC_MSG_ERROR([ *** Mozilla 0.9.5 or greater is required to build the *** Nautilus Mozilla component.]) fi dnl The DEBUG check is a most evil hack. The problem im trying to solve dnl is that we dont know whether the mozilla binaries we are using are built dnl in debug mode or not (DEBUG). We need to know this so that we set dnl appropiate compile flags in the mozilla component. Otherwise we get dnl undefined symbols. Specifically, the undefined symbols are some dnl destrcutors (nsCOMPtr_base::~nsCOMPtr_base) which are implemented only dnl if the debug flag DEBUG is set a certain way. _xpcom_lib=$_mozilla_lib_place/libxpcom.so _symbol="nsCOMPtr_base::~nsCOMPtr_base" _num_symbols=`nm $_xpcom_lib 2> /dev/null | wc -l` MOZILLA_COMPONENT_DEBUG_FLAGS= if test $_num_symbols -ne 0 then nm --demangle $_xpcom_lib | grep $_symbol > /dev/null 2>&1 if test $? -eq 1 then MOZILLA_COMPONENT_DEBUG_FLAGS="-DDEBUG" fi fi AC_SUBST(MOZILLA_COMPONENT_DEBUG_FLAGS) fi dnl ========================================================================== dnl cdda AM_CONDITIONAL(HAVE_CDDA, false); AC_CHECK_HEADERS(cdda_interface.h cdda_paranoia.h, [ CDDA_LIBS="-lcdda_paranoia -lcdda_interface"; AM_CONDITIONAL(HAVE_CDDA, true); ]) dnl ========================================================================== dnl scrollkeeper AC_PATH_PROG(SCROLLKEEPER_CONFIG, scrollkeeper-config,no) if test x$SCROLLKEEPER_CONFIG = xno; then AC_MSG_ERROR(Couldn't find scrollkeeper-config, please install the scrollkeeper packaga) fi dnl ========================================================================== dnl jw (for doc build) AC_PATH_PROG(JW,jw,no) if test x$JW = xno; then HAVE_JW="no" else HAVE_JW="yes" fi AM_CONDITIONAL(HAVE_JW, test "x$HAVE_JW" = "xyes") AC_SUBST(HAVE_JW) dnl ========================================================================== AC_MSG_CHECKING(for Medusa) case "`medusa-config --libs 2>/dev/null | cut -d ' ' -f1`" in '') MEDUSA_CFLAGS="" MEDUSA_LIBS="" AC_MSG_RESULT(no) ;; *) MEDUSA_CFLAGS=`medusa-config --cflags` MEDUSA_LIBS=`medusa-config --libs` AC_DEFINE(HAVE_MEDUSA) AC_MSG_RESULT(yes) ;; esac AC_SUBST(MEDUSA_CFLAGS) AC_SUBST(MEDUSA_LIBS) dnl ========================================================================== dnl libpng if test -z "$LIBPNG"; then AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=no)], AC_MSG_ERROR(*** (PNG library not found) ***), -lz -lm) if test "$png_ok" = yes; then AC_MSG_CHECKING([for png_structp in png.h]) AC_TRY_COMPILE([#include ], [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;], png_ok=yes, png_ok=no) AC_MSG_RESULT($png_ok) if test "$png_ok" = yes; then PNG='png'; LIBPNG='-lpng -lz' else AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***) fi else AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***) fi fi AC_SUBST(LIBPNG) dnl ========================================================================== dnl libjpeg if test -z "$LIBJPEG"; then AC_CHECK_LIB(jpeg, jpeg_start_decompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], AC_MSG_WARN(*** (jpeg library not found) ***), -lm) if test "$jpeg_ok" = yes; then JPEG='jpeg'; LIBJPEG='-ljpeg' AC_DEFINE(HAVE_LIBJPEG) else AC_MSG_WARN(*** JPEG loader will not be built (jpeg header file not found) ***) fi fi AC_SUBST(LIBJPEG) dnl ========================================================================== dnl Turn on the additional warnings last, so -Werror doesn't affect other tests. AC_ARG_ENABLE(more-warnings, [ --enable-more-warnings Maximum compiler warnings], set_more_warnings="$enableval",[ if test -f $srcdir/CVSVERSION; then is_cvs_version=true set_more_warnings=yes else set_more_warnings=no fi ]) AC_MSG_CHECKING(for more warnings, including -Werror) if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then AC_MSG_RESULT(yes) CFLAGS="\ -Wall \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith \ -Wcast-align -Wsign-compare \ -Werror \ $CFLAGS" for option in -Wsign-promo -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$option $CFLAGS" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) if test $has_option = no; then CFLAGS="$SAVE_CFLAGS" fi AC_MSG_RESULT($has_option) unset has_option unset SAVE_CFLAGS done unset option else AC_MSG_RESULT(no) fi dnl ========================================================================== dnl gimphwrapbox GIMPHWRAPBOX_MODULES="gtk+-2.0" GIMPHWRAPBOX_CFLAGS="`$PKG_CONFIG --cflags $GIMPHWRAPBOX_MODULES`" AC_SUBST(GIMPHWRAPBOX_CFLAGS) dnl libnautilus (must list bonobo-activation and libbonobo because idldir does not respect "requires") LIBNAUTILUS_MODULES="eel-2.0 bonobo-activation-2.0 libbonobo-2.0 libbonoboui-2.0" LIBNAUTILUS_CFLAGS="`$PKG_CONFIG --cflags $LIBNAUTILUS_MODULES`" AC_SUBST(LIBNAUTILUS_CFLAGS) LIBNAUTILUS_LIBS="`$PKG_CONFIG --libs $LIBNAUTILUS_MODULES`" AC_SUBST(LIBNAUTILUS_LIBS) LIBNAUTILUS_IDL_INCLUDES="`$PKG_CONFIG --variable=idldir $LIBNAUTILUS_MODULES | $srcdir/add-include-prefix`" AC_SUBST(LIBNAUTILUS_IDL_INCLUDES) dnl core nautilus (must list bonobo-activation and libbonobo because idldir does not respect "requires") CORE_MODULES="eel-2.0 bonobo-activation-2.0 libbonobo-2.0 libbonoboui-2.0" CORE_CFLAGS="`$PKG_CONFIG --cflags $CORE_MODULES`" AC_SUBST(CORE_CFLAGS) CORE_LIBS="`$PKG_CONFIG --libs $CORE_MODULES` $CDDA_LIBS $ESD_LIBS $FAM_LIBS $ICONV_LIBS $LIBJPEG $MEDUSA_LIBS" AC_SUBST(CORE_LIBS) CORE_IDL_INCLUDES="`$PKG_CONFIG --variable=idldir $CORE_MODULES | $srcdir/add-include-prefix`" AC_SUBST(CORE_IDL_INCLUDES) dnl libnautilus-private LIBNAUTILUS_PRIVATE_LIBS="$CORE_LIBS $CDDA_LIBS $ESD_LIBS $FAM_LIBS $ICONV_LIBS $LIBJPEG $MEDUSA_LIBS" AC_SUBST(LIBNAUTILUS_PRIVATE_LIBS) dnl typical components COMPONENT_MODULES="eel-2.0 libbonoboui-2.0 gnome-vfs-module-2.0" COMPONENT_CFLAGS="`$PKG_CONFIG --cflags $COMPONENT_MODULES`" AC_SUBST(COMPONENT_CFLAGS) COMPONENT_LIBS="`$PKG_CONFIG --libs $COMPONENT_MODULES`" AC_SUBST(COMPONENT_LIBS) dnl ========================================================================== AC_OUTPUT([ Makefile components/Makefile components/adapter/Makefile components/hardware/Makefile components/hardware/icons/Makefile components/help/Makefile components/history/Makefile components/image-viewer/Makefile components/loser/Makefile components/loser/content/Makefile components/loser/sidebar/Makefile components/mozilla/Makefile components/music/Makefile components/news/Makefile components/notes/Makefile components/sample/Makefile components/text/Makefile components/text/services/Makefile components/throbber/Makefile components/tree/Makefile cut-n-paste-code/Makefile cut-n-paste-code/widgets/Makefile cut-n-paste-code/widgets/gimphwrapbox/Makefile data/Makefile data/emblems/Makefile data/patterns/Makefile help/Makefile help/nautilus-quick-reference/C/Makefile help/nautilus-quick-reference/Makefile help/nautilus-quick-reference/es/Makefile help/nautilus-quick-reference/ko/Makefile help/nautilus-quick-reference/no/Makefile help/nautilus-quick-reference/sv/Makefile help/nautilus-release-notes/C/Makefile help/nautilus-release-notes/Makefile help/nautilus-screenshot-guidelines/C/Makefile help/nautilus-screenshot-guidelines/Makefile help/nautilus-user-manual/C/Makefile help/nautilus-user-manual/Makefile help/nautilus-user-manual/es/Makefile help/nautilus-user-manual/ko/Makefile icons/Makefile icons/crux_eggplant/Makefile icons/crux_eggplant/backgrounds/Makefile icons/crux_eggplant/sidebar_tab_pieces/Makefile icons/crux_eggplant/throbber/Makefile icons/crux_teal/Makefile icons/crux_teal/backgrounds/Makefile icons/crux_teal/sidebar_tab_pieces/Makefile icons/crux_teal/throbber/Makefile icons/gnome/Makefile icons/gnome/sidebar_tab_pieces/Makefile icons/gnome/throbber/Makefile icons/sidebar_tab_pieces/Makefile icons/sierra/Makefile icons/tahoe/Makefile icons/throbber/Makefile libnautilus-adapter/Makefile libnautilus-private/Makefile libnautilus/Makefile libnautilus/libnautilus.pc nautilus.spec omf-install/Makefile po/Makefile.in src/Makefile src/file-manager/Makefile test/Makefile user-guide/Makefile user-guide/gnufdl/Makefile user-guide/gnugpl/Makefile ]) dnl ========================================================================== dnl <= Configuration summary => echo "Nautilus configuration summary:" echo "" dnl <= CFLAGS and LDFLAGS => echo "CFLAGS : $CFLAGS" echo "LDFLAGS : $LDFLAGS" echo "" dnl <= Mozilla component integrated? => case $found_mozilla in t*) echo "Mozilla component : YES" echo " mozilla libraries : $_mozilla_lib_place" echo " mozilla includes : $_mozilla_include_place" echo " MOZILLA_PROFILES_CFLAGS : $MOZILLA_PROFILES_CFLAGS" echo " MOZILLA_COMPONENT_RPATH_FLAGS : $MOZILLA_COMPONENT_RPATH_FLAGS" echo " MOZILLA_COMPONENT_DEBUG_FLAGS : $MOZILLA_COMPONENT_DEBUG_FLAGS" ;; *) echo "Mozilla component : NO" ;; esac dnl <= Profile support? => case "X$ENABLE_PROFILER" in X1) echo "Enable profiler : YES" ;; *) echo "Enable profiler : NO" ;; esac dnl <= End of configuration summary =>