nautilus/configure.in
Ramiro Estrugo a5eedddc21 reviewed by: <delete if not using a buddy>
2001-03-02  Ramiro Estrugo  <ramiro@eazel.com>

	    reviewed by: <delete if not using a buddy>

	    Bug 2673 - Need to hook up the new font picker to nautilus .

	    * configure.in:
	    Remove an old font setup hack that never really worked.

	    * data/fonts/urw/fonts.dir:
	    Rename the fonts to "Helvetica Default" in order not to clash with
	    system fonts.

	    * libnautilus-extensions/nautilus-font-manager.h:
	    * libnautilus-extensions/nautilus-font-manager.c:
	    (font_description_new): Add a font type parameter.
	    (font_lists_total_num_fonts): New function to count the total
	    number of scalable fonts detetected.
	    (font_description_table_add): Pass in the detected font lists to
	    do reality checks.
	    (font_get_font_type): New function.
	    (font_description_table_get_length),
	    (font_description_table_peek_nth),
	    (font_description_table_get_nth_file_name): Name the parameters
	    more consistently.
	    (font_description_table_for_each): Add font type parameter
	    (font_description_table_new): Rework to not require storing the
	    detected font list.  We now use that only for the duration of the
	    constructor.  Lost the install_font_lists dumbness.
	    (font_server_for_each_font_directory_internal): Use g_warning
	    instead of g_print.
	    (font_ignore_directory): New function to determine whether we
	    should ignore a directory - makes things much faster.
	    (font_manager_collect_font_tables): New function to handle all the
	    work of collecting font directories into tables.
	    (font_server_for_each_callback), (font_table_list_free),
	    (font_table_list_for_each), (free_font_tables),
	    (ensure_at_exit_handler), (ensure_fallback_font_table),
	    (ensure_user_font_table), (ensure_system_font_tables): Add 3
	    tables for fallback, system and users fonts.  These are populated
	    as needed.
	    (nautilus_font_manager_for_each_font): Iterate the 3 font talbles.
	    (nautilus_font_manager_get_fallback_font) : New function to obtain
	    a fallback font quickly without having to check the system.
	    (call_chop_off_comments), (nautilus_self_check_font_manager):
	    Rework the checks to not create a temp directory.  Unfortunately
	    they now only run for me.

	    * libnautilus-extensions/nautilus-font-picker.h:
	    * libnautilus-extensions/nautilus-font-picker.c:
	    (nautilus_font_picker_initialize_class),
	    (nautilus_font_picker_initialize), (nautilus_font_picker_destroy),
	    (font_entry_list_find), (font_picker_update),
	    (font_name_picker_changed_callback),
	    (style_picker_changed_callback), (ignore_font),
	    (font_manager_callback), (style_list_for_each_callback),
	    (font_entry_list_for_each_callback),
	    (nautilus_font_picker_get_selected_font),
	    (nautilus_font_picker_set_selected_font),
	    (nautilus_font_picker_set_title_label):
	    Use the new font manager.

	    * libnautilus-extensions/nautilus-global-preferences.h:
	    * libnautilus-extensions/nautilus-global-preferences.c:
	    (global_preferences_install_descriptions),
	    (global_preferences_install_defaults),
	    (global_preferences_create_dialog), (appearnace_pane_update),
	    (global_preferences_create_font_group),
	    (global_preferences_install_home_location_defaults),
	    (global_preferences_install_font_defaults):
	    Add a new preference for the smooth font.
	    Factor our the default font code to its own function.  Setup the
	    font pickers items to be mutually exclusive according to the
	    smooth graphics mode preference value.

	    * libnautilus-extensions/nautilus-gtk-extensions.h:
	    * libnautilus-extensions/nautilus-gtk-extensions.c:
	    (nautilus_gtk_widget_set_shown):
	    New function to show or hide a widget in one go.

	    * libnautilus-extensions/nautilus-preferences-group.c:
	    (nautilus_preferences_group_update):
	    Dont show the widget if a controlling preference prevents it.

	    * libnautilus-extensions/nautilus-preferences-item.h:
	    * libnautilus-extensions/nautilus-preferences-item.c:
	    (preferences_item_update_smooth_font),
	    (preferences_smooth_font_changed_callback),
	    (preferences_item_create_smooth_font): Add support for a smooth
	    font picker.
	    (preferences_item_destroy), (preferences_item_construct),
	    (nautilus_preferences_item_set_control_preference),
	    (nautilus_preferences_item_set_control_action),
	    (nautilus_preferences_item_get_control_showing): Add support for
	    using a controlling preference which can force the widget to be
	    shown or hidden depending on its value.

	    * libnautilus-extensions/nautilus-preferences-pane.c:
	    (nautilus_preferences_pane_update):
	    Use new gtk extension to show or hide the widget in one go.

	    * libnautilus-extensions/nautilus-scalable-font.h:
	    * libnautilus-extensions/nautilus-scalable-font.c:
	    (font_family_string_map_new): Update fallback font name.
	    (nautilus_scalable_font_new_from_file_name): New function to
	    create a font directly from a font file name.
	    (nautilus_scalable_font_get_default_font): Update fallback font name.
	    (nautilus_scalable_font_get_default_bold_font): New function to
	    get a fallback bold font.
	    Remove some unsed functions.  Remove the font setup hack, the font
	    manager takes care of that now.

	    * libnautilus-extensions/nautilus-string-picker.h:
	    * libnautilus-extensions/nautilus-string-picker.c:
	    (nautilus_string_picker_clear):
	    New function to clear the string picker.

	    * libnautilus-extensions/nautilus-tabs.c:
	    (nautilus_tabs_initialize):
	    Fix the hard coded font name.

	    * src/nautilus-first-time-druid.c: (new_title_label):
	    Fix the hard coded font name.

	    * src/nautilus-sidebar-tabs.c:
	    (nautilus_sidebar_tabs_load_theme_data):
	    Fix the hard coded font name.

	    * test/Makefile.am:
	    * test/test-nautilus-font-manager.c: (font_type_to_string),
	    (font_iterator_callback), (font_table_for_each_callback), (main):
	    * test/test-nautilus-font-picker.c: (font_picker_changed_callback),
	    (main):
	    * test/test-nautilus-glyph-simple.c: (main):
	    * test/test-nautilus-label.c: (main):
	    Update for new font picker and font manager changes.
2001-03-03 03:49:25 +00:00

1157 lines
32 KiB
Plaintext

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 ==========================================================================
GNOME_REQUIRED=1.2.8
GNOME_LIBS_REQUIRED=1.2.11
GTK_REQUIRED=1.2.9
GLIB_REQUIRED=1.2.9
BONOBO_REQUIRED=0.33
OAF_REQUIRED=0.6.2
GCONF_REQUIRED=0.12
GDK_PIXBUF_REQUIRED=0.10.0
CONTROL_CENTER_REQUIRED=1.2.3
IMLIB_REQUIRED=1.9.8
LIBXML_REQUIRED=1.8.10
ORBIT_REQUIRED=0.5.6
GNOME_VFS_REQUIRED=0.4.2
POPT_REQUIRED=1.5
FREETYPE_REQUIRED=2.0
MEDUSA_REQUIRED=0.2.2
ESOUND_REQUIRED=0.2
LIBGHTTP_REQUIRED=1.0.9
SCROLLKEEPER_REQUIRED=0.1.1
AC_SUBST(IMLIB_REQUIRED)
AC_SUBST(LIBXML_REQUIRED)
AC_SUBST(ORBIT_REQUIRED)
AC_SUBST(GNOME_VFS_REQUIRED)
AC_SUBST(POPT_REQUIRED)
AC_SUBST(FREETYPE_REQUIRED)
AC_SUBST(MEDUSA_REQUIRED)
AC_SUBST(ESOUND_REQUIRED)
AC_SUBST(LIBGHTTP_REQUIRED)
AC_SUBST(SCROLLKEEPER_REQUIRED)
dnl ===========================================================================
dnl EAZEL_VERSION_CANON(version)
dnl 1
AC_DEFUN(EAZEL_VERSION_CANON, [`
dnl Assumes that there are no more than 999 revisions at a level,
dnl no more than three levels of revision.
dnl
dnl Any more than that, and test starts messing up the numeric
dnl comparisons because its integers overflow, and there's no
dnl way to do string comparisons in the shell. Grr.
dnl
dnl Must come up with some way to fix this.
echo "$1" |
tr . '\012' |
sed -e 's/^/000/' -e 's/^.*\(...\)/\1/' |
tr -d '\012' |
sed 's/$/000000000/
s/^\(.........\).*/\1/'
`])
dnl EAZEL_VERSION_INSIST(package, get-version-cmd, operator, want-version-var)
dnl 1 2 3 4
AC_DEFUN(EAZEL_VERSION_INSIST, [
ez_want_version=[$]$4
case "$3" in
">") ez_operator=-gt ;;
">=") ez_operator=-ge ;;
"<") ez_operator=-lt ;;
"<=") ez_operator=-le ;;
"=") ez_operator=-eq ;;
"!=") ez_operator=-ne ;;
*) AC_ERROR(Unknown operator $3 in configure script) ;;
esac
AC_MSG_CHECKING(for $1 $3 [$ez_want_version])
if ez_installed_version="`$2`"
then
AC_MSG_RESULT([$ez_installed_version])
else
AC_ERROR($2 failed)
fi
if test "EAZEL_VERSION_CANON([$ez_installed_version])" "$ez_operator" \
"EAZEL_VERSION_CANON([$ez_want_version])"
then
:
AC_SUBST($4)
else
AC_ERROR($1 version [$ez_want_version] is required.)
fi
])
dnl ===========================================================================
if test -n "$GNOME2_PATH"; then
PATH="$GNOME2_PATH/bin:$PATH"
export PATH
fi
AM_INIT_AUTOMAKE(nautilus, 0.8.3)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
AM_DISABLE_STATIC
AM_PROG_LIBTOOL
AM_PROG_XML_I18N_TOOLS
AM_SANITY_CHECK
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_ISC_POSIX
AM_PATH_ESD
dnl ORBit
AM_PATH_ORBIT
dnl ====================================
dnl = Begin profiling support
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 ====================================
dnl = End profiling support
dnl ====================================
dnl ====================================
dnl = Check for different mount systems
dnl ====================================
echo "
Determining mount system properties:
"
AC_CHECK_FUNCS( setmntent endmntent )
AC_CHECK_HEADERS( mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h )
AC_CHECK_FILES( /dev, AC_DEFINE(HAVE_DEV))
AC_CHECK_FILES( /vol/dev, AC_DEFINE(HAVE_VOL_DEV))
AC_CHECK_FILES( /vol, AC_DEFINE(HAVE_VOL))
AC_CHECK_FILES( /etc/mnttab, AC_DEFINE(HAVE_ETC_MNTTAB))
AC_CHECK_FILES( /proc/mounts, AC_DEFINE(HAVE_PROC_MOUNTS))
echo "
"
dnl ====================================
dnl = Method for changing environment
dnl ====================================
AC_CHECK_FUNCS( setenv unsetenv putenv )
dnl ====================================
dnl = Use x86 optimized music routines?
dnl ====================================
_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 = Optionally build the installer
dnl ====================================
ENABLE_INSTALLER=
AC_ARG_ENABLE(installer,
[ --enable-installer Create Nautilus installer],
ENABLE_INSTALLER=1
AC_DEFINE(ENABLE_INSTALLER))
AC_SUBST(ENABLE_INSTALLER)
AM_CONDITIONAL(ENABLE_INSTALLER, test "x$ENABLE_INSTALLER" = "x1")
dnl ====================================
dnl = Begin tests for eazel-services
dnl ====================================
AC_ARG_ENABLE(
[eazel-services],
[ --enable-eazel-services Enable support for Eazel Services (default is no)],
[ EAZEL_SERVICES_ENABLED=$enableval ],
[ EAZEL_SERVICES_ENABLED=no ])
AC_SUBST(EAZEL_SERVICES)
if test x"$EAZEL_SERVICES_ENABLED" = xyes; then
AC_DEFINE(EAZEL_SERVICES)
fi
AM_CONDITIONAL(EAZEL_SERVICES, test "x$EAZEL_SERVICES_ENABLED" = "xyes")
dnl =======================
dnl = End tests for eazel-services
dnl =======================
dnl ====================================
dnl = Begin tests for FreeType2
dnl ====================================
FREETYPE2_CFLAGS=
FREETYPE2_LIBS=
_found_freetype2_lib="no"
_found_freetype2_header="no"
_found_freetype2="no"
AC_ARG_WITH(freetype2-libraries,
[ --with-freetype2-libraries=PATH freetype2 library path],
freetype2_lib_prefix=$withval)
AC_ARG_WITH(freetype2-includes,
[ --with-freetype2-includes=PATH freetype2 include path],
freetype2_include_prefix=$withval)
AC_ARG_WITH(freetype2-prefix,
[ --with-freetype2-prefix=PATH freetype2 installation prefix],
freetype2_prefix=$withval, freetype2_prefix="/usr")
if test -z "$freetype2_include_prefix"; then
freetype2_include_prefix="${freetype2_prefix}/include/freetype2"
fi
if test -z "$freetype2_lib_prefix"; then
freetype2_lib_prefix="${freetype2_prefix}/lib"
fi
_save_cpp="$CPP"
_save_ldflags="$LDFLAGS"
CPP="$_save_cpp -I$freetype2_include_prefix"
LDFLAGS="$_save_ldflags -L$freetype2_lib_prefix"
AC_CHECK_HEADER(freetype/freetype.h, _found_freetype2_header="yes")
AC_CHECK_LIB(freetype, FT_Init_FreeType, [_found_freetype2_lib="yes"])
CPP="$_save_cpp"
LDFLAGS="$_save_ldflags"
if test "x$_found_freetype2_lib" = "xyes" -a \
"x$_found_freetype2_header" = "xyes"
then
_found_freetype2="yes"
fi
if test "x$_found_freetype2" != "xyes"
then
AC_MSG_ERROR([
*** FreeType2 is required. You can obtain a packaged version of FreeType2
*** over here: http://developer.eazel.com/eazel-hacking/updates/freetype2
*** source versions are available from ftp://ftp.freetype.org])
fi
FREETYPE2_CFLAGS="-I$freetype2_include_prefix"
FREETYPE2_LIBS="-L$freetype2_lib_prefix -lfreetype"
AC_SUBST(FREETYPE2_CFLAGS)
AC_SUBST(FREETYPE2_LIBS)
dnl =======================
dnl = End tests for FreeType2
dnl =======================
dnl ====================================
dnl = Beging authenticate helper
dnl ====================================
BUILD_AUTHENTICATE_HELPER=
AC_CHECK_LIB(pam, pam_authenticate,
[BUILD_AUTHENTICATE_HELPER=1
AC_DEFINE(HAVE_PAM)
AC_CHECK_LIB(pam_misc, pam_misc_setenv,
[PAM_LIBS="-ldl -lpam -lpam_misc"], [PAM_LIBS="-ldl -lpam"], -ldl -lpam) ], [PAM_LIBS=], -ldl)
AC_SUBST(PAM_LIBS)
AM_CONDITIONAL(BUILD_AUTHENTICATE_HELPER, test "x$BUILD_AUTHENTICATE_HELPER" = "x1")
dnl ====================================
dnl = End authenticate helper
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_disabled="no"
AC_ARG_ENABLE(mozilla-component,
[ --disable-mozilla-component= Disable the mozilla component],
mozilla_component_disabled="yes")
dnl Dont build the mozilla component for profiled builds cause 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_disabled="yes"
fi
found_mozilla=false
if test "x$mozilla_component_disabled" = "xno"
then
BUILD_MOZILLA_COMPONENT=
MOZILLA_COMPONENT_CFLAGS=
MOZILLA_COMPONENT_LDFLAGS=
MOZILLA_COMPONENT_LIBS=
_mozilla_lib_place=/usr/lib/mozilla
_mozilla_include_place=/usr/include/mozilla
dnl Add a flag to override the default mozilla lib dir
AC_ARG_WITH(mozilla-lib-place,
[ --with-mozilla-lib-place Set mozilla 'lib' place ],
[ _mozilla_lib_place="$withval" ])
dnl Add a flag to override the default mozilla include dir
AC_ARG_WITH(mozilla-include-place,
[ --with-mozilla-include-place Set mozilla 'include' place ],
[ _mozilla_include_place="$withval" ])
_mozilla_nspr_libs=
_mozilla_plc_libs=
_mozilla_plds_libs=
_mozilla_xpcom_libs=
_mozilla_gtk_moz_embed_libs=
_mozilla_gtk_super_win_libs=
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"
LDFLAGS="$_save_ldflags -L$_mozilla_lib_place"
dnl Check for nspr and friends
AC_CHECK_LIB(nspr4, PR_Init, [_mozilla_nspr_libs="-lnspr4"])
LDFLAGS="$LDFLAGS $_mozilla_nspr_libs"
AC_CHECK_LIB(plc4, PL_strcmp, [_mozilla_plc_libs="-lplc4"])
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
AC_MSG_RESULT(no)
fi
dnl The next two are pure from evil
CC="$_save_cc"
dnl gtk superwin library
LDFLAGS="$_save_ldflags -L$_mozilla_lib_place $_mozilla_all_nspr_flags -lgtksuperwin"
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"
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_CFLAGS="-I$_mozilla_include_place -fno-rtti -fno-exceptions"
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_CFLAGS)
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 "x$found_mozilla" = "xtrue")
dnl
dnl EVIL1:
dnl
dnl The mozilla milestone version checks are very un-scientific.
dnl They are based on thing that I know changed between milestones,
dnl but are likely to not be right in the future. Unfortunately, there
dnl doesnt seem to be anything in mozilla (such as #define MOZILLA_VERSION)
dnl thing that we can check. -re
dnl
dnl EVIL2:
dnl
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.
dnl
if test "x$found_mozilla" = "xtrue"
then
dnl EVIL1:
grep -w gtk_moz_embed_set_profile_path $_mozilla_include_place/gtkmozembed.h > /dev/null 2>&1
if test $? -eq 0
then
MOZILLA_MILESTONE=VERSION_0_8
MOZILLA_PROFILES_CFLAGS="-DMOZILLA_HAVE_PROFILES_SUPPORT"
AC_SUBST(MOZILLA_PROFILES_CFLAGS)
else
grep -w GetName $_mozilla_include_place/nsIRequest.h > /dev/null 2>&1
if test $? -eq 0
then
MOZILLA_MILESTONE=VERSION_0_7
else
MOZILLA_MILESTONE=MILESTONE_17
fi
fi
AC_SUBST(MOZILLA_MILESTONE)
dnl EVIL2:
_xpcom_lib=$_mozilla_lib_place/libxpcom.so
_symbol="nsCOMPtr_base::~nsCOMPtr_base"
_num_symbols=`nm $_xpcom_lib 2> /dev/null | wc -l`
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)
if test "$MOZILLA_MILESTONE" != "VERSION_0_8"
then
AC_MSG_ERROR([
*** Mozilla 0.8 or greater is required to build the Nautilus Mozilla component.
*** A package for 0.8 is available here:
*** http://developer.eazel.com/eazel-hacking/updates/mozilla/.])
fi
fi
dnl ====================================
dnl = End mozilla hacks
dnl ====================================
dnl ====================================
dnl = Bzip2
dnl ====================================
BZ_LIBS=
AC_CHECK_LIB(bz2, bzread, [AC_DEFINE(HAVE_LIBBZ2)
BZ_LIBS="-lbz2"])
dnl <= Check for bzip2 > 1.0.0
AC_CHECK_LIB(bz2, BZ2_bzread, [AC_DEFINE(HAVE_LIBBZ2)
BZ_LIBS="-lbz2"
dnl <= define the wrapper-functions to get the Bzip2 stuff working .. =>
AC_DEFINE(bzread,BZ2_bzread)
AC_DEFINE(bzopen,BZ2_bzopen)
AC_DEFINE(bzdopen,BZ2_bzdopen)
AC_DEFINE(bzwrite,BZ2_bzwrite)
AC_DEFINE(bzerror,BZ2_bzerror)
AC_DEFINE(bzclose,BZ2_bzclose)
AC_DEFINE(bzflush,BZ2_bzflush)
AC_DEFINE(bzCompress,BZ2_bzCompress)
AC_DEFINE(bzCompressInit,BZ2_bzCompressInit)
AC_DEFINE(bzDecompress,BZ2_bzDecompress)
AC_DEFINE(bzDecompressInit,BZ2_bzDecompressInit)
])
dnl =>
AC_SUBST(BZ_LIBS)
dnl ====================================
dnl = rpmview component support
dnl ====================================
if test "x$EAZEL_SERVICES_ENABLED" = "xyes" ;
then
rpm_libs=$BZ_LIBS
rpm_xlibs=
have_rpm=no
AC_CHECK_LIB(popt, poptParseArgvString, [rpm_libs="$rpm_libs -lpopt"])
AC_CHECK_FUNC(dbopen, [],
AC_CHECK_LIB(db-3.1, __db185_open, [rpm_libs="$rpm_libs -ldb-3.1"],
AC_CHECK_LIB(db-3, __db185_open, [rpm_libs="$rpm_libs -ldb-3"],
AC_CHECK_LIB(db2, dbopen, [rpm_libs="$rpm_libs -ldb2"],
AC_CHECK_LIB(db1, dbopen, [rpm_libs="$rpm_libs -ldb1"],
AC_CHECK_LIB(db, dbopen, [rpm_libs="$rpm_libs -ldb"],
AC_MSG_ERROR([sorry rpm requires a db-1.85 API]))))))
)
AC_CHECK_LIB(rpmio, Fdopen, [rpm_xlibs="-lrpmio"],[rpm_xlibs=""],$rpm_libs)
AC_CHECK_LIB(rpm, rpmRunTransactions,[have_rpm=yes],
[have_rpm=no], [$rpm_libs $rpm_xlibs])
if test "x$have_rpm" = "xyes" ; then
dnl FIXME
dnl Ideally I should check for rpm and where it is
AC_MSG_CHECKING([rpm version])
RPM_VERSION=`rpm --version | awk '{ print $3; }'`
AM_CONDITIONAL(COMPILE_RPM_30, false)
AM_CONDITIONAL(COMPILE_RPM_40, false)
case $RPM_VERSION in
3.0.5|3.0.6)
AC_DEFINE(HAVE_RPM_30)
_found_valid_rpm="yes"
AM_CONDITIONAL(COMPILE_RPM_30, true)
dnl if automake conditionals hadn't been a joke, I
dnl wouldn't need this shite.
PACKAGESYSTEM="libeazelpackagesystem-rpm3.la"
AC_SUBST(PACKAGESYSTEM)
PACKAGE_SYSTEM_OBJECT="eazel-package-system-rpm3.o"
AC_SUBST(PACKAGE_SYSTEM_OBJECT)
PACKAGE_SYSTEM_SOURCE="eazel-package-system-rpm3.c"
AC_SUBST(PACKAGE_SYSTEM_SOURCE)
;;
4.*)
AC_DEFINE(HAVE_RPM_40)
_found_valid_rpm="yes"
AM_CONDITIONAL(COMPILE_RPM_40, true)
PACKAGESYSTEM="libeazelpackagesystem-rpm4.la"
AC_SUBST(PACKAGESYSTEM)
PACKAGE_SYSTEM_OBJECT="eazel-package-system-rpm4.o eazel-package-system-rpm3.o"
AC_SUBST(PACKAGE_SYSTEM_OBJECT)
PACKAGE_SYSTEM_SOURCE="eazel-package-system-rpm4.c eazel-package-system-rpm3.c"
AC_SUBST(PACKAGE_SYSTEM_SOURCE)
;;
esac
if test "x$_found_valid_rpm" = "xyes"; then
AC_MSG_RESULT([found $RPM_VERSION, yes])
AC_DEFINE(HAVE_RPM)
RPM_LIBS="-lrpm -lz $rpm_xlibs $rpm_libs"
AC_SUBST(RPM_VERSION)
build_rpmview=yes
rpmversion="$RPM_VERSION"
else
AC_MSG_RESULT([no])
AC_MSG_WARN([RPM 3.0.5 or higher required, $RPM_VERSION found])
build_rpmview=no
fi
fi
AC_SUBST(RPM_LIBS)
else
build_rpmview=no
fi
AM_CONDITIONAL(BUILD_RPM_COMPONENTS, test "x$build_rpmview" = "xyes")
dnl ====================================
dnl = End rpmview checks
dnl ====================================
dnl Checks for libraries.
AM_PATH_GLIB($GLIB_REQUIRED,,
AC_MSG_ERROR([
*** GLIB $GLIB_REQUIRED or better is required. The latest version of GLIB
*** is always available from ftp://ftp.gtk.org/.]))
AC_SUBST(GLIB_REQUIRED)
AM_PATH_GTK($GTK_REQUIRED,,
AC_MSG_ERROR([
*** Gtk+ $GTK_REQUIRED or better is required. The latest version of GTK
*** is always available from ftp://ftp.gtk.org/.]))
AC_SUBST(GTK_REQUIRED)
AM_PATH_GNOME($GNOME_REQUIRED,,AC_MSG_ERROR([*** GNOME $GNOME_REQUIRED or better is required.]), gnomecanvaspixbuf bonobo bonobox bonobox_print vfs idl)
AC_SUBST(GNOME_REQUIRED)
AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
if test x$GNOME_CONFIG = xno; then
AC_MSG_ERROR(Couldn't find gnome-config. Please install the GNOME package)
fi
EAZEL_VERSION_INSIST(gnome-libs, $GNOME_CONFIG --version | awk '{print $2}', >=, GNOME_LIBS_REQUIRED)
dnl check for gnome_canvas_set_dither existence
_libs="$LIBS"
LIBS=$GNOMEUI_LIBS
AC_CHECK_FUNCS(gnome_canvas_set_dither)
LIBS="$_libs"
dnl control center
EAZEL_VERSION_INSIST(control-center, gnomecc --version | awk '{print $3}', >=, CONTROL_CENTER_REQUIRED)
dnl Bonobo
EAZEL_VERSION_INSIST(bonobo, $GNOME_CONFIG --modversion bonobo | awk -F- '{print $2}', >=, BONOBO_REQUIRED)
AC_SUBST(GNOMECANVASPIXBUF_LIBS)
AC_SUBST(GNOMECANVASPIXBUF_INCLUDEDIR)
AC_SUBST(BONOBO_CFLAGS)
AC_SUBST(BONOBO_LIBS)
AC_SUBST(BONOBOX_CFLAGS)
AC_SUBST(BONOBOX_LIBS)
AC_SUBST(BONOBO_PRINT_CFLAGS)
AC_SUBST(BONOBO_PRINT_LIBS)
AC_SUBST(VFS_CFLAGS)
AC_SUBST(VFS_LIBS)
IDL_CFLAGS="${IDL_CFLAGS} -I\$(top_srcdir) -I\$(top_builddir)"
echo "IDL_CFLAGS: $IDL_CFLAGS"
AC_SUBST(IDL_CFLAGS)
AM_PATH_OAF($OAF_REQUIRED)
AC_SUBST(OAF_REQUIRED)
AM_PATH_GCONF($GCONF_REQUIRED,,,gconf-gtk)
AC_SUBST(GCONF_REQUIRED)
AC_PATH_PROG(XML_CONFIG,xml-config,no)
if test x$XML_CONFIG = xno; then
AC_MSG_ERROR(Couldn't find xml-config please install the gnome-xml package)
fi
XML_VERSION="`$XML_CONFIG --version`"
case "$XML_VERSION" in
1.*)
:
;;
*)
AC_ERROR(Nautilus needs gnome-xml version 1.x not $XML_VERSION)
;;
esac
XML_LIBS=`$XML_CONFIG --libs`
XML_CFLAGS=`$XML_CONFIG --cflags`
AC_SUBST(XML_LIBS)
AC_SUBST(XML_CFLAGS)
dnl ====================================
dnl = Begin tests for scrollkeeper
dnl ====================================
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 = End tests for scrollkeeper
dnl =======================
dnl ====================================
dnl = begin gnome-http checks
dnl ====================================
AC_MSG_CHECKING(for gnome-http)
if gnome-config --libs ghttp > /dev/null 2>&1; then
ghttp_ok=true
else
ghttp_ok=false
fi
if $ghttp_ok; then
GHTTP_LIBS=`gnome-config --libs ghttp`
GHTTP_CFLAGS=`gnome-config --cflags ghttp`
AC_SUBST(GHTTP_LIBS)
AC_SUBST(GHTTP_CFLAGS)
AC_MSG_RESULT(found)
else
AC_MSG_ERROR(gnome-http is required to compile Nautilus)
fi
dnl ====================================
dnl = End ghttp checks
dnl ====================================
dnl ====================================
dnl = begin applet checks
dnl ====================================
AC_MSG_CHECKING(for applets)
APPLETS_CFLAGS=
APPLETS_LIBS=
HAVE_APPLETS="no"
gnome-config | grep applets > /dev/null 2>&1
if test $? -eq 0
then
HAVE_APPLETS="yes"
APPLETS_CFLAGS=`gnome-config --cflags applets`
APPLETS_LIBS=`gnome-config --libs applets`
AC_MSG_RESULT(yes)
else
HAVE_APPLETS="no"
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(HAVE_APPLETS, test "x$HAVE_APPLETS" = "xyes")
AC_SUBST(HAVE_APPLETS)
AC_SUBST(APPLETS_CFLAGS)
AC_SUBST(APPLETS_LIBS)
dnl ====================================
dnl = begin applet checks
dnl ====================================
dnl ====================================
dnl = begin eazel-logos check
dnl ====================================
if test -d eazel-logos
then
HAVE_EAZEL_LOGOS=yes
EAZEL_LOGOS_PNG='%{prefix}/share/pixmaps/nautilus/eazel-logos/*.png'
EAZEL_LOGOS_XML='%{prefix}/share/pixmaps/nautilus/eazel-logos/*.xml'
EAZEL_LOGOS_LICENSE='%{prefix}/share/pixmaps/nautilus/eazel-logos/LICENSE'
EAZEL_LOGOS_THROB='%{prefix}/share/pixmaps/nautilus/eazel-logos/throbber/*.png'
fi
AM_CONDITIONAL(HAVE_EAZEL_LOGOS, test "x$HAVE_EAZEL_LOGOS" = "xyes")
AC_SUBST(EAZEL_LOGOS_PNG)
AC_SUBST(EAZEL_LOGOS_XML)
AC_SUBST(EAZEL_LOGOS_LICENSE)
AC_SUBST(EAZEL_LOGOS_THROB)
dnl ====================================
dnl = end eazel-logos check
dnl ====================================
dnl ====================================
dnl = begin gdk-pixbuf checks
dnl ====================================
AM_PATH_GDK_PIXBUF($GDK_PIXBUF_REQUIRED,,
AC_MSG_ERROR([*** gdk_pixbuf $GDK_PIXBUF_REQUIRED or better is required.]))
AC_SUBST(GDK_PIXBUF_REQUIRED)
dnl ====================================
dnl = end gdk-pixbuf checks
dnl ====================================
AC_CHECK_LIB(z, gzopen, [Z_LIBS=-lz
AC_SUBST(Z_LIBS)], AC_MSG_ERROR([*** zlib is required]))
dnl ====================================
dnl = Begin tests for medusa
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)
AC_MSG_WARN(Could not find medusa library. Please get it from GNOME's cvs.)
;;
*)
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 = End tests for medusa
dnl =======================
dnl ====================================
dnl = Begin tests for ammonite (--enable-eazel-services only)
dnl ====================================
if test "x$EAZEL_SERVICES_ENABLED" = "xyes" ;
then
AC_MSG_CHECKING(for Ammonite >= 0.8.7)
if test -n `gnome-config --libs ammonite | cut -d ' ' -f1`;
then
vers=`gnome-config --modversion ammonite | sed -e "s/[^-]*-//" | \
awk 'BEGIN { FS = "."; } { printf "%d", $1 * 1000 + $2 * 100 + $3;}'`
if test "$vers" -ge 807; then
ammonite_ok=true;
else
ammonite_ok=false
fi
fi
if $ammonite_ok; then
AMMONITE_CFLAGS=`gnome-config --cflags ammonite`
AMMONITE_LIBS=`gnome-config --libs ammonite`
AC_MSG_RESULT(yes)
AC_SUBST(AMMONITE_CFLAGS)
AC_SUBST(AMMONITE_LIBS)
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Ammonite 0.8.7 or newer is required for Eazel Services. Please obtain it from Eazel's FTP site)
fi
fi
dnl =======================
dnl = End tests for ammonite
dnl =======================
dnl ====================================
dnl = Begin tests for libpng
dnl ====================================
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.h>],
[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 = End tests for libpng
dnl =======================
dnl Checks for i18n
ALL_LINGUAS="az ca da de el en_GB es fi fr ga gl hu it ja ko nl nn no pl pt_BR ru sk sl sv ta tr uk zh_TW.Big5"
AM_GNOME_GETTEXT
# AM_GNOME_GETTEXT above substs $DATADIRNAME
# this is the directory where the *.{mo,gmo} files are installed
gnomelocaledir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(gnomelocaledir)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
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
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="$CFLAGS $VFS_CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option])
AC_TRY_COMPILE([], [],
has_option=yes,
has_option=no,)
CFLAGS="$SAVE_CFLAGS"
if test $has_option = yes; then
VFS_CFLAGS="$VFS_CFLAGS $option"
fi
AC_MSG_RESULT($has_option)
unset has_option
unset SAVE_CFLAGS
done
unset option
else
AC_MSG_RESULT(no)
fi
dnl
dnl Define the build timestamp if given in the environment.
dnl
if test -n "$EAZEL_BUILD_TIMESTAMP"
then
AC_DEFINE_UNQUOTED(EAZEL_BUILD_TIMESTAMP,"$EAZEL_BUILD_TIMESTAMP")
fi
AC_OUTPUT([
nautilus.spec
nautilus-installer.spec
Makefile
helper-utilities/Makefile
helper-utilities/authenticate/Makefile
helper-utilities/error-dialog/Makefile
helper-utilities/xml-migrate/Makefile
helper-scripts/Makefile
icons/Makefile
icons/ardmore/Makefile
icons/arlo/Makefile
icons/arlo/sidebar_tab_pieces/Makefile
icons/arlo/backgrounds/Makefile
icons/arlo/throbber/Makefile
icons/crux_eggplant/Makefile
icons/crux_eggplant/backgrounds/Makefile
icons/crux_eggplant/sidebar_tab_pieces/Makefile
icons/crux_eggplant/throbber/Makefile
icons/gnome/Makefile
icons/gnome/throbber/Makefile
icons/sidebar_tab_pieces/Makefile
icons/throbber/Makefile
icons/villanova/Makefile
data/Makefile
data/patterns/Makefile
data/emblems/Makefile
data/linksets/Makefile
data/fonts/Makefile
data/fonts/urw/Makefile
cut-n-paste-code/Makefile
cut-n-paste-code/widgets/Makefile
cut-n-paste-code/widgets/e-paned/Makefile
cut-n-paste-code/widgets/nautilusclist/Makefile
cut-n-paste-code/widgets/gimphwrapbox/Makefile
librsvg/Makefile
libnautilus/Makefile
libnautilus-adapter/Makefile
libnautilus-extensions/Makefile
nautilus-installer/Makefile
nautilus-installer/package-list.xml
nautilus-installer/libtrilobite/Makefile
nautilus-installer/install-lib/Makefile
nautilus-installer/src/Makefile
src/Makefile
src/file-manager/Makefile
components/Makefile
components/adapter/Makefile
components/hardware/Makefile
components/hardware/icons/Makefile
components/history/Makefile
components/help/Makefile
components/help/converters/Makefile
components/help/converters/gnome-db2html2/Makefile
components/help/converters/gnome-info2html2/Makefile
components/help/converters/gnome-man2html2/Makefile
components/image-viewer/Makefile
components/music/Makefile
components/notes/Makefile
components/rpmview/Makefile
components/sample/Makefile
components/mozilla/Makefile
components/services/Makefile
components/services/trilobite/Makefile
components/services/trilobite/idl/Makefile
components/services/trilobite/libtrilobite/Makefile
components/services/trilobite/libtrilobite/makefile.staticlib
components/services/trilobite/sample/Makefile
components/services/trilobite/sample/idl/Makefile
components/services/trilobite/sample/lib/Makefile
components/services/trilobite/sample/service/Makefile
components/services/trilobite/sample/command-line/Makefile
components/services/trilobite/sample/nautilus-view/Makefile
components/services/trilobite/sample/nautilus-view/icons/Makefile
components/services/trilobite/helper/Makefile
components/services/nautilus-dependent-shared/Makefile
components/services/nautilus-dependent-shared/icons/Makefile
components/services/install/Makefile
components/services/install/lib/Makefile
components/services/install/lib/makefile.staticlib
components/services/install/idl/Makefile
components/services/install/server/Makefile
components/services/install/command-line/Makefile
components/services/inventory/Makefile
components/services/install-view/Makefile
components/services/inventory-view/Makefile
components/services/login/Makefile
components/services/login/nautilus-view/Makefile
components/services/summary/Makefile
components/services/summary/icons/Makefile
components/text/Makefile
components/text/services/Makefile
components/throbber/Makefile
components/loser/Makefile
components/loser/content/Makefile
components/loser/sidebar/Makefile
components/tree/Makefile
po/Makefile.in
intl/Makefile
test/Makefile
user-guide/Makefile
user-guide/gnufdl/Makefile
user-guide/gnugpl/Makefile
help/Makefile
help/nautilus-user-manual/Makefile
help/nautilus-user-manual/C/Makefile
help/nautilus-user-manual/es/Makefile
help/nautilus-user-manual/ko/Makefile
help/nautilus-quick-reference/Makefile
help/nautilus-quick-reference/C/Makefile
help/nautilus-quick-reference/no/Makefile
help/nautilus-quick-reference/es/Makefile
help/nautilus-quick-reference/sv/Makefile
help/nautilus-release-notes/Makefile
help/nautilus-release-notes/C/Makefile
applets/Makefile
applets/launcher/Makefile
applets/preferences-applet/Makefile
omf-install/Makefile
])
dnl <= Configuration summary =>
echo "<= Nautilus configuration summary :"
dnl <= Rpm-view integrated? =>
case x$build_rpmview in
xyes)
echo "
RPMview component : YES ($rpmversion)"
;;
*)
echo "
RPMview component : NO"
;;
esac
dnl <= Mozilla component integrated? =>
case $found_mozilla in
t*)
echo "
Mozilla component : YES
mozilla libraries : $_mozilla_lib_place
mozilla includes : $_mozilla_include_place
MOZILLA_MILESTONE : $MOZILLA_MILESTONE
MOZILLA_PROFILES_CFLAGS : $MOZILLA_PROFILES_CFLAGS
MOZILLA_COMPONENT_RPATH_FLAGS : $MOZILLA_COMPONENT_RPATH_FLAGS
MOZILLA_COMPONENT_DEBUG_FLAGS : $MOZILLA_COMPONENT_DEBUG_FLAGS"
;;
*)
echo "
Mozilla component : NO"
;;
esac
dnl <= Do we want Eazel Services =>
case "X$EAZEL_SERVICES_ENABLED" in
Xyes)
echo "
Eazel Services : YES"
;;
*)
echo "
Eazel Services : NO"
;;
esac
echo "=>"
dnl <= Profile support? =>
case "X$ENABLE_PROFILER" in
X1)
echo "
Enable profiler : YES"
;;
*)
echo "
Enable profiler : NO"
;;
esac
dnl <= FreeType2 =>
echo "
FREETYPE2_CFLAGS : $FREETYPE2_CFLAGS
FREETYPE2_LIBS : $FREETYPE2_LIBS
"
dnl <= CFLAGS and LDFLAGS =>
echo "
CFLAGS : $CFLAGS
LDFLAGS : $LDFLAGS"
echo
dnl <= Snapshot things =>
echo "
EAZEL_BUILD_TIMESTAMP : $EAZEL_BUILD_TIMESTAMP"
echo
echo "
HAVE_APPLETS : $HAVE_APPLETS"
echo
dnl <= End of configuration summary =>