hotkeys-0.5.7.4/0000775000000000000000000000000011206316425010243 5ustar hotkeys-0.5.7.4/def/0000775000000000000000000000000011173742371011007 5ustar hotkeys-0.5.7.4/def/aceraspire1300.def0000664000000000000000000000060610163077645014116 0ustar Roland Stigge stigge@antcom.de hotkeys-0.5.7.4/def/sk16890000664000000000000000000000210610163037513011667 0ustar Power Refresh WWW Stop WWW Forward WWW Back Media Select Jeff Tranter jefft@xandros.com hotkeys-0.5.7.4/def/sk2800c.def0000664000000000000000000000170007571204407012557 0ustar Xterm to be added to be added hotkeys-0.5.7.4/def/Makefile.in0000664000000000000000000001327507574654205013074 0ustar # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CPP = @CPP@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GT_NO = @GT_NO@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LIBXOSD_CFLAGS = @LIBXOSD_CFLAGS@ LIBXOSD_CONFIG = @LIBXOSD_CONFIG@ LIBXOSD_LIBS = @LIBXOSD_LIBS@ LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CFLAGS = @XML_CFLAGS@ XML_CONFIG = @XML_CONFIG@ XML_LIBS = @XML_LIBS@ l = @l@ pkgdata_DATA = *.def EXTRA_DIST = sample.xml $(pkgdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = DATA = $(pkgdata_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps def/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \ fi; fi; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) list='$(pkgdata_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \ done tags: TAGS TAGS: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = def distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-exec: install-exec-am install-data-am: install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-pkgdataDATA uninstall: uninstall-am all-am: Makefile $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-generic mostlyclean-am clean: clean-am distclean-am: distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \ info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean $(pkgdata_DATA): # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hotkeys-0.5.7.4/def/itouch.def0000664000000000000000000000155410163042661012760 0ustar Go to URL Xman to be added to be added hotkeys-0.5.7.4/def/acer5102.def0000664000000000000000000000113311173735365012714 0ustar icedove Boris Shtrasman BorisSh1983@gmail.com hotkeys-0.5.7.4/def/armada1750.def0000664000000000000000000000061611173740123013225 0ustar Wolfgang Fuschlberger hotkeys-0.5.7.4/def/sk9925.def0000664000000000000000000000154707571204440012441 0ustar Aterm XLock to be added to be added hotkeys-0.5.7.4/def/msnatpro.def0000664000000000000000000000511110163040707013320 0ustar Back Forward Stop Refresh XMMS Help Key (undefined) Undo Key (undefined) Redo Key (undefined) New Key (undefined) Open Key (undefined) Close Key (undefined) Reply Key (undefined) Fwd Key (undefined) Send Key (undefined) Spell Key (undefined) Save Key (undefined) Chris Garzuzi and others chris@jove.org hotkeys-0.5.7.4/def/applepro.def0000664000000000000000000000077510163041217013307 0ustar Daniel stone dstone@trinity.unimelb.edu.au hotkeys-0.5.7.4/def/kbp8993.def0000664000000000000000000000231107571204001012563 0ustar Close zzZ Menu to be added to be added hotkeys-0.5.7.4/def/ibook2.def0000664000000000000000000000106411173736647012666 0ustar Quiet Derrik Pates dpates@dsdk12.net hotkeys-0.5.7.4/def/mx3000.def0000664000000000000000000000166507571204231012421 0ustar to be added to be added hotkeys-0.5.7.4/def/logitech-nav-usb.def0000664000000000000000000000152410163100656014630 0ustar Media Key ?Back? key Thorsten Gunkel tgunkel@gmx.de hotkeys-0.5.7.4/def/btc8190.def0000664000000000000000000000247610163042303012554 0ustar XTerm XTerm XTerm Petrisor Eddy Marian marian.petrisor@siemens.com hotkeys-0.5.7.4/def/ibook.def0000664000000000000000000000067107571424747012611 0ustar PMU sleep Derrik Pates dpates@dsdk12.net hotkeys-0.5.7.4/def/flybooks.def0000664000000000000000000000061611173740042013313 0ustar Sleep Wolfgang Fuschlberger hotkeys-0.5.7.4/def/sk7100.def0000664000000000000000000000175307571204420012415 0ustar GNOME CD player SMPEG GTK+ MPEG audio/video player Xterm Xterm Xterm to be added to be added hotkeys-0.5.7.4/def/kb9963.def0000664000000000000000000000135507571203703012420 0ustar LICQ Gnumeric Gedit to be added to be added hotkeys-0.5.7.4/def/uniwilln243s1.def0000664000000000000000000000102210163100111013772 0ustar Roland Stigge stigge@antcom.de hotkeys-0.5.7.4/def/msnetpro.def0000664000000000000000000000160707571204150013335 0ustar Xterm to be added to be added hotkeys-0.5.7.4/def/sk2505.def0000664000000000000000000000225207571204375012425 0ustar OhPhone xman Xterm Xterm Xterm to be added to be added hotkeys-0.5.7.4/def/ipanel.def0000664000000000000000000000056410163042537012737 0ustar userdef1 userdef2 Nicolas Rueff n.rueff@free.fr hotkeys-0.5.7.4/def/mx2500.def0000664000000000000000000000205407571204217012422 0ustar Gaim Close Clear to be added to be added hotkeys-0.5.7.4/def/acer430.def0000664000000000000000000000110110163077560012620 0ustar Ludovic Rousseau ludovic.rousseau@free.fr hotkeys-0.5.7.4/def/msnatpro2.def0000664000000000000000000000311010363632147013406 0ustar Back Forward BrowserStop Refresh Media Eeli Kaikkonen eelik at iki fi hotkeys-0.5.7.4/def/Makefile.am0000664000000000000000000000012207567531203013040 0ustar pkgdata_DATA = *.def $(pkgdata_DATA): EXTRA_DIST = sample.xml $(pkgdata_DATA) hotkeys-0.5.7.4/def/mck800.def0000664000000000000000000000244507571204062012473 0ustar Xterm Xterm xmag Xterm gmc to be added to be added hotkeys-0.5.7.4/def/pb5140w.def0000664000000000000000000000051007571204307012564 0ustar to be added to be added hotkeys-0.5.7.4/def/hpdv9000z.def0000664000000000000000000000263511173740347013142 0ustar James Zuelow hotkeys-0.5.7.4/def/polypix.def0000664000000000000000000000136307571204321013171 0ustar to be added to be added hotkeys-0.5.7.4/def/btc9000.def0000664000000000000000000000136707571203536012561 0ustar to be added to be added hotkeys-0.5.7.4/def/hp5181.def0000664000000000000000000000211007571203523012405 0ustar Jean-Philippe jean-philippe.guerard@laposte.net hotkeys-0.5.7.4/def/cherryevo.def0000664000000000000000000000066311173732767013512 0ustar Anthony Wong ypwong@ypwong.org hotkeys-0.5.7.4/def/acertm4060.def0000664000000000000000000000071111173740657013260 0ustar Ismael Garrido ismaelgfk@gmail.com hotkeys-0.5.7.4/def/kb9930.def0000664000000000000000000000222207570471771012417 0ustar Xterm Mozilla XChat XMMS Pause XTerm XTerm XTerm Adam Lackorzynski adam@os.inf.tu-dresden.de hotkeys-0.5.7.4/def/inspiron8100.def0000664000000000000000000000100310163040171013616 0ustar Erich Schubert erich@debian.org hotkeys-0.5.7.4/def/sample.xml0000664000000000000000000000230011173730537013006 0ustar Xterms Mozilla Mail XMMS REW XMMS PLAY XMMS FWD John Doe john@doe.com hotkeys-0.5.7.4/def/inspiron1520.def0000664000000000000000000000076611173733413013646 0ustar Tim Connors reportbug@rather.puzzling.org hotkeys-0.5.7.4/def/logitech-cfo.def0000664000000000000000000000223007571204031014020 0ustar NetHack Joe Wreschnig piman@sacredchao.net hotkeys-0.5.7.4/def/sk2500.def0000664000000000000000000000173207571204352012415 0ustar Xterm Beiad Ian Q. Dalton idalton@ferret.dyndns.org hotkeys-0.5.7.4/def/mx1998.def0000664000000000000000000000215607571204203012444 0ustar gmc Xbill to be added to be added hotkeys-0.5.7.4/def/orktekusb.def0000664000000000000000000000156507571204270013505 0ustar Xterms Emacs Junichi Uekawa dancer@debian.org hotkeys-0.5.7.4/def/logitech-pro.def0000664000000000000000000000070611173734741014070 0ustar Roland Stigge stigge@antcom.de hotkeys-0.5.7.4/def/sk2501a.def0000664000000000000000000000173607571204363012565 0ustar Xterm Xterm Xterm Xterm Xterm Xterm XLock Xterm to be added to be added hotkeys-0.5.7.4/def/msnet.def0000664000000000000000000000142207571204135012612 0ustar Back Forward Stop to be added to be added hotkeys-0.5.7.4/def/acerwl.def0000664000000000000000000000142007571203240012733 0ustar Anthony Wong ypwong@ypwong.org hotkeys-0.5.7.4/def/p7120.def0000664000000000000000000000055711173733247012251 0ustar Joey Hess joey@kitenet.net hotkeys-0.5.7.4/def/omnibookxe3gc.def0000664000000000000000000000121411173740202014223 0ustar Wolfgang Fuschlberger hotkeys-0.5.7.4/acinclude.m40000664000000000000000000003767210650141162012447 0ustar # Macro to add for using GNU gettext. # Ulrich Drepper , 1995. # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # serial 5 AC_DEFUN(AM_GTK_WITH_NLS, [AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) USE_INCLUDED_LIBINTL=no dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then # AC_DEFINE(ENABLE_NLS) # AC_MSG_CHECKING([whether included gettext is requested]) # AC_ARG_WITH(included-gettext, # [ --with-included-gettext use the GNU gettext library included here], # nls_cv_force_use_gnu_gettext=$withval, # nls_cv_force_use_gnu_gettext=no) # AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_force_use_gnu_gettext="no" nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If gettext or catgets are available (in this order) we dnl use this. Else we have to fall back to GNU NLS library. dnl catgets is only used if permitted by option --with-catgets. nls_cv_header_intl= nls_cv_header_libgt= CATOBJEXT=NONE AC_CHECK_HEADER(libintl.h, [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([#include ], [return (int) dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)]) if test "$gt_cv_func_dgettext_libc" != "yes"; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CACHE_CHECK([for dgettext in libintl], gt_cv_func_dgettext_libintl, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes, gt_cv_func_dgettext_libintl=no)], gt_cv_func_dgettext_libintl=no)]) fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then LIBS="$LIBS -lintl"; fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then AC_DEFINE(HAVE_GETTEXT) AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then AC_CHECK_FUNCS(dcgettext) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) INSTOBJEXT=.mo fi fi # Added by Martin Baulig 12/15/98 for libc5 systems if test "$gt_cv_func_dgettext_libc" != "yes" \ && test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS=-lintl LIBS=`echo $LIBS | sed -e 's/-lintl//'` fi ]) if test "$CATOBJEXT" = "NONE"; then AC_MSG_CHECKING([whether catgets can be used]) AC_ARG_WITH(catgets, [ --with-catgets use catgets functions if available], nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) AC_MSG_RESULT($nls_cv_use_catgets) if test "$nls_cv_use_catgets" = "yes"; then dnl No gettext in C library. Try catgets next. AC_CHECK_LIB(i, main) AC_CHECK_FUNC(catgets, [AC_DEFINE(HAVE_CATGETS) INTLOBJS="\$(CATOBJS)" AC_PATH_PROG(GENCAT, gencat, no)dnl # if test "$GENCAT" != "no"; then # AC_PATH_PROG(GMSGFMT, gmsgfmt, no) # if test "$GMSGFMT" = "no"; then # AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) # fi # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) # USE_INCLUDED_LIBINTL=yes # CATOBJEXT=.cat # INSTOBJEXT=.cat # DATADIRNAME=lib # INTLDEPS='$(top_builddir)/intl/libintl.a' # INTLLIBS=$INTLDEPS # LIBS=`echo $LIBS | sed -e 's/-lintl//'` # nls_cv_header_intl=intl/libintl.h # nls_cv_header_libgt=intl/libgettext.h # fi ]) fi fi if test "$CATOBJEXT" = "NONE"; then dnl Neither gettext nor catgets in included in the C library. dnl Fall back on GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" != "yes"; then AC_DEFINE(ENABLE_NLS) else # Unset this variable since we use the non-zero value as a flag. CATOBJEXT= # dnl Mark actions used to generate GNU NLS library. # INTLOBJS="\$(GETTOBJS)" # AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) # AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) # AC_SUBST(MSGFMT) # USE_INCLUDED_LIBINTL=yes # CATOBJEXT=.gmo # INSTOBJEXT=.mo # DATADIRNAME=share # INTLDEPS='$(top_builddir)/intl/libintl.a' # INTLLIBS=$INTLDEPS # LIBS=`echo $LIBS | sed -e 's/-lintl//'` # nls_cv_header_intl=intl/libintl.h # nls_cv_header_libgt=intl/libgettext.h fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po else DATADIRNAME=share nls_cv_header_intl=intl/libintl.h nls_cv_header_libgt=intl/libgettext.h fi AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) # # If this is used in GNU gettext we have to set USE_NLS to `yes' # # because some of the sources are only built for this goal. # if test "$PACKAGE" = gettext; then # USE_NLS=yes # USE_INCLUDED_LIBINTL=yes # fi dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLDEPS) AC_SUBST(INTLLIBS) AC_SUBST(INTLOBJS) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) AC_DEFUN(AM_GTK_GNU_GETTEXT, [AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ strdup __argz_count __argz_stringify __argz_next]) if test "${ac_cv_func_stpcpy+set}" != "set"; then AC_CHECK_FUNCS(stpcpy) fi if test "${ac_cv_func_stpcpy}" = "yes"; then AC_DEFINE(HAVE_STPCPY) fi AM_LC_MESSAGES AM_GTK_WITH_NLS if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; esac done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl The reference to in the installed file dnl must be resolved because we cannot expect the users of this dnl to define HAVE_LOCALE_H. if test $ac_cv_header_locale_h = yes; then INCLUDE_LOCALE_H="#include " else INCLUDE_LOCALE_H="\ /* The system does not provide the header . Take care yourself. */" fi AC_SUBST(INCLUDE_LOCALE_H) dnl Determine which catalog format we have (if any is needed) dnl For now we know about two different formats: dnl Linux libc-5 and the normal X/Open format test -d intl || mkdir intl if test "$CATOBJEXT" = ".cat"; then AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) dnl Transform the SED scripts while copying because some dumb SEDs dnl cannot handle comments. sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed fi dnl po2tbl.sed is always needed. sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed dnl In the intl/Makefile.in we have a special dependency which makes dnl only sense for gettext. We comment this out for non-gettext dnl packages. if test "$PACKAGE" = "gettext"; then GT_NO="#NO#" GT_YES= else GT_NO= GT_YES="#YES#" fi AC_SUBST(GT_NO) AC_SUBST(GT_YES) dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl *** For now the libtool support in intl/Makefile is not for real. l= AC_SUBST(l) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) dnl----------------------------------------------------------------------- dnl Checks for LIBDB dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_DB, [ if test ! x$db_libdir = x; then LIBS="$LIBS -L$db_libdir" fi if test ! x$db_incdir = x; then CPPFLAGS="$CPPFLAGS -I$db_incdir" fi dnl dnl We need to check both libdb and libdb dnl AC_CHECK_LIB(db, db_create, , [ nodb=yes ]) if test "x$nodb" = "xyes" then AC_CHECK_LIB(db, db_create, , [ AC_MSG_RESULT(no) echo "*** Cannot find a suitable Berkeley DB library on your system." echo "*** Version 3.2.9 or above is required." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 ]) fi dnl dnl Check its version dnl AC_MSG_CHECKING(for version of db) AC_TRY_RUN([ #include int main () { int major=0, minor=0, patch=0; db_version(&major, &minor, &patch); if ( major > 3 || (major==3 && ((minor==2 && patch>=9) || minor>2)) ) exit(0); else exit(1); } ],[ AC_MSG_RESULT([>= 3.2.9, ok]) ], [ AC_MSG_RESULT([< 3.2.9, failed]) echo "*** The version of the Berkeley DB library installed is not" echo "*** 3.2.9 or above, make sure the correct version is installed." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 ], [echo $ac_n "cross compiling; assumed OK... $ac_c"] ) ]) dnl----------------------------------------------------------------------- dnl Checks for LIBXML2 dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_LIBXML2, [ if test x$xml_config_prefix != x then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x$PATH != x then xml_search_path="$PATH:$xml_config_prefix/bin" else xml_search_path="$xml_config_prefix/bin" fi dnl if test x${XML_CONFIG+set} != xset dnl then dnl XML_CONFIG=$xml_config_prefix/bin/xml-config dnl fi else xml_search_path=$PATH fi dnl dnl Search for both xml-config and xml2-config dnl AC_PATH_PROGS( XML_CONFIG, xml2-config xml-config, no, $xml_search_path ) if test "$XML_CONFIG" = "no" then dnl AC_CHECK_PROG( HAVE_XML_CONFIG, xml-config, "yes", "no" ) dnl if test x$HAVE_XML_CONFIG = "xno" ; then AC_MSG_ERROR(xml-config/xml2-config not found. You need to install libxml2. If it has already been installed, please use --xml-prefix to specify its location.) fi XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML_CONFIG $xml_config_args --libs` CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$LIBS $XML_LIBS" dnl AC_SUBST(XML_CFLAGS) dnl AC_SUBST(XML_LIBS) AC_CHECK_LIB(xml2, xmlParseFile) AC_MSG_CHECKING(for xmlChildrenNode in parser.h) AC_TRY_RUN([ #include int main () { #ifdef xmlChildrenNode exit(0); #else exit(1); #endif } ],[ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) echo "*** This version of libxml has not defined xmlChildrenNode." echo "*** Please upgrade it. Version 2.2.8 and above are known to" echo "*** to be good. If you've installed it in an unusual location," echo "*** please use --with-xml-prefix to specify it." exit 1 ], [echo $ac_n "cross compiling; assumed OK... $ac_c"] ) ]) dnl----------------------------------------------------------------------- dnl Checks for LIBXOSD (>= 0.7.0) dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_LIBXOSD, [ if test ! x$xosd_libdir = x; then LIBS="$LIBS -L$xosd_libdir" fi if test ! x$xosd_incdir = x; then CPPFLAGS="$CPPFLAGS -I$xosd_incdir" fi if test "x$enable_xosd" = "xyes" then dnl dnl Check its version dnl AC_MSG_CHECKING(for version of libxosd) LIBS="-lxosd $LIBS" AC_TRY_LINK([#include ], [ void test() { xosd* t = xosd_init("font", "colour", 0, XOSD_top, 0, 0); } ],[ AC_MSG_RESULT([>= 0.7.0, ok]) AC_DEFINE(HAVE_LIBXOSD) CFLAGS="$CFLAGS -D_REENTRANT" LIBS="$LIBS -lpthread" ], [ AC_MSG_RESULT([< 0.7.0, failed]) echo "*** The version of XOSD library installed is not 0.7.0 or" echo "*** above, make sure the correct version is installed." exit 1 ] ) fi ]) hotkeys-0.5.7.4/ChangeLog0000664000000000000000000003776212235206407012035 0ustar hotkeys (0.5.7.4-0.3ubuntu2) trusty; urgency=low * No change rebuild against db 5.3. -- Dmitrijs Ledkovs Sat, 02 Nov 2013 14:32:39 +0000 hotkeys (0.5.7.4-0.3ubuntu1) raring; urgency=low * Added missing lib to link, fixing FTBFS. -- Daniel T Chen Sun, 21 Apr 2013 21:15:08 -0400 hotkeys (0.5.7.4-0.3build1) precise; urgency=low * Rebuild for libdb5.1. -- Colin Watson Fri, 11 Nov 2011 23:16:41 +0000 hotkeys (0.5.7.4-0.3) unstable; urgency=medium * Non-maintainer upload. * properly check for NULL pointers returned when configuring ALSA; thanks to Ico Doornekamp for the patch; Closes: #251842 (severity=grave, urgency=medium) -- Sandro Tosi Sun, 24 May 2009 21:14:34 +0200 hotkeys (0.5.7.4-0.2) unstable; urgency=low * Non-maintainer upload. * Replace x-dev build-dep with x11proto-core-dev. (Closes: #515369). * Build-depend on libdb-dev. (Closes: #517281). * Add alsa support. (Closes: #435037). + Thanks to Joey Hess for the patch. * Add RandR backlight control. (Closes: #435043). + Thanks to Joey Hess for the patch. * Add Cherry eVolution Stream def. (Closes: #427735). + Thanks to Stefan Heisel for the patch. * Add Fujitsu p7120 def. (Closes: #435046). + Thanks to Joey Hess for the patch. * Add Dell Inspiron 1520 def. (Closes: #446642). + Thanks to Tim Connors for the patch. * Add Logitech Internet Pro def. (Closes: #356581). + Thanks to Roland Stigge for the patch. * Add Acer 5102 def. (Closes: #479048). + Thanks to Boris Shtrasman for the patch. * Add ibook2 def. (Closes: #238782). * Add flybook, armada1750, omnibookxe3gc defs. (Closes: #381487). + Thanks to Wolfgang Fuschlberger for the files. * Add HP dv9000z def. (Closes: #446914). + Thanks to James Zuelow for the patch. * Add Acer Travelmate 4060 def. (Closes: #457713). + Thanks to Ismael Garrido for the patch. * Fix background option to match help. (Closes: #460290). + Thanks to Josef Spillner for the patch. * Fix compiler warnings. (Closes: #435045). + Thanks to Joey Hess for the patch. * Make clean not ignore errors. * Don't build-dep on -1 revision of libxosd-dev. * Add ${misc:Depends} for debhelper package. * Remove useless prerm script. * Replace 'pwd' with $(CURDIR) in rules. * Add additional Copyright holders to debian/copyright. * Bump debhelper build-dep to >= 5.0.0. * Move DH_COMPAT from rules to debian/compat and set to 5. * Bump Standards Version to 3.8.1. + Menu policy transition. -- Barry deFreese Wed, 22 Apr 2009 19:46:46 -0400 hotkeys (0.5.7.4-0.1) unstable; urgency=low * Non-maintainer upload. * Build against libdb4.3-dev (Closes: 297316). -- Pierre Habouzit Fri, 20 Jul 2007 15:53:57 +0200 hotkeys (0.5.7.4) unstable; urgency=low * Changed build-deps due to the xlibs-dev transition. (Closes: #346712) * Bumped standards version to 3.6.1.2 * Added a new version for Microsoft Natural Pro Keyboards (Closes: #303591) * Fixed sample.xml (Closes: #316234) -- Alexander Wirt Thu, 19 Jan 2006 07:37:18 +0100 hotkeys (0.5.7.3) unstable; urgency=low * Added a patch to fix libosd bindings (Closes: #277824) Thanks to Petrisor Eddy for the patch -- Alexander Wirt Sat, 19 Feb 2005 19:26:21 +0100 hotkeys (0.5.7.2) unstable; urgency=low * The "Marry Christmas" release :) * New Maintainer Alexander Wirt (Closes: #280817) * Acknowledge libxosd dependency NMU (Closes: #179927) * Fixed Manpage (Closes: #235973) * Added SK-1689 keyboard definition (Closes: #170687) Thanks to Jeff Tranter for contributing * Added Dell Inspiron 8100 keyboard definition (Closes: #171482) Thanks to Erich Schubert for contributing * Extended MS Natural keyboard definition (Closes: #174888) Thanks to Chris Garzuzi for contributing * Added Apple Pro keyboard definition (Closes: #176614) Thanks to Daniel Stone for contributing * Added Logitech Internet Navigator keyboard (USB) definition (Closes: #176664) Thanks to Thorsten Gunkel for contributing * Added BTC 8190 Smart Office keyboard definition (Closes: #213222) Thanks to Eddy Petrisor for contributing * Added ipanel keyboard definition (Closes: #230339) Thanks to Nicolas Rueff for contributing * Added Prog1 and Prog2 to key definition (Closes: #253035,#243126) Thanks to Ludovic Rousseau for contributing * Added Acer Aspire 300 keybord definition (Closes: #269751) Thanks to Roland Stigge for contributing * Added Uniwill N243S1 barebone keyboard definition (Closes: #269753) Thanks again to Roland Stigge for contributing -- Alexander Wirt Fri, 24 Dec 2004 16:52:16 +0100 hotkeys (0.5.7.1.1) unstable; urgency=low * Non-Maintainer Upload. * Build-Depends on a new libxosd-dev (closes: #179927). * Versioned Build-Depends on debhelper. * Removed debian/CVS. * Removed debhelper examples files lying around in debian/. * Bumped Standards-Version to 3.5.9 (no changes). * Modified source/kbddef.c to include and , instead of and so the package would build. -- Julien BLACHE Thu, 17 Apr 2003 20:44:45 +0200 hotkeys (0.5.7.1) unstable; urgency=low * configure.in: uses AM_PATH_XML2 that libxml2-dev provides, hopefully this will solve the build problems on MIPS and MIPSEL. -- Anthony Wong Sun, 8 Dec 2002 22:09:23 +0800 hotkeys (0.5.7) unstable; urgency=low * Change the default behaviour to run in the background. Use -b to run in the foreground (beware: this conflicts with the original meaning of -b) * Added libgtk2.0-dev, libglib2.0-dev to debian/control. (Closes: #171337) * Added README into debian/docs. -- Anthony Wong Wed, 4 Dec 2002 01:51:57 +0800 hotkeys (0.5.6) unstable; urgency=low * The "one-version-to-merge-them-all", aka "maintainer-is-now-back", release * These account for NMU patches that I've merged: - acinclude.m4: check for libxml2 instead of libxml (Closes: #127987) - src/Makefile.am: added more SOURCES, put hotkeys.conf and splash.xpm to EXTRA_DIST, use LIBXOSD variables in build - src/conf.c: initialize dbenv to NULL (Closes: #127987) - src/conf.c: changed action of Play from 'xmms --play' to 'xmms --play-pause' (Closes: #162398, #136326) - src/hotkeys.c: modified function setKbdType such that user's definition file is preferred over the global one (Closes: #135440) - configure.in: added AM_MAINTAINER_MODE, use AM_PATH_LIBXOSD (provided by libxosd-dev) instead of my own AM_CHECK_LIBXOSD, so disable configure arguments --with-xosd-inc and --with-xosd-lib, check for libpthread - debian/control: Build-Depends: libxosd-dev (>= 1.0.3-1), Conflicts: xmms (< 1.2.6-1) - debian/rules: in clean target, remove debian/debian and and make distclean instead of make clean, should be more policy compliant now - def/Makefile.am: add *.def to EXTRA_DIST - New key defs: hp5181 (Closes: #146029), logitech-cfo (renamed from logitec-cho) (Closes: #149124), kb9930 (Closes: #163212), orktekusb.def - Updated sk2500.def, leave keycode 151 untouched (Closes: #126334) - src/hotkeys.1 updated/corrected - src/hotkeys.conf: changed 'xmms --play' to 'xmms --play-pause' - Fixed all XOSD related bugs (Closes: #109007, #116820, #144659, #145041, #158843) - Thanks Junichi Uekawa (Closes: #162274, #164821), Bastian Blank, Michael Beattie and all bug reporters and "patchers" for your help and support =) * These are my changes and additions: - debian/control: autoconf (>= 2.56) - New gtk+ code for the splash screen, modified Makefile.am and configure.in accordingly. (As gnome-utils in Gnome2 no longer contain the splash program, Closes: #145028) - Added node in all *.def, modified src/kbddef.c accordingly. - New key defs: ibook, pb5140w -- Anthony Wong Thu, 21 Nov 2002 23:27:29 +0800 hotkeys (0.5.5.4-0.1) unstable; urgency=low * Non-maintainer upload * Add deffiles for keyboard mappings. (closes: #163212) thanks: Adam Lackorzynski * Use "xmms --play-pause" which is a newish feature in xmms for play, instead of "--play". (closes: #162398) this also addresses problem with keyboards with no pause button. (closes: #136326) thanks: PUYDT Julien * Update sk2500.def (closes: #126334) thanks: Beiad Ian Q. Dalton -- Junichi Uekawa Tue, 15 Oct 2002 20:06:57 +0900 hotkeys (0.5.5.3-0.1) unstable; urgency=low * Non-maintainer upload * Add deffiles for keyboard mappings. logitec-cho.def and hp5181.def (closes: #149124, #146029) -- Junichi Uekawa Wed, 25 Sep 2002 20:31:14 +0900 hotkeys (0.5.5.2-0.1) unstable; urgency=low * Non-maintainer upload * Fix it to compile again - configure.in: AM_MAINTAINER_MODE - autoconf, aclocal etc. invocation - configure.in: use AM_PATH_LIBXOSD - configure.in: add check for libpthread in configure.in - src/Makefile.am: use LIBXOSD variables in build - use libxosd-provided m4 files. * Add my keyboard to the list - def/orktekusb.def * Bump up upstream version for the sake of it - automake: 0.5.5.2 - orig.tar.gz: make dist, and mv. * Make automake dist rules to be fixed - src/Makefile.am: add header files to SOURCES - def/Makefile.am: add dist_ - Makefile.am: add specs * Link with latest libxosd-dev, 1.0.3-1 (closes: #158843) -- Junichi Uekawa Thu, 12 Sep 2002 15:59:51 +0900 hotkeys (0.5.5.1-0.2) unstable; urgency=low * Non-maintainer upload * Added call to xstrdup() for font string. (Closes: Bug#145041) * Compiled against libxosd 0.7.0 (Closes: Bug#116820) * Previous NMU Closes: Bug#109007 too. * Prefers User definition file over global (Closes: Bug#135440) * Removed Bashism when calling system() (Closes: Bug#145028) -- Michael Beattie Sat, 22 Jun 2002 23:09:43 +1200 hotkeys (0.5.5.1-0.1) unstable; urgency=high * Non-maintainer upload * check if osd is activated (closes: #144659) * check for libxml2 (closes: #127987), also need to rebuild all autoconf/automake files * use make distclean * bump upstream version number -- Bastian Blank Sun, 28 Apr 2002 00:05:57 +0200 hotkeys (0.5.5) unstable; urgency=low * Upgraded to work with libxosd 0.7.0, earlier versions are not supported (Closes: #92279). * Upgraded to work with libdb 3.2.x, libdb 2.x not supported any more. * Added an option to the configure script to skip libdb3 testing. * Parameter passed to initializeX is correct now, thanks to John Daily (Closes: #105693). -- Anthony Wong Mon, 29 Oct 2001 16:55:36 +0800 hotkeys (0.5.4) unstable; urgency=low * The volume change will be greater if the vol+/- keys are pressed continuously within a short interval [new] * More rigorous checking of db2 and libxml2 in configure * Added SK-2505 and Process MCK-800 keyboards support [new] * Use debian/shlibs.local to restrict the versions of libdb2 and libxml2. -- Anthony Wong Sat, 31 Mar 2001 02:57:54 +0800 hotkeys (0.5.3) unstable; urgency=low * Corrected the configure script to be able to locate xml-config [fix] * Include my own XF86keysym.h. * With splash screen! [new] * Polypix and BTC 9000 keyboards [new] * debian/control: added libdb2-dev to Build-Depends, and changed Standards-Version to 3.5.2. -- Anthony Wong Fri, 16 Mar 2001 21:51:15 +0800 hotkeys (0.5.2) unstable; urgency=low * The BadValue X protocol error is fixed, it's real! (Hence turned off the X synchronize mode, it's not needed any more) [major bug fix] (Closes: #85689) * Now you can specify the amount of volume increment and decrement in the keyboard definition file (1-100). [new] * Memorex MX1998 and MX2500 support. [new] * Check for both xml2-config and xml-config in configure.in (Closes: #87460) -- Anthony Wong Fri, 15 Mar 2001 01:28:01 +0800 hotkeys (0.5.1) unstable; urgency=low * #include db.h instead of db2.h [minor bug] * Added a --fix-vmware/-F option for using with VMware. Somehow VMware removes the action messages that I installed, so a thread is created to re-install it at a regular interval. A dirty hack... * Turns on the X synchronize mode, shouldn't have any performance issue as there's no GUI, but this can suppress the BadValue X protocol error. * Parsing of configuration file is changed: the global one will be parsed first and then the private one. -- Anthony Wong Sat, 10 Feb 2001 04:48:35 +0800 hotkeys (0.5) unstable; urgency=low * Introduction of a real configuration file [new] -- Anthony Wong Thu, 8 Feb 2001 07:58:43 +0800 hotkeys (0.4) unstable; urgency=low * Logging through syslog, specify log level using -L/--loglevel [new] * On-screen display (uses libxosd) [new] * Added SK-9925, SK-2800C, MS Natural Pro, Logitech Internet and Chicony KBP-8993 supprt. [new] * Inclusion of RPM spec. [new] * Unreadable definition files are processed correctly. [bug] * No more "zombie" processes left behind after launched applications quit. [bug] * Semantics of handling muting and volume changing is corrected such that failing to set one sound device won't affect the other. [bug] * Hope the BadValue X error is fixed... [bug] (Closes: #83064) * CDROM volume adjusting is now corrected [bug] -- Anthony Wong Sat, 27 Jan 2001 17:53:24 +0800 hotkeys (0.3.2) unstable; urgency=low * Removed hardcoded paths of libxml from two #include, build on hosts that don't put header files in /usr/include/libxml should be correct now. * Added the `correct' URL on where to get libxml2. * The 'msnet' keyboard is actually the MS Internet Pro keyboard, renamed, and added the real MS Internet keyboard support. -- Anthony Wong Sat, 20 Jan 2001 17:36:25 +0800 hotkeys (0.3.1) unstable; urgency=low * User defined keys didn't function, fixed. * Temporary take out the Debian menu file as it's no use to start it without specifying the keyboard type. -- Anthony Wong Sat, 20 Jan 2001 05:19:53 +0800 hotkeys (0.3) unstable; urgency=low * Introduced an XML-based keyboard definition system; users can create their own preference now. * Now users must specify the type of keyboard, as there does not exist a reasonable default. * Added SK-2500, SK-2501a, SK-7100, and Logitech cordless iTouch keyboard support. * Migrated from Imakefile to automake+autoconf. -- Anthony Wong Wed, 17 Jan 2001 23:51:44 +0800 hotkeys (0.2) unstable; urgency=low * Added Microsoft Internet keyboard support (Thanks jas ) * Added Memorex MX3000 keyboard support (Thanks Jeffrey Panczyk ) * Added the -d option to specify the cdrom device. * Added the -t option to specify the keyboard type. * Volume adjustment and mute affects the CDROM drive's volume too. * Added initial support for launching browser and mailer (defaults to mozilla). * Changed the description in the Debian package a bit. * New TODO and INSTALL files. * APM suspend and standby mode (with the help from apmd). Highly EXPERIMENTAL, not recommended for normal use! -- Anthony Wong Tue, 9 Jan 2001 01:50:59 +0800 hotkeys (0.1) unstable; urgency=low * Initial Release. -- Anthony Wong Fri, 29 Dec 2000 21:25:58 +0800 hotkeys-0.5.7.4/Makefile.in0000664000000000000000000002700607574654203012331 0ustar # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CPP = @CPP@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GT_NO = @GT_NO@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LIBXOSD_CFLAGS = @LIBXOSD_CFLAGS@ LIBXOSD_CONFIG = @LIBXOSD_CONFIG@ LIBXOSD_LIBS = @LIBXOSD_LIBS@ LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CFLAGS = @XML_CFLAGS@ XML_CONFIG = @XML_CONFIG@ XML_LIBS = @XML_LIBS@ l = @l@ SUBDIRS = src def EXTRA_DIST = BUGS debian/* hotkeys.spec config/install-sh config/missing config/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS TODO acinclude.m4 aclocal.m4 config.h.in \ configure configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) config.h: stamp-h @if test ! -f $@; then \ rm -f stamp-h; \ $(MAKE) stamp-h; \ else :; fi stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @echo timestamp > stamp-h 2> /dev/null $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in @if test ! -f $@; then \ rm -f $(srcdir)/stamp-h.in; \ $(MAKE) $(srcdir)/stamp-h.in; \ else :; fi $(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null mostlyclean-hdr: clean-hdr: distclean-hdr: -rm -f config.h maintainer-clean-hdr: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -rm -rf $(distdir) GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz mkdir $(distdir)/=build mkdir $(distdir)/=inst dc_install_base=`cd $(distdir)/=inst && pwd`; \ cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) dist -rm -rf $(distdir) @banner="$(distdir).tar.gz is ready for distribution"; \ dashes=`echo "$$banner" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ echo "$$dashes" dist: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) dist-all: distdir -chmod -R a+r $(distdir) GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) -rm -rf $(distdir) distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) $(mkinstalldirs) $(distdir)/config $(distdir)/debian @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ || exit 1; \ fi; \ done info-am: info: info-recursive dvi-am: dvi: dvi-recursive check-am: all-am check: check-recursive installcheck-am: installcheck: installcheck-recursive all-recursive-am: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive install-exec-am: install-exec: install-exec-recursive install-data-am: install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive uninstall-am: uninstall: uninstall-recursive all-am: Makefile config.h all-redirect: all-recursive-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-recursive clean-am: clean-hdr clean-tags clean-generic mostlyclean-am clean: clean-recursive distclean-am: distclean-hdr distclean-tags distclean-generic clean-am distclean: distclean-recursive -rm -f config.status maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-recursive -rm -f config.status .PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ install-data-recursive uninstall-data-recursive install-exec-recursive \ uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ all-recursive check-recursive installcheck-recursive info-recursive \ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ install-exec-am install-exec install-data-am install-data install-am \ install uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean debian-dist: dist fakeroot debian/rules clean mv @PACKAGE@-@VERSION@.tar.gz ../@PACKAGE@_@VERSION@.orig.tar.gz # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hotkeys-0.5.7.4/COPYING0000664000000000000000000004311007231351525011300 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. hotkeys-0.5.7.4/config/0000775000000000000000000000000007574654203011524 5ustar hotkeys-0.5.7.4/config/install-sh0000775000000000000000000001273607315561564013541 0ustar #!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 hotkeys-0.5.7.4/config/missing0000775000000000000000000001421307315561564013124 0ustar #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 hotkeys-0.5.7.4/config/mkinstalldirs0000775000000000000000000000132407315561564014332 0ustar #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1 2001/06/25 07:08:36 ypwong Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here hotkeys-0.5.7.4/src/0000775000000000000000000000000012135107720011030 5ustar hotkeys-0.5.7.4/src/splash.png0000664000000000000000000031323107571421073013043 0ustar PNG  IHDRGXgAMA abKGD pHYs  ~tIME#\ IDATxk$u%vνYU]U3 R|IZlL2}ѿIծL @$Af]Up{#r0f$dgFfFdzs˗)p7w3+fŬrlm^1I _^k=DH-e=&z!i:Lӡ7}AFX![5V>B !UVV5Ġ nGBYwwssxCxw<ލvmըpRD4UVant{CqEJ]qqUJC{i:LެT1) ! 1$NŬZs6Vf DV*=10Ody󶋗]4?۪0%t~~/>7p| 7lY j"b97&#od=ٓ=ٷtϮ.qt4$ETD/Y6ݝ$)܋ɼV76!tͬ S3Q8) 5DBRT"Be& $jVJ٫j>nnּ Wa D$}r)S-SBBUՊ涓$w v]-!U "j nSTBJG @ < 5<|BC'(ߣw_|o"{_7` .`_ "aUXE0WN$&!E03ڍ44YP4S(s&@(Û_B7 H+eǠS,WkVBبN XJQ(;wQЫF:PkZf۱1+䒏y:GC[p-EÁ9\HP WiG DAvd~ˉ/@0=5#$bt~-ꗯn/p}-!`;BRW$ (de=n\ۂ~tM}g3~ڰo9/<[~bvKI!hJ$hά*JDIqHic󼖏j&NSEt4%]“dղw [A)"U"b[!SMinVkٕz(e4BScI j"O5敻TZ8lwv.b2ەr^i8>!,kyW[EP`"-"LJv`nx'ABףJE)g*D猡c #[;wNw?=[k: - X=%'2K" hmsӹr~5jMA q%@jViG [,)CH) ]iJ pj]AW)"ѰjZ.,D 2i "L)r<+b¬25rD: ]+ e5eZ9r,u@ 1]Z [sE̬|+nT.' IYP;q8>PVh(w-) |}TEV Imnǟ<o􋿽*7:ps!&( vMP@<Z>wsvzax :Og1l\ʋx,!PͦQDc身.mRڸV9WDUH \t"BR $ݽMDb ~1/S-\neNJPg~,m0̷&R(*\muK8s-"AU5(T0J"je=˾ ˥K.s ŭ CWww?[麋a*![w]~1c)G.$X /8P*,@( 0p8>~/V`&"Ѐ:g ,W3{'ɚi߿LhSM(g,' ,N%|[Z'uWpMmjiW!҂׳"ť [Х aˏ 1C-C$%cYXB//d"Rǜw"Q5 *WfJTK jWUAc}b/DHGh#TT뾻Sww3nJz!Apw~::mJxw85 SMջcBL 0.o(d AI7l*+^<"P @xyL[@;e?! =银|,"bҌ#iC̬ŰD:[BT캋jRThn-x<|Ra8 äT* sCTCZr%]r9t" aNs1Y@OzH9AA{+`~TB\GgfK2uVB 8`^D5mRe:ZKEHZ 7&u 6')[K""w0"ёk9u$BBZ/lJL`"U™;Ё |w(P@glpx|EG0@⎜8`uoB'VX8%җ̂{iݫYǠ^̲j aH6)RZ弟Yu rޖ:Mӡ*"\dTi?Mr(0VCR^B~~ۙ2h4?.B؄pmf9?N$g*  ޜ5us(.VpR2 pҩk--x*fcNW,|%T&BX˱m=`.fv9ihtm+e5#A PB>9O$ ?_㟼0nk +n~YP2jEx(q O/;'-&`Pz3r fj}>QPq0+5UDZk-fsUZ rɻqlUCBHg(E"s>v.}·iz{l] Ud%|6T^<Qc>u. >!  `\W)̼iXZNy7?o-'AC@>V.I8w>  a/y er>Lw-s'{2<N"ENjXI@K[FHmDj䁘͹Wʮ-ս*Tdx xsa0#y *͢3g)ީ^?hpp=BqBDJ*HM{o̠jcBUhr/oHҸM}]rq><|^еVB|,e,ujN 8/ᩕ+5P93(p!4*WЈyu8ʔ˔OR^xދG?l.frL)jA͋~FOdN`cՅ-fO31H N3P,^ !Y·Vwv7ըiZDЖq8u&+9Mwx7M9oͪ[u32Pz}u|07G<87LBN ;i ;\wYOfev)RfMff?jv,P.DPOm'Z>;K˙Ú<ýOd8F/Sͮ(HR@A2x3U F`MG&`tdG3,8N+ &1,OÛ_~r+z% l.@E o2_#lwSfla]Rύ3GL d7߾|Ï~K[p/=e^\|ag] )2kap&п4T KpCT !$f9C)b6^ACߴdrtjs7D""pMhEe ?|PB""HS77xIo ԡH9JYֿ-=`-~,&,dOOPg%.n0"ڼSŭ=m5fր,˹,4'yJjr,FsjUKW"C߬z7GqUX=Őݧ.\1ʂH 1Z}"ЩlT7x?|e=3˘D4u@,ŃZ+)H Q8uםwZ|IʻqRW?R5c-%Bw k=682@s4wpw_|D"` Hwlr%E':n?K!/^a}9/S7X]zHʲafâ?!x֖WǟRO͂Y>'[IP,588`AS]oV/}..#.JyW˽j P8vNv rf >gRZA0qj:rxxs\4Ȗ#=7w[wB8&߯_o5ݬώꔧf E4"44w :r}#/CDj_Bo.zCp?>NO'69oa^ӿonߗJ-\>{m!njub6|(d*A:|5;i ď/72K0[@pr72˂@Q܇E߭ծkVnbVi,祌% 5F\{=͎LKѳ#{\}*mRizWa..>X?_;GF:ECDc!@SbDDTz8M9oJ9:$e强.nR.mZb? 7J ^0O5l{$hD2_[Cyx8_./7O~!!$(V{Ue[bhWAO_7~[oŧ!L47m6}МE$㸝m&9\lmnݽsƦL+eGzi-e3d"!Dpv:2Sk W8tUGy7|j|ݧZٸ\d&m%u6"CcYTOrmTg'0$<>S9n?xqX}!^}a(|:s:ܖ" +'OT`y¾';Y8uEhuz2_6_`lT["Ա2 j)SqyMʡD{|Yi¼? N*!^%e*@PU&`6Ő:crGA tF{qD fZ+9(,Gg2Hq0MRZV5O DH͟!ܷda#RGƲݿfG{,ҵ*x;v_uJI@ΖGd9N/کi? £c/>+Y=pJr./׿_{/2 n?v4Ir17 =2 U`f{)VGbu&aZvKEiRhjϧi½)sB;xo 2PI;Ϫ!ot8xtґ Svk!Kފ$<: |EtS732* zd RAϲ]}dsp126]ajv9Z :ϣ^GuaW؁}luI-W@ , Hv<>UW< (`qأ:uq.3>&?ٷ ԣBy)[^j[sPwzZ1""gp/f>U⍆S;3IwqY;/24k5iswj5{鑸ܑȭ ߻:_e.WlH"?k&*'s`G@,z^4eQv&])}߈܁s ۨF\,K+g͇_6Y ICWcx Ӣ3x\9񖄛tu{t82aף`C_L{ؿrxp7=HPi#/l޼Nyv >%1}˙&7'×/0V䅰瓖a?EGG~ŏѻ<5+Tw8Oi HUWJARJmZd b7,{1p}@]ڤ[M>:@q"ZQ& ₾'鱗a ߼~/V_?3FJhBmqBTNQГ}-" |!ڼMAkY<]te 6WBZ`ffurdLLVSMr)@n{^ u!WfuʫUVI@@ pɹ`)ZOOǻq5Z4nJJ^;d>=<Ƞ󔕹:CF$W#`H5lřgh֚%TXll2|P8΅ 4!`-lUX,:a=ZPeQdtLoSHCt$jUkwmm0c}O7׷yz>{݀~X/T&(O/,Yn&N-VG>Ѥzs,fU橕%'bxy9oݽfr6Ui'$EښW*:ox{[^Bw#nÂxo?,e^CgVqy+` r.nR⦖\k dl4V[ ɏyYTJD]%R"2( ߅+b 78gQv+1Wi|O-ˆ^Z@MAHOpa4{!]x|7ȶ!FP8W/?W] kdSth_E2H8j)rs&mpZt'|ld`"q8LUMDcL99DZ#C)8fu|LfS=h$r,eFP39oU>_p7w%Oq<\'WW[܀a@Pyyم"T{ru߷_.TiyƸqҐк>Nc)y jCh*ƘVRHhRk5+nbJRM>"N2fOV)y{wx8MJgWeqlt}ݾ::&Zb7 ˋ梅X;?&9K4Zߩ?t?{qzp`L GY[pmեږy eDGNn.h'esf0@ `d~@|vAv8#p2!N5xל8N:6!t)Qi-nvD4bHsy5~9sl5OnvvӇw7iڹ$C\7?o~~7WRpL?J.fVkD IsM}TpT^$> /셛jTdTg vm yL¢>M {gcjc#9$r $@ gݗ7ҏ-!DDl37ݼrZ6+nkvssw'.ͥ w{@a<Vx# z"P^K>nw_~qݗj=/ps#0TR!- KГ%96%̜n^ g4nu.mZ3IЬfkz73 BeR]4 o[$Tamg^*H{\\y><0io!uwX*?>|_|b1BV0sq&@)=O{ _2np39jw!ਠ( ]y]2N0V߃™R9ׂ S17N50Oql]K:&GDkw |"&gq!(h25qw]_E׭n]DCBIWQ ]d$"<*YVwuß Oz9n_̚4a\1$~rA\~xpּƓ1'e@. ,"'"BbbZwE]RM4"kUiÂ<בFy.1YlS]+69Ik&-PkSKӄذ"!bZ<͏o͟<~6w_lwd@j)9\jv7ѓ9Fa ҷPjAZf\}OTj#R-$!Ysn!"4"LdƳ!欘WoA4,@5J>g104ZpCnkrQ}lV]^׽ q0tU[-589߉#P}W} A.e?GU4AEVƻ/g 1faLvPUiB.& swԢ:e۟<(w"n³NcABtqaiztZ<ݖK¥u#x97DdOf֭h_lj~(PѬ~6gGV}f(#3΋{5z*ѥkWOV? 0aF_п%\rui,D,jB Nb.Jr]m·vR{C]bg3 T6`8Z%}LaC(vy6H l:HS"p Az (W[/3\GH[EhSWݍrM65պ+2LK|xEM=RQK*&/6`^IH)tR?x_/]{/>?{1Yr5FtavJa̰wj8B"!_C'a_0gKdaA&5+6l!KSe~c b@ Cf6RAdbkb "!x;%KٛI7+hɬyV@+p `"~ FR) H)_V|yۻTj~n,^(@ YY) C-𩛤vfU<*j_P*(o*Q Mjvs a}htmq' ߖluVk[Ku{癙dt+9*^RP*ь]X ̉i{QTo[PRNW)1d-05D QqTz49@VW ςvݺd$ۤv8 ~.8]Д].]n|n8SMyyvrjGwI!t)Z/.wo^?f\j?we;'n7*2zD)[+իZ!.^z,7?vS9"ymL?5r>߁q MR4gl8ZQeu*RʜkxYɵMOlo^'*hgMʎ,wy/L$Hm{L/Zi(6l[Edf++d*KIQ.vPNLJ{?H9s>ِ4^an)W9!XꗇTVb3~Vy_r$;G/ؽKk4ZPk5-F,:\l͔sD",N3{"Zʔ0wp3M7x-_1;fn c'~\>j5ƻ;ljnQ.oRgEiOb|,W/wGRcc0v,^Tk93`@ D]c GWUzS PƥfZ7 PD{SmO!oi?0`Lj ֯X%x`E.갸SnXY|8f&n\˃dA1:F LaLF'M ѭ\'.CNi~L wl7L;jު}sZD8SWG%/殣ZQh%[EЮ6KǻB~$v 1>io`ݵ"k|6'*Hp.4oAXdL $8/e+t0\x3M!]wٺE# ̽]]yCXʐ ghtjV/"fZkk4]*`j͹00..EZrI j&[ZΓoo!R0}/9Z!q fIHaj^sDPc7!ӛ i3 P^M@G.[ K7f[ kS FŒ׊`2!/p&µ֪zU130:Ɩ))93`d-Lz_Gn OCKƶqNM0~ : ӕsvL0_{ww#z*e(~|Oh#Fl6hY,XJ`s3V]K?Ǹ/yg..MF\"9NnMӶL Yi4\NL0{ăA8Lt!q+ڬ'8F 0Z)1<,=,5ƽ< el%Cn!^h eiz5M D[-; C An8 fTHZF9FfDfVy!U [{o7t{ʿ>/#vt ?%T1EpFj`3m_zMV=Ek""=wZ)s<ٽsgͬq^;.;&Y@{'xΪZZa0c"jI9Os:4~)JTy|6]|5h "eb̪T5iղj&b","]۔\[AdvgU:VLP"hHfLFgf(%ךX݈:uo~,h[ĩBu_d Ѡzv(y))~sw]?aҾް IDAT>BiٻM_V<\'EM8gb缈w⅗DRi>L>cNǪEߞq_=# Qf` dEb0q iM=v,kH,]VڼվEY9;@LJ4_uJL,"zԚJS1ׯx8"uZ?ؽƢBHL)\'ag@x"5J i#r@ CBd Snio:A6tNMp z> b{RΏ5aə"Zyk_Fh'SY 윯T0鹗Uk5I%6~K@q84u)G"1u=;'"hCS!W0_ 9 x g= ֒Fw^sɷ^DD U߈zWRs.b,ԚyԴTe>ВD,g6 3 /Ƶi:~1I"<7l_qQ Dk"&F0>?ۛݘ"⾯;:@ĵfԖ$voduO#x[j]2qb`S( }ɹFE-S-jׯx[JN04MVjl\^>PB+5!.h (g,;8B۴U-u)9jQ¼DeժԒkM,=H䂙vD oa_"hd3Ls;ՒЇGvM[2Lpv8Ϳ;֢Zw=vx.||;:z'}&ybPGAv]1!9xMɚ4}՗RB @+Ǐ۔is~e l0S--nXyN>≈ץ"c2X*PbkƪT86lT"?S]׭hY+bF *Ds)W|$ĸo.6_?r%W-9MUD| tjVhLmsVfa&QRs~UڞDTf )xURf#{@}]'~7 U3fiþB`{ޯ}]@82%SN9-yD\jM̭  1^n6?ct *kɥ&1 H"؉cݫ5|f`(Y[$4a)SΧnN9Owjmnn/rʩIŁK)a͗7 "Qxixurl.vn90N}.RZZ f0G-D,z\Ɣ|fZjFfw."Z)jʤcaq[98QROFL @lVԜ6yK[E./2GL eF 4z=? umv}i>ű*ZCe,r1+\P`碯K}E fQZJl4q_,o\Xo ο#~` eiYΚT\PT8y>>ͧZgJl60^=hbEz"QP@Dm߉D-05'3Q! mb%Kh~չmHw&,,❳(ikb3IZی)r)Ǫzc*܍?aHd?Gٳ݇l//f##x1XLR i2G+HTƆD09_t7M/Y]grίXDBWU.Lp;*VM0M?=~X F#-]S-:ӥ(Vf 3w7wp<ƛ‘miz~w|^2q6zr.YFQUM9UA]ZiVfAA"6HᙜUpW1`RjRݨZMsRʫ%%]mA-[Z 6b1ҍsV9HDZjGu,A!!LY1UsjQ QFHh6$l32zqa}s?1w@6E5"?`Y%D-IO4Q.euRK~> L%A!-,"U%V(8bϦf)6 NK M`P4=uZWmOVõXhܥyj.c'!V+sr9ЅZ0}]> {聾2 a|y')*lAW~Ϯ>-) Hg4z&'uά') 7iVT[혝i1^%arD̪izq3Nfdy%xhÝېHp+*hКDYQ yКRND\Vopym,lph)KNt{:>N_o44f)ݩ߬x?G_|Kw<0'K`hy&PBmH;`,2:dC`{ V[:62x52;) *˲ބK|]#9.HD?O_Nq|6lu.j)zx~ 3gFjd-3b#a켈^z0(2q} s;"W-2rT=|IpjZu8ͧS}OG3c~+"gR@@pXyF]z3P+Ji eh~t%nL S-0VBj2!nso`'l~lVgGĄxi%Xg@76IOntn D8R}id|/M(S|BV,I;L!l-s14ԚA>igfqjpx{_~ŧ>#+Z ~,gdR4| O͞8YXm/2.`Dy!f%PթD.cJ7s]Js ^=ySչv̲ AXș(YS   XM3?5$%CNQP8rW!.e9fD31S F㲱`a ;f@,>]'6j.\繌/̊jVz=A!:9a$`;֭s}}{ O_(/_^ͯoPU>^Q ym{-h0p!Fx7gg-;og8|# S,$>hP:+g;K͆mZv-BIu:u^#Dkki  le&:K /DZ LTƹřkkMD03̪Z Ԍw$m2,f\O_gg|~0xuy]wxДP檵Z5j@pމUs)R@dj0+#**TiKsfa\ȀTUYeں~(1V#jk:)ߔ| -ABk7G 1C7~Lu-< fb\_NQX \(✏n¶luiRQ̕&3(T+\KUU\R3Dr`Zs:d$$lR9/naBhjLNY;;~hRhi#p!x0A}\r .yDa|W޾ۿ4`eV;?jK;J`mwOCtEKl2̥i>p)͌"sS!=pfo@Gt;wZ]_ol믦ia1KZja1Qޱ8rr;zV1o~\v ˖ X  [gq=.JLޯP *{RuT"%:0 DXNk P_E{W2f3̩Rfͦa5Յwk j.,M\qQUCU՚ղVSX` 2,s^t*)U'MaG ",;-(f9NȉsP]Amv4yS{~˿êkRj7]k7e wSH~vv0sp4*1$Y4wGgk3̷,F&!W'wz9}J4 3sn\<4g[DB (g*T  xeMߧ-gZBmVOC6RvNǒ|cV~G$g+t""ﻦ\Ս&tːjiE{|o- RJ8))R )yιVU%UU5jYT,Qy}n#F FZQ!pNGC:.{Y,{Ϲh'L%K}xcPX݋pU΍1s)Eki~EL̊\un\R'd(vTER*jj`7kM(jE2GpkjmO a6&vjEUي$CrjCaU28țjӄJF @<z4L`{-;?ّ~ X_t* .Rg:CD+7}^?[?tg)Ŝ7+8 js90yj-g$-jid62֚C"aK*L`yrSݙqB==:qc6kZ˫sa*ƧB$&'}[p3K)E7T-6TZ1hZvyaGGGO汞|}]L18MUok} 8nCZK$9RsVhWM$DJL.xS*mEq#`ZԬQM֚i1bv\u:<2K eeX.KE捚\Ĉ@45)fD>qNws:NԤZrNja6뚺Lp;RRNsd"sdQժArJTU3kUͦjZa` Z V4w8`YfKgL Ԃw4-hⅽ8ě֒R\iUmFr^6l(fI-W-SeWh2emfC՘D5leCz)x4-#3ef?Ƙ:uwt(Lm3)4"֒mDpbhYL{t6ڻoJ~~wq-Z1@UU19/%4O-h?85p/2^9r T&p-S7d3vzNKr9r-u P,ΥEjU }[/frHfʨ!A \ 3Wf6+OJתS ,L\eKE:'f4';N$;"}e6P..rZŁԊY-5!Ym$dĪB\J.-)KvL ݔR<'{[zKвgC8g#?g"^$ N1 Z"n*hZԜjmUmLڋռ`SL$E][3-RZ Yj.BO#\kP}?8~{:}s8~}:}_Zw]&"zF<%m@¹.F`ojS-%XLڢT:炰ci*^$4_}BN.vjq甽}6_Ƹ%6FNDjsa摈xqj,[Pn X$5%sbJ euP\7ϸZyi5p󆤀 Ó -C{^;+,lDJUj5cA\UԔ!cjP\gZ\ǔǔ\Xڭmŝb4 Cջ)=svM廔_s%h}3 (F88O2n+>a!3R6G#9`qjSOÈ}8i z .n;O|D @̋hf1iWTq#NH8 Vd#wm[C}<0vgڀ.@^4}u:}s8|s<=u18u;GfV5P2s޹?+ۻ?0HqZJZw"ٱ8fCpnO.U?G%asʥ>^l]]]>4',IH,"BDsOaǔ&q. mV+}nS 0ȮlEX JmDzsuͺ<sz5՚[j-efYma~9 B!\ڎT 'Z9KgdQQ͵0oC@.4C:=N\_07LL9srJ=n{p2z;S㜾Sz.'D)*s%EwzNfRKE[nqcQsTK?w56ĈvKk>UR]G>e{>K{I\5֪lX$0{x`L",NإtJi"@1omԲ1[c#XUax|> /6#1 ~Y}+%qӮ1n-jZU5+sP5"rj0:\ps_< IDATZkM%O g}0(-Ím4HiN)sv\blqLk렣s,",K a^?^=X4ݍq"r0K)UcC%}iݷh x8Hd9|N4R:<?=` t@&#ko{+n  b}2W,Kf:D)TO-junǔNӼ88ݍtxxtz5KM;u:j̄]wnh[2ۋ"❏Y{ׅ.8睨iItَ`۶i Ym/<w ǝSz~s&`ZaZBCoKt7kq1 )B~Ct լAW 3aE#ѠxQq|y8L0y[=ly4 Ӵ٬Vj0{}{B4LPZ6Dn6s(Ez_tq}/ٓ%tESR\ŵOa}t~?^p|usa铇.ZXRi:[w}CM"\\Y1}ɓRÜl߁.*:P% h5q*OW;f7ZZ'LkJ!+Ra}/@) ycG =Jjas+W$DdOIK|ͦ$LE:~+KNp05}jވaԓZi &/+RmQJ^.9R23p1%k-USw^بvKO)yw~#WeƜ!ĮY {J],,dsTָjPKQ+l6Ң7P3t̗D= dv;NW7q5\šةVRKfUv;'LBfLGqDB܋\1` hTs-cɀ&0&fE:z8PҳqYp3Űn\4Of&,\jNxa30FSH l̶ s)9D g@K&P5N;Y"I049;+ -/Cgc?= _ȃ֢Us]u0iߔ@7,f$R0wZZJJ,s*ebb`z bb14~s8|y8|nntXa Ւӱkͦ%M/V/֏\\ 11 >vUkΩĽBXqnjS+e;qI)-\&f̔8w"DT4\3Vc\m|JqDB.4 UTW}؂(r}߼OvkD>z_|8Nz} oN5_64(Rw]>{">aZGKR`ݼ|hF N![9 b@ P JɌͤj)H}nVGՒVk U5ASZM`XƲjMf YY5{~ﯺ0im 1^8MS"B۴<{T[ڵwkk `Rcb"$ELYrY\ͥ9ۘn0SLXcs4MmU`w緻woN56mMTi?fe!ۤ7;E%K' Z QIY$;9wê~~|Z?m7'?Z?s3/R2",tdGk=ʩ%^^Ue*$j%dЦ2WjMKF(AE%D7Hѭ)Uh:sɳ~a XQtWGC ъd*ǜοZф5B bbR e͢YT X朋Y2*]ﰻs^֡(KF*7ȜaQ67wy{BPfb*Fh˳i/ ְ5S9u)bARD27 ;f܊8iv11y  8~u/w]JuneLmm UQ@rҜIl]ógDa쇛{Uo)6m{~z*9EhڵNu*CR;7[I)1Ɩ ϬL*@{x׏/_M|n/_`sU4v |wwn~?~~1ūFcmUʟzwpueUn vs+\VBs"+Ny]?[>l>l6EUOds'Nxs4Bժ2Hŷ0 t/BKER!UvyV['olJ8@ QlJu~k9ִޟ>??O P VxU*1Y%Bf%) @QXI4`DhIIAfIqwawn O8P䈔L +[k9@UsWR0{0TD4u1"1D'c|\0t] t"Uj,H}]JqQ$d"<"fm%}[t˳,4!!M)A3oEk!'* aB4*/_ZvݪĆK$˒ ,:EON(D$iwH۔&HVtIf{m?|WšRCB2 1bJ*򓬒!CJW]+G܈ zS-Re! ``)1-!l|3 zǍRik,\iQc"2d$]eN_lHK~"IE&jW9״M!3S&pTtNW'+ZxoLb"-9!Eqxc-WD$$rsSE^>g[4-XgA3JX?,2[^ͤ$GR߭?dYkE Hf-Bm^aӰWUKT3799)M!9e(bޓ,=V"!eNy۲1\S[fsHi*kε6eBcsry|՟_<<};w".+*Q%FNPB#&EbI'L΅v$w_SwZvkW+̚"{%^2h] gwfm/qJ 4єLS7}8=D4ŘbLRU,Oa2L_NǕ}Np ԈZ FAJZ"`O LEBA{p9}7ӛp/+GA7DQzkTUΩU&8q?׻+W14 4[5ΝǧՇDT.a -UE(r R,|pcd,OB ŪXc*od-i)I.Wm~cr`dHFdq" :(߭?`h,4D0</̔s>CΒRc'sG5if+RlMi*tDښZ[ϷَNZ$,6gL*0|nl?:guá!N2+cNYbpۏ}LSHc}g*0sUj*B˳TH.޶ֵEP+Sض9qG#P0ʙͪ9^$K׼S"Ӕ*4tȒl e#AR`P}[U),>U1C·[`7""y$9EPJ0h9ࣺ7/'·oLZDO.MD8qւCc͝5wֽnsȔ%qYJCeǹ>^>\>5"F$N^! +折%cҒ2Y$P$y%R>)ޟ59i bkUu uLC?opz"4c`5 # 'Y߭?tu=G0WOUwtažcj eEYD Pff!1Qd<*Pk[&fKObj) W''yn{g> *n5rU0v! V8N]b b)zW6rmVIA!'YCJju޶}BO3,`dLJc)>02;~%d >fgw)֪%pԸ|7]k95| /1K3cZPEww4j61Po [**c8a)KLS zG͇Μy>0ک:l+ny e6VYǞ$JEDr6U)s9g6'{S?k*h=PNZ(B0IB͟F3!a.IblsӸﮮV4@Ihxd( `nVj TՒ1PԖXԺlג ':[kjt4昃(9S3ccN)XU2[gϝ=g^JH$O{fJL!C|NyPJy .8$蒓-v`.ۿկVo80 Uk`r\E'n˦4= L f%9؇ЕVεޯ_rqB1A!%梺b cWu]&abCu]?]~^^X ű.w)&]Wk'к>`.KUVds>8Xn}U8k\q2]. <^4Нl52WͅL%2<r2˖]Jvkk+c+c%I 6Kc<RQc Eh6MA/o8*a"+"ܢSzՂQ0zq}{rQ7 mޏqA% IT5YI@Rkg[Yq@ DrJ1T w$:ghJSJ=a˔Q%Å(yl {?G(]6PkOBKD-!g2. ]7 n߬]mO?%gqEݔ.;Mޗ \f'L31kc11)qrEho^-7F.nТ4[k"1AgK*CbB5uH)kjzsBtۘ WU4r $D}DQ:)1Wuj5BCW1[WiZdɆ>_έ8^4(1EQkɪYTf{v6Vz$\[_r⢑U2F1 L kιf]j@L}qS*"aeR@OL"օ#]E,1O!EHs%kTK!8' yfFTƜbJIE ư1L`PSt ~HPP0 gW Fj=ZS)R#`J,\Lٔ%bksM>l;W[kJ TǥIR$]K61<4Z[d^>Za4NӘ[_:׀gZ5zu^cVȏ hJ)%;_5]Wv _ T5'mӬ۵Hޝ6ǫ1%1*Qʾk_o|%{öJt9kU4MY9eU{#HMP1w% GeG,@"梳 js{ih&9fYQthVI CqI(l r)SFffkR9դ ${UC('7yxaX"2Ƃ/i)H?@jP{#I$2Py*>/+zcҮ38~QQˏJ&N }9aa0q%U/>~/?೦Zjŏ7O6O?xs!+RBNSfiJT#zvGp)D5& wG#7 {X |zYwEx)+an4i.>"Kd=QE,arĞW \BuD!5 ySs]˱}B= a&"Q>yAUryN䜙WsSbnoWAӀϔ;L]^062.fa.>,06ʴFVuO2%JN_)^e9|`򹩞.7WUoMfiW}\m[5M߿o=|]7RQ'\] ,@1%x}W}UN1u4RNNSJW|N)9眫ՖV |}S.GQQbƌٗGɏ`RjL\fwaczDT/o^|R5TnU3r4 `kUDES*-7笪 SOt )֔|S 9|FsG(C 1!XT15UU! H`B\lBAmwe]U.8 9Y&ufȃ)]cJ|b߽E+"@Qs/TEQFŭߟ, >T&,!+Jŝ洮MV]&`F5:ScnEn5V2oD(0;لNDI7Ӵ;d)}eMUq܏a, X6t.8_W2_ uu~AE#sm5lieP2zAPxO_T֫^c݅](ew8nV/_v2e 8H)XD ;cܢ<團-1M)3pϟ$*&cx1޼Px=ZH jqFNVIvwPMY2gU-Yr1@l9WL1]DPѥ=4i"X dsf, 2j`&X@Ǯv5$VU!5D,"Xy,#3ka :Z!HuU7/GXIcLQ5kZk%EgY CrN9'6\UN9e]\yϵ뷛uuN6HR<{"᠅4 32Q10 ɇuޞ1W#YD&bSB 0e8dTK* pڡ(53$d9ݨ* |UUuX猱JCžonn>MR^1EŰ'BaOVg?xzϟ>~pٸ2Ӥ]},&읯*HEh?wn]bS< 2Vnsc5\nll@T9Œ4ŋ_>Ҽjknr;Rez& #RBס;`1IcST1HU:R1XdTar<@Ǐ~dI}j&bÖMQ0Ul5 FjuVĖ8ں>q*RFST"0qqm`Í1Maoн8L&SiL9g)2HeĤ+' oaVYcuU9罵[|KX`aÆ!"Sj!g 3=;aq8(kw O%{@MYڢ Vޯ{Ĺ'+BY%!ZZ QMTΠ`2ak˨rDGg_:P1ް$DfZoN==ɇ僳ˇuU<9%UѢU{ԕJOq? /=\SEX[{N$8RTin_<~/ӿ-ۍ}B;|s}6t4ԏ1F&Dut8` '55YC!,HLiRv) yDEhOMZ/_S* |:WJIʨ[QI)NQU5ur;[,y|UWCkeb$kE1qe"XLUP|1{q?cq"S_r&Ѽ5)Fќs85;c}wG!6M,q.ЈB1w/cNќlf+pfp[X x\dShb"Q5VM]+Ghi̓4zL1D a2䉲R,? I%NH c:k+ KN5gb0WD(L8fcߏ/B W~Un˔q"bf_uW8pi_|_|hs>vvq)E pI@p5[oyhor:z0pH-0O"ÐҘ/Nŋ=y8ohW8YHvDH^ABa].w]w2:NY*r.V^3"TKm?1 2 "㬯՜:"r2H &D eâr4~ cLS*j[fY~Uɰ1vK[ F05=euV3Y)>I^H!GPx5m w)nw!BÔRJ~x>5 Cf~l 5UT"5RBu]r෗ %B,6l8_cgD@$4A# ʠ,%d ZJ1 1Y{6κ gʈZgZkBPRS +35SJScGҟcÏEEc ]uU}'U) }[ZkU_O>}YӜO6߻.7*c>݅}L`1 LTxX7_7c{*Qs1 `-ڪ)-7EN1LjMN?GO^|ttww}RISBؗ/b臜-Řb% YIȝnNDW"ya ԏIѪsRG bi&%A&0T*QM9f9KJANY'@*d C?,+>Y C3kvV6XJڷ(:N9K["o|yʚړ.k P\{W{ܰH(K)9L/ƨ=Fɚm^7jQ\tyA001Zwo/ L(eD?CA('s XU䅺qX/m"ɝt 2{dAQ9̶ Y[1 x{s+:!=4R`RYB;!!3T7'9m/u.O}i 9Xì,TUd,1lN'nRJu{U)tӪ:3b+ h0BG^<|v'ՓYt~F׻Cvݻǯ㗏OG5M!Oi !cmUYLߒTYY;M)$״:2Mf\_?<\|jfoM4z$rŨe.Q=Sd1e4Sv+_ıY1(0N )Oe>yKeHJ)Ktn:^2UhD)AVpjW MHEF* fcLY&w< $Lۗ/c!~OBU5iё(ƺZȨE⥈)䜌oUG  ",iVR&:(R#*ی1ԅP1@UZXK"A x[Tr9M9εήxsE3iW_jSכ϶x/q۠ip{_~ve.)B) f+JYL9dNxfU{k~}rrWivC?6:۔ؔT)rM4]t@B?!59Wo7Ww?~.'L!BSwZ[mI榽V]ܡcU)[k|J>c12a!]j%~\ڋ3 sF-;!iމˆJ zP 4Ls1pLְ3ҵjKhxA.zNE_O0<[Ao9jKy?M*J4*5rNqnUh V,ʤsax5f9XsuUioc|exj:p}3T xcu\L1[_J,EEs0ܦ4VΙrMU9%$|l PIܥԋފފ"+ Qev1 !Z9(LbrrQeSט8 98$ky6g'}vYp{.w)Hl Z3^r D$ͳ2$U2oW`sn גǘFίrr 1v!vޯ>jj<~t&RanS?( +q4 |]9CSN紪8 !J>ݬs8(վ8aL,.Yz"mΰ1hINmoO o@Q D bE*$Ȁj*1KJ֛̎)`,>ZkE#ϼ=,"22r]R˫p)іMSe >[0dHL=wWUW.%s_̐" "`bsѸv2N/~z /0*l{=uqlز>J ұs^;Ш Vθ QzW* ΃Ƈ0lbV\mPW :RB0f%BEPwmkUE|xQD$$hXCK!(rwyٿ~J8ņAk kp&c)ʤɄ!0l^K@ @@ cJ} / ,@B+Ũc'\v̜BB#$>Q$!d㬭iY<-Ϟ={]j˯{;ﻮӾ-CbCQ e)cQ4 نɃ2g?j R>disC]8ͫ[BW®M'pΩv"ݰ}+]1W?$݇ʕ-Toh6<%, N $:뜵Mfz=\Z=Ci ^Ljƒ"@3Cn%1B4!9%uE麫Y]BX`{fLɡ1֬,/ *ǔ)D! ΏC+pcq~7џ32QkѝN!*$AnY9}CDɔRJ"Ie%;T/"ðy6 IDAT[k<.ο.(lM 뻛#qQ8:"C|iA(@MPI:ԉ^^a}) GdɰjGClHu8n!RҜ e~Rn cZr>g_f |}/FguZwKD&f)iBHTER"&(HƱ9pE::xZW7ϻa4Y3;7|[O\)pys !$oUa??~]hGsWPY)a# a7ɝ01,Xx}3|f} ":i7]1sE@UE#[I>% e<Å~7H`^.$`B#>& C6|U 9*Zf'pH209CN!7*_9V c(!ji'm(^a#Dɡo+!d 3ꚒB$QΔw)/!6EҔgӟw ÔӍ,\2IBJ@U$z߂5"XT;f Њ^пk?nc~q,Dє{~3{i% 1B2Ɖ$"E5/ Ș¹u5C2bxrz郢(_ھ1eS")8b 1$aED5;Ǜl^1vw۶6+,(f6?]=hh>X>;?zpw=xr֍C)%e$idz30^~W]b# ;W$_$*CF@T}Fe!l󋫯/reiݦ|,w^s$C4OQ&[ 2DI#Dky7cm$-"xQ! 4A0Bqܵ}زi79!ثF@Њ X$ÆJjdf`V᡹,mvj0!0%~z}Jqs##LscZsa8 'QPc#B1*!5&wDdLITZM~&Dküx-옩tX`Hd!gr֭v׷WtfՉ#@ (2=$(bR(Z܏7ML> LVLn aq6,EdVUoZSk qqճ\v|>bSʻ) ;If(mW_y]uYW*nfugf6$bb SuT4Հ*fQ1/0ݶ6ðqTUiҀF.EQO t:[,gޯޯRߧvgc ٍ]{/fÿtk2 "PauWhzp"I%߿RRH|!fQQ޼^v͏jr/f\.|ܷ@rT"&L4M{o C搐]O|ha! drF`YMWׄ V+ Eng/ܢf6qH 'c" CAtYG#R~lٔ> +fW% ۸}wyyYYr@63SÂ* ?I~C1Hֺy>5ۘrlG_}ED,iqmY|kB R')`.()1]yyQU-˻L36\D@Rz Iq7IzVd}}8$&"EŲ+|,]/{s@"jqufOCvO䌱DLLyvkJ>agKJdL .uq׶~:T ~L) ~H׳^Ì!c Y9$ Džc&W__>gS0n}@D;Zm慭s߁"LC*~(?/ڔ^%يDY ۾{{ީ:&4* cJ}q}~{@#c+At Q8p0n.diHS%k8[UrY,L5zDHpvf̐%5LS [W\ji|2'"Hp3lB%M<)b u 8naƶvV3Z!J]/OOb, *{UD@&P'(Auz49뜍Q*@ y1fVa&O?c߫@拿L/˃ڎsHRĦ RC/p.W^η{pwI"LuJ(7p]& )'4eB)J\ TRҘ3dEbXw ߭ӓaz)i<]}~\Z5vu?\Wi]b̨JDlU֕U$C1i~?v;JRR0 ?9Fs- ”E ׯa7kP'$ݓGӥ6:Zl8F_b>{#hي)@TGmf0;M ’DD""-hyl/]{.S)Ge2v,=*}xڶ'nxCHD`mHޛNͲZ.eQHobX-lCES1 =b{E>Ha~^\o%oW]4BR CJ^$Uh sϼD$DB1Ndҫ^wž 1#h lbTcC/3U9M;=fNbEcnĢ8 y#XW [E~\(lSZZ,x/ڱ!窢(YcŘ|c @LHJ1&(jְe8zɷGM#;u喋Y  (C;4j!,KSQM!ONx171nއ+ ݊DQS~)0p>]I"uf mw}q?~כ_oDI2Ehعlq'){1)ƱfwE)c d  W)C DIj"v-'!!!3 @Fݏ7I*3Z$ og̬]Z\fB^VM3}Q鬳\ ޏ%iL*@ al2IFb(Р0(;@ LDAS IPD X FpRQ"cmD#@LJaHhu")uD-) puDw D`Q_G?.M6!m]U|C苰sJ$q܏>6<Hd!`mǖ|VaY<:=wn߷>q_6Ͷ;j~x|jw_6|ПUUX.ݫuKk\%UWαsGUUeնn;e80c0J 2Jɰ3MQaw.~h%!"0ngdd$f cdL !c=+Y];Oge>_n]?]H"2 WUDce.AP0vlxg9h1ͬv/n~X'U}~_r{\_~x|w ﯯo~SĦ6Hh0'&BU@< 1M]Y& õm3{4s$11@h]WBݜ`D 2U")%IM)j/>}|]gl@l@s;N`/@FCEW;ʿWAvn9z&}@ȔBh9Q$бqRKL=84fdǹsyΪ,T\o^a`OatvK]_*@~?݌-\ehPEM 0>Ǡx$ǥ15Pi6%[9K6P1bd,yBxնmC`$#oլ"h}.ŨI s* #x/jbT23*3dfWW/n~y~?O)Sֵ5Ƅ81y Uj a_GVX,ﻶnKoԹ( #qܟ,?ž? ͘Nmq;ZD\3ךHðnkqc[f&$"Ѩ2e qsw&:&mEGo_dU1u'ciܹzz}Ia-^8}=g냄&S,%*jȁy Z8= 1^tI2 Є`5&IM\GP0EbPRRx/q]W?}O@J8 ƁD` Yq%'1SuEP'gQU 9l\Y[ا4f5&{z~@ DbkM KS+kZ6͝8+3KgLgeQ71~Glf C$ϖrC!nM3o K./Ïb%^$fNfZ}wKB24ouH* 콄r}}O{aئ-BcsΦ0E19E"/EBv's{3EN}Ώۢ<*#veYλn[g\=;gEݳĄ1j<~ݿDou?\ Dp\+J]S a$qQʳeIY>z_~7K-L)c I޹ƹf6;&>1\9w:HFReуQI:(0nUϠL^Er$~o$n;$ۮMqŤ)Al6lg.sCe˚wwC_Xҹ9$RAQH, LNkURҗ/WW]>{$"XfQ &ib41~+۷ؘEY{D|T&w;Ua.b-5r權ăl'=!lpYszyYV$ lj6wW;eq7c%(,jJ }WvUmׯ k໐EcAk""I 驏Odd”bus˲2ĆYDwm/o^^ݼoyCJQHԘKBK)aص9۲rw5Ed2Mcf{"U%#Uj?|vqW@{jLkL 9CH]i sIlK Dֺ(gewclG Rc zr`'Z?[W!ݴ}jxYhy>DyczY]9=#~X#\"cj6wټ]Wy~3eԨhJ pY{du|u29&!;$IUf;/pòiMS@aزqeYEl~v?__m6_Ѕ** /rw ~jued8 NC kr"v7/USVu}7.cDH DƐerl+Hc1y/qI f[qC#"Ök,m]UUYAz /kUA]A!ʄ ?+UY\]n]2xު96ISbK̖#A0=lx,,/_ŸHEqZ:.0LE(ڹY_!\!I!)lE7p_:NEy`M qx`̊gl1v1A!ZcK"P7 {-g^1 Un&)bf͝E$GT*lǀ R`JQ8OչO?eo-VTz@=8Ib+Kx_?LY 2YSwŘ-g2M(7o4}f|"4Mp>cDAP(Na`""*>ǗcxdN2/4vILĚSk-R%M!lESqDs}E>##ss-fX.uH0m\o?^o~|νo͢=gd*0 WM޼y|ݻ[߿a %RDk'p:J>RQYWX 77_oϬ[n^Ǣ"3h\0;30(& XE!ˉ [k؉q4xɪ*KC,[mk2u-W+!]c"qXwE\YXADZ&c,[އqzch4ٙk綘UcܧǸSCF$>CDZaHǔژFQ/ Vo7+QH9]D=\$Aħԥԥ4 4";Mͻcu(brQ ; F%ЃP>w;NCܝVcoU8Jn,1 $G@k&F+Ŀw"S0RF%16Wqll!%ofJl9% =;[;[YӼ]*F@/DA7ҩވބ>i2&kpI4xtO wwKU^0fj]/c#퍙kߍc}wBqơ:>7Cl}٬뺡]Hp,Pꃢhnn1-Oq{/&76Fo_;&5I=!!b$T0Dd5I $[yhP$0qxOSvnC?x %0v.5,9PrH S7 "p6U.R(08@TP1`Cº%BL.=kOYLd;ʲL>^!"u)WDz/*hᘒ !Ť>6/_g]e?\!ܬ,5+2KS11zC?xBJ)d e͖̕*"ZBhsLF] AC`x D<@b]̛y]DLhd.o:DլKD"){D1$:bB` kwM&TLNݓ;L +bH0C,})T,PȣIAakfSCǠ+z]nTKВ(aeLܺI6afat4H%)pM8ưu%z<;#ވF@2&I"΂obIx\9[ɏm7>On<EBfes| aaR UoqYbYཪ3Qouvs7oaoFv`sγ{ψ>~RgͱsqEŃ*XRS"=#"!aE&)f;}q&B0GCbg)!d/o_'o?p5/?lezÆlE?C?tzwgݪ*ܻGrg^H325ANǀ=؇ưUU 8[(Q7AxR9R4 cstt|tK/./?N G\졙}hNn%0i' ~'su@dm9jJ!IbK*dRAO%EIA5=Um#~e?aӟV?.]-g-$+klfz]ndyH\.~2sC%DcmIhJyNg9+"A6!IqA5{Uqh` D!% aֹHzu]γ߁** 'VDUQI U?jٽqQm)r'≆D,HG pGꭦ^Gxǘ0Ddu>}Y&cӷSomi,"^EPr[3kwoL0f\M )E㔨kL: c8ÁwzLC_ Se`0(h PS@"`NXX Wq4Ŝ fp]^fg۶Cmr^T I1L_TRn6Yr\c۩O'JCl DFp)zl[Ξ.Ff5xA1c`јIh`9,QBL!Ed;;9=^ο}rUT2&)1R!w8vS6v,Idŋ//N?|Ӫcx z|'' еx/!ȰG4maiwN?>5zkux?s'8-EN3[UuJ:>o1ysA%* ( }BB2֞sXYHr:OCԇ!~vø MiHqT 12E-FdL8fb ,珏߱e$)@7g3 SН>cY٢O4tv0ʞ'2"QR;m9NK26r.g?Wf!zL .^ C5F}!1&&&0l@} G/C5sB`cl+ b-$d^uZfc㺦;O6/|z7}M>$i@,Nf'/ }߅PT$WI* QR @@ˆbѣ}~8v1v!C>ۡ1V:ԳNR3,A(㴉n7 ͲEp(;sOSRT%_/VXs,>}9 9'W7FT->++shU2G";CTU&0N RʶpevHsV`a8D:Ba', Qe-rƬuֺtDI)If67e*htAqEY;D IHlBaHqIRs+åuMs& D@ !# 7=e\\@ @BRUfU Z584A#?{r,ơw">>;` 9i𞣘p@)" c&L^4fVm/Ϗw??=m ҲĪ } a! q-LϡKmzp>m/ˋp݅@EP-{q3\7jR~`Ζe̎yBdnnם/R܇uA5䆨,N[4/w]/i *Jot *UAfddl}gujEU?&}{cqƱة.@*3՚0c,Qڲ<89~+?Q>- 'rh@4ĘkGUDZS 3Wo7_o5Djȓ, 05"\)Z033f0l uQ S(Pf3JԃD幵6vCvXK)"udI}GDUKw=3.׌5>wR'ښ8ѽhLO.{#w>Y5!@j̼"jߤTY5pm>XfoAXӰPI3%\I"gNfg'Gw/ܽϪ%JjX AC''4ޥ~߆QF]V1wU*7[ًۖ^o{~?g1fh@= ^Y_ẎU37GYs:klFm8?9;d#+b@R L<1:kɑ<"z/v"cz$DX%sّhu1B795Mw:>w.K (z'Q]r$B,BSFXj祀ް/ HʪdQ̉Q8)!B7ExLdٱeUT(p [\͈"PAkQbii9INJ9bW!5E1GԣsbRA*x(>=/\4䬮Q-4䫽5—.%f0aZOdERJ=s(TOfS$"v{"0f4`x%x %U iĘF@{2&9}l~<KuN)Ν0~бNjo 8"Vx FUSXؖ҆/޸;\)!%,渼SU dAUcǣz^B>Njʡ]H si}7|ݭsA?}ᄎmvo|Z6}ƘEICH q W HRJ@O`"H7g7gGNZ't~\ssg̯Vi)I9뜅Ty5PmWt\v\Sڟ|Orff*K)Wi{|b Ѓ: 0&-EƓիrXKR9`|oJ"@ķp"@%V }YSvɥ+n-1Hꆠ.>LT**zI)  Hokkˠ "K*$8x&)DvW_}9dw>GԌ1 ֕stz^0cL%7>}~PA6ITˤPr;J&bDh!Z0h\Jl9y΍Dڔֻ'g]wrU=5U$p[G|?7T!!ED b7=2l-WJ "s~7w{Νirvt2\߄&䬒)%h>h/DDYDb&&}xd)wԦ ao}A2sv:vf:kf4qn& U͹ׂ06C7 P /}VcFTBܩ>,R6^RuM$:tmYcZVP$ҧ8ueFM]f^m^aw;C2 }Z1Ivw*"d6)R(1t|u_^뮻Leu`TUcEcN{ 3woG|xqʟ[;U )UDrLa;/Ec=!bc޺H"vo?~oǧu]W _tMhې32=Ǩ9dQZ[$mD`P}rN9136rcLE%e>;=zp8fLq%[܇!*'1<]J,hI׭ׇ0njSIS)˹ kf&%N ) yXԵlOgG;b\~k^t)BVɞi杫GMԉHJZ[UU3b}/ON1Tf:=NΎ'O R%bR~Q8I7!qV`Ć+PWJivhh@ iP(r)"YErJvM$cʪY)Hx,1B|(^ (A2#1cRA(xF 'ch~Ĩ}ۆa?ќ}+%Le a¶!Bhs1Tkeȥf2̮Еb܋y4T#0\@"w泶6f*"qh9W:V4d4zpv壇yG=?zxfܶ"1kGiƇ`&a3!\]Փǵxw~g6cF._&C4S.7uY$,2zlJP1Å~eKWU~LS׋g/.jsU]gYc++LT6m/EbL{U!ֺ֠[pK3$ʮ`Ƹ݄v-1 PhJ1gn47˯}_nw8WWus;o6Pc~6~$2VEH!R΀5VUMD`"FL)S՜R!!UD"" _ʝ^* UxR--<|Cߤ?Z%0!cJ{P>0DPHD5CAEJXO Ub-F3)JY(bB)58>ж`PcDv^'̰ƀU'XV ǿ•-p9RSpR11:eZHRj$9tNy<1f V&f~յ ʉmsl˪:#h'{wZs1y+n>OcS Ar(} 1&ݿg*_]wqreu523eSJUʗ#i/HN:vzffqB͎xR45w4ݿY,C*?'X[c<@UyJTUS2ŎvQ ߵ_ow_D}i-Np<nTycFH%owrhR9bzb~qg]hhtdn?ꭷIJ I%)L2D jTLsexr»Xz-Hd-{Lbc9X "ks% {売I- `]v))=T5xjrblEBC錱˹Gؚf$91)hm '$ymهe%ƹZCPWӋ?|{ɏ>:{boo^>o?xƸ@ݳƹdS꘍5X,)Mmj\*(l6)XPaSTL>g(r>95sZf< IDATbܵnj!;~gm+ >Z[WG8W RLl9WJ9۲:TnMe[Eg"!uJ h ְ(2Yeg`̮ MX^||9Ygmwzt|s:{{2zQ"4@ E$g+9XsΖ,cr.;P""be֔fC_5 yhl LPA=LPx-)+iHHC11.%7id/+reU32ILJR0 SfRFACd DԴ{!@ `-î"I1pƠɯ;(@4p[IUmjJ%K+8o.b<.!2.m2r 5D,)"1:#"I)4"Srno(T4x|uJE)l'uףo|Wʹs?W.fӇyygQF_ݒwn/&o]y=ptrRKn6yUu03D5YJ99).te&+?j~ޮWnRnbzf㼩7goB?6Mإؕ+cH1JtrDӾqf}s~ǒTqmeu ˆ qضa,\.~vyu=ꙷSksu &g̦E-z,6>ҥ˔R蚪.Xch׵!b:C]t01%"VE1"&:!ut7&:ۍW:=DJJB`ZKYF e< B´aNK*n`H؈ y267WW֋Cx"0Pg* P Kw]`9>~RߜCsEjJUWC"I$]rcssUUMG5DT H]Iv?z]mnu];o˶}˾ۤ4ܨP =WH/qM}4|hG?7|pvz2>~ӯ//_l6P1) ͚ciw㙢HC,!p5vݾgk-өΦbСn6zb۽8 UTE3T'#Gjgn ʏj6A`NJ5vK ۾jCO>~@R%'h.NDl֭n_׾Q}vly_^/~y3U9o8}x.%X˓ 9IۦAUl:97~ݷ_ve]1Q`("ڲ@]g7nlBBnwjnM1t:MR1rjjlAyti݇]iݶ N yڌNObzv$CuEi꺩.>nۯ ;6:}ۛߣ\4K*U@g չd[E97/8ABPCJH0 j&@!"&Q 1ăB(7rϗN]zH"WfyEjJ[P4\}bDD5D@Qzu=:߳]sl5@>(D½nT$ҧԦO;p 6%hd(2[ǣG'w~p'on>M "(̒T5捨<{cE$ƔR!Ȑ9BΚE f3[6&ٷ.?/] g*foؕM4IޡY 0`95wjj!"IsRD$91w7 BHD$!"c+b}or~|zzYH&8TRal\S߿ûһ1G]#8CޱƟ:"PL1]iE&,Xc-UzCFUЦ^onм^O(fcYYcb&c ؀2ʇXCf 0BVGUe0\bL1NfOasSUEVDg]oh4bl!SrFCLBFz 2Ms n- مAP|r"p6UI]{Ϲw{4Mf UaPs̹Oqrs_V'MAA[Ucӣ;û?}=*IWO>\,v1fhr*4]%Jd=>Mu ›9o)&q}3:7f!~! [Զ˘mx4G鴎!mc}1-!K835Ιl 6z|9//~yuQ/rqLUb )וkFhj IdQ펏o4 #RSl5QQ"k2dTFREB΍ $9w.ͧ7O,>^n>쾌q/1nWd<~>8BTWk4 ٔ9o(qL}uL}|IZ1UJXd(DIJ{W5ذQվo7%2aЁ׸qe* )pyjiXUx*y(L03 5dz } g2Yfk 6et8AUb<@0 Z ]7_,t4uGANCTq)x5 K.Q9 ]@o2kmU,yi.aY nD6" `ChllԃzzPRfJRome:hZ4ѽ჋=xzTS\_mXQ4U5i&xҜY>zƔ7ٝaLvm&egͤ9TѰlkV*:`^$9BHðŁf}]WMZۧW7]^ůOnSnGu5>ΘJUr|bLi4d #&)'cz>ǀ{?d~p\Mi&kkNYՆH.l(.ۃ#"J)ww'?Goݿ{dcy^54 j0SUfbT3MC!?og9%H+?5w w]L1嬪eaksogXt(oV&T2f[(G"Tñ>@"[uQZF(В3u/R p+?l[,%%9&UL&UIdCo-q= ;A{k>+h1e ]֞8wJ4Nu/Y*GD3S2(:v뼻IbgmH,x"d9>瞆Y[ G;уI} Ac/>b^x:83b\e۶]x7nz<8=>ݾn˕ڍSOTٔؔe )s92}R}Nx4GZg]1Xz^aLmm] }ۯ֛̗12۾團+9حw7kd|60!@L;t.>k־z{}84|շfЭzY5N ɰ1luY$im%9\ik)K,]s-nMFNgtͻo۳s[y|Q'0)*E?mCvs—ArOh6ݷo9笫|}etS~랠nhQ:8Qb҃)+DJf>\èT1K$\;)rI.aW>skѪb2eRd VzܪQC(YwC?$"o0Og@'yvo~Qv}4qt3YStuy>@ dv+a*sZ\]דUQ]x?v̪1m˔9U[ M暨{"2DG#\5l,*I! 㬩Iز?wxd6N?:zc29Fݾm۾ Z6Q3j*R$Yc 5u5nxg{g8唳xg*krN]3f4}S9E916K;c,sU5ƘW""*sk7ye.7ˏOw6D({*1N4ǰ'fd݋1;ѵ9SQyvwN6b43\dT]y?r5L"xt%jq;M+swYɹy{?ѣӋqUbM.]=? S-zCQJ{8K͈F#{|4Ĺ3CG)$6<ݷ0u3+8ekE P [d,{#6߼fw{J[΅׀ [rdو,γ^v܃RԁZ@gzPʠdw Sa~RS `t(76\]UӒTv:ox:svZ,VGȍGMuY}޲T1<]o$'Rf6tT{w/=xtu?yNT'l/0s7bls|RYOB*UތFf6}[.ooov عFTs6~hxtVӺ:dtzJMƘСۃ|R;'NO=ɷN.11dSl7֕ 7oD4#JcuJѓ{'1P5Ң"(c v[8d:P7i̹9syn{7vx6"ɖr Y-dݮB#h MV 0_aYZ Ņ"Qh+`%" }zo9'pD;QqWJ*:Ec\3H^՛|glTU9Q$e!>3,݃a4ZL(dW?L'o7&権c&GDQs.LlȹG׀#*B0\x`/aPAd{4d"~T7ONN޻x; E׷FbLXVv})jƔb} }!P$*Y2Y*B$j5YeߥreH/˶'KR%R$zL̪!]'yژ, Bެ/.o|MR X[{Cp+-!lR!LU.~{;QE fS!D\_, "PUPtrgn{eCݳ{GаlͻBey$%lk+k𖳪8[KggUZ "ةzUעʘ7$Ew wV*0U2Q4@#Sz%Vn1A?W$A=VKf6}| 2$W8;6X@KO'&k3O=|JU>;"ژ3L]qL].Sbjb9Ƹ7y?*20m_uCR !n6b'uZ]7SBuM]U1Ŷ~9 uԕ!ڶtbb}!%P"V71v]9"Uׯg}Ә!c*Glyެ\˛?m4y?.;Sf\٪mlz?~Op||BAUQpz%'tmUmx_D`x$92lp_KArl"9{=(5eoYQÛMKlyb-xPOOÇǶ3<|._/tdI!HZyst9L,U_X9_׵|@}Mġ Ò/F+A E *2Ze֗1C ӁP2n`1>0D"K"m߯ 7Mi OOt-S (36!@VUU)=k_V鷳}~< Βa}*RBо2zmʠ9uˌq'u=)Q*&DJ\|w{bg%&[C,@J=UfƋ$\,TT :\qjkH11 4ƐR|Y pMU1EnQ"@ HD _y_ycͮ[.7/Wr'ͯcEgo{W;,DS]vfӫGǫ']I uxksqlًqw}ݻf2V+y"|>oeqN%bEC*iE?zxB4ݷG/C܅%c9XXMΩ{λTE,:=HekJ1w+qJ}gZר&NpzL}HƘ /3.Hc@:wQt(Dz[96㦚4™3"t.>)j\S7Y[B-Rd.!DŖJط:0NXk:UIِUݺmW1z;tP\9s& 0D-ϺȲ9c&݉v!0`D7J P %2EP&&)!~ yČAvCrU|uᶝ IDAT@>8u5&rhˏb ~\Myx0p6$voYXDhOp$BԪ !$֠w5u *l,l-Xc]EYt;S}0jFh (3,.CLl*R!G9I+ HimZ`BF0jFͨ)m5_|y$&"2,ZHAk4.m/D ڦ17y?&.$eAvT1?4#L9#'Wۧ ӱL;w;]aBQU}Pv{|?;ohh?sNUfglkURs efB %u9hZ5|ɝ! v NNۯqq#e u/aw;!žð HISfڬ~ǻndWW ]vZpZUU#EIQJqkbOl5 ZPxPAqR\Cb7.$QIQCv1İoW]uk|uZK&J "` P0],UE:ѐs0W!=evCCc1`C{„h)J戨r#zÄ؟ZKq A K3\ߢsz.Ëk b2x*pf%9)CRBىavD DjfohFpzfHNM@UMfb۶ w﫦R % És>쪊撸HRB֙MSZ}׭w_7]zfž{`S A)r>kƞTs}qW$6Ώ9cjcHNxiU7td}ozyS@ uXZcλdֵ͊*w}mn7PqzJh[kJ$8RU9%'"13 ֺbDe #+oc5x"GrfhcTb|/\P4S3bhn/!HNSB9lҌmsF*gg3dTݱ4hC^vqP">(5НcȉL4Vkoo Wx24Ldj1T3DFSzӶv/H%NyG̈,sjMΗ)ĴLyȏ3D*\b\fY$e!} #(%2X@T7DmLrdu`pܺ*Um7״kc/hNO'66ޏKW)΃`ydвVKeW%09BT+z !fjfwf E9= h3'SLaMzԳN 1`\(9k)㚵` I$5%֪hTQj?ZG7Ty?n x"m!?du'xιb˥rHlڲAFr3 FCmyQSŢHsXz3b[c8 `fwkkox}HJBq!Jf`Z\BTHn9cd^+p=Md*V@ж>@`ZI-$%ɫ뵙[`"xxm\^5y!rYguJP-)%(\'J3>8:>G$?y; .M֚ŻǷw>ɼA0Xy{`-pv ϟiQ 4*6< 3MۺftTk!Mh5ȳk[7oHNfQke{v6%Z' [ۙH(`d[ RJJ!T"Z7H$ Hԛ2ϫtzas RQ$Kxࣇ}o>4֙(W%J`0b%TX4(B t&47Clh4RA60us`$JkdauXx;waML~ND2o#] g\k]k]q q1WHѝu1a ҉f `Q 蜫|X1!T 5 "iƇֹ;D@PvM`JD8Df\io/2|O `n\ۭ`8 ЯW 6o{@Ј^U'pXd@(1 _I]ly 7G F BL qԁKkZcJ$чCrBms`Ҙҹ{[2>J XI;gVWkRJg"CID(!Ȳ3CӚ'?=_/WOj+ D܇`mL01u׭i3c[K$z! Q3!X$\h=<{B(pL =÷m߻H!f3ag9 F)@G~,#"  ]:׶=x{aU酉,b@yB:zxnԙu]>G$  c U* }q숉JLPĦis/]7*|hTkDT21%*$17s_t́H(@(TJZ19E8{vmb"EZc}wGDJkf}]-.\~v˨̕BK ITvFJA )pne Q%j'㇣!Z7^D\cb::gDc~,9BDqwA!Jt$CIJHԑ7?`Ѷ0ɫ뼵*! agY6lRB`Bp>.κ3>x$s1'$ۓMc vu^3!4,h1s>֮KXDTL H{g$).Xk;$R>8cjAR" L\0BتW+ "kL]7ucxP(RZ*)/_˓_̾ÝL%Z-v|5Uҵ <;,ݒb!uvay՘W>%FRĢVBP{5ƴtv[0<'ZD QQ^RQ1XkѣIוm7~Ύݮֺƚƹօ 1IFZB *F LW"+H٦BwUQ v:;_(awGskRzNG;?0_? Fs $BrѦ[CiF7 $b]wfmmkLӵ[mTN2-ֶZ$RRZJgM""ebÌ>,\eni:(򲪛^gWT.FۆyyRi:nژs&;!Ͷ;#켪`>PSd:S*uQr[э' O'_]ֳ2˳<4i:Z6HlA3BF >BT!iZ:MpEs:mOO/~[2]imu+k[M44`RT~M[k؎cwpmהjz]~>_~>_~4g֮ F.~0@rB@ݏ?|[7o^?$  ϡ[:˕s]j@ (1$OfRh¸˖'J`k<8| !x2dg)Mܚ:!*IR=V3u.XRZK)f*O/~~v|ڞsqXܶpaHy_}`w<H)Z;بmrމs%S"\}(H*1~vm%4 )HR$r5_\W/?j]rcq8,*;Y"E 3S,']1EK)̼i]1䵝 ϓZCVΜut5!Q<##$&'Q/KyX!yoVZ34Qdm &V&:jk+jcjk]ڻ!0A;方Cd`[Ӻ:**!,7[V)7d x85pn^p}qE@ $7Ú{ Fp3 BȾFg4+ 1N.pB5.r}İRt1u׭yCw6εDJ<Ƕ?]1صhpweͧubb< !e*BGx1mf Bqkw^?R[KA# |Z{j.H%=V R$f<8P|kz9g]%otib,kcu,IIYJXsZkL!UlJ,K"\Og??xz+!Y%aop63a-XþwƘEƺ.IR)ιcV'V@! u[)̡Uj풶CԉYUq$!Q^=g/f_\,z]juo= yzG<H2e1 'c}@xE+`~{mC<1zĽ1 } pZWZW98DqtDZ ٻK:2VƈѷiWzK(=yֹV󹕢EtoYʅY@wq!Z$chlRh8Fݝ` uKZ;BHLVW^ZPkS Xmg*kR\r8Է)=IY.Pi9ȳaCyn "BDCV`bX},֏]m3@۶1 v;Fwv&?؞lO/?=ԇΘu {f !rEs ;Mo IDAT$!U*_WX*wnYf9xRtֶnIk^ D%eҷZD oj\жP 8ޤ(DD޻՚놻y4dl?c3=;1K *D$(Ma:F5my7F>@d$K!`ۮ[,03{[U=e>b h9p kskcMmiZDHKBtR񯱶rj*q/4o0*5a 0sїۇk{$8hFl^1J  7`9WR: ΅?fv6꺲JZH ? :P-F4@˜ez?y 4"B_|mMڮ,3H2y#Զ]~$IFI2b!xFHRbb31mۭti~QCCYAU<뺮c$*U-NNH޸.P1L31QbKλlz9o5Vu *ATz8  Z1 oBixynʳUhY\4KniFB`&pW޵dgg/^Tթ1`)HKk]Ds_CZzQ09MvKHI@-.?//Wb<}UӜ'JRfRj)mW;!bo\`v}wS" d&ʲBk}tt?,{ I"la8ȳ0$p,\\ֵZ IH"*TŽa3h`:V$GG+P}v/.j"qa >{'ޛ yb}%u e ŀ:CƠ1s%vwv⨛P\-~r~/ 25iyY/vMtc !(=31,;|]Ge(ж,#*I1Dz-5%" =v MZw3Mgf` -љy&I$h.8\ez);:LLHNAqk<*>d˵ݫ}B\7Ogl: "! βB[w%RWU5_1.&J6c+bOP# kv;Dyy]=xh|o]*$DKwAy,bnd5Btu~f泳KDF`]66$x4wO 1K7'''2T!B]bU`m;_Ol'D mjeL_"!%ƻΘ2A)j b4798}\^tBaF)_j eY8yԝA^ 8BA'pt޽]_#OnT  Mu| *8הWpkݣ};a1q]'_4:mdfgLawgroW>?|-lu(v9z _t<*U0]pVR4& $Q bQұS豍1 <axx=QB|_=7uZo̠V %mR8(rк ug|g))ҝ񍝝6|:sugq%>z/!<:??PDFQx_y_{_# >ϮF|l6/ȥ[E^W@|QG0f9` PKBhDȫIU?H;PiH7Jo;n~c+E''S뭛|ͳ_LKk;fü'"q65{}˪ux{{tyuXC>JGIp<>ҽ4ͽ >}jS6G{ެ)){ao`C Ȅ9`&D!oߺq[ߺuxxxIQ$a'e0Tiր,siP VRITj -F`O h9PR AyDVƵG.n=٬[W 6wHg)"]靝.{aYm!8xG;[Q&Ђ@{R~hݷ}gO_?岱ƬkBuޛ@$"ZDwo~n; wiwS^c]%@jJ$@p{ 9 RJ);>oy뿽\v]W (Kﭔy18*cBu߸x,:ř,_,YKB RE3r8k:0_i i;[b8%j E~W:9?ϧ']koWZiR88#I }wz]eO_<>yyvzrI RJeJRj%u8ow1.Շ;׶o&`TRM3y8%B0`m,3:Ñ!O=7EݭWUMK'Kp{f{Ixo3fT]]fvU[ 'Yn߿??tl D !I᰸qÇ}|ٳǛGw3)c1}6wi\EFGk`!}HO&wl"KJvw _#@oz^9F8S #ʛ<@`fMۮ뵢 "q. s"I݃<+=FRm/Ϝ:u1rNR݃?MpܩgzB SlIH?lʪ}|y@$td2ME^<$,'QJApHg|h[By)#fyGsYZ1$.|].2nNRདVŧ?iketH ;?fv@G^C5[ں[2n-MgzO$4@<{mzZxBKR1d:h Ζ|k;4џ<0SCcL'1n#N&x֍{>wpm{ϾG1$_Q$Ću({hTy<͊4[Wtm$ Jzy7mt S7us]LɃy~!4^5LH&&B<ˣ[{RhBzzR$4 8|քyKO&4裣U7]!ƈ3$I~? ` 7 UFEg],Y,Zc^J Bne25&@snQ`m*Do>$WKFR_5ϑ9BP*PH<61(jmc0d_,IS̡[ek"Np]Tlgl.dyzm2Ap۲*vT,f0Z޳$菅H !ֿwro^?gh;h3^<5ۻ֭ GM@i,u ɖ9oIRE|4Ibk: Š <j~V_f$M&jD!HE擓sb:]"3iMI"խ;wySZ/`=b6Ӻ}RӪ G׏+k)8j^x ÁոuM8J-hwgTӴg#j}x߹A>?曗+˺,+H,cAEB "-UoPg8q|bʺRB"]λs) 6/Hx3{΃͚ƭ֭t2p>*/Ѷz~=;WǥT:h4mWO?CIddr,1:+d87`k"CQ$ײ_ѿ?l~dœoO̫֕yTݺuֵkŵ<|P1ڃ9A)P ͡?R7fuytU# |G(JBv]Wn(H197/d(D-tY=Oq`h$ 6t94'7!8 #J*`sw}{ܻw3~/_\TO iI״` *=f'[8·b8bic;ܴ|~—gM$$E]3~Tff(TRavLo^=j]Uͳlk5ڟ OF΃֯Q]=}Uz/͖/~90ߜкyۮvD(wzxhc0!Xb$1N/E[1MSO/1&?d&*9|{ˆ M,+WK#޻DbW*FxeI:*EDo9Z Ƴ !tDD$p{H8I2I(I1 |q]\4eӔޗ I&FFY H"S  8!POʧߖ/Ÿ`gwW% )}=t\gy*i4uζG}ǣ8M٧??#)GJfRfJRyvW d@B86U'x>yV_/||X/|^*Bv[LA [-ժ{tZ޽sz`zX7r)Ӎ9x@t3 (U(]HV$ɖ (Ap[a H(UC wƵdR|| 8qk w )Tsݿ|_O_>ԟ|,ٴUonu3ik A4aSg@92ΰwuXk raJJI*"[zv hlfU]/feml$_'hPVJ{i>{n~Y6\._,W35љ mb4FUmWE.gmeփ};mmm:  MZ3xŻ7Yvn{X]ޛN_ 7}_o}x_~WO?g~{qmS@ѫT%B 6Pw``A;Z׊VvJkESqJqz|=~=9;g膈4D V ""?vtjsA {7w,r]g6B [yr{5@fqdYzwlpܘWuuw4˼o?0ge^6fSwkZ-jʥ2Ln rzȒƺ&Fa ߾{9EYe@IhAjɓ5 F8yp3'y~Ƽϼ_.j;{J"VAd&$]ɲRq/=3;F)2ԗ7gQo׿Q@< \8o~n/E,kr#% w%> W'(q/:~KR3{!Rim 69EiEUCG pN@iBY\̊8jm OR2ɸVS!TTwݻw W/^|'_Ue<,+6t&?|8ȝy)b_RpUOy6iV\+ġT`v!J@!D3(c@糦zv6=\ϔ$ );SP|R$*x&-Y׳^oƳ;xٳ_غ) eJe!l9R.xI7Woo`(Ǣ|H DYZV'g=@N3$= aN?֋SÕki~{nǃ==|/w߾9dG#An(BGps/]x۶Ԙ'PJ %ʊ\YgR@*CB;b`u B u,9$&GAJIy@B Rr_KRS۫뺮k!lZ|6+` hÜ @d" BGģG??0oo>qJޒbUPM{~ZG/m$áPrU՘P@9>lWe.0K]r=yfLrJ[ IDAT04,-筟xOp||49<޽,33Dur \ga5̞e \P3HRsp &&[-={Fo*_me5[ [JKeDIH`xjg` 1Z9=;2oܼ~{oţx?ɫ^K{u&S>>GGtִm++m&E!J崾Eyc wm؝LIy}zvtz҆mx*mH.]0¤i3m'޷u3̾w|lwoN?$ zY!CvRBh5DBJ&{7w|AA{,8=n~mDkѶަxo[x|ëz @ȳgޕ~xZbQD\|H .3{xmDEN56wq|v>;5&|5_G`GVD ."Q`2}<߾. oVF+9]uS~`xڟlz|>Z&h:ֹypA,: h I:bmȿq$,W<[۪~fݬ~_ŵpsgh[Ƿi] fDWhLDαsݵ'@H+[x`\ t $[l閐[=SRz$ @M$!O\`r8A (ЪT-{7z@7~N$&mc^|o6U8mn&&]_pd̵ZKW| /4vuS{_>uV]*&(Ձr^'gYb61ސjlk5p=s>>h, A2t5cIYWsuCxOܺ J )}̶uYo[[;;[6Gc NNY^~) uAPD Bb(x,HSئ$A=5}-F)M p6Q8$|$:nݞ;Juy05&5R(PX[j"U{QiлxAےu;`$ }s#I Cy<}ΌnH1H{ Ԇ{mYYP8׌"P!0%d=BJHᢑxKUmMO7wӛ{$_ t_?NɤyyT&#=N 4s%B );"̗l&E`{S'3^TjRUNTIG7n+\B Ru$[! L{+TBg~qA$Is.E[&IފIk#!M¬0e4D(ƢScx=\D; Y ʺ4f={ ,? fI׷6#!mbQN=<Sg'_vۻ{׶VVnXT޶6|r !:9quF;>7GϋO΋_-$v2O1DZ{f |tUrD>`.\Z.Qku=s*JTնmY1f\emm]]nn)!9 nv|,( aPHR)Z➡!޻YO<\YCW?͛RI8IF/eʫ LM3]١'wB]q[SSu|Y$ Bp|rmw;ʑ7xɺ{}h-H+A:fu yBj]$T˒>x3B̐K#LJ>oo³ǎBkq~=zxi&?N5gl[j6%v}BHN FHto{6DdÄKˈ%|l m><8"\ص GPB''O?=o`#Բ$k5P{&` lRFR gP>ث#>xcE'HƩ*Miڗԛ$odk#QwT") $K˯Iֆ<; ·ֻ^tZԳT :[[gdhZm|B)v>3_ huRWmhb~Q4{oq> oC@ PJi#7>UU泶=iӳiQ80{Qb#VB- k}ΗTM&Nqcrv/"$ɖ>."p*IeOJ"KSs{sݝ;f"|ڇoo dLF]UeB @ h,AD b);弄?~z2JKfz霄$!A" cD Z[Ͼ!< ܼg$$D"0b3HS2_{8ٻt;>6B)r]˳sw~7}$Hk-B!+&h~L^?mEJo֩=pN1 @=;1;-9HW5@w_[{ɭwG (ܗ_L~kqrBN"B%.$ҷghGG(rѴֶ.H:2cuz@"`ڣG%B bv6E|??~6q4OB 6,j@ ᅰ@}l1FjAb<1/Rk&&RTTN;2Msck;% xOlۍ͏?7L -l_Ë}LrB"Y|:w޺9;'O D $ьůE;. (=6HC7$d8I)=FQփ6JiΆ%:R )i((|YlԺQhZS}[ `o?8ͧl¹}*zk00<%qM@$M`-ڹao2~n?Q?EᏏ}qwPs4x `$rd /tw~IŢ],symym]GodzEQE DH&VWWGgMepgb7Pi(At\OHe t`;9 0>/dDC¼{hcc%rJX<܋Г0J*-s-DJcڶJ)ӴK{>8ܼ8[G5Dɐk};J>fu|4UWWY]GW* 3;3?]>$L'QolUMY5th<<)m2¹9G>T\T޷>5LB+)IHEZA{T&RJ^m x~mMś]q6]yijFo U, '`˳)5ymb溤kj=`KPpo@M_}BJw;xsSA$H%#}g"51H8u]\>Dg+֚VKXu* %FW-zeaK,q0Fh#PJ*%҉D Lj&Er%"Mmm$cu}0[Ӻw꺩:uf2D #d'o䧿mnzcHkq붡?]Y.X7tB0@tږf]*gŃ<Ap_ ^K~#3ٳO| lYYӴ˿.i5ڻ mn,T7@K]AB*޾{ bIH }t9! r!0AVmii/Vb>+YqVק>1})2$WAkL]um]vxYg;Myι0_Su"x|˪,|x^|5+M3Y dh1‚sM$##|ڹ{ ;W7m7}ZgfYX8W2En{o(edZZK*Uj-Mwn}ge<CFuu_I(˳y^RumڽzS0#d={AI(כX@S۠q*{"zݽյlou ˻YpU3՗|pR(ARJCB^NO'' K'xDDcDNL cA,:#fӐlw΀2-[KE}TO$*IF5y~8X׶mնs!T*g/}P2$ Tuiۺ k/όwh0;/gixZVeuж]0֙Hxo/5,ijޕ6Zo퍍|c#?9Y,ixe4Ji ʧkDB\#oB$Mkw>\_[[_)g-skd[i8?_RfOguk֮ _ i7iVlhk:i19m1RP*8mf|55o%тeGq6.۶|a<&vi_!Gzd٘Ҩۣ_9}Y]N1ȅJ2JR#hnniC( PHa*@B;nZ 2q,y`xƬ8jRWh'&f-X‡o _0Igܡ(^ϔRJC=4IjkwmR, aeS?5gLJ'5MѶnP!MT">Xj>3:S2*MussM/g?go<{xloY]M(ͭw󵔗ծI4@5=\wGnMx(!yNQ\3}YpՁ;8p߾zfcu0,5  hu aZK OOADPۡY]~rR ԩD_F!08P3^rQg/6ӛ7U#{.~SG¼M#|.s>: cTCĨez?s~b= KੲJ)R; +/ŮLDGEB4s[߹im6#ζ֝gڸ7U}^UE3~A_yl^W%XIJ@X3!ֆ-ŏ}e-,  8>n1iFV3]k}_W_I'f.+üLsԙD]=ol"Ip6cw1fPˮ.FZj\BA#rBO>'B3zEF>45uS8!Ռ0@bډg"vG'U=-7uAJe\(8n,Uj';WYWI1`m1i/[cEXzx+ B٫Duzzk V.ˇvvrvv\[2R HBh)c=9xfOP^8k$M-hoܿ/>y/YH$0YP)y^ #E"b1pMR#1=Rؔ8z #%T\WR@۶5R[Q0 kglG/y6AC`-Ar~ڵFi{?ï^'izTu|t!T&xD$8xο|Iznomn]ۭJܹCgazږ[txs~*JER +dv0X;v2] ;oBDܮ3^Q]G-֛ Ų!o[X\yCFmFحiJjʲt/_~YIƽ>4/O^=HeQ!(wǝ~4duN *<(R `λ鍣'@ڶŢ<'ƐR"Qx?0X[]F|42޽ CWZ%Pn4H$I׭S!pL}_ ϟ_'u=Iӕ^2**oc+[W%f$zcg.~cԁ{Sؑ:1dۣ~==:>srV:Ӫ'6"B]!XDI4]ѣҩjxZT\6鎒 Ƴ7IjdmCTC29e.gR.RBh!.$[w޹{?s'?펎p|w>4>4~h#l~<$tu-!dA"am DTB) oi1GuaT*c%j$Q( d4!KhHV$寏ynܐGoQPXTyF- MCh,PPQMVycp{x{[jI$g%NJۦhxq>ۻs7->|ԅ++4KL&~'_<^ IDATնζv^ʃ|rr7;GW $Zno%R 8<[,M8ڜ,9RDG @[ea?RB,}$&_z0!q>F矿ڶ с`U@Hý Zw1$D !ADH.Eպ֊=n}r%-c @0B$D()d̲u^VYUa<|8d`*YDJ_7_nmooo;wrmc۶ei;H"d(d s ;2#Bc[E<>^xT7S"iLR43?hvnCZGP|18MWP[\1#PiBWmG]s ;ɅP56eut|Rټzf.{L=D Y } 1ukhj}s6y{:`HڶqeK!T:g[ !_hq3}+ atd{|&4{)aφn^˳m%{7훓J)!QVaHHEm,@:'8/b3._JFds)=fJjclm/22"ۿO_9>ۈ_1ڥ?MVC F  i %+EʐBBHIJI‘= p| d$I126 sems\xjeL!J V6&Y?=;{H%)!{}oֵ䩯4W/glooT>MTZڤ5! $IUMz}qA P+A#_~򛯟<{$]%:)K>Ũ+w^:oow?LQZP50=˧ޥuڽeyZ.΢˷Jdζ)d]EۮoߗmT]1FY+N3z&zf0\kE4p%z)6{8\@ 1iP8rׅNhO?xXXdh!3Tݺy9;s|m]4d[7~1CY:+2Fzimx# ovn۶mUL,&I$*=5̮nߜ4tM-D`$.ib6%إ[E|Q3{e4-A1;?{]@l]^63Nޑw<9GJ" i4Pk=c6綥ԞM\]"_r/fsqc`=<^ 5>цrB$?yOF/>]X@L8, #IzXG$I(ӄUk8.diәLИ i׍{t~6}u6}ur7M{ZĂf&5=im:XjZw 3<;^6AK, Bb8Fera3K)%T̰3UI$zm<54]TFHՉޑ Rr~(<.Xź/^xs శ189*ˢߢ,o^9U 32tuEQ.ʦ^?y.AP~"7#"("z L(@D-umņ IbY E8zԅm۞P-7ls1Eeu" cXXU5ig)ֹm\PtWBHQ#OO8nKV̫_o 9xȆFf-IL޿?s jzꗿuQTJJJlU"MA\}Y4BTtX]zkQ΢QagUIUɳY{v*Iq;;yUSY]ToBA"S:jbsm]ϝ{T/oHA[~TYB-1(JHpЌVLt0<ټ&DjWi=0(>|`[(0bt \$M~ߙOgd{kyY$0IR&Zڶrn$f80J))vy?/Ӣ8˳YEUzYz9-e*/}34yX%otw2 RI96u>ƇGsE⑺%NV R ):c1pk-uC'GdwFY\T|sJNJOh.8#J"9Iz#8F:8z{mwkא0c* ; B0w Q{קlr43 4!D]oڶ1oY5fZw޴g=vڶS[B Ψmm`#nM)/ >?N }?^;;gZGy{:y|}Mec2@FˌxR- 1sۖ𬪦i&g/R7[DzyQ/0AB)D:_6l2iP(m1F$*$@9`Y.)3スA]-jq {3y+/Ԭ) tjag JJ)AH'@G{Bd'Gj{@BHКtB|GGh~t4N\V)#Kyfy;>q5I1^MN|mz$l⫇3ڻ 3b "iX)!푅qq6Ufut0 EZNżW!Xx>i֝=5f̒PB3&u{R't8[n&0 "Q9A6m !z}u}eӏ'ͻQIT;ZP_|YT`+B*!d 2\ T.○ⅺFRϛuS8x)v1+6An:|ޭߧ^&LϺ+f<eҖeY,E0i$idEa8qv]usCj +bkƵ觏>O"C]zZ𽫰8¯Z iQGupND+c@ʞmi˲zu L?jd GFgDhC@c}سl~Yaut1I.Qnɐa`bZ~1 +rC}hnEރ x9 4]7z3n]j^-ꃪ/iۜ5!W|U` 0  AP :ZFtdTŀM2&Id9z;;>}qO&r+_qYf66~|/wl}F /}YsdGvYЍ^$Pdd?A~^lGNX!a7H6Z9~[@pR{3O[/.wvOaY=m0m~s:ov5*K?ŕ2BBUF41\b]w[H:HmڵV%(D$zzobVݏ|nGɓ3I_~''}L ˡiw_uu辳޿ѸXoy񷟿89[.hQb?ɘ,KGŽQqx:,(r./ Ic4a"1^^sg}vu:ÃӼ|3+")%+!:se&Uݺ]V|uq|Pww`S,Hdl֩(@LM @!C8&J 3AEf[}i `;myk9??˫!xD"ag^Yt [~DpNb\hiZLFf2:)"2f4_յAjl%qFyD2|&U7 1FQNiHT]g7UKCŌdؿum׷! ֤1ޯø$FQ%Ft0c pLf4F46@>|4eSW]Swyk )Gh٬|{Q^|O:JBP/"HWD{lp:;LA^|s M ǀ[K*ީxbD% х#DSֹU|wu8pf}}KZbÜ΍n!&x{{:/W}}ooWgpuO1??'x)OvɻϞ=~{zG l6fS}~srj6L%dy6O?yRgYPT6l`pr'ߨab/brquە&ٝ rݝA Vu"3gl V]^U]SU~?F=>؃4--3 Cf = L "jВMML}; a[- %I_ǣݬgϐ|Beht0MDtEhOd {@@L"I4z|4]uw!Vj?dK%c2愉01d8)G~DQ$?n7ݛIsLiiYenG   !pp2h$M(t*RYZnߏͮ횮wQ2=y{t0'Fֲ8_/b |g4nd_翉[YUp~ zt!L& xhЋdpyb0%QJ M[s(؊G=!2b'YW5R9p-`0_.NNoYsD9ƳNO/N/NN^|/ju&I Q $E?8?<Ϧg;i%0#a]xM LPĦVJ~ixV+iz) Sw{\;M *,ǐ-N {[پ_oJ#胲|X1^mƀ1% BC&!%4 MMݶu-PXIL´U1jbLӟdO?:zٿ n= X\fe.~Aa<1c~g7mNE7IYIQ)NO?xRO_S( ]VK]@A!P+x@hUŕmZ;yׄϏ(8Z K؝>ʲ+g[ RX{שׁ((yA777O 5Npo sh㨏HCF 3嚥&ru[$%4AIr! `R L z}# h6V軿7,{A~/SݼiydoUn]qlzEPV 1U1YCk렗! ⠍oDƸ"n8Bo+f@*;3!> y&AHOHa$BIAA0zù1Ee^8?u^|~yӞ}MiR%;#bDg`@bf>;>Qv+>ϗ߼g^8=yZ8!bH7&s>z1a!̏nlU >.RA>zqիリjETD!69 A=oYu}w׫i~MĄMCd$B>tתeؘ{Go͏͏g&^@U#@XYW "#H{׿bc01pq* CsC/1yQκFbwRIDATOGeG]dBj2p0pi`Le!| z65 LwЋ^^k uQ67`STɟ>___Mɤ_NdHf{MSI ISf`8I|$)LR{4 Z8ނ xzVrZHY\Ԁ7znuj뫾ҴoTg*a0I@Pt/K?×/[xx-^7b{kC' mXVզ,w$\M&&K /_<ݬS]ĒU3cr/=:}SԤ9E]^!W 8?RRPQWDH2FR$5euH9<-ƻh= LKܝ9\@`4&6 u&\_!M &ps *:ۦD %Ux_9_Jդq\`Pz{)Vfq}c=hBCM@T;do2/TQim(H֩B񀸳S"kYND<]<{/.@>UѦi6ʥJɾL7*IT2"ΏnV=h[ZqkXW ,4eI lx1M+HY@ A| LLd7M-E\IZUGY^/mL<$k۬_Jh W< AGQ4$NB7""p:͋fi$lۺ:MFhRgr3cD!*@Dehۀ,Ȫ\ҋp}I ~ɽ_UeqYt4$BZGY"(A <\/o=pۮ1DwGȻ'ZHf-{]ϼU>DQDh+'/s$EcePT]ZZhXMU$u$dbe>3"ATL`@ v1f6x/H"DiJOZREְa)3&3IUAD@ڦɊӄ6j,G`T1yQÀË0y߷M꫷D&O8[@/!SӧO)V"燐V !85A:+` EL\E 8Jt8{DLJ0Qv?w>~p[-45\\ eIE>~2d$I$Z"nem;oꦪ6Uu1'޹6$IiĀoRM=kZ^M26!II9?G;;TH@(HLD蜵M dREFf4 ܬ/.D"ABy&fnPCssx^]pPc@Ѧ݋;gx q Cm8PĻ8h2 F~Qi;iKh^HH,I# W !F6::„(AB Z:8MǙ{>6T5p2{6Lf~$)BEE](vdp4>Ӥ`6 n;'HU=bٰ1l ""g,Oka뵗!Boc]g}ڶۮ8@ nQ1gqcFc&"cF 13sbL|ۍs,Qy/I`<^ߴU^+FH4˓QrȤյ.lQ/.2x  Qˈ IM03wݦ_l7ޟ;p)T{$W 귰snRIQlkLQadR4]>oH`R >=cA'(@I"^\ue &1d(hpzg 20hh CMY+EZ$M P +6!tRAԩ 1ab uDDat*n=G`˧BRoH)xn\#yauԣ".4yk;wBT$`Wk  xՠ*1-APmf"2E@q|7Z))*`p rHQmV.T^Z$ 3N|(G&A@vkk׊a)?b=(T04GPQNcl/@aODUX9厪҉@to3,Fpgxhu΋pE x$%BdPglir m+BHI4l26E߯ʹvT>h77TMuiYFe6H(mVιczQ~6Ĕf&f&^/bh4<U["D"N8Qu!t13Z{ޜXnMӱ|dM+U@$%\lPB hRT9qȆͺ^N  :kW丣4hP@MU{nk&#Uuq~6!oE\wa71Q QN!x7@w#^Dǜ&i!}޶/ ?+-|P@eIӉ 6 @ԙ%fb6sz޻&2ng<#t:(MF0H`974a:ZG+ @"(1CAbbb/5ޮn'7˓nzV^ZkkF:u;z:<L ! b kɷj I$. Fƃa#nIb2 w9PI@!#q`%aę[+ Nt }y1MmNP=[˪@l( *h + ھ-n:]H0o%VD9͎&&G?=%SQ(BTv>8YnD.ChԆbV@ Y^b_/M,bV BUەm[mmmkm[UsYޢݶMm[yD(c4H1EYUu:ZcAlbJ1e,i_հZe/e39N)6eyE{XbA5`+RBem&Xt!cmշ7Kk+k+}k]$Dwit(@JDvz|JlvfݙJį BPQ $1ʄ>}y 2S&[E@T" 4 qHp֫6$<Eqpz_Oj=9s !AT23!𓻖ܰn@PQvc8ңݏG??86]v0ymZ2H}K0Q0*@u+f5 T4AUQ񖹌Λ wq = !.ApP _ D!V`oX&A^y%i/VU"dDfi1QiۻCKx3w!bikNd|дİIENDB`hotkeys-0.5.7.4/src/amixer.c0000664000000000000000000001563111173730024012467 0ustar /* * ALSA command line mixer utility * Copyright (c) 1999-2000 by Jaroslav Kysela * Modified for hotkeys by Joey Hess * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include #include #include #include #include #include #include #include #include #include #include #include "hotkeys.h" #include "xmalloc.h" char *card; char **controls; int numcontrols=0; snd_mixer_t *handle = NULL; static int parse_simple_id(const char *str, snd_mixer_selem_id_t *sid) { int c, size; char buf[128]; char *ptr = buf; while (*str == ' ' || *str == '\t') str++; if (!(*str)) return -EINVAL; size = 1; /* for '\0' */ if (*str != '"' && *str != '\'') { while (*str && *str != ',') { if (size < (int)sizeof(buf)) { *ptr++ = *str; size++; } str++; } } else { c = *str++; while (*str && *str != c) { if (size < (int)sizeof(buf)) { *ptr++ = *str; size++; } str++; } if (*str == c) str++; } if (*str == '\0') { snd_mixer_selem_id_set_index(sid, 0); *ptr = 0; goto _set; } if (*str != ',') return -EINVAL; *ptr = 0; /* terminate the string */ str++; if (!isdigit(*str)) return -EINVAL; snd_mixer_selem_id_set_index(sid, atoi(str)); _set: snd_mixer_selem_id_set_name(sid, buf); return 0; } snd_mixer_elem_t *getelem(char *control) { snd_mixer_elem_t *elem; snd_mixer_selem_id_t *sid; snd_mixer_selem_id_alloca(&sid); if (control == NULL) return NULL; if (parse_simple_id(control, sid)) { uError("Bad ALSA control '%s'", control); return NULL; } elem = snd_mixer_find_selem(handle, sid); if (!elem) { uError("Unable to find ALSA control '%s',%i", snd_mixer_selem_id_get_name(sid), snd_mixer_selem_id_get_index(sid)); return NULL; } return elem; } int gethandle(void) { int err=0; if (handle) { snd_mixer_close(handle); handle=NULL; } if ((err = snd_mixer_open(&handle, 0)) < 0) { uError("Mixer %s open error: %s", card, snd_strerror(err)); return err; } if ((err = snd_mixer_attach(handle, card)) < 0) { uError("Mixer attach %s error: %s", card, snd_strerror(err)); snd_mixer_close(handle); handle = NULL; return err; } if ((err = snd_mixer_selem_register(handle, NULL, NULL)) < 0) { uError("Mixer register error: %s", snd_strerror(err)); snd_mixer_close(handle); handle = NULL; return err; } err = snd_mixer_load(handle); if (err < 0) { uError("Mixer %s load error: %s", card, snd_strerror(err)); snd_mixer_close(handle); handle = NULL; return err; } return 0; } int configALSA(char *alsacard, char *alsacontrols) { int i = 0; char *c = alsacontrols; if (alsacard == NULL || alsacontrols == NULL) { return 1; } card=alsacard; /* Split controls into array and parse. */ do { c = strchr( c+1, '|' ); numcontrols++; } while ( c != NULL ); controls = XMALLOC( char *, numcontrols ); /* dup needed since strtok modifies the string */ c = (char*) xstrdup( alsacontrols ); controls[0] = strtok( c, "|" ); while ( i < numcontrols ) { i++; controls[i] = strtok( NULL, "|" ); } return 0; /* success */ } #define check_range(val, min, max) \ ((val < min) ? (min) : (val > max) ? (max) : (val)) /* Fuction to convert from volume to percentage. val = volume */ static int convert_prange(int val, int min, int max) { int range = max - min; int tmp; if (range == 0) return 0; val -= min; tmp = rint((double)val/(double)range * 100); return tmp; } #define convert_prange1(val, min, max) \ ceil((val) * ((max) - (min)) * 0.01 + (min)) static int set_volume_simple(snd_mixer_elem_t *elem, snd_mixer_selem_channel_id_t chn, int percent) { long val, pmin, pmax; int invalid = 0, err = 0; if (! snd_mixer_selem_has_playback_volume(elem)) invalid = 1; if (! invalid && snd_mixer_selem_get_playback_volume_range(elem, &pmin, &pmax) < 0) invalid = 1; if (! invalid) val = (long)convert_prange1(percent, pmin, pmax); if (! invalid) { val = check_range(val, pmin, pmax); err = snd_mixer_selem_set_playback_volume(elem, chn, val); } return err ? err : (invalid ? -ENOENT : 0); } /* Pass percent to change mixer, or zero to toggle mute. Returns new * mixer volume if changed, or mute status if mute changed, or negative * on error. (Returned values are for the first control only.) */ int amixer(int percent) { snd_mixer_selem_channel_id_t chn; unsigned int channels = ~0U; long pvol; long pmin = 0, pmax = 0; int i; int err=0, ret = -1; /* Need to reopen the handle every time to detect changes to the * mixer state. This is probably not the best way.. */ if (gethandle() != 0) { err=-1; } if (! numcontrols) { uError("internal error: no controls"); err=-1; } int firstcontrol = 1; for (i = 0; i < numcontrols; i++ ) { snd_mixer_elem_t *elem = getelem(controls[i]); if (elem == NULL) continue; int firstchn = 1; for (chn = 0; chn <= SND_MIXER_SCHN_LAST; chn++) { int ival; if (!(channels & (1 << chn))) continue; if (snd_mixer_selem_has_playback_channel(elem, chn)) { if (percent == 0) { if (snd_mixer_selem_has_playback_switch(elem) && (firstchn || !snd_mixer_selem_has_playback_switch_joined(elem))) { snd_mixer_selem_get_playback_switch(elem, chn, &ival); snd_mixer_selem_set_playback_switch(elem, chn, (ival ? 1 : 0) ^ 1); if (firstcontrol) { ret = ival; firstcontrol=0; } } } else { int current_percent; snd_mixer_selem_get_playback_volume_range(elem, &pmin, &pmax); snd_mixer_selem_get_playback_volume(elem, chn, &pvol); current_percent = convert_prange(pvol, pmin, pmax); current_percent += percent; if (current_percent > 100) current_percent = 100; /* 1 not 0 to avoid muting */ else if (current_percent < 1) current_percent = 1; if (set_volume_simple(elem, chn, current_percent) > 0) { uError("volume set failed"); err=-1; } if (firstcontrol) { ret = current_percent; firstcontrol=0; } } } firstchn = 0; } } if (err != 0) return err; else return ret; } hotkeys-0.5.7.4/src/conf.h0000664000000000000000000000247711173735665012160 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: conf.h,v 1.2 2001/03/14 17:33:53 hajime Exp $ */ #ifndef __CONF_H #define __CONF_H #define MAX_KEY_LEN 32 #define MAX_VALUE_LEN 1024 /* if someone provides a value that's more than 1024 chars then he must be crazy, and deserves to be ignored */ char* getConfig(char* key); int setConfig(char* key, char* value, u_int32_t flags); void readConfigFile(void); #endif /* __CONF_H */ hotkeys-0.5.7.4/src/amixer.h0000664000000000000000000000011511173730024012463 0ustar int amixer(int percent); int configALSA(char *alsacard, char *alsacontrols); hotkeys-0.5.7.4/src/fixVMware.c0000664000000000000000000000371711173735665013134 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: fixVMware.c,v 1.3 2001/03/14 17:33:53 hajime Exp $ */ #include #include #include #include #include #include "hotkeys.h" unsigned int interval; static void fixIt(int sig) { initializeX("fix vmware"); XFlush(dpy); } static void startFixVMwareThread(void) { struct sigaction s; sigset_t set; sigemptyset(&set); sigaddset(&set, SIGALRM); pthread_sigmask( SIG_UNBLOCK, &set, NULL ); bzero(&s, sizeof(s)); s.sa_handler = fixIt; s.sa_flags = SA_RESTART; sigaction( SIGALRM, &s, NULL); while (1) { alarm(interval); pause(); } } void fixVMware(char* time) { pthread_t tp; pthread_attr_t attr; interval = ( time == NULL ? 10 : atoi(time) ); /* LinuxThread defines that we must block the signal in all * threads, so we block it before creating any threads */ sigblock(sigmask(SIGALRM)); pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); pthread_create( &tp, &attr, (void *) startFixVMwareThread, NULL ); } hotkeys-0.5.7.4/src/Makefile.in0000664000000000000000000002657512135107720013114 0ustar # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include DESTDIR = pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CPP = @CPP@ DATADIRNAME = @DATADIRNAME@ GENCAT = @GENCAT@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GT_NO = @GT_NO@ GT_YES = @GT_YES@ INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ INSTOBJEXT = @INSTOBJEXT@ INTLDEPS = @INTLDEPS@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ LIBXOSD_CFLAGS = @LIBXOSD_CFLAGS@ LIBXOSD_CONFIG = @LIBXOSD_CONFIG@ LIBXOSD_LIBS = @LIBXOSD_LIBS@ LN_S = @LN_S@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ PACKAGE = @PACKAGE@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CFLAGS = @XML_CFLAGS@ XML_CONFIG = @XML_CONFIG@ XML_LIBS = @XML_LIBS@ l = @l@ bin_PROGRAMS = hotkeys hotkeys_SOURCES = hotkeys.c kbddef.c conf.c fixVMware.c apmlib.c xmalloc.c splash.c amixer.c xbacklight.c XF86keysym.h apm.h common.h conf.h hotkeys.h kbddef.h xmalloc.h splash.h amixer.h xbacklight.h sysconf_DATA = hotkeys.conf man_MANS = hotkeys.1 CFLAGS = @CFLAGS@ @X_CFLAGS@ @XML_CFLAGS@ @LIBXOSD_CFLAGS@ @GTK_CFLAGS@ -I.. # -DDEBUG LIBS = @LIBS@ @X_LIBS@ @XML_LIBS@ @LIBXOSD_LIBS@ @GTK_LIBS@ -lasound -lXrandr -lXrender -lX11 -lm DEFS = @DEFS@ -DSHAREDIR=\"@datadir@/@PACKAGE@\" -DCONFDIR=\"@sysconfdir@\" -DCONFIG_NAME=\"@PACKAGE@.conf\" pkgdata_DATA = splash.png EXTRA_DIST = $(man_MANS) $(sysconf_DATA) $(pkgdata_DATA) mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ X_CFLAGS = @X_CFLAGS@ X_LIBS = @X_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ hotkeys_OBJECTS = hotkeys.o kbddef.o conf.o fixVMware.o apmlib.o \ xmalloc.o splash.o amixer.o xbacklight.o hotkeys_LDADD = $(LDADD) hotkeys_DEPENDENCIES = hotkeys_LDFLAGS = COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ man1dir = $(mandir)/man1 MANS = $(man_MANS) NROFF = nroff DATA = $(pkgdata_DATA) $(sysconf_DATA) DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best SOURCES = $(hotkeys_SOURCES) OBJECTS = $(hotkeys_OBJECTS) all: all-redirect .SUFFIXES: .SUFFIXES: .S .c .o .s $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status mostlyclean-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) distclean-binPROGRAMS: maintainer-clean-binPROGRAMS: install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) list='$(bin_PROGRAMS)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ done .c.o: $(COMPILE) -c $< .s.o: $(COMPILE) -c $< .S.o: $(COMPILE) -c $< mostlyclean-compile: -rm -f *.o core *.core clean-compile: distclean-compile: -rm -f *.tab.c maintainer-clean-compile: hotkeys: $(hotkeys_OBJECTS) $(hotkeys_DEPENDENCIES) @rm -f hotkeys $(LINK) $(hotkeys_LDFLAGS) $(hotkeys_OBJECTS) $(hotkeys_LDADD) $(LIBS) install-man1: $(mkinstalldirs) $(DESTDIR)$(man1dir) @list='$(man1_MANS)'; \ l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \ done uninstall-man1: @list='$(man1_MANS)'; \ l2='$(man_MANS)'; for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \ rm -f $(DESTDIR)$(man1dir)/$$inst; \ done install-man: $(MANS) @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-man1 uninstall-man: @$(NORMAL_UNINSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-man1 install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \ fi; fi; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) list='$(pkgdata_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \ done install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(sysconfdir) @list='$(sysconf_DATA)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ fi; fi; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) list='$(sysconf_DATA)'; for p in $$list; do \ rm -f $(DESTDIR)$(sysconfdir)/$$p; \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ here=`pwd` && cd $(srcdir) \ && mkid -f$$here/ID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS)'; \ unique=`for i in $$list; do echo $$i; done | \ awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) mostlyclean-tags: clean-tags: distclean-tags: -rm -f TAGS ID maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = src distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done info-am: info: info-am dvi-am: dvi: dvi-am check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am install-exec-am: install-binPROGRAMS install-sysconfDATA install-exec: install-exec-am install-data-am: install-man install-pkgdataDATA install-data: install-data-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-am uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-pkgdataDATA \ uninstall-sysconfDATA uninstall: uninstall-am all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) all-redirect: all-am install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1 \ $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(sysconfdir) mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ mostlyclean-tags mostlyclean-generic mostlyclean: mostlyclean-am clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \ mostlyclean-am clean: clean-am distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ distclean-generic clean-am distclean: distclean-am maintainer-clean-am: maintainer-clean-binPROGRAMS \ maintainer-clean-compile maintainer-clean-tags \ maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ mostlyclean-compile distclean-compile clean-compile \ maintainer-clean-compile install-man1 uninstall-man1 install-man \ uninstall-man uninstall-pkgdataDATA install-pkgdataDATA \ uninstall-sysconfDATA install-sysconfDATA tags mostlyclean-tags \ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ install-exec install-data-am install-data install-am install \ uninstall-am uninstall all-redirect all-am all installdirs \ mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean $(pkgdata_DATA): # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: hotkeys-0.5.7.4/src/xmalloc.c0000664000000000000000000000561211173735665012657 0ustar /* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 99 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #include "common.h" #include "hotkeys.h" #include #if STDC_HEADERS # include #else VOID *calloc (); VOID *malloc (); VOID *realloc (); void free (); #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define textdomain(Domain) # define _(Text) Text #endif #include "error.h" #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif /* Prototypes for functions defined here. */ #if defined (__STDC__) && __STDC__ static VOID *fixup_null_alloc (size_t n); VOID *xmalloc (size_t n); VOID *xcalloc (size_t n, size_t s); VOID *xrealloc (VOID *p, size_t n); char *xstrdup (char *p); #endif /* Exit value when the requested amount of memory is not available. The caller may set it to some other value. */ int xmalloc_exit_failure = EXIT_FAILURE; /* #if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT) void error (int, int, const char *, ...); #else void error (); #endif */ static VOID * fixup_null_alloc (n) size_t n; { VOID *p; p = 0; if (n == 0) p = malloc ((size_t) 1); if (p == 0) { // error (xmalloc_exit_failure, 0, _("Memory exhausted")); uError ("Memory exhausted"); bailout(); } return p; } /* Allocate N bytes of memory dynamically, with error checking. */ VOID * xmalloc (n) size_t n; { VOID *p; p = malloc (n); if (p == 0) p = fixup_null_alloc (n); return p; } /* Allocate memory for N elements of S bytes, with error checking. */ VOID * xcalloc (n, s) size_t n, s; { VOID *p; p = calloc (n, s); if (p == 0) p = fixup_null_alloc (n); return p; } /* Change the size of an allocated block of memory P to N bytes, with error checking. If P is NULL, run xmalloc. */ VOID * xrealloc (p, n) VOID *p; size_t n; { if (p == 0) return xmalloc (n); p = realloc (p, n); if (p == 0) p = fixup_null_alloc (n); return p; } /* Make a copy of a string in a newly allocated block of memory. */ char * xstrdup (str) char *str; { VOID *p; p = xmalloc (strlen (str) + 1); strcpy (p, str); return p; } hotkeys-0.5.7.4/src/kbddef.c0000664000000000000000000002506011173735665012436 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: kbddef.c,v 1.17 2002/11/27 19:51:11 ypwong Exp $ */ #if HAVE_CONFIG_H # include #endif #include "common.h" #include #include #include #include #include /* #include */ /* I include my only keysym table instead of using the one in X, * because it's troublesome to determine which version the user is * using. */ #include "XF86keysym.h" #include #include #include "hotkeys.h" #include "kbddef.h" #define MatchName(n,s) ((strncasecmp(n->name,s,strlen(s))==0)) /***====================================================================***/ /* Make sure the order of the entries are the same as the hotkey enum * in kbddef.h, to make life easier... */ const defEntry defStr[] = { { "PrevTrack", prevTrackKey, XF86XK_AudioPrev }, { "Play", playKey, XF86XK_AudioPlay }, { "Stop", stopKey, XF86XK_AudioStop }, { "Pause", pauseKey, XF86XK_AudioPause }, { "NextTrack", nextTrackKey, XF86XK_AudioNext }, { "WebBrowser", browserKey, XF86XK_HomePage }, { "Email", emailKey, XF86XK_Mail }, { "Help", helpKey, 0 }, { "Communities", communitiesKey, 0 }, /* ???, in MS kbd */ { "Search", searchKey, XF86XK_Search }, { "Idea", ideasKey, XF86XK_LightBulb }, /* ???, in MS kbd */ { "Shopping", shoppingKey, XF86XK_Shop }, { "Print", printKey, 0 }, { "Go", goKey, 0 }, /* ??? */ { "Record", recordKey, XF86XK_AudioRecord }, { "Shell", shellKey, 0 }, { "Transfer", transferKey, 0 }, /* ???, in MX3000 */ { "MyDocuments", myDocumentsKey, 0 }, { "MyComputer", myComputerKey, XF86XK_MyComputer }, { "Favorites", favoritesKey, XF86XK_Favorites }, { "Calculator", calculatorKey, XF86XK_Calculator }, { "NewsReader", newsReaderKey, 0 }, { "iNews", iNewsKey, 0 }, { "Rewind", rewindKey, 0 }, { "Rotate", rotateKey, 0 }, /* ???, in MX3000 */ { "ScreenSaver", screensaverKey, 0 }, { "Prog1", prog1, 0 }, { "Prog2", prog2, 0 }, { "DUMMY_TYPE_LAUNCH", TYPE_LAUNCH, 0xFFFFFFFF }, { "Eject", ejectKey, 0 }, { "VolUp", volUpKey, XF86XK_AudioRaiseVolume }, { "VolDown", volDownKey, XF86XK_AudioLowerVolume }, { "Mute", muteKey, XF86XK_AudioMute }, { "BacklightUp", backlightUpKey, XF86XK_BacklightUp }, { "BacklightDown", backlightDownKey, XF86XK_BacklightDown }, { "WakeUp", wakeupKey, XF86XK_WakeUp }, { "PowerDown", powerDownKey, XF86XK_PowerOff }, { "Sleep", sleepKey, XF86XK_Standby }, /* either this is the Standby key or the next one... */ { "Suspend", suspendKey, 0 }, { NULL, NUM_PREDEF_HOTKEYS, 0xFFFFFFFF } }; int keytypes[255]; /* to note whether a keycode is used to launch an application or not, indexed by keycode */ /***====================================================================***/ static void parseUserDef(xmlDocPtr doc, xmlNodePtr cur, KeySym curKeySym) { hotkeyCmd* t; char* t_keycode; char* t_command; char* tc; t_keycode = (char *) xmlGetProp( cur, (const xmlChar *) "keycode" ); if ( t_keycode == NULL ) { uInfo("keycode not found, entry ignored\n"); return; } t_command = (char *) xmlGetProp( cur, (const xmlChar *) "command" ); if ( t_command == NULL ) { uInfo("command not found, entry ignored"); return; } /* Allocate or enlarge the memory, depending on whether memory has * been previously allocated to kbd.customCmds. */ t = XREALLOC( hotkeyCmd, kbd.customCmds, kbd.noOfCustomCmds+1 ); kbd.customCmds = t; /* Assign the keycode and command to it */ kbd.customCmds[kbd.noOfCustomCmds].keycode = atoi(t_keycode); XFREE(t_keycode); kbd.customCmds[kbd.noOfCustomCmds].command = xstrdup(t_command); XFREE(t_command); kbd.customCmds[kbd.noOfCustomCmds].keysym = curKeySym; tc = (char *) xmlNodeListGetString( doc, cur->xmlChildrenNode, 1 ); if ( tc != NULL && tc[0] != '\0' ) { kbd.customCmds[kbd.noOfCustomCmds].desc= xstrdup(tc); XFREE(tc); } else { /* No description given in definition file */ kbd.customCmds[kbd.noOfCustomCmds].desc= NULL; } kbd.noOfCustomCmds++; } /* * upOrDown - 1 for up, -1 for down */ static void getVolAdj(int upOrDown, xmlNodePtr cur) { char* tc; tc = (char *) xmlGetProp( cur, (const xmlChar *) "adj" ); if ( tc != NULL ) { int v = atoi(tc); if ( v > 0 && v < 100 ) { if ( upOrDown == 1 ) volUpAdj = v; else if ( upOrDown == -1 ) volDownAdj = -v; } } } /* * upOrDown - 1 for up, -1 for down */ static void getBacklightAdj(int upOrDown, xmlNodePtr cur) { char* tc; tc = (char *) xmlGetProp( cur, (const xmlChar *) "adj" ); if ( tc != NULL ) { int v = atoi(tc); if ( v > 0 && v < 100 ) { if ( upOrDown == 1 ) backlightUpAdj = v; else if ( upOrDown == -1 ) backlightDownAdj = -v; } } } static void parseStd(xmlDocPtr doc, xmlNodePtr cur) { char* tc; int i = 0; do { /* if the name in definition file matches one of the * predefined name */ if ( MatchName( (char *) cur, defStr[i].name ) ) { tc = (char *) xmlGetProp( cur, (const xmlChar *) "keycode" ); if ( tc == NULL ) { uInfo("keycode not found, entry ignored\n"); return; } else { kbd.defCmds[defStr[i].key].key = atoi(tc); kbd.defCmds[defStr[i].key].keysym = defStr[i].keysym; keytypes[atoi(tc)] = ( defStr[i].key < TYPE_LAUNCH ? 1 : 0 ); XFREE(tc); /* Get the volume adjustment if the tag is VolUp or VolDown */ if ( strncmp( defStr[i].name, "VolUp", 5 ) == 0 ) getVolAdj( 1, cur ); else if ( strncmp( defStr[i].name, "VolDown", 7 ) == 0 ) getVolAdj( -1, cur ); /* Get the backlight adjustment if the tag is BacklightUp or BacklightDown */ if ( strncmp( defStr[i].name, "BacklightUp", 11 ) == 0 ) getBacklightAdj( 1, cur ); else if ( strncmp( defStr[i].name, "BacklightDown", 13 ) == 0 ) getBacklightAdj( -1, cur ); return; /* leave as nothing to be done */ } } i++; } while ( defStr[i].name != NULL ); /* No predefined key name is matched */ uInfo("The key command \"%s\" is invalid\n", cur->name); } Bool readDefFile(const char* filename) { xmlDocPtr doc; xmlNodePtr cur; char* tc; KeySym curKeySym = 0x1008FFA0; /* The keysym assigned to custom commands. According to XF86keysym.h, keysyms from 0x1008FFA) is not yet assigned (at 2000/3/14) */ if ( (doc = xmlParseFile(filename)) == NULL ) return False; if ( (cur = xmlDocGetRootElement(doc)) == NULL ) { uInfo("File %s is empty, skipping it...\n", filename); xmlFreeDoc(doc); return False; } /* Start parsing the XML file */ if ( (cur = cur->xmlChildrenNode) == NULL ) { parseError(filename); } /* search till 'config' is found */ while ( ! MatchName( (char *) cur, "config" ) ) { cur = cur->next; if ( cur == NULL ) parseError(filename); } if ( MatchName( (char *) cur, "config" ) ) { /* Get the model name */ tc = (char *) xmlGetProp( cur, (const xmlChar *) "model" ); if ( tc == NULL ) { uInfo("Model name missing in %s, skipping it...\n", filename); xmlFreeDoc(doc); return False; } else { kbd.longName = xstrdup(tc); } cur = cur->xmlChildrenNode; while ( cur != NULL ) { if ( MatchName( (char *) cur, "comment" ) ) { cur = cur->next; continue; /* A comment! Continue to the next one */ } else if ( MatchName( (char *) cur, "userdef" ) ) { parseUserDef( doc, cur, curKeySym ); curKeySym++; } else if ( ! MatchName( (char *) cur, "text" ) ) { parseStd( doc, cur ); } cur = cur->next; } } else { parseError(filename); } xmlFreeDoc(doc); return True; } void parseError(const char* filename) { uInfo("Error while parsing %s\n", filename); exit(1); } hotkeys-0.5.7.4/src/xbacklight.h0000664000000000000000000000005311173730537013330 0ustar int xbacklight (Display *dpy, int change); hotkeys-0.5.7.4/src/hotkeys.c0000664000000000000000000013450711206314114012667 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000-2002 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: hotkeys.c,v 1.32 2002/12/03 19:26:32 ypwong Exp $ Reference: http://www.win.tue.nl/math/dw/personalpages/aeb/linux/kbd/scancodes.html */ #if HAVE_CONFIG_H # include #endif #include "common.h" #include #ifndef X_NOT_STDC_ENV #include #else extern char *getenv(); #endif #include #include #include #include #include #ifdef HAVE_GETOPT_LONG #include #endif /* HAVE_GETOPT_LONG */ #include #include #include #include #include #include #include /* Mixer related */ #include #include #if defined (__FreeBSD__) #include #else # if defined (__NetBSD__) || defined (__OpenBSD__) # include /* OSS emulation */ # undef ioctl # else /* BSDI, Linux, Solaris */ # include # endif /* __NetBSD__ or __OpenBSD__ */ #endif /* __FreeBSD__ */ /* CDROM related */ #include /* FIXME: linux specific! */ /* APM (suspend/standby) support */ #include "apm.h" #if HAVE_GTK #include #include "splash.h" #endif #include "hotkeys.h" #include "conf.h" #include "amixer.h" #include "xbacklight.h" #include #include #define lowbit(x) ((x) & (-(x))) #define M(m) fprintf(stderr,(m)) #define M1(m,a) fprintf(stderr,(m),(a)) /***====================================================================***/ char * dpyName = NULL; Display * dpy = NULL; char * cfgFileName = NULL; int xkbOpcode = 0; int xkbEventCode = 0; XkbDescPtr xkb = NULL; Bool dummyErrFlag = False; Bool synch = False; int verbose = 0; int loglevel = 0; Bool background = True; Bool noSplash = False; Bool haveALSA = False; FILE * errorFile = NULL; char * progname = NULL; char * cdromDevice = CDROM_DEV; keyboard kbd; /* the keyboard the user is using */ #ifdef HAVE_LIBXOSD xosd * osd = (xosd*)1; #endif int volUpAdj = 2; int volDownAdj = -2; int backlightUpAdj = 2; int backlightDownAdj = -2; /***====================================================================***/ void usage(int argc, char *argv[]) { char cmplStr[256] = {'\0'}; int first = 1; #ifdef HAVE_LIBXOSD strcat(cmplStr,"XOSD"); first = 0; #endif #if HAVE_GTK if ( first == 0 ) { strcat(cmplStr,",GTK"); } else { strcat(cmplStr,"GTK"); first = 0; } #endif printf("HOTKEYS v" VERSION " -- use the hotkeys on your Internet/multimedia keyboard to control your computer"); if (strlen(cmplStr)) printf(" (compile option(s): %s)", cmplStr); printf("\n"); printf("Usage: %s [options...]\n", argv[0]); printf("Legal options:\n"); #ifdef HAVE_GETOPT_LONG printf(" -t, --type=TYPE Specify the keyboard type (refer to -l)\n"); printf(" -l, --kbd-list Show all supported keyboards\n"); printf(" -d, --cdrom-dev=DEVICE Specify the CDROM/DVDROM device, or 'none'\n"); #ifdef HAVE_LIBXOSD printf(" -o, --osd=STATE Turn off/on on-screen display\n"); #endif printf(" -L, --loglevel=LEVEL Set the log level in syslog [0-7]\n"); printf(" -b, --no-background Do not run in the background\n"); printf(" -F, --fix-vmware=TIME Use this if you use vmware at the same time\n"); #if HAVE_GTK printf(" -Z, --no-splash No splash screen\n"); #endif printf(" -h, --help Print this message\n"); /* M("-cfg Specify a config file\n"); M("-d[isplay] Specify the display to watch\n"); M("-v Print verbose messages\n"); */ #else /* HAVE_GETOPT_LONG */ printf(" -t TYPE Specify the keyboard type (refer to -l)\n"); printf(" -l Show all supported keyboards\n"); printf(" -d DEVICE Specify the CDROM/DVDROM device, 'none' for no device\n"); #ifdef HAVE_LIBXOSD printf(" -o STATE Turn off/on on-screen display\n"); #endif printf(" -L LEVEL Set the log level in syslog [0-7]\n"); printf(" -b Do not run in the background\n"); printf(" -F TIME Use this option if vmware is used concurrently\n"); #if HAVE_GTK printf(" -Z No splash screen\n"); #endif printf(" -h Print this message\n"); #endif /* HAVE_GETOPT_LONG */ } void showKbdList(int argc, char *argv[]) { DIR* dir; struct dirent* ent; char* homedir; char* h; int flag = 0; int len; #ifdef HAVE_GETOPT_LONG printf("Supported keyboards: (with corresponding options to --kbd-list or -l)\n"); #else printf("Supported keyboards: (with corresponding options to -l)\n"); #endif /* Read the definition files in $HOME/.hotkeys */ if ( (h = getenv("HOME")) != NULL ) { homedir = XMALLOC( char, strlen(h) + strlen("/.hotkeys") + 1 ); strcpy( homedir, h ); strcat( homedir, "/.hotkeys" ); if ( ( dir = opendir(homedir) ) != NULL ) { while ( (ent = readdir(dir)) ) { len = NLENGTH(ent); /* Show all files that ends with ".def" */ if ( len > 4 && strncmp( &(ent->d_name[len-4]), ".def", 4 ) == 0 ) { ent->d_name[ len-4 ] = '\0'; if ( setKbdType(NULL, ent->d_name) == True ) { printf( " %s\t- %s\n", ent->d_name, kbd.longName ); flag = 1; } } } } XFREE(homedir); } else { homedir = NULL; } /* Read the default location: SHAREDIR */ if ( ( dir = opendir(SHAREDIR) ) != NULL ) { while ( (ent = readdir(dir)) ) { len = NLENGTH(ent); /* Show all files that ends with ".def" in SHAREDIR */ if ( len > 4 && strncmp( &(ent->d_name[len-4]), ".def", 4 ) == 0 ) { ent->d_name[ len-4 ] = '\0'; if ( setKbdType(NULL, ent->d_name) == True ) { printf( " %s\t- %s\n", ent->d_name, kbd.longName ); flag = 1; } } } } if ( flag == 0 ) { printf( "NONE FOUND. Probably due to an unsuccessful installation.\n"); } closedir(dir); } Bool setKbdType(const char* prog, const char* type) { char* defname; char* h; Bool ret = True; /* Make up the complete filename, try the user's HOME first */ if ( (h = getenv("HOME")) != NULL ) { /* Make up the complete filename */ defname = XMALLOC( char, strlen(h) + strlen("/.hotkeys/") + strlen(type) + 5 ); strcpy( defname, h ); strcat( defname, "/.hotkeys/" ); strcat( defname, type ); strcat( defname, ".def" ); if ( testReadable(defname) ) /* if the file exists... */ { ret = readDefFile( defname ); } else { /* Now try if it exists in SHAREDIR or not */ XFREE( defname ); defname = XMALLOC( char, strlen(SHAREDIR)+strlen(type)+6 ); strcpy( defname, SHAREDIR ); strcat( defname, "/" ); strcat( defname, type ); strcat( defname, ".def" ); if ( testReadable(defname) ) /* if the file exists... */ { ret = readDefFile( defname ); } else { /* No matching keyboard type */ if ( prog != NULL ) { uInfo("Keyboard type `%s' is not supported.\n" "Use %s --kbd-list to list all supported keyboard\n", type, prog); exit(0); } else { ret = False; } } } XFREE( defname ); } return ret; } /* Option is --cdrom-dev or -d */ void setCDROMDevice(char* optarg) { int fd; if ( strncasecmp( optarg, "none", 4 ) == 0 ) { cdromDevice = NULL; return; } if ( (fd = open( optarg, O_RDONLY|O_NONBLOCK )) == -1) { uInfo("Unable to open `%s', fall back to %s\n", optarg, CDROM_DEV); } else { if ( ( cdromDevice = (char*) xstrdup(optarg) ) == NULL ) { uError("Insufficient memory"); bailout(); } } close (fd); } void setLoglevel(int level) { /* Map the supplied level to the one defined in syslog.h */ switch (level) { case 0: loglevel = LOG_EMERG; break; case 1: loglevel = LOG_ALERT; break; case 2: loglevel = LOG_CRIT; break; case 3: loglevel = LOG_ERR; break; case 4: loglevel = LOG_WARNING; break; case 5: loglevel = LOG_NOTICE; break; case 6: loglevel = LOG_INFO; break; case 7: loglevel = LOG_DEBUG; break; default: loglevel = LOG_ERR; break; } setlogmask( LOG_UPTO(loglevel) ); } #ifdef HAVE_LIBXOSD static void toggleOSD(char* optarg) { int arg = 0; if ( strncasecmp( optarg, "on", 2 ) == 0 || strncasecmp( optarg, "1", 1 ) == 0 || strncasecmp( optarg, "yes", 3 ) == 0 ) { arg = 1; } else if ( strncasecmp( optarg, "off", 3 ) != 0 && strncasecmp( optarg, "0", 1 ) != 0 && strncasecmp( optarg, "no", 2 ) != 0 ) { uInfo("Unknown argument: %s, assuming on\n", optarg); arg = 1; } if ( !arg ) { osd = NULL; } } #endif /* HAVE_LIBXOSD */ /***====================================================================***/ Bool parseArgs(int argc, char *argv[]) { int c; const char *flags = "hbt:d:lz:vL:F:" #ifdef HAVE_LIBXOSD "o:" #endif #if HAVE_GTK "Z" #endif ; #ifdef HAVE_GETOPT_LONG int option_index = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"no-background", 0, 0, 'b'}, {"type", 1, 0, 't'}, {"cdrom-dev", 1, 0, 'd'}, {"kbd-list", 0, 0, 'l'}, {"verbose", 0, 0, 'v'}, {"loglevel", 1, 0, 'L'}, #ifdef HAVE_LIBXOSD {"osd", 1, 0, 'o'}, #endif {"fix-vmware", 2, 0, 'F'}, #if HAVE_GTK {"no-splash", 0, 0, 'Z'}, #endif {0, 0, 0, 0} }; #endif /* HAVE_GETOPT_LONG */ if ( strrchr( argv[0], '/' ) ) { /* strip the directories */ progname = (char*) strrchr( argv[0], '/' ) + 1; } else { progname = argv[0]; } #ifdef HAVE_GETOPT_LONG while ((c = getopt_long(argc, argv, flags, long_options, &option_index)) != -1) { #else while ((c = getopt(argc, argv, flags)) != -1) { #endif /* HAVE_GETOPT_LONG */ switch (c) { #if 0 #ifdef HAVE_GETOPT_LONG case 0: if ( strncmp( long_options[option_index].name, "type", 4 ) == 0 ) { setKbdType(argv[0], optarg); } else if ( strncmp( long_options[option_index].name, "cdrom-dev", 9 ) == 0 ) { setCDROMDevice(optarg); } break; #endif /* HAVE_GETOPT_LONG */ #endif case 't': setConfig( "Kbd", optarg, 0 ); break; case 'd': setConfig( "CDROM", optarg, 0 ); break; case 'h': usage(argc, argv); exit(0); break; case 'b': background = False; break; case 'l': showKbdList(argc, argv); exit(0); break; case 'L': setLoglevel(atoi(optarg)); break; #ifdef HAVE_LIBXOSD case 'o': toggleOSD(optarg); break; #endif case 'F': fixVMware(optarg); break; #if HAVE_GTK case 'Z': noSplash=True; break; #endif case 'z': break; case '?': break; } } if ( getConfig("Kbd")[0] ) { setKbdType( argv[0], getConfig("Kbd") ); } else { uInfo("You must set the keyboard type, use %s -t to set it.\n", argv[0]); exit(1); } if ( getConfig("CDROM")[0] ) setCDROMDevice( getConfig("CDROM") ); /* check for a single additional argument */ if ((argc - optind) > 1) { fprintf( stderr, "%s: too many arguments\n", argv[0] ); bailout(); } return True; } /* Copied from xkbevd */ Display * GetDisplay(char* program, char* dpyName, int* opcodeRtrn, int* evBaseRtrn) { int mjr,mnr,error; Display *dpy; mjr = XkbMajorVersion; mnr = XkbMinorVersion; dpy = XkbOpenDisplay(dpyName,evBaseRtrn,NULL,&mjr,&mnr,&error); if (dpy == NULL) { switch (error) { case XkbOD_BadLibraryVersion: uInfo("%s was compiled with XKB version %d.%02d\n", program,XkbMajorVersion,XkbMinorVersion); uInfo("X library supports incompatible version %d.%02d\n", mjr,mnr); break; case XkbOD_ConnectionRefused: uInfo("Cannot open display \"%s\"\n",dpyName); break; case XkbOD_NonXkbServer: uInfo("XKB extension not present on %s\n",dpyName); break; case XkbOD_BadServerVersion: uInfo("%s was compiled with XKB version %d.%02d\n", program,XkbMajorVersion,XkbMinorVersion); uInfo("Server %s uses incompatible version %d.%02d\n", dpyName,mjr,mnr); break; default: uInternalError("Unknown error %d from XkbOpenDisplay\n",error); } } else { if (synch) XSynchronize(dpy,True); if (opcodeRtrn) XkbQueryExtension(dpy,opcodeRtrn,evBaseRtrn,NULL,&mjr,&mnr); } return dpy; } void bailout(void) { if ( dpy != NULL ) XCloseDisplay(dpy); uInfo("Bailing out...\n"); exit(1); } /* * adj is a percentage, can be +ve or -ve for brighter and dimmer resp. */ static int adjustBacklight(int adj) { static struct timeval last_time; struct timeval this_time; static int multiplier = 0; /* if 0 then it's first time to come in this func */ int sign = adj > 0 ? 1 : -1; if ( adj == 0 ) return 0; if ( multiplier == 0 ) { gettimeofday(&last_time, NULL); multiplier = sign; } else { gettimeofday(&this_time, NULL); if ( (( adj > 0 && multiplier > 0 ) || ( adj < 0 && multiplier < 0 )) && ( (this_time.tv_sec - last_time.tv_sec) * 1000000 + this_time.tv_usec - last_time.tv_usec < 500000 ) ) { multiplier += sign; adj *= abs(multiplier); if ( adj > 10 ) /* should be a MAX value defined somewhere else FIXME */ adj = 10; else if ( adj < -10 ) adj = -10; } else { multiplier = sign; } last_time.tv_sec = this_time.tv_sec; last_time.tv_usec = this_time.tv_usec; } return xbacklight(dpy, adj); } /* * adj is a percentage, can be +ve or -ve for louder and softer resp. */ static int adjustVol(int adj) { int mixer_fd = -1, cdrom_fd = -1; int master_vol; struct cdrom_volctrl cdrom_vol; int left, right; static struct timeval last_time; struct timeval this_time; static int multiplier = 0; /* if 0 then it's first time to come in this func */ int ret = 0; int sign = adj > 0 ? 1 : -1; if ( adj == 0 ) return ret; if ( multiplier == 0 ) { gettimeofday(&last_time, NULL); multiplier = sign; } else { gettimeofday(&this_time, NULL); if ( (( adj > 0 && multiplier > 0 ) || ( adj < 0 && multiplier < 0 )) && ( (this_time.tv_sec - last_time.tv_sec) * 1000000 + this_time.tv_usec - last_time.tv_usec < 500000 ) ) { multiplier += sign; adj *= abs(multiplier); if ( adj > 10 ) /* should be a MAX value defined somewhere else FIXME */ adj = 10; else if ( adj < -10 ) adj = -10; } else { multiplier = sign; } last_time.tv_sec = this_time.tv_sec; last_time.tv_usec = this_time.tv_usec; } if (haveALSA) { master_vol = amixer(adj); if (master_vol < 0) return master_vol; #ifdef HAVE_LIBXOSD if (osd) { xosd_display(osd, 0, XOSD_string, "Volume"); xosd_display(osd, 1, XOSD_percentage, master_vol); } #endif return ret; } /* open the mixer device */ if ( (mixer_fd = open( MIXER_DEV, O_RDWR|O_NONBLOCK )) == -1 ) { uError("Unable to open `%s'", MIXER_DEV); } else { if ( SOUND_IOCTL(mixer_fd, SOUND_MIXER_READ_VOLUME, &master_vol) == -1) { uError("Unable to read the volume of `%s'", MIXER_DEV); ret = -1; } else { /* Set the master volume */ left = (master_vol & 0xFF) + adj; right = ((master_vol >> 8) & 0xFF) + adj; left = (left>MAXLEVEL) ? MAXLEVEL : ((left<0) ? 0 : left); right = (right>MAXLEVEL) ? MAXLEVEL : ((right<0) ? 0 : right); master_vol = left + (right << 8); if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_VOLUME, &master_vol) == -1) { uError("Unable to set the master volume"); ret = -1; } #ifdef HAVE_LIBXOSD else if (osd) { xosd_display(osd, 0, XOSD_string, "Volume"); xosd_display(osd, 1, XOSD_percentage, (((left+right)/2)*100/MAXLEVEL)); } #endif } #if 0 if ( SOUND_IOCTL(mixer_fd, SOUND_MIXER_READ_CD, &cd_vol) == -1) { uError("Unable to read the CD volume of `%s'", MIXER_DEV); ret = -1; goto LEAVE; } else { /* Set the CD volume */ left = (cd_vol & 0xFF) + adj; right = ((cd_vol >> 8) & 0xFF) + adj; left = (left>MAXLEVEL) ? MAXLEVEL : ((left<0) ? 0 : left); right = (right>MAXLEVEL) ? MAXLEVEL : ((right<0) ? 0 : right); cd_vol = left + (right << 8); if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_CD, &cd_vol) == -1) { uError("Unable to set the CD volume"); ret = -1; goto LEAVE; } } #endif } /* open the cdrom/dvdrom drive device */ if ( cdromDevice != NULL ) { if ( (cdrom_fd = open( cdromDevice, O_RDONLY|O_NONBLOCK )) == -1 ) { uError("Unable to open `%s'", cdromDevice); } else { /* read the cdrom volume */ if ( ioctl(cdrom_fd, CDROMVOLREAD, &cdrom_vol) == -1 ) { uError("Unable to read the CDROM volume of `%s'", cdromDevice); ret = -1; } else { /* Set the CDROM volume */ int t; float myAdj; myAdj = 0xFF / 100.0 * adj; t = cdrom_vol.channel0 + myAdj; cdrom_vol.channel0 = (t < 0 ? 0 : (t > 0xFF ? 0xFF : t)); t = cdrom_vol.channel1 + myAdj; cdrom_vol.channel1 = (t < 0 ? 0 : (t > 0xFF ? 0xFF : t)); #if 0 t = cdrom_vol.channel2 + myAdj; cdrom_vol.channel2 = (t < 0 ? 0 : (t > 0xFF ? 0xFF : t)); t = cdrom_vol.channel3 + myAdj; cdrom_vol.channel3 = (t < 0 ? 0 : (t > 0xFF ? 0xFF : t)); #endif if ( ioctl(cdrom_fd, CDROMVOLCTRL, &cdrom_vol) == -1 ) { uError("Unable to set the volume of %s", cdromDevice); ret = -1; } } } } if (mixer_fd != -1) close(mixer_fd); if (cdrom_fd != -1) close(cdrom_fd); return ret; } /* * Mute or un-mute the /dev/mixer master volume and CDROM drive's volume */ int doMute(void) { static Bool muted = False; static int last_mixer_vol; static struct cdrom_volctrl last_cdrom_vol; int vol; struct cdrom_volctrl cdrom_vol; int mixer_fd = -1, cdrom_fd = -1; short ret = 0; /* return value */ if (haveALSA) ret = amixer(0); if (ret >= 0 && osd) { if (ret) { xosd_display(osd, 0, XOSD_string, "Mute"); } else { xosd_display(osd, 0, XOSD_string, "Unmute"); } } return ret; /* open the mixer device */ if ( (mixer_fd = open( MIXER_DEV, O_RDWR|O_NONBLOCK )) == -1 ) { uError("Unable to open `%s'", MIXER_DEV); } /* open the cdrom/dvdrom drive device */ if ( cdromDevice != NULL ) { if ( (cdrom_fd = open( cdromDevice, O_RDONLY|O_NONBLOCK )) == -1 ) { uError("Unable to open `%s'", cdromDevice); } } if ( muted ) { /* Un-mute them */ if (mixer_fd != -1) { if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_VOLUME, &last_mixer_vol) == -1) { uError("Unable to un-mute the mixer"); ret = -1; } else { muted = False; #ifdef HAVE_LIBXOSD if (osd) { // int left = last_mixer_vol & 0xFF; // int right = (last_mixer_vol >> 8) & 0xFF; xosd_display(osd, 0, XOSD_string, "Unmute"); // xosd_display(osd, 1, XOSD_percentage, (((left+right)/2)*100/MAXLEVEL)); } #endif } } #if 0 if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_CD, &last_cd_vol) == -1) { uError("Unable to un-mute the CD volume"); ret = -1; } else muted = False; #endif if (cdrom_fd != -1) { if ( ioctl(cdrom_fd, CDROMVOLCTRL, &last_cdrom_vol) == -1 ) { uError("Unable to un-mute `%s'", cdromDevice); ret = -1; } else muted = False; } } else /* ! muted */ { /* Read and store the mixer volume, do not try to mute them * if we cannot read any of their values. */ if (mixer_fd != -1) { if ( SOUND_IOCTL(mixer_fd, SOUND_MIXER_READ_VOLUME, &last_mixer_vol) == -1) { uError("Unable to read the mixer volume of `%s'", MIXER_DEV); ret = -1; } else { /* Mute it! */ vol = 0; if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_VOLUME, &vol) == -1) { uError("Unable to mute mixer volume of `%s'", MIXER_DEV); ret = -1; } else { muted = True; #ifdef HAVE_LIBXOSD if (osd) { xosd_set_timeout(osd, -1); xosd_display(osd, 0, XOSD_string, "Mute"); xosd_display(osd, 1, XOSD_string, ""); } #endif } } } #if 0 if ( SOUND_IOCTL(mixer_fd, SOUND_MIXER_READ_CD, &last_cd_vol) == -1) { uError("Unable to read the CD volume of `%s'", MIXER_DEV); ret = -1; goto LEAVE2; } else { if (SOUND_IOCTL(mixer_fd, SOUND_MIXER_WRITE_CD, &vol) == -1) { uError("Unable to mute CD volume of `%s'", MIXER_DEV); ret = -1; } else muted = True; } #endif /* read and store the cdrom volume */ if (cdrom_fd != -1) { if ( ioctl(cdrom_fd, CDROMVOLREAD, &last_cdrom_vol) == -1 ) { uError("Unable to read the CDROM volume of `%s'", cdromDevice); ret = -1; } else { /* Set the volume to 0. FIXME: is this linux specific? Do * other platforms also have 4 channels? */ cdrom_vol.channel0 = cdrom_vol.channel1 = cdrom_vol.channel2 = cdrom_vol.channel3 = 0; if ( ioctl(cdrom_fd, CDROMVOLCTRL, &cdrom_vol) == -1 ) { uError("Unable to mute `%s'", cdromDevice); ret = -1; } else muted = True; } } } if (mixer_fd != -1) close(mixer_fd); if (cdrom_fd != -1) close(cdrom_fd); return ret; } void ejectDisc(void) { int fd, status; if ( cdromDevice == NULL ) return; /* the idea of this code is from xine's vcd plugin, mostly linux specific FIXME */ if ( (fd = open( cdromDevice, O_RDONLY | O_NONBLOCK)) > -1 ) { status = ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT); switch (status) { /* Looks like ATAPI drives doesn't return CDS_TRAY_OPEN, * at least it's the case on my ASUS DVD drive... */ case CDS_TRAY_OPEN: #ifdef HAVE_LIBXOSD if ( osd ) { xosd_display(osd, 0, XOSD_string, "Close tray"); xosd_display(osd, 1, XOSD_string, ""); } #endif if ( (ioctl(fd, CDROMCLOSETRAY)) != 0 ) { SYSLOG( LOG_NOTICE, "CDROMCLOSETRAY failed: %s\n", strerror(errno) ); } break; case CDS_DISC_OK: case CDS_NO_DISC: #ifdef HAVE_LIBXOSD if ( osd ) { xosd_display(osd, 0, XOSD_string, "Eject"); xosd_display(osd, 1, XOSD_string, ""); } #endif if ( (ioctl(fd, CDROMEJECT)) != 0 ) { SYSLOG( LOG_NOTICE, "CDROMEJECT failed: %s\n", strerror(errno) ); } break; case CDS_NO_INFO: case CDS_DRIVE_NOT_READY: default: /* Ignore */ break; } close(fd); return; } else { SYSLOG(LOG_NOTICE, "CDROM_DRIVE_STATUS failed: %s\n", strerror(errno)); } } int launchApp(int keycode) { int pid; char* type = NULL; int i; /* Given the keycode, we find the string corresponding to it */ for ( i = 0; i < NUM_PREDEF_HOTKEYS; i++ ) { if ( keycode == (kbd.defCmds)[i].key ) { type = defStr[i].name; break; } } if ( type == NULL ) return -1; /* this keycode is not associated with any app */ if ( (pid=fork2()) == -1 ) { uInfo("Cannot launch the %s\n", type); } else if ( pid == 0 ) { /* Construct the argument arrays */ char** arg_array; char* c = getConfig(type); char* cc; int noOfArgs = 1; /* including the NULL element */ int i = 0; do { c = strchr( c+1, ' ' ); noOfArgs++; } while ( c != NULL ); arg_array = XMALLOC( char*, noOfArgs ); /* dup needed since strtok modifies the string */ c = (char*) xstrdup( getConfig(type) ); cc = c; /* for free() */ arg_array[0] = strtok( c, " " ); while ( arg_array[i] != NULL ) { i++; arg_array[i] = strtok( NULL, " " ); } if ( execvp(arg_array[0], arg_array) == -1 ) { uError("Cannot launch %s", type); XFREE(cc); XFREE(arg_array); _exit(-1); } } else { #ifdef HAVE_LIBXOSD if ( osd ) { xosd_display(osd, 0, XOSD_string, "Launching:"); xosd_display(osd, 1, XOSD_string, getConfig(type)); } #endif } return 0; } int sleepState(int mode) { #ifdef USE_APMD switch (mode) { case SUSPEND: error = system("apm -s"); break; case STANDBY: error = system("apm -S"); break; default: error = 0; break; } #else int fd; int error; if ( (fd = apm_open()) < 0 ) { uError("unable to open APM device"); exit(1); } switch (mode) { case SUSPEND: error = apm_suspend(fd); break; case STANDBY: error = apm_standby(fd); break; default: error = 0; break; } apm_close(fd); #endif /* USE_APMD */ return 0; } static void lookupUserCmd(const int keycode) { int i; for ( i = 0; i < kbd.noOfCustomCmds; i++ ) { if ( kbd.customCmds[i].keycode == keycode ) { int pid; if ( (pid=fork2()) == -1 ) { uInfo("Cannot launch \"%s\"\n", kbd.customCmds[i].desc); } else if ( pid == 0 ) { /* Construct the argument arrays */ char** arg_array; char* c = kbd.customCmds[i].command; char* cc; int noOfArgs = 1; /* including the NULL element */ int j = 0; do { c = strchr( c+1, ' ' ); noOfArgs++; } while ( c != NULL ); arg_array = XMALLOC( char*, noOfArgs ); /* dup needed since strtok modifies the string */ c = (char*) xstrdup( kbd.customCmds[i].command ); cc = c; /* cc is for free() later */ arg_array[0] = strtok( c, " " ); while ( arg_array[j] != NULL ) { j++; arg_array[j] = strtok( NULL, " " ); } if ( execvp(arg_array[0], arg_array) == -1 ) { uError("Cannot launch \"%s\"", kbd.customCmds[i].desc); XFREE(cc); XFREE(arg_array); _exit(-1); } } else { #ifdef HAVE_LIBXOSD if ( osd ) { xosd_display(osd, 0, XOSD_string, "Launching:"); xosd_display(osd, 1, XOSD_string, kbd.customCmds[i].desc); } #endif break; /* break the for loop */ } } } } /***====================================================================***/ #ifdef DEBUG static void printXkbActionMessage(FILE* file,XkbEvent* xkbev) { XkbActionMessageEvent *msg= &xkbev->message; SYSLOG( LOG_DEBUG, "message: 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n", msg->message[0],msg->message[1], msg->message[2],msg->message[3], msg->message[4],msg->message[5]); SYSLOG( LOG_DEBUG, "key %d, event: %s, follows: %s\n",msg->keycode, (msg->press?"press":"release"), (msg->key_event_follows?"yes":"no")); return; } #endif void uError(char* s,...) { va_list ap; va_start(ap, s); fprintf(errorFile,"%s: ", progname); vfprintf(errorFile,s,ap); fprintf(errorFile,": %s\n", strerror(errno)); fflush(errorFile); va_end(ap); return; } void uInfo(char* s,...) { va_list ap; va_start(ap, s); fprintf(errorFile,"%s: ", progname); vfprintf(errorFile,s,ap); fflush(errorFile); va_end(ap); return; } void uInternalError(char* s,...) { va_list ap; va_start(ap, s); fprintf(errorFile,"%s: internal error: ", progname); vfprintf(errorFile,s,ap); fflush(errorFile); va_end(ap); return; } /* * Test whether filename is readable */ int testReadable(const char* filename) { int fd; if ( (fd = open(filename, O_RDONLY)) == -1 ) { return 0; } else { close(fd); return 1; } } /***====================================================================***/ static int dummy() { return 0; /* grin */ } #include static int dummyHandler(Display* d, XErrorEvent* ev) { /* Code below is mainly from the function XmuPrintDefaultErrorMessage */ _XExtension *ext = (_XExtension *)NULL; char major_op[128]; char minor_op[128]; char mesg[128]; /* Get string of Major and Minor opcode */ /* XXX this is non-portable */ for (ext = d->ext_procs; ext && (ext->codes.major_opcode != ev->request_code); ext = ext->next) ; if (ext) XmuSnprintf(major_op, sizeof(major_op), "%s", ext->name); else major_op[0] = '\0'; XmuSnprintf(mesg, sizeof(mesg), "%s.%d", ext->name, ev->minor_code); XGetErrorDatabaseText(dpy, "XRequest", mesg, "", minor_op, BUFSIZ); if ( d == dpy && ev->error_code == BadValue && strncmp( major_op, "XKEYBOARD", 9 ) == 0 && strncmp( minor_op, "XkbSetMap", 9 ) == 0 #if 0 ev->request_code == 149 /* XKEYBOARD */ && ev->minor_code == 9 /* XkbSetMap */ #endif ) { dummyErrFlag = True; SYSLOG( LOG_DEBUG, "X BadValue Error" ); } else { XmuPrintDefaultErrorMessage(d, ev, stderr); uInfo("Program exiting..."); bailout(); } return 0; } static void commitXKBChanges(int tcode) { XkbMapChangesRec mapChangeRec; /* Commit the change back to the server */ bzero(&mapChangeRec, sizeof(mapChangeRec)); mapChangeRec.changed = XkbKeySymsMask | XkbKeyTypesMask; mapChangeRec.first_key_sym = tcode; mapChangeRec.num_key_syms = 1; // mapChangeRec.first_key_act = tcode; // mapChangeRec.num_key_acts = 1; mapChangeRec.first_type = 0; mapChangeRec.num_types = xkb->map->num_types; if ( XkbChangeMap(dpy, xkb, &mapChangeRec) ) { #ifdef DEBUG printf("map changed done: %d\n",tcode); #endif } else { uError("map changed failed\n"); bailout(); } } void initializeX(char* prg) { KeySym newKS; XkbMessageAction xma; XkbMapChangesRec mapChangeRec; int types[1]; int i; int tcode; dpy = GetDisplay(prg, dpyName, &xkbOpcode, &xkbEventCode); if (!dpy) bailout(); /* This function is NECESSARY to prevent the X BadValue error * when running in Synchronize mode */ XSetAfterFunction(dpy, dummy); XSetErrorHandler(dummyHandler); /* Construct the Message Action struct */ xma.type = XkbSA_ActionMessage; xma.flags = XkbSA_MessageOnPress; strcpy((char *) xma.message," "); #if 0 #ifdef DEBUG SYSLOG( LOG_DEBUG, "num_acts:%d size_acts:%d", xkb->server->num_acts, xkb->server->size_acts ); #endif #endif /* Add KeySym to the key codes, as they don't have any KeySyms before */ for ( i = 0; i < NUM_PREDEF_HOTKEYS + kbd.noOfCustomCmds; i++ ) { if ( i < NUM_PREDEF_HOTKEYS ) { tcode = (kbd.defCmds)[i].key; newKS = (kbd.defCmds)[i].keysym; if ( tcode == 0 ) continue; } else { tcode = kbd.customCmds[i-NUM_PREDEF_HOTKEYS].keycode; newKS = kbd.customCmds[i-NUM_PREDEF_HOTKEYS].keysym; } #if 0 xkb= XkbGetKeyboard(dpy,XkbGBN_AllComponentsMask,XkbUseCoreKbd); xkb= XkbGetKeyboard(dpy,XkbAllComponentsMask,XkbUseCoreKbd); #endif xkb = XkbGetMap(dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); if (!xkb) { uError("XkbGetMap failed\n"); bailout(); } /* Check the keycode range */ if ( ! XkbKeycodeInRange(xkb, tcode) ) { uInfo("The keycode %d cannot be used, as it's not between the min(%d) and max(%d) keycode of your keyboard.\n" "Please increase the 'maximum' value in /usr/X11R6/lib/X11/xkb/keycodes/xfree86, then restart X.", tcode, xkb-> min_key_code, xkb->max_key_code); continue; } /* Assign a group to the key code */ types[0] = XkbOneLevelIndex; if ( XkbChangeTypesOfKey(xkb, tcode, 1, XkbGroup1Mask, types, NULL) != Success ) { uError("XkbChangeTypesOfKey failed"); bailout(); } /* types[XkbGroup1Index] = XkbKeyTypeIndex( xkb, code, XkbGroup1Index ); */ /* Change their Keysyms */ if ( XkbResizeKeySyms( xkb, tcode, 1 ) == NULL ) { uInfo("resize keysym failed\n"); bailout(); } /* Assign a new keysym to the key code. According to * XF86keysym.h, the vendor specific XFree86 keysym range is * 0x1008FF01 to 0x1008FFFF. So I just assign keysyms to the * internet keys starting from 0x1008FF01. I think it doesn't * really matter to which one I use for the moment. For the * exact keysyms, please refer to XKeysymDB, */ // newKS = 0x1008FF01 + tcode; *XkbKeySymsPtr(xkb,tcode) = newKS; #if 0 printf("keycode %d owns keysym %x\n", tcode,newKS); XChangeKeyboardMapping(dpy, tcode, 1, &newKS, 1); #endif /* Add one key action to it */ if ( XkbResizeKeyActions( xkb, tcode, 1 ) == NULL ) { uInfo("resize key action failed\n"); bailout(); } commitXKBChanges(tcode); commitXKBChanges(tcode); /* YES, we need to call it twice! */ /* Assign the Message Action to the key code */ (&(xkb->server->acts[ xkb->server->key_acts[tcode] ]))[0] = (XkbAction) xma; /* Commit the change back to the server. Yeah we need to do it * here instead of in commit XKBChanges(). Strange, eh? But * you just can't, I wonder what the fsck X is doing. I get * this just by lots of trial-and-error and many nights of no * sleeping to trace X with gdb. */ bzero(&mapChangeRec, sizeof(mapChangeRec)); mapChangeRec.changed = XkbKeyActionsMask; mapChangeRec.first_key_act = tcode; mapChangeRec.num_key_acts = 1; if ( XkbChangeMap(dpy, xkb, &mapChangeRec) ) { #ifdef DEBUG printf("map changed done: %d\n",tcode); #endif } else { uError("map changed failed\n"); bailout(); } #if 0 #ifdef DEBUG SYSLOG( LOG_DEBUG, "idx:%d has action:%d no.:%d noOfGrps:%d\n", xkb->server->key_acts[tcode], XkbKeyHasActions(xkb,tcode), XkbKeyNumActions(xkb,tcode), XkbKeyNumGroups(xkb,tcode) ); SYSLOG( LOG_DEBUG, "keycode %d\nbefore: %d", tcode, XkbKeyActionsPtr(xkb,tcode)[0].type); #endif // xkb = XkbGetMap(dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); #ifdef DEBUG SYSLOG( LOG_DEBUG, "after: %d",XkbKeyActionsPtr(xkb,tcode)[0].type); #endif #endif if ( dummyErrFlag ) /* dummyHandler() have set it */ { i--; /* need to redo this round, as the action message was not assigned to this keysym */ dummyErrFlag = False; } } /* Select the ActionMessage event in any circumstances */ if ( !XkbSelectEvents( dpy, XkbUseCoreKbd, XkbActionMessageMask, XkbActionMessageMask )) { uInfo("Couldn't select desired XKB events\n"); bailout(); } } /* Initialize XOSD */ void initXOSD(void) { #ifdef HAVE_LIBXOSD if ( osd ) { osd = xosd_create(3); xosd_set_font(osd, xstrdup(getConfig("osd_font"))); xosd_set_shadow_offset(osd, 3); xosd_set_colour(osd, getConfig("osd_color")); xosd_set_pos(osd, strncmp(getConfig("osd_position"),"top",3) ?XOSD_bottom:XOSD_top); xosd_set_vertical_offset(osd, atoi(getConfig("osd_offset"))); } #endif } /* fork2() -- like fork, but the new process is immediately orphaned * (won't leave a zombie when it exits) * Returns 1 to the parent, not any meaningful pid. * The parent cannot wait() for the new process (it's unrelated). */ /* This version assumes that you *haven't* caught or ignored SIGCHLD. */ /* If you have, then you should just be using fork() instead anyway. */ /* fork2() is from the Unix Programming FAQ */ int fork2(void) { pid_t pid; int status; if (!(pid = fork())) { switch (fork()) { case 0: return 0; case -1: _exit(errno); /* assumes all errnos are <256 */ default: _exit(0); } } if (pid < 0 || waitpid(pid,&status,0) < 0) return -1; if (WIFEXITED(status)) if (WEXITSTATUS(status) == 0) return 1; else errno = WEXITSTATUS(status); else errno = EINTR; /* well, sort of :-) */ return -1; } int main(int argc, char *argv[]) { XkbEvent ev; char *alsacard, *alsacontrols; errorFile = stderr; openlog( PACKAGE, LOG_CONS | LOG_PID, LOG_USER ); readConfigFile(); /* initialize the kbd variable */ kbd.noOfCustomCmds = 0; kbd.defCmds = XCALLOC( defEntry, NUM_PREDEF_HOTKEYS ); if ( !parseArgs(argc,argv) ) bailout(); alsacard = getConfig("ALSAcard"); alsacontrols = getConfig("ALSAcontrols"); if(alsacard && alsacontrols && configALSA(alsacard, alsacontrols) == 0) { haveALSA = True; } #if HAVE_GTK if ( !noSplash ) { int pid; if ( (pid=fork2()) == -1 ) { uInfo("Cannot spawn new process\n"); } else if ( pid == 0 ) { gtk_init(&argc,&argv); splash_create (SPLASH_IMAGE, 2000); /* show splash for 2 sec */ gtk_main(); } } #endif /* HAVE_GTK */ if (background) { if ( fork() !=0 ) { SYSLOG( LOG_NOTICE, "Running in the background"); _exit(0); } else { chdir("/"); } } initializeX(argv[0]); #ifdef HAVE_LIBXOSD initXOSD(); #endif #if HAVE_GTK if ( noSplash ) #endif printf( "%s started successfully.\n", progname ); /* Process the events in a forever loop */ while (1) { XNextEvent( dpy, &ev.core ); #ifdef DEBUG printXkbActionMessage( stdout, &ev ); #endif if ( ev.type == xkbEventCode+XkbEventCode && ev.any.xkb_type == XkbActionMessage ) { SYSLOG( LOG_INFO, "Keycode %d pressed\n", ev.message.keycode ); #ifdef HAVE_LIBXOSD if (osd) xosd_set_timeout(osd, atoi(getConfig("osd_timeout"))); #endif if ( keytypes[ev.message.keycode] == 1 ) { /* Apps stuffs */ launchApp(ev.message.keycode); } else /* Sound stuffs */ if ( ev.message.keycode == (kbd.defCmds)[ejectKey].key ) { /* Use thread to improve the responsiveness */ pthread_t tp; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); pthread_create (&tp, &attr, (void *)ejectDisc, NULL); } else if ( ev.message.keycode == (kbd.defCmds)[volUpKey].key ) { adjustVol(volUpAdj); } else if ( ev.message.keycode == (kbd.defCmds)[volDownKey].key ) { adjustVol(volDownAdj); } else if ( ev.message.keycode == (kbd.defCmds)[muteKey].key ) { doMute(); } else if ( ev.message.keycode == (kbd.defCmds)[backlightUpKey].key ) { adjustBacklight(backlightUpAdj); } else if ( ev.message.keycode == (kbd.defCmds)[backlightDownKey].key ) { adjustBacklight(backlightDownAdj); } else /* APM stuffs */ if ( ev.message.keycode == (kbd.defCmds)[sleepKey].key || ev.message.keycode == (kbd.defCmds)[wakeupKey].key ) { sleepState(STANDBY); } else if ( ev.message.keycode == (kbd.defCmds)[powerDownKey].key ) { sleepState(SUSPEND); } else { lookupUserCmd(ev.message.keycode); /* User-defined stuffs */ } } } #ifdef HAVE_LIBXOSD if (osd) xosd_destroy(osd); #endif XCloseDisplay(dpy); closelog(); return 0; } hotkeys-0.5.7.4/src/XF86keysym.h0000664000000000000000000000425311173730537013153 0ustar /* $XFree86: xc/include/XF86keysym.h,v 1.5 2000/07/07 00:44:58 dawes Exp $ */ /* * XFree86 vendor specific keysyms. * * The XFree86 keysym range is 0x1008FF01 - 0x1008FFFF. * * When adding new entries, the xc/lib/XKeysymDB file should also be * updated to make the new entries visible to Xlib. */ /* * ModeLock * * This one is old, and not really used any more since XKB offers this * functionality. */ #define XF86XK_ModeLock 0x1008FF01 /* Mode Switch Lock */ /* * Note, 0x1008FF02 - 0x1008FF0F are free and should be used for misc new * keysyms that don't fit into any of the groups below. */ /* * Keys found on some "Internet" keyboards. */ #define XF86XK_Standby 0x1008FF10 #define XF86XK_AudioLowerVolume 0x1008FF11 #define XF86XK_AudioMute 0x1008FF12 #define XF86XK_AudioRaiseVolume 0x1008FF13 #define XF86XK_AudioPlay 0x1008FF14 #define XF86XK_AudioStop 0x1008FF15 #define XF86XK_AudioPrev 0x1008FF16 #define XF86XK_AudioNext 0x1008FF17 #define XF86XK_HomePage 0x1008FF18 #define XF86XK_Mail 0x1008FF19 #define XF86XK_Start 0x1008FF1A #define XF86XK_Search 0x1008FF1B #define XF86XK_AudioRecord 0x1008FF1C /* These are sometimes found on PDA's (e.g. Palm, PocketPC or elsewhere) */ #define XF86XK_Calculator 0x1008FF1D #define XF86XK_Memo 0x1008FF1E #define XF86XK_ToDoList 0x1008FF1F #define XF86XK_Calendar 0x1008FF20 #define XF86XK_PowerDown 0x1008FF21 #define XF86XK_ContrastAdjust 0x1008FF22 #define XF86XK_RockerUp 0x1008FF23 #define XF86XK_RockerDown 0x1008FF24 #define XF86XK_RockerEnter 0x1008FF25 /* Some more "Internet" keyboard symbols */ #define XF86XK_Back 0x1008FF26 #define XF86XK_Forward 0x1008FF27 #define XF86XK_Stop 0x1008FF28 #define XF86XK_Refresh 0x1008FF29 #define XF86XK_PowerOff 0x1008FF1A #define XF86XK_WakeUp 0x1008FF1B /* Note, 0x1008FF2C - 0x1008FF2F are free and should be used next */ /* Some more ... */ #define XF86XK_Favorites 0x1008FF30 #define XF86XK_AudioPause 0x1008FF31 #define XF86XK_AudioMedia 0x1008FF32 #define XF86XK_MyComputer 0x1008FF33 #define XF86XK_VendorHome 0x1008FF34 #define XF86XK_LightBulb 0x1008FF35 #define XF86XK_Shop 0x1008FF36 #define XF86XK_BacklightUp 0x1008FF37 #define XF86XK_BacklightDown 0x1008FF38 hotkeys-0.5.7.4/src/Makefile.am0000664000000000000000000000221012135107513013057 0ustar bin_PROGRAMS = hotkeys hotkeys_SOURCES = hotkeys.c kbddef.c conf.c fixVMware.c apmlib.c xmalloc.c \ splash.c amixer.c xbacklight.c \ XF86keysym.h apm.h common.h conf.h hotkeys.h kbddef.h \ xmalloc.h splash.h amixer.h xbacklight.h sysconf_DATA = hotkeys.conf man_MANS = hotkeys.1 CFLAGS = @CFLAGS@ @X_CFLAGS@ @XML_CFLAGS@ @LIBXOSD_CFLAGS@ @GTK_CFLAGS@ -I.. # -DDEBUG LIBS = @LIBS@ @X_LIBS@ @XML_LIBS@ @LIBXOSD_LIBS@ @GTK_LIBS@ -lasound -lXrandr -lXrender -lX11 -lm DEFS = @DEFS@ -DSHAREDIR=\"@datadir@/@PACKAGE@\" \ -DCONFDIR=\"@sysconfdir@\" -DCONFIG_NAME=\"@PACKAGE@.conf\" pkgdata_DATA = splash.png $(pkgdata_DATA): ## uncomment the following if hotkeys requires the math library ##hotkeys_LDADD=-lm ##EXTRA_DIST=hotkeys.lsm.in hotkeys.spec.in hotkeys.texinfo EXTRA_DIST = $(man_MANS) $(sysconf_DATA) $(pkgdata_DATA) ## if you write a self-test script named `chk', uncomment the ## following and add `chk' to the EXTRA_DIST list ##TESTS=chk ## build and install the .info pages ##info_TEXINFOS = hotkeys.texinfo ##hotkeys_TEXINFOS = gpl.texinfo hotkeys-0.5.7.4/src/hotkeys.conf0000664000000000000000000000277111173730024013374 0ustar ############################################################ # Global configuration for hotkeys # ############################################################ # These are the default values. # A line starting with # is a comment. ### Specify the default keyboard (without the .def extension) so you ### don't need to specify -t every time # Kbd=acerwl # CDROM=/dev/cdrom ### ALSA card # ALSAcard=default ### List of ALSA control names, separated by "|" # ALSAcontrols=Master # PrevTrack=xmms --rew # Play=xmms --play-pause # Stop=xmms --stop # Pause=xmms --pause # NextTrack=xmms --fwd # Rewind= # WebBrowser=mozilla # Email=mozilla -mail # Calculator=xcalc # FileManager=gmc # MyComputer=gmc # MyDocuments=gmc # Favorites=gnome-moz-remote --remote=openBookmarks # Transfer=gtp # Record=grecord # Shell=xterm -rv # ScreenSaver=xscreensaver-command -activate # NewsReader=mozilla -news # Communities=mozilla -remote 'openURL(http://slashdot.org)' # Search=mozilla -remote 'openURL(http://google.com)' # Idea=mozilla -remote 'openURL(http://sourceforge.net)' # Shopping=mozilla -remote 'openURL(http://thinkgeek.com)' # Go=mozilla -remote 'openURL(http://linux.com)' # Print=lpr # Rotate= # osd_font=-arphic-ar pl kaitim big5-bold-i-normal--0-250-0-0-c-0-*-* ### For the color, you can either use the strings in /etc/X11/rgb.txt, ### or use the RGB syntax #RRGGBB, e.g. ##A086FF # osd_color=LawnGreen # osd_timeout=3 ### osd_position is either 'top' or 'bottom' # osd_position=bottom # osd_offset=25 hotkeys-0.5.7.4/src/apm.h0000664000000000000000000000461107231351371011764 0ustar /* apm.h -- Header file for sample APM interface routines * Created: Mon Jan 8 11:40:50 1996 by r.faith@ieee.org * Revised: Thu Apr 4 21:57:31 1996 by r.faith@ieee.org * Copyright 1996 Rickard E. Faith (r.faith@ieee.org) * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: apm.h,v 1.1 2001/01/17 17:14:33 hajime Exp $ * */ #include #include #define APM_PROC "/proc/apm" #define APM_DEVICE "/dev/apm_bios" #define APM_DEV "/proc/devices" #define APM_NAME "apm_bios" #ifndef APM_32_BIT_SUPPORT #define APM_32_BIT_SUPPORT 0x0002 #endif typedef struct apm_info { const char driver_version[10]; int apm_version_major; int apm_version_minor; int apm_flags; int ac_line_status; int battery_status; int battery_flags; int battery_percentage; int battery_time; int using_minutes; } apm_info; extern int apm_exists(void); extern int apm_read(apm_info * i); extern dev_t apm_dev(void); extern int apm_open(void); extern int apm_close(int fd); extern int apm_get_events(int fd, int timeout, apm_event_t * events, int n); extern int apm_suspend(int fd); extern int apm_standby(int fd); extern int apm_set_ignore(int fd, int mode); extern unsigned int apm_last_error(int fd); extern const char *apm_error_name( unsigned int err ); extern int apm_reject(int fd); extern const char *apm_event_name(apm_event_t event); extern const char *apm_time(time_t t); extern const char *apm_delta_time(time_t then, time_t now); extern const char *apm_time_nosec(time_t t); #define SUSPEND 0 #define STANDBY 1 #define IGNORE 2 #define NOIGNORE 3 /* Linux Kernel APM drivers version 1.10 and higher permit suspend rejections. */ #ifdef APM_IOC_REJECT #define APM_REJECT_ENABLED #endif hotkeys-0.5.7.4/src/conf.c0000664000000000000000000001563311173735665012151 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: conf.c,v 1.10 2002/11/27 19:30:08 ypwong Exp $ */ #if HAVE_CONFIG_H # include #endif #include "common.h" #include #include #include #include #include "conf.h" #include "hotkeys.h" char* conf_keys[] = { /* KEY DEFAULT VALUE */ /* Specify the default keyboard to use */ "Kbd", "\0", /* CDROM device */ "CDROM", "/dev/cdrom", /* ALSA card */ "ALSAcard", "default", /* List of ALSA control names, separated by "|" */ //"ALSAcontrols" "Master", /* general actions */ "PrevTrack", "xmms --rew", "Play", "xmms --play-pause", "Stop", "xmms --stop", "Pause", "xmms --pause", "NextTrack", "xmms --fwd", /* "Rewind", "\0", */ "WebBrowser", "mozilla", "Email", "mozilla -mail", "Calculator", "xcalc", "FileManager", "gmc", "MyComputer", "gmc", "MyDocuments", "gmc", "Favorites", "gnome-moz-remote --remote=openBookmarks", "Transfer", "gftp", "Record", "grecord", "Shell", "xterm -rv", "NewsReader", "mozilla -news", "ScreenSaver", "xscreensaver-command -activate", "Communities", "mozilla -remote 'openURL(http://slashdot.org)'", "Search", "mozilla -remote 'openURL(http://google.com)'", "Idea", "mozilla -remote 'openURL(http://sourceforge.net)'", "Shopping", "mozilla -remote 'openURL(http://thinkgeek.com)'", "Go", "mozilla -remote 'openURL(http://linux.com)'", "Print", "lpr", /* "Screendump", "xwd -root", */ /* xosd stuffs */ // "osd_font", "-*-lucidatypewriter-bold-r-normal-*-*-250-*-*-*-*-*-*", "osd_font", "lucidasanstypewriter-bold-24", "osd_color", "LawnGreen", "osd_timeout", "3", "osd_position", "bottom", "osd_offset", "25", NULL, NULL }; DB * dbp; /***====================================================================***/ char* getConfig(char* key) { DBT k, data; /* Clear the structures as per db2's documentation * XXX: don't whether this is still needed in db3 */ memset( &k, 0, sizeof(k) ); memset( &data, 0, sizeof(data) ); k.data = key; k.size = strlen(key) + 1; if ( dbp->get(dbp, NULL, &k, &data, 0) == 0 ) { return data.data; } else { return NULL; } } int setConfig(char* key, char* value, u_int32_t flags) { DBT k, data; /* Clear the structures as per db2's documentation */ memset( &k, 0, sizeof(k) ); memset( &data, 0, sizeof(data) ); k.data = xstrdup(key); k.size = strlen(key) + 1; data.data = xstrdup(value); data.size = strlen(value) + 1; return dbp->put(dbp, NULL, &k, &data, flags); } static void fillDefaults(void) { char** key = conf_keys; int err; do { err = setConfig(*key, *(key+1), DB_NOOVERWRITE); if ( err != 0 && err != DB_KEYEXIST ) { uError("db: put: %s", strerror(errno)); bailout(); } key += 2; } while ( *key != NULL ); } static int getKey(FILE* fp, char* key) { int c; int idx=0; while ( (c=fgetc(fp)) != '=' ) { if (c == EOF) return -1; else if ( idx == 0 ) { if ( c == '#' ) { /* this line is a comment, so we read until the newline */ while ( (c=fgetc(fp)) != '\n' ) { if (c == EOF) return -1; } return 1; } else if ( c == '\n' || c == ' ' ) /* blank line or empty spaces */ { continue; } } key[idx] = (char)c; if ( ++idx == MAX_KEY_LEN-1 ) break; } key[idx] = '\0'; return 0; } static int getValue(FILE* fp, char* value) { int c; int idx=0; while ( (c=fgetc(fp)) != '\n' ) { if (c == EOF) return -1; else { value[idx] = (char)c; if ( ++idx == MAX_VALUE_LEN-1 ) break; } } value[idx] = '\0'; return 0; } static void parseConfigFile(char* filename) { FILE* fp; char key[MAX_KEY_LEN]; char keyvalue[MAX_VALUE_LEN]; int r; if ( (fp = fopen( filename, "r" )) != NULL ) { while ( !feof(fp) ) { r = getKey(fp, key); if ( r == -1 ) /* EOF, etc */ break; else if ( r == 1 ) /* comment */ continue; if ( getValue(fp, keyvalue) == -1 ) break; if ( setConfig( key, keyvalue, 0 ) != 0 ) { uError("db: put: %s", strerror(errno)); bailout(); } } fclose(fp); } } void readConfigFile(void) { DB_ENV* dbenv = NULL; int ret; char* h; char filename[MAXPATHLEN]; /* Create the hash table */ if ( (ret = db_create(&dbp, dbenv, 0)) != 0 ) { uError("Failed in db_create: %d", ret); bailout(); } if ( (ret = dbp->open(dbp, NULL, NULL, NULL, DB_HASH, DB_CREATE, 0664)) != 0 ) { uError("Can't create hash table: %d", ret); bailout(); } fillDefaults(); /* parse the global config first */ strncpy( filename, CONFDIR, MAXPATHLEN-strlen(CONFIG_NAME)-2 ); strcat( filename, "/" ); strcat( filename, CONFIG_NAME ); if ( testReadable(filename) ) parseConfigFile(filename); /* See whether the user has his own config file */ if ( (h = getenv("HOME")) != NULL ) { strncpy( filename, h, MAXPATHLEN-2-strlen(PACKAGE)-1-strlen(CONFIG_NAME)-1 ); strcat( filename, "/." PACKAGE "/" ); strcat( filename, CONFIG_NAME ); if ( testReadable(filename) ) parseConfigFile(filename); } } hotkeys-0.5.7.4/src/common.h0000664000000000000000000002515607253725601012513 0ustar /* system-dependent definitions for hotkeys Written for GNU fileutils. Adapted for autoproject by James R. Van Zandt. Copyright (C) 89, 91, 92, 93, 94, 1996 Free Software Foundation, Inc. Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Include sys/types.h before this file. */ #ifndef __COMMON_H #define __COMMON_H #include #ifdef STAT_MACROS_BROKEN #undef S_ISBLK #undef S_ISCHR #undef S_ISDIR #undef S_ISFIFO #undef S_ISLNK #undef S_ISMPB #undef S_ISMPC #undef S_ISNWK #undef S_ISREG #undef S_ISSOCK #endif /* STAT_MACROS_BROKEN. */ #ifndef S_IFMT #define S_IFMT 0170000 #endif #if !defined(S_ISBLK) && defined(S_IFBLK) #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) #endif #if !defined(S_ISCHR) && defined(S_IFCHR) #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) #endif #if !defined(S_ISDIR) && defined(S_IFDIR) #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif #if !defined(S_ISREG) && defined(S_IFREG) #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #endif #if !defined(S_ISFIFO) && defined(S_IFIFO) #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) #endif #if !defined(S_ISLNK) && defined(S_IFLNK) #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) #endif #if !defined(S_ISSOCK) && defined(S_IFSOCK) #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) #endif #if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */ #define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) #define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) #endif #if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */ #define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) #endif #ifndef S_IEXEC #define S_IEXEC S_IXUSR #endif #ifndef S_IXUSR #define S_IXUSR S_IEXEC #endif #ifndef S_IXGRP #define S_IXGRP (S_IEXEC >> 3) #endif #ifndef S_IXOTH #define S_IXOTH (S_IEXEC >> 6) #endif #ifndef S_IXUGO #define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #if !defined(HAVE_MKFIFO) #define mkfifo(path, mode) (mknod ((path), (mode) | S_IFIFO, 0)) #endif #ifdef HAVE_SYS_PARAM_H #include #endif /* should be included before any preprocessor test of _POSIX_VERSION. */ #ifdef HAVE_UNISTD_H #include #endif #ifndef STDIN_FILENO #define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO #define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO #define STDERR_FILENO 2 #endif /* FIXME: Don't use _POSIX_VERSION. */ #ifndef _POSIX_VERSION off_t lseek (); #endif #ifdef TM_IN_SYS_TIME #include #else #include #endif #if 0 /* I have no need of these */ /* Since major is a function on SVR4, we can't use `ifndef major'. */ #ifdef MAJOR_IN_MKDEV #include #define HAVE_MAJOR #endif #ifdef MAJOR_IN_SYSMACROS #include #define HAVE_MAJOR #endif #ifdef major /* Might be defined in sys/types.h. */ #define HAVE_MAJOR #endif #ifndef HAVE_MAJOR #define major(dev) (((dev) >> 8) & 0xff) #define minor(dev) ((dev) & 0xff) #define makedev(maj, min) (((maj) << 8) | (min)) #endif #undef HAVE_MAJOR #endif #ifdef HAVE_UTIME_H #include #endif /* Some systems (even some that do have ) don't declare this structure anywhere. */ #ifndef HAVE_STRUCT_UTIMBUF struct utimbuf { long actime; long modtime; }; #endif /* Don't use bcopy! Use memmove if source and destination may overlap, memcpy otherwise. */ #ifdef HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # include char *memchr (); #endif #include #ifndef errno extern int errno; #endif #ifdef STDC_HEADERS #define getopt system_getopt #include #undef getopt #else /* not STDC_HEADERS */ char *getenv (); #endif /* STDC_HEADERS */ /* The following test is to work around the gross typo in systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ #if !EXIT_FAILURE # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif #ifdef HAVE_FCNTL_H #include #else #include #endif #ifndef SEEK_SET #define SEEK_SET 0 #define SEEK_CUR 1 #define SEEK_END 2 #endif #ifndef F_OK #define F_OK 0 #define X_OK 1 #define W_OK 2 #define R_OK 4 #endif #ifdef HAVE_DIRENT_H # include # define NLENGTH(direct) (strlen((direct)->d_name)) #else /* not HAVE_DIRENT_H */ # define dirent direct # define NLENGTH(direct) ((direct)->d_namlen) # ifdef HAVE_SYS_NDIR_H # include # endif /* HAVE_SYS_NDIR_H */ # ifdef HAVE_SYS_DIR_H # include # endif /* HAVE_SYS_DIR_H */ # ifdef HAVE_NDIR_H # include # endif /* HAVE_NDIR_H */ #endif /* HAVE_DIRENT_H */ #ifdef CLOSEDIR_VOID /* Fake a return value. */ #define CLOSEDIR(d) (closedir (d), 0) #else #define CLOSEDIR(d) closedir (d) #endif /* Get or fake the disk device blocksize. Usually defined by sys/param.h (if at all). */ #ifndef DEV_BSIZE #ifdef BSIZE #define DEV_BSIZE BSIZE #else /* !BSIZE */ #define DEV_BSIZE 4096 #endif /* !BSIZE */ #endif /* !DEV_BSIZE */ /* Extract or fake data from a `struct stat'. ST_BLKSIZE: Optimal I/O blocksize for the file, in bytes. ST_NBLOCKS: Number of 512-byte blocks in the file (including indirect blocks). */ #ifndef HAVE_ST_BLOCKS # define ST_BLKSIZE(statbuf) DEV_BSIZE # if defined(_POSIX_SOURCE) || !defined(BSIZE) /* fileblocks.c uses BSIZE. */ # define ST_NBLOCKS(statbuf) (((statbuf).st_size + 512 - 1) / 512) # else /* !_POSIX_SOURCE && BSIZE */ # define ST_NBLOCKS(statbuf) (st_blocks ((statbuf).st_size)) # endif /* !_POSIX_SOURCE && BSIZE */ #else /* HAVE_ST_BLOCKS */ /* Some systems, like Sequents, return st_blksize of 0 on pipes. */ # define ST_BLKSIZE(statbuf) ((statbuf).st_blksize > 0 \ ? (statbuf).st_blksize : DEV_BSIZE) # if defined(hpux) || defined(__hpux__) || defined(__hpux) /* HP-UX counts st_blocks in 1024-byte units. This loses when mixing HP-UX and BSD filesystems with NFS. */ # define ST_NBLOCKS(statbuf) ((statbuf).st_blocks * 2) # else /* !hpux */ # if defined(_AIX) && defined(_I386) /* AIX PS/2 counts st_blocks in 4K units. */ # define ST_NBLOCKS(statbuf) ((statbuf).st_blocks * 8) # else /* not AIX PS/2 */ # if defined(_CRAY) # define ST_NBLOCKS(statbuf) ((statbuf).st_blocks * ST_BLKSIZE(statbuf)/512) # else /* not AIX PS/2 nor CRAY */ # define ST_NBLOCKS(statbuf) ((statbuf).st_blocks) # endif /* not _CRAY */ # endif /* not AIX PS/2 */ # endif /* !hpux */ #endif /* HAVE_ST_BLOCKS */ /* Convert B 512-byte blocks to kilobytes if K is nonzero, otherwise return it unchanged. */ #define convert_blocks(b, k) ((k) ? ((b) + 1) / 2 : (b)) #ifndef RETSIGTYPE #define RETSIGTYPE void #endif #ifdef __GNUC__ # undef alloca # define alloca __builtin_alloca #else # ifdef HAVE_ALLOCA_H # include # else # ifndef _AIX /* AIX alloca decl has to be the first thing in the file, bletch! */ char *alloca (); # endif # endif #endif #include /* Jim Meyering writes: "... Some ctype macros are valid only for character codes that isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when using /bin/cc or gcc but without giving an ansi option). So, all ctype uses should be through macros like ISPRINT... If STDC_HEADERS is defined, then autoconf has verified that the ctype macros don't need to be guarded with references to isascii. ... Defining isascii to 1 should let any compiler worth its salt eliminate the && through constant folding." Bruno Haible adds: "... Furthermore, isupper(c) etc. have an undefined result if c is outside the range -1 <= c <= 255. One is tempted to write isupper(c) with c being of type `char', but this is wrong if c is an 8-bit character >= 128 which gets sign-extended to a negative value. The macro ISUPPER protects against this as well." */ #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define IN_CTYPE_DOMAIN(c) 1 #else #define IN_CTYPE_DOMAIN(c) isascii(c) #endif #ifdef isblank #define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c)) #else #define ISBLANK(c) ((c) == ' ' || (c) == '\t') #endif #ifdef isgraph #define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isgraph (c)) #else #define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (c) && !isspace (c)) #endif #define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c)) #define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c)) #define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c)) #define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c)) #define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c)) #define ISPUNCT(c) (IN_CTYPE_DOMAIN (c) && ispunct (c)) #define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c)) #define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c)) #define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c)) #define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) /* ISDIGIT differs from ISDIGIT_LOCALE, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char. - It's guaranteed to evaluate its argument exactly once. - It's typically faster. Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT_LOCALE unless it's important to use the locale's definition of `digit' even when the host does not conform to Posix. */ #define ISDIGIT(c) ((unsigned) (c) - '0' <= 9) #ifndef __P #if defined (__GNUC__) || (defined (__STDC__) && __STDC__) #define __P(args) args #else #define __P(args) () #endif /* GCC. */ #endif /* Not __P. */ /* Take care of NLS matters. */ #if HAVE_LOCALE_H # include #endif #if !HAVE_SETLOCALE # define setlocale(Category, Locale) /* empty */ #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # undef bindtextdomain # define bindtextdomain(Domain, Directory) /* empty */ # undef textdomain # define textdomain(Domain) /* empty */ # define _(Text) Text #endif #define STREQ(a,b) (strcmp((a), (b)) == 0) #include "xmalloc.h" /* syslog() wrapper macro */ #define SYSLOG(l,args...) if (loglevel>=l) syslog(l, args) #ifdef HAVE_LIBXOSD # include "xosd.h" #endif #endif /* __COMMON_H */ hotkeys-0.5.7.4/src/kbddef.h0000664000000000000000000001065411173735665012446 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: kbddef.h,v 1.9 2001/03/19 06:51:24 hajime Exp $ */ #ifndef __KBDDEF_H #define __KBDDEF_H #include /* Function prototypes */ Bool readDefFile(const char* filename); void parseError(const char* filename); extern Display * dpy; extern int keytypes[255]; typedef enum { prevTrackKey, playKey, stopKey, pauseKey, nextTrackKey, browserKey, emailKey, helpKey, communitiesKey, /* ???, in MS kbd */ searchKey, ideasKey, /* ???, in MS kbd */ shoppingKey, printKey, goKey, recordKey, shellKey, /* correspond to DOS key */ transferKey, /* ???, in MX3000 */ myDocumentsKey, myComputerKey, favoritesKey, calculatorKey, newsReaderKey, iNewsKey, rewindKey, rotateKey, /* Rotate windows???, in MX3000 */ screensaverKey, prog1, prog2, TYPE_LAUNCH, /*** Before this point, all these keys will launch applications. After this point, the functions are built into the program. ***/ ejectKey, volUpKey, volDownKey, muteKey, backlightUpKey, backlightDownKey, wakeupKey, powerDownKey, sleepKey, suspendKey, NUM_PREDEF_HOTKEYS } hotkey; /* A struct for const data */ typedef struct { char* name; /* literal string of a hotkey functionality in definition file */ hotkey key; /* numerical index of the functionality */ KeySym keysym; /* the corresponding keysym defined in XF86keysym.h */ } defEntry; extern const defEntry defStr[]; typedef struct { int keycode; char* command; char* desc; KeySym keysym; } hotkeyCmd; typedef struct { char* shortName; char* longName; int noOfKeys; // hotkey* keycodes; defEntry* defCmds; int noOfCustomCmds; hotkeyCmd* customCmds; } keyboard; /* * Keycodes of Microsoft Internet keyboard. * * courtesy of jas * Play/Pause 162 Track Repeat/Back 144 Track Skip/Next 153 Stop 164 Eject 152 Mail 158 Communities 166 'Compaq' 165 Internet 163 Search 161 Ideas 146 Shopping 178 Print 232 Go 159 Mute 160 Volume- 174 Volume+ 176 */ /* * Keycodes of Memorex MX3000 keyboard * * courtesy of Jeffrey Panczyk * 144 Back one song 146 (a picture of three files with an arrow) on Windows it's function is Rotate...I don't know what it does. 147 Rec 148 Dos 151 Close CD 152 X*fer (doesn't do anything under Windows) 153 forward one song 158 Eject CD 159 My Documents 160 Mute 161 Calculator 162 Play/Pause 164 Stop 166 iNews 174 Volume Down 176 Volume Up 178 World Wide Web normally/Wake Up if in Sleep mode 222 Power 223 Sleep 235 My Computer 236 e-Mail 237 Rew -> (not sure what this does) */ /* * Keycodes of Silitek SK-7100 keyboard * (http://www.silitek.com/keyboards/sk-7100.htm) * * courtesy of Phil * Keycode/Button Label 151 Close 165 CD 152 Video 178 WWW 158 U/P [PJH: No idea what this is for - never used 'doze software) 144 |<< (Track backward) 146 || (Pause) 162 > (Play) 164 |_| (Stop) 153 >>| (Track forward) 174 Vol - 176 Vol + 160 Mute 166 Display */ #endif /* __KBDDEF_H */ hotkeys-0.5.7.4/src/xbacklight.c0000664000000000000000000000716311173730562013332 0ustar /* * Copyright © 2007 Keith Packard * Modified by Joey Hess for hotkeys. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #include #include #include #include #include #include "hotkeys.h" static Atom backlight; static long backlight_get (Display *dpy, RROutput output) { unsigned long nitems; unsigned long bytes_after; unsigned char *prop; Atom actual_type; int actual_format; long value; if (XRRGetOutputProperty (dpy, output, backlight, 0, 4, False, False, None, &actual_type, &actual_format, &nitems, &bytes_after, &prop) != Success) return -1; if (actual_type != XA_INTEGER || nitems != 1 || actual_format != 32) value = -1; else value = *((long *) prop); XFree (prop); return value; } static void backlight_set (Display *dpy, RROutput output, long value) { XRRChangeOutputProperty (dpy, output, backlight, XA_INTEGER, 32, PropModeReplace, (unsigned char *) &value, 1); } int xbacklight (Display *dpy, int change) { int initialized = 0; int screen; int major, minor; int value = 0; if (! initialized) { if (!XRRQueryVersion (dpy, &major, &minor)) { uError("RandR extension missing"); return -1; } if (major < 1 || (major == 1 && minor < 2)) { uError("RandR version %d.%d too old", major, minor); return -1; } backlight = XInternAtom (dpy, "BACKLIGHT", True); if (backlight == None) { uError("No outputs have backlight property"); return -1; } initialized = 1; } for (screen = 0; screen < ScreenCount (dpy); screen++) { Window root = RootWindow (dpy, screen); XRRScreenResources *resources = XRRGetScreenResources (dpy, root); int o; if (!resources) continue; for (o = 0; o < resources->noutput; o++) { RROutput output = resources->outputs[o]; XRRPropertyInfo *info; double cur, new; double min, max; double set; cur = backlight_get (dpy, output); if (cur != -1) { info = XRRQueryOutputProperty (dpy, output, backlight); if (info) { if (info->range && info->num_values == 2) { min = info->values[0]; max = info->values[1]; set = value * (max - min) / 100; new = cur + change; if (new > max) new = max; if (new < min) new = min; backlight_set (dpy, output, (long) new); } XFree (info); } } } XRRFreeScreenResources (resources); } return 0; } hotkeys-0.5.7.4/src/xmalloc.h0000664000000000000000000000144207231351371012645 0ustar #ifndef __XMALLOC_H #define __XMALLOC_H #if __STDC__ # define VOID void #else # define VOID char #endif extern VOID *xmalloc (size_t n); extern VOID *xcalloc (size_t n, size_t s); extern VOID *xrealloc (VOID *p, size_t n); extern char *xstrdup (char *str); #define XCALLOC(type, num) \ ((type *) xcalloc ((num), sizeof(type))) #define XMALLOC(type, num) \ ((type *) xmalloc ((num) * sizeof(type))) #define XREALLOC(type, p, num) \ ((type *) xrealloc ((p), (num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #endif /* __XMALLOC_H */ hotkeys-0.5.7.4/src/hotkeys.10000664000000000000000000001753411173743213012616 0ustar .TH HOTKEYS 1 "4 December 2002" "0.5.7" .SH NAME hotkeys \- A hotkeys daemon for your Internet/multimedia keyboard in X .SH SYNOPSIS .B hotkeys [\fIoptions...\fR] .SH DESCRIPTION .PP This program sits at the back and listens for the "special" hotkeys that you won't normally use on your Internet/Multimedia keyboards. The buttons perform their intended behaviors, such as volume up and down, mute the speaker, control the backlight, launch applications, etc. The functions are completely programmable. It has On-screen display (OSD) to show the volume, program that's being started, etc. Most importantly it looks cool. It features an XML-based keycode configuration file format, which makes it possible to define the hotkeys to launch any programs you want. .SH OPTIONS .TP 8 .B \-h, \-\-help Prints a usage message. .TP 8 .B \-t, \-\-type=TYPE Specify the keyboard type. .TP 8 .B \-l, \-\-kbd\-list Show all supported keyboards, and the code needed for the \-t option. .TP 8 .B \-o, \-\-osd=STATE Turn off or on the on-screen display, default is on if OSD support is compiled with the program. Valid values for STATE are off/0/no/on/1/yes. .TP 8 .B \-L, \-\-loglevel=LEVEL Set the log level in syslog. LEVEL is a value from 0 to 7. 7 will log all messages. .TP 8 .B \-d, \-\-cdrom\-dev=DEVICE Specify the device of your CDROM drive, default to \fI/dev/cdrom\fR. If you give 'none', CDROM related functions will all be disabled. You probably need to define it if you are using devfs. .TP 8 .B \-b, \-\-no\-background Tells \fIhotkeys\fP NOT to fork itself and run in the background. The short option \-b is not backward compatible to version 0.5.6 or before, \-b in these versions means run in the background. .TP 8 .B \-F, \-\-fix\-vmware=TIME This option is mainly for users who run both hotkeys and VMware at the same time. Since VMware will delete some of the information from the memory of the X keyboard configuration due to reasons that I don't understand, a thread will be created to restore the necessary information regularly. The default time interval is 10 seconds. You can specify a time interval as you like, the value is in seconds. I don't think this option will have any side-effect to the operation of VMware, but if you find that this is not true, please file a bug report. (This option is just a hack, I will implement a nicer method to replace it.) .TP 8 .B \-Z, \-\-no\-splash Do not display the splash screen. .\" .TP 8 .\" .B \-v .\" Print more information, including debugging messages. Multiple .\" specifications of \fI-v\fP cause more output, to a point. .SH "SUPPORTED KEYBOARDS" .\".TP 8 .IP 1. 5 .B Acer Airkey III Wireless keyboard .\"The \fBvolume up\fR and \fBdown\fR works by changing the master volume of the .\"mixer (\fI/dev/mixer\fR). .\" .\"The \fBmute\fR button sets the volume to 0 when pressed once, and restores the .\"previous volume when pressed again. .\" .\"The \fBeject\fR button can eject and close the tray. The \fBplay\fR .\"button can be used to close the tray too. .IP 2. 5 .B Microsoft Internet, Internet Pro, and Natural Pro .IP 3. 5 .B Memorex MX1998, MX2500 and MX3000 keyboard .IP 4. 5 .B SK-2500, SK-2501a, SK-2505, SK-2800c, SK-7100, SK-9925 USB (partial) .IP 5. 5 .B Logitech cordless iTouch, Internet, Cordless Desktop keyboard .IP 6. 5 .B Chicony KBP-8993 .IP 7. 5 .B Compaq KB-9963 .IP 8. 5 .B Polypix .IP 9. 5 .B BTC 9000 .IP 10. 5 .B Process MCK-800 .IP .B And more... .\" .PP .\" For details please consult the file \fIkeyboard.list\fR. .P As I have only the Acer wireless keyboard, you can help me to support other keyboards by sending me the list of keycodes of the hotkeys on your keyboard. You can do this by using \fBxev\fR. Contact me for the details. .SH "KEYBOARD DEFINITION FILES" Keycodes and the behavior of the hotkeys are stored in a \fBKeyboard definition files\fR. Each supported keyboard has such a file placed in either \fI/usr/local/share/hotkeys\fR or \fI/usr/share/hotkeys\fR, depending on the installation configuration. For instance, the data of the Acer Wireless keyboard is stored in the file \fIacerwl.def\fR. Note that the part of the filename without the extension is the name you give to the \fB\-t\fR option. .P Keyboard definition files are in XML format, which should be self-explanatory. .P You can create your own definition file and placed it in \fI$HOME/.hotkeys\fR. Just take the file \fIdef/sample.xml\fR or an existing definition file as an example. User definition files override any system defaults. .SH "CONFIGURATION FILE" The configuration file is named \fIhotkeys.conf\fR. By default it is installed in /usr/local/etc (or /etc on Debian). You can also put one into \fI$HOME/.hotkeys/\fR, which will override the settings in the global file if one exists. In other words, the order of parsing is the global file first and then the private one. .P The syntax of the file uses the simple key=value pairs. Blank lines and lines starting with # are ignored. The followings are the valid keys and their default values (they are subjected to be changed without prior notice =): .P .nf .br .ta 3.4i Key Default --------------- ------------------------------------------ Kbd (no default) # CDROM device CDROM /dev/cdrom # ALSA card ALSAcard default # List of ALSA control names, separated by "|" ALSAcontrols Master # audio actions PrevTrack xmms \-\-rew Play xmms \-\-play Stop xmms \-\-stop Pause xmms \-\-pause NextTrack xmms \-\-fwd Rewind (no default yet, suggestion welcome) # applications WebBrowser mozilla Email mozilla \-mail Calculator xcalc FileManager gmc MyComputer gmc MyDocuments gmc Favorites gnome-moz-remote \-\-remote=openBookmarks Transfer gftp Record grecord Shell xterm \-rv ScreenSaver xscreensaver-command \-activate NewsReader mozilla \-news Communities mozilla \-remote 'openURL(http://slashdot.org)' Search mozilla \-remote 'openURL(http://google.com)' Idea mozilla \-remote 'openURL(http://sourceforge.net)' Shopping mozilla \-remote 'openURL(http://thinkgeek.com)' Go mozilla \-remote 'openURL(http://linux.com)' Print lpr # OSD stuffs osd_font lucidasanstypewriter-bold-24 (should be aliased to -*-lucidatypewriter-bold-r-normal-*-*-240-*-*-*-*-*-*) osd_color LawnGreen osd_timeout 3 osd_position bottom osd_offset 25 .fi .SH "NOTES" Do not disable the XKEYBOARD extension. For XFree86 3.x, make sure \fBXkbDisable\fR is not set. .P The ALSA control names have to be set to enable using ALSA. Otherwise, it defaults to using OSS volume control. The ALSA control names are the same as those used by the amixer(1) program, use "amixer scontrols" to list. All listed controls will be adjusted at the same time by hotkeys. .SH "TODO" Please consult the TODO file. .SH "BUGS" .B Please inform me if some of your normal keys lose functionalities .B after running hotkeys. .PP APM support is highly experimental. I only tested on my desktop and sometimes it can't go out from Suspend mode, no response from the keyboard, mouse, nor the suspend button on the case. Not tested on notebook (I don't have one). Note that you need root priviledge to use the APM functions. .PP There are probably bugs in the \fIconfigure.in\fR script. .PP The error \fB"X Error of failed request: BadValue (integer parameter out of range for operation)"\fR should have been fixed finally in version 0.5.2. Please report if it spits out this error on your system. .SH COPYRIGHT Copyright 2000-2002, Anthony Y P Wong .PP Licensed under GNU GPL version 2 or later. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .SH AUTHOR Anthony Y P Wong, Debian GNU/Linux hotkeys-0.5.7.4/src/splash.h0000664000000000000000000000211707573176477012525 0ustar /* The GIMP -- an image manipulation program * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __SPLASH_H__ #define __SPLASH_H__ #include void splash_create (gchar* filename, int); gint splash_destroy (gpointer data); void splash_update (const gchar *label1, const gchar *label2, gdouble percentage); #endif /* __SPLASH_H__ */ hotkeys-0.5.7.4/src/hotkeys.h0000664000000000000000000000537211173735665012716 0ustar /* HOTKEYS - use keys on your multimedia keyboard to control your computer Copyright (C) 2000,2001 Anthony Y P Wong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: hotkeys.h,v 1.9 2002/11/27 19:33:50 ypwong Exp $ */ #ifndef __HOTKEYS_H #define __HOTKEYS_H #include "kbddef.h" #include /* somehow XKBfile.h needs it, but it doesn't include it */ #include #include #include #include /* Function prototypes */ void initializeX(char* prg); void usage(int argc, char* argv[]); void showKbdList(int argc, char *argv[]); void setCDROMDevice(char* optarg); Bool setKbdType(const char* prog, const char* type); void setLoglevel(int level); Bool parseArgs(int argc, char* argv[]); Display* GetDisplay(char* program, char* dpyName, int* opcodeRtrn, int* evBaseRtrn); void bailout(void); int doMute(void); void ejectDisc(void); int launchApp(int keycode); void uError(char* s,...); void uInfo(char* s,...); void uInternalError(char* s,...); int testReadable(const char* filename); extern Display * dpy; extern int xkbOpcode; extern int xkbEventCode; extern XkbDescPtr xkb; extern keyboard kbd; extern int loglevel; extern int volUpAdj; extern int volDownAdj; extern int backlightUpAdj; extern int backlightDownAdj; void fixVMware(char* time); int fork2(void); #ifdef HAVE_XOSD extern xosd* osd; #endif #define SPLASH_IMAGE SHAREDIR"/splash.png" #ifdef DUMMY_MIXER #define SOUND_IOCTL(a,b,c) dummy_ioctl(a,b,c) #else #if defined (__NetBSD__) || defined (__OpenBSD__) #define SOUND_IOCTL(a,b,c) _oss_ioctl(a,b,c) #else #define SOUND_IOCTL(a,b,c) ioctl(a,b,c) #endif /* defined (__NetBSD__) || defined (__OpenBSD__) */ #endif /* DUMMY_MIXER */ #define MIXER_DEV "/dev/mixer" #define CDROM_DEV "/dev/cdrom" #define MAXLEVEL 100 /* highest level permitted by OSS drivers */ #endif /* __HOTKEYS_H */ hotkeys-0.5.7.4/src/apmlib.c0000664000000000000000000002776007231351371012460 0ustar /* apmlib.c -- Sample APM interface routines * Created: Mon Jan 8 10:28:16 1996 by faith@acm.org * Revised: Fri Dec 26 21:38:29 1997 by faith@acm.org * Copyright 1996, 1997 Rickard E. Faith (faith@acm.org) * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ #include #include #include #include #include #include #include #include #include #include #include #include "apm.h" #define BACKWARD_COMPAT 1 /* If APM support of the right version exists in kernel, return zero. * Otherwise, return 1 if no support exists, or 2 if it is the wrong * version. *NOTE* The sense of the return value is not intuitive. */ int apm_exists(void) { apm_info i; if (access(APM_PROC, R_OK)) return 1; return apm_read(&i); } /* Read information from /proc/apm. Return 0 on success, 1 if APM not * installed, 2 if APM installed, but old version. */ int apm_read(apm_info * i) { FILE *str; char units[10]; char buffer[100]; int retcode = 0; if (!(str = fopen(APM_PROC, "r"))) return 1; fgets(buffer, sizeof(buffer) - 1, str); buffer[sizeof(buffer) - 1] = '\0'; /* Should check for other driver versions; driver 1.9 (and some * others) uses this format, which doesn't expose # batteries. */ sscanf(buffer, "%s %d.%d %x %x %x %x %d%% %d %s\n", (char *) i->driver_version, &i->apm_version_major, &i->apm_version_minor, &i->apm_flags, &i->ac_line_status, &i->battery_status, &i->battery_flags, &i->battery_percentage, &i->battery_time, units); i->using_minutes = !strncmp(units, "min", 3) ? 1 : 0; if (i->driver_version[0] == 'B') { /* old style. argh. */ #if !BACKWARD_COMPAT retcode = 2; #else strcpy((char *) i->driver_version, "pre-0.7"); i->apm_version_major = 0; i->apm_version_minor = 0; i->apm_flags = 0; i->ac_line_status = 0xff; i->battery_status = 0xff; i->battery_flags = 0xff; i->battery_percentage = -1; i->battery_time = -1; i->using_minutes = 1; sscanf(buffer, "BIOS version: %d.%d", &i->apm_version_major, &i->apm_version_minor); fgets(buffer, sizeof(buffer) - 1, str); sscanf(buffer, "Flags: 0x%02x", &i->apm_flags); if (i->apm_flags & APM_32_BIT_SUPPORT) { fgets(buffer, sizeof(buffer) - 1, str); fgets(buffer, sizeof(buffer) - 1, str); if (buffer[0] != 'P') { if (!strncmp(buffer + 4, "off line", 8)) i->ac_line_status = 0; else if (!strncmp(buffer + 4, "on line", 7)) i->ac_line_status = 1; else if (!strncmp(buffer + 4, "on back", 7)) i->ac_line_status = 2; fgets(buffer, sizeof(buffer) - 1, str); if (!strncmp(buffer + 16, "high", 4)) i->battery_status = 0; else if (!strncmp(buffer + 16, "low", 3)) i->battery_status = 1; else if (!strncmp(buffer + 16, "crit", 4)) i->battery_status = 2; else if (!strncmp(buffer + 16, "charg", 5)) i->battery_status = 3; fgets(buffer, sizeof(buffer) - 1, str); if (strncmp(buffer + 14, "unknown", 7)) i->battery_percentage = atoi(buffer + 14); if (i->apm_version_major >= 1 && i->apm_version_minor >= 1) { fgets(buffer, sizeof(buffer) - 1, str); sscanf(buffer, "Battery flag: 0x%02x", &i->battery_flags); fgets(buffer, sizeof(buffer) - 1, str); if (strncmp(buffer + 14, "unknown", 7)) i->battery_time = atoi(buffer + 14); } } } #endif } /* Fix possible kernel bug -- percentage * set to 0xff (==255) instead of -1. */ if (i->battery_percentage > 100) i->battery_percentage = -1; fclose(str); return retcode; } /* Lookup the device number for the apm_bios device. */ dev_t apm_dev(void) { FILE *str; static int cached = -1; char buf[80]; char *pt; apm_info i; if (cached >= 0) return cached; if (access(APM_PROC, R_OK) || apm_read(&i) == 1) return cached = -1; if (i.driver_version[0] == '1') return cached = makedev(10, 134); if (!(str = fopen(APM_DEV, "r"))) return -1; while (fgets(buf, sizeof(buf) - 1, str)) { buf[sizeof(buf) - 1] = '\0'; for (pt = buf; *pt && isspace(*pt); ++pt); /* skip leading spaces */ for (; *pt && !isspace(*pt); ++pt); /* find next space */ if (isspace(*pt)) { *pt++ = '\0'; pt[strlen(pt) - 1] = '\0'; /* get rid of newline */ if (!strcmp(pt, APM_NAME)) { fclose(str); return cached = makedev(atoi(buf), 0); } } } fclose(str); return cached = -1; } /* Return a file descriptor for the apm_bios device, or -1 if there is an * error. Is this method secure? Should we make the device in /dev * instead of /tmp? */ int apm_open(void) { char *tmp; int fd; apm_info i; if (access(APM_PROC, R_OK) || apm_read(&i) == 1) return -1; if (i.driver_version[0] >= '1') { if ((fd = open(APM_DEVICE, O_RDWR)) < 0) { /* Try to create it. This is reasonable * for backward compatibility. */ if (mknod(APM_DEVICE, S_IFCHR | S_IRUSR | S_IWUSR, apm_dev())) { unlink(APM_DEVICE); return -1; } fd = open(APM_DEVICE, O_RDWR); } } else { if (!(tmp = tmpnam(NULL))) return -1; if (mknod(tmp, S_IFCHR | S_IRUSR | S_IWUSR, apm_dev())) { unlink(tmp); return -1; } fd = open(tmp, O_RDWR); unlink(tmp); } return fd; } /* Given a file descriptor for the apm_bios device, close it. */ int apm_close(int fd) { return close(fd); } /* Given a file descriptor for the apm_bios device, this routine will wait * timeout seconds for APM events. Up to n events will be placed in the * events queue. The return code will indicate the number of events * stored. Since this routine uses select(2), it will return if an * unblocked signal is caught. A timeout < 0 means to block indefinately. * * Note that if you read a request to standby or to suspend, the kernel * will be waiting for you to respond to it with a call to apm_suspend() * or to apm_standby() ! */ int apm_get_events(int fd, int timeout, apm_event_t * events, int n) { int retcode; fd_set fds; struct timeval t; t.tv_sec = timeout; t.tv_usec = 0; FD_ZERO(&fds); FD_SET(fd, &fds); retcode = select(fd + 1, &fds, NULL, NULL, timeout < 0 ? NULL : &t); if (retcode <= 0) return 0; return read(fd, events, n * sizeof(apm_event_t)) / sizeof(apm_event_t); } /* Try to set the Power State to Suspend. */ int apm_suspend(int fd) { sync(); return ioctl(fd, APM_IOC_SUSPEND, NULL); } /* Try to set the Power State to Standby. */ int apm_standby(int fd) { sync(); return ioctl(fd, APM_IOC_STANDBY, NULL); } /* Return the last error code generated by the kernel APM driver */ unsigned int apm_last_error( int fd ) { int err = 0; #ifdef APM_IOC_LAST_ERROR int ierr = 0; if ( (ierr = ioctl( fd, APM_IOC_LAST_ERROR, &err)) ) return ierr; #endif return err; } /* Define lookup table for error messages */ typedef struct lookup_t { int key; char * msg; } lookup_t; /* APM error messages, arranged by error code */ static const lookup_t error_table[] = { /* N/A { APM_SUCCESS, "Operation succeeded" }, */ { APM_DISABLED, "Power management disabled" }, { APM_CONNECTED, "Real mode interface already connected" }, { APM_NOT_CONNECTED, "Interface not connected" }, { APM_16_CONNECTED, "16 bit interface already connected" }, /* N/A { APM_16_UNSUPPORTED, "16 bit interface not supported" }, */ { APM_32_CONNECTED, "32 bit interface already connected" }, { APM_32_UNSUPPORTED, "32 bit interface not supported" }, { APM_BAD_DEVICE, "Unrecognized device ID" }, { APM_BAD_PARAM, "Parameter out of range" }, { APM_NOT_ENGAGED, "Interface not engaged" }, #ifdef APM_BAD_FUNCTION { APM_BAD_FUNCTION, "Function not supported" }, #endif #ifdef APM_RESUME_DISABLED { APM_RESUME_DISABLED, "Resume timer disabled" }, #endif { APM_BAD_STATE, "Unable to enter requested state" }, /* N/A { APM_NO_EVENTS, "No events pending" }, */ { APM_NOT_PRESENT, "No APM present" } }; #define ERROR_COUNT (sizeof(error_table)/sizeof(lookup_t)) /* Return character string describing error messages from APM kernel */ const char *apm_error_name( unsigned int err ) { int i; for(i=0; i 1 ? "s" : "", h, m, s); else sprintf(buffer, "%02lu:%02lu:%02lu", h, m, s); if (t == -1) sprintf(buffer, "unknown"); return buffer; } const char *apm_time_nosec(time_t t) { static char buffer[128]; unsigned long s, m, h, d; d = t / SEC_PER_DAY; t -= d * SEC_PER_DAY; h = t / SEC_PER_HOUR; t -= h * SEC_PER_HOUR; m = t / SEC_PER_MIN; t -= m * SEC_PER_MIN; s = t; if (s > 30) ++m; if (d) sprintf(buffer, "%lu day%s, %lu:%02lu", d, d > 1 ? "s" : "", h, m); else sprintf(buffer, "%lu:%02lu", h, m); if (t == -1) sprintf(buffer, "unknown"); return buffer; } hotkeys-0.5.7.4/src/splash.c0000664000000000000000000001025711173735665012513 0ustar /* * Adpated from GIMP's app/gui/splash.c * Copyright (C) 2002 Anthony Wong */ /* The GIMP -- an image manipulation program * Copyright (C) 1995 Spencer Kimball and Peter Mattis * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #if HAVE_CONFIG_H # include #endif #if HAVE_GTK #include #include #include #include "splash.h" static GtkWidget *win_initstatus = NULL; void splash_create (gchar* filename, int duration) { GtkWidget *vbox; GdkPixbuf *pixbuf = NULL; // GdkAtom atom; win_initstatus = gtk_window_new (GTK_WINDOW_TOPLEVEL); #if 0 /* Not needed in these WMs: enlightenment, sawfish, metacity, fvwm2, wmaker */ gtk_window_set_type_hint (GTK_WINDOW (win_initstatus), GDK_WINDOW_TYPE_HINT_DIALOG); #endif gtk_window_set_title (GTK_WINDOW (win_initstatus), filename); gtk_window_set_wmclass (GTK_WINDOW (win_initstatus), "hotkeys_splash", "Hotkeys"); gtk_window_set_position (GTK_WINDOW (win_initstatus), GTK_WIN_POS_CENTER); gtk_window_set_resizable (GTK_WINDOW (win_initstatus), FALSE); gtk_window_set_modal (GTK_WINDOW (win_initstatus), TRUE); gtk_window_set_policy(GTK_WINDOW(win_initstatus), FALSE, FALSE, TRUE); gtk_widget_realize(win_initstatus); gdk_window_set_decorations(win_initstatus->window, 0); #if 0 /* Not needed in these WMs: enlightenment, sawfish, metacity, fvwm2, wmaker */ atom = gdk_atom_intern ("_NET_WM_WINDOW_TYPE_SPLASH", FALSE); gdk_property_change (win_initstatus->window, gdk_atom_intern ("_NET_WM_WINDOW_TYPE", FALSE), (GdkAtom)XA_ATOM, 32, GDK_PROP_MODE_REPLACE, (unsigned char *)&atom, 1); #endif g_signal_connect (G_OBJECT (win_initstatus), "delete_event", G_CALLBACK (gtk_true), NULL); vbox = gtk_vbox_new (FALSE, 4); gtk_container_add (GTK_CONTAINER (win_initstatus), vbox); gtk_widget_show (vbox); pixbuf = gdk_pixbuf_new_from_file (filename, NULL); if (pixbuf) { GtkWidget *align; GtkWidget *image; image = gtk_image_new_from_pixbuf (pixbuf); g_object_unref (pixbuf); align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0); gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, TRUE, 0); gtk_widget_show (align); gtk_container_add (GTK_CONTAINER (align), image); gtk_widget_show (image); } else { g_message("Cannot open image"); return; } /* label1 = gtk_label_new (""); gtk_box_pack_start_defaults (GTK_BOX (vbox), label1); gtk_widget_show (label1); label2 = gtk_label_new (""); gtk_box_pack_start_defaults (GTK_BOX (vbox), label2); gtk_widget_show (label2); progress = gtk_progress_bar_new (); gtk_box_pack_start_defaults (GTK_BOX (vbox), progress); gtk_widget_show (progress); */ gtk_widget_show (win_initstatus); gtk_timeout_add( duration, splash_destroy, NULL); } gint splash_destroy ( gpointer data ) { if (win_initstatus) { gtk_widget_destroy (win_initstatus); win_initstatus = NULL; } exit(0); } #if 0 void splash_update (const gchar *text1, const gchar *text2, gdouble percentage) { if (!win_initstatus) return; if (text1) gtk_label_set_text (GTK_LABEL (label1), text1); if (text2) gtk_label_set_text (GTK_LABEL (label2), text2); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress), CLAMP (percentage, 0.0, 1.0)); while (gtk_events_pending ()) gtk_main_iteration (); } #endif #endif /* HAVE_GTK */ hotkeys-0.5.7.4/README0000664000000000000000000000122007573176405011134 0ustar README ====== NOTE: XML syntax of keyboard definition files has been changed in version 0.5.6. Please consult sample.xml. Beware that there will be at least one more XML syntax change in the future. Requirements: ------------ * libxml, version 2.2.8 or later (http://xmlsoft.org/, ftp://xmlsoft.org) * libdb3, the Berkeley v3 database library. * You need the XOSD library (version greater than 1.0.0) if you want to enjoy the cool on-screen display, this is optional. It can be downloaded at http://www.ignavus.net/software.html * If you have GTK+ 2.0, you will have the bonus of a splash screen *grin* For more info, please consult the manpage. hotkeys-0.5.7.4/configure.in0000664000000000000000000001077710650141060012561 0ustar dnl Process this file with autoconf to produce a configure script. AC_INIT(src/hotkeys.c) AC_CONFIG_AUX_DIR(config) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(hotkeys, 0.5.7.1) AM_MAINTAINER_MODE dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_ARG_WITH(xml-prefix, AC_HELP_STRING([--with-xml-prefix=PFX], [Prefix where GNOME XML library is installed]), xml_config_prefix="$withval", xml_config_prefix="") AC_ARG_ENABLE(xmltest, AC_HELP_STRING([--disable-xmltest], [Do not try to compile and run a test XML program]), , enable_xmltest=yes) AC_ARG_WITH(db-inc, AC_HELP_STRING([--with-db-inc=DIR], [Set the include directory of Berkeley DB]), db_incdir="$withval", db_incdir="") AC_ARG_WITH(db-lib, AC_HELP_STRING([--with-db-lib=DIR], [Set the library directory of Berkeley DB]), db_libdir="$withval", db_libdir="") AC_ARG_ENABLE(dbtest, AC_HELP_STRING([--disable-dbtest], [Do not try to test for libdb, assume it's present]), , enable_dbtest=yes) AC_ARG_WITH(gtk, AC_HELP_STRING([--with-gtk], [Use GTK interface (incl. splash screen, default is NO)]), use_gtk=yes, ) AC_ARG_WITH(xosd, AC_HELP_STRING([--with-xosd], [Use XOSD library (default is NO)]), use_xosd=yes, ) dnl --- Not use any more, as libxosd-dev provides its own m4 dnl AC_ARG_WITH(xosd-inc, dnl [ --with-xosd-inc=DIR Set the include directory of XOSD], dnl xosd_incdir="$withval", xosd_incdir="") dnl dnl AC_ARG_WITH(xosd-lib, dnl [ --with-xosd-lib=DIR Set the library directory of XOSD], dnl xosd_libdir="$withval", xosd_libdir="") dnl----------------------------------------------------------------------- dnl Checks for X dnl----------------------------------------------------------------------- AC_PATH_XTRA if test "x$no_x" = "xyes" then AC_MSG_ERROR("You must have X installed") else X_LIBS="$X_LIBS -lX11 -lXmu" fi dnl----------------------------------------------------------------------- dnl Checks for LIBXML2 dnl----------------------------------------------------------------------- if test "x$enable_xmltest" = "xyes"; then AM_PATH_XML2(2.2.8) else # AC_MSG_NOTICE([Skipping libxml2 test]) echo fi dnl----------------------------------------------------------------------- dnl Checks for LIBPTHREAD dnl----------------------------------------------------------------------- AC_CHECK_LIB(pthread, pthread_create) dnl Checks for libraries. dnl Replace `main' with a function in -lX11: dnl AC_CHECK_LIB(X11, XNextEvent) dnl Replace `main' with a function in -lxkbfile: dnl AC_CHECK_LIB(xkbfile, main) dnl Replace `main' with a function in -lxml: dnl Replace `main' with a function in -lz: dnl AC_CHECK_LIB(z, main) dnl AM_PATH_GTK() dnl AM_PATH_GLIB(1.2.0, ,[AC_MSG_ERROR(Missing gthread module in GLib!)], gthread) dnl AC_SUBST(GLIB_LIBS) dnl AC_SUBST(GLIB_CFLAGS) dnl----------------------------------------------------------------------- dnl Checks for BDB dnl----------------------------------------------------------------------- if test "x$enable_dbtest" = "xyes"; then AM_CHECK_DB else # AC_MSG_NOTICE([Skipping libdb test]) echo fi dnl----------------------------------------------------------------------- dnl Checks for GTK+ dnl----------------------------------------------------------------------- if test "x$use_gtk" = "xyes"; then AM_PATH_GTK_2_0(2.0.0, AC_DEFINE(HAVE_GTK,1,[Define if you have the gtk+ libraries.])) fi dnl----------------------------------------------------------------------- dnl Checks for XOSD dnl----------------------------------------------------------------------- if test "x$use_xosd" = "xyes"; then AM_PATH_LIBXOSD(AC_DEFINE(HAVE_LIBXOSD,1,[Define if you have the xosd library (-lxosd).])) fi dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_MAJOR AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h string.h strings.h syslog.h sys/file.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_VPRINTF AC_FUNC_CLOSEDIR_VOID AC_CHECK_FUNCS(select strdup strerror getopt_long) AC_OUTPUT(Makefile src/Makefile def/Makefile) hotkeys-0.5.7.4/Makefile.am0000664000000000000000000000034307571433341012306 0ustar SUBDIRS = src def EXTRA_DIST = BUGS debian/* hotkeys.spec config/install-sh config/missing config/mkinstalldirs debian-dist: dist fakeroot debian/rules clean mv @PACKAGE@-@VERSION@.tar.gz ../@PACKAGE@_@VERSION@.orig.tar.gz hotkeys-0.5.7.4/config.h.in0000664000000000000000000000744707574654161012321 0ustar /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `getopt_long' function. */ #undef HAVE_GETOPT_LONG /* Define if you have the gtk+ libraries. */ #undef HAVE_GTK /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `db' library (-ldb). */ #undef HAVE_LIBDB /* Define to 1 if you have the `db3' library (-ldb3). */ #undef HAVE_LIBDB3 /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define if you have the xosd library (-lxosd). */ #undef HAVE_LIBXOSD /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYSLOG_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Define to 1 if `major', `minor', and `makedev' are declared in . */ #undef MAJOR_IN_MKDEV /* Define to 1 if `major', `minor', and `makedev' are declared in . */ #undef MAJOR_IN_SYSMACROS /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Version number of package */ #undef VERSION /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned' if does not define. */ #undef size_t hotkeys-0.5.7.4/stamp-h.in0000664000000000000000000000001207574654203012151 0ustar timestamp hotkeys-0.5.7.4/configure0000775000000000000000000075376110650141171012171 0ustar #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/hotkeys.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP LN_S XMKMF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS XML2_CONFIG XML_CFLAGS XML_LIBS PKG_CONFIG GTK_CFLAGS GTK_LIBS LIBXOSD_CONFIG LIBXOSD_CFLAGS LIBXOSD_LIBS GREP EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP XMKMF' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-xmltest Do not try to compile and run a test XML program --disable-dbtest Do not try to test for libdb, assume it's present --disable-xmltest Do not try to compile and run a test LIBXML program --disable-gtktest do not try to compile and run a test GTK+ program Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-xml-prefix=PFX Prefix where GNOME XML library is installed --with-db-inc=DIR Set the include directory of Berkeley DB --with-db-lib=DIR Set the library directory of Berkeley DB --with-gtk Use GTK interface (incl. splash screen, default is NO) --with-xosd Use XOSD library (default is NO) --with-x use the X Window System --with-xml-prefix=PFX Prefix where libxml is installed (optional) --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional) --with-xosd-config=LIBXOSD_CONFIG Location of xosd-config Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor XMKMF Path to xmkmf, Makefile generator for X Window System Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" ac_config_commands="$ac_config_commands default-1" am__api_version="1.4" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "$*" != "X $srcdir/configure conftestfile" \ && test "$*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftestfile ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest* { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=hotkeys VERSION=0.5.7.1 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF missing_dir=`cd $ac_aux_dir && pwd` { echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5 echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6; } # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ACLOCAL=aclocal-${am__api_version} { echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6; } else ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" { echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6; } fi { echo "$as_me:$LINENO: checking for working autoconf" >&5 echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6; } # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoconf --version) < /dev/null > /dev/null 2>&1; then AUTOCONF=autoconf { echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6; } else AUTOCONF="$missing_dir/missing autoconf" { echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6; } fi { echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5 echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6; } # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then AUTOMAKE=automake-${am__api_version} { echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6; } else AUTOMAKE="$missing_dir/missing automake-${am__api_version}" { echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6; } fi { echo "$as_me:$LINENO: checking for working autoheader" >&5 echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6; } # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (autoheader --version) < /dev/null > /dev/null 2>&1; then AUTOHEADER=autoheader { echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6; } else AUTOHEADER="$missing_dir/missing autoheader" { echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6; } fi { echo "$as_me:$LINENO: checking for working makeinfo" >&5 echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6; } # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if (makeinfo --version) < /dev/null > /dev/null 2>&1; then MAKEINFO=makeinfo { echo "$as_me:$LINENO: result: found" >&5 echo "${ECHO_T}found" >&6; } else MAKEINFO="$missing_dir/missing makeinfo" { echo "$as_me:$LINENO: result: missing" >&5 echo "${ECHO_T}missing" >&6; } fi { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Check whether --with-xml-prefix was given. if test "${with_xml_prefix+set}" = set; then withval=$with_xml_prefix; xml_config_prefix="$withval" else xml_config_prefix="" fi # Check whether --enable-xmltest was given. if test "${enable_xmltest+set}" = set; then enableval=$enable_xmltest; else enable_xmltest=yes fi # Check whether --with-db-inc was given. if test "${with_db_inc+set}" = set; then withval=$with_db_inc; db_incdir="$withval" else db_incdir="" fi # Check whether --with-db-lib was given. if test "${with_db_lib+set}" = set; then withval=$with_db_lib; db_libdir="$withval" else db_libdir="" fi # Check whether --enable-dbtest was given. if test "${enable_dbtest+set}" = set; then enableval=$enable_dbtest; else enable_dbtest=yes fi # Check whether --with-gtk was given. if test "${with_gtk+set}" = set; then withval=$with_gtk; use_gtk=yes fi # Check whether --with-xosd was given. if test "${with_xosd+set}" = set; then withval=$with_xosd; use_xosd=yes fi { echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 echo "$as_me: error: Cannot use X directory names containing '" >&2;} { (exit 1); exit 1; }; };; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /lib) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # We can compile using X headers with no special include directory. ac_x_includes= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS=$ac_save_LIBS for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { echo "$as_me:$LINENO: result: $have_x" >&5 echo "${ECHO_T}$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. cat >>confdefs.h <<\_ACEOF #define X_DISPLAY_MISSING 1 _ACEOF X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$ac_xsave_LIBS -R $x_libraries" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: result: neither works" >&5 echo "${ECHO_T}neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6; } if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test $ac_cv_lib_dnet_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6; } if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dnet_stub_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. { echo "$as_me:$LINENO: checking for gethostbyname" >&5 echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; } if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gethostbyname to an innocuous variant, in case declares gethostbyname. For example, HP-UX 11i declares gettimeofday. */ #define gethostbyname innocuous_gethostbyname /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gethostbyname /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_gethostbyname || defined __stub___gethostbyname choke me #endif int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; } if test $ac_cv_func_gethostbyname = no; then { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_nsl_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } if test $ac_cv_lib_nsl_gethostbyname = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6; } if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_bsd_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6; } if test $ac_cv_lib_bsd_gethostbyname = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. { echo "$as_me:$LINENO: checking for connect" >&5 echo $ECHO_N "checking for connect... $ECHO_C" >&6; } if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define connect to an innocuous variant, in case declares connect. For example, HP-UX 11i declares gettimeofday. */ #define connect innocuous_connect /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef connect /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_connect || defined __stub___connect choke me #endif int main () { return connect (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 echo "${ECHO_T}$ac_cv_func_connect" >&6; } if test $ac_cv_func_connect = no; then { echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_socket_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; } if test $ac_cv_lib_socket_connect = yes; then X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. { echo "$as_me:$LINENO: checking for remove" >&5 echo $ECHO_N "checking for remove... $ECHO_C" >&6; } if test "${ac_cv_func_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define remove to an innocuous variant, in case declares remove. For example, HP-UX 11i declares gettimeofday. */ #define remove innocuous_remove /* System header to define __stub macros and hopefully few prototypes, which can conflict with char remove (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef remove /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_remove || defined __stub___remove choke me #endif int main () { return remove (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_remove=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 echo "${ECHO_T}$ac_cv_func_remove" >&6; } if test $ac_cv_func_remove = no; then { echo "$as_me:$LINENO: checking for remove in -lposix" >&5 echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6; } if test "${ac_cv_lib_posix_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); int main () { return remove (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_posix_remove=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6; } if test $ac_cv_lib_posix_remove = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. { echo "$as_me:$LINENO: checking for shmat" >&5 echo $ECHO_N "checking for shmat... $ECHO_C" >&6; } if test "${ac_cv_func_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shmat to an innocuous variant, in case declares shmat. For example, HP-UX 11i declares gettimeofday. */ #define shmat innocuous_shmat /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shmat (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shmat /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_shmat || defined __stub___shmat choke me #endif int main () { return shmat (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shmat=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 echo "${ECHO_T}$ac_cv_func_shmat" >&6; } if test $ac_cv_func_shmat = no; then { echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6; } if test "${ac_cv_lib_ipc_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); int main () { return shmat (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ipc_shmat=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6; } if test $ac_cv_lib_ipc_shmat = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6; } if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char IceConnectionNumber (); int main () { return IceConnectionNumber (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ICE_IceConnectionNumber=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi if test "x$no_x" = "xyes" then { { echo "$as_me:$LINENO: error: \"You must have X installed\"" >&5 echo "$as_me: error: \"You must have X installed\"" >&2;} { (exit 1); exit 1; }; } else X_LIBS="$X_LIBS -lX11 -lXmu" fi if test "x$enable_xmltest" = "xyes"; then # Check whether --with-xml-prefix was given. if test "${with_xml_prefix+set}" = set; then withval=$with_xml_prefix; xml_config_prefix="$withval" else xml_config_prefix="" fi # Check whether --with-xml-exec-prefix was given. if test "${with_xml_exec_prefix+set}" = set; then withval=$with_xml_exec_prefix; xml_config_exec_prefix="$withval" else xml_config_exec_prefix="" fi # Check whether --enable-xmltest was given. if test "${enable_xmltest+set}" = set; then enableval=$enable_xmltest; else enable_xmltest=yes fi if test x$xml_config_exec_prefix != x ; then xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config fi fi if test x$xml_config_prefix != x ; then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_prefix/bin/xml2-config fi fi # Extract the first word of "xml2-config", so it can be a program name with args. set dummy xml2-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XML2_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $XML2_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_XML2_CONFIG="$XML2_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_XML2_CONFIG" && ac_cv_path_XML2_CONFIG="no" ;; esac fi XML2_CONFIG=$ac_cv_path_XML2_CONFIG if test -n "$XML2_CONFIG"; then { echo "$as_me:$LINENO: result: $XML2_CONFIG" >&5 echo "${ECHO_T}$XML2_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi min_xml_version=2.2.8 { echo "$as_me:$LINENO: checking for libxml - version >= $min_xml_version" >&5 echo $ECHO_N "checking for libxml - version >= $min_xml_version... $ECHO_C" >&6; } no_xml="" if test "$XML2_CONFIG" = "no" ; then no_xml=yes else XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_xmltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$XML_LIBS $LIBS" rm -f conf.xmltest if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main() { int xml_major_version, xml_minor_version, xml_micro_version; int major, minor, micro; char *tmp_version; system("touch conf.xmltest"); /* Capture xml2-config output via autoconf/configure variables */ /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = (char *)strdup("$min_xml_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string from xml2-config\n", "$min_xml_version"); exit(1); } free(tmp_version); /* Capture the version information from the header files */ tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); exit(1); } free(tmp_version); /* Compare xml2-config output to the libxml headers */ if ((xml_major_version != $xml_config_major_version) || (xml_minor_version != $xml_config_minor_version) || (xml_micro_version != $xml_config_micro_version)) { printf("*** libxml header files (version %d.%d.%d) do not match\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** xml2-config (version %d.%d.%d)\n", $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); return 1; } /* Compare the headers to the library to make sure we match */ /* Less than ideal -- doesn't provide us with return value feedback, * only exits if there's a serious mismatch between header and library. */ LIBXML_TEST_VERSION; /* Test that the library is greater than our minimum version */ if ((xml_major_version > major) || ((xml_major_version == major) && (xml_minor_version > minor)) || ((xml_major_version == major) && (xml_minor_version == minor) && (xml_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); printf("*** correct copy of xml2-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } return 1; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_xml=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_xml" = x ; then { echo "$as_me:$LINENO: result: yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)" >&5 echo "${ECHO_T}yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)" >&6; } : else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test "$XML2_CONFIG" = "no" ; then echo "*** The xml2-config script installed by LIBXML could not be found" echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the XML2_CONFIG environment variable to the" echo "*** full path to xml2-config." else if test -f conf.xmltest ; then : else echo "*** Could not run libxml test program, checking why..." CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$LIBS $XML_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { LIBXML_TEST_VERSION; return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBXML or finding the wrong" echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" echo "*** may want to edit the xml2-config script: $XML2_CONFIG" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi XML_CFLAGS="" XML_LIBS="" : fi rm -f conf.xmltest else # AC_MSG_NOTICE([Skipping libxml2 test]) echo fi { echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; } if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_pthread_pthread_create=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; } if test $ac_cv_lib_pthread_pthread_create = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi if test "x$enable_dbtest" = "xyes"; then if test ! x$db_libdir = x; then LIBS="$LIBS -L$db_libdir" fi if test ! x$db_incdir = x; then CPPFLAGS="$CPPFLAGS -I$db_incdir" fi { echo "$as_me:$LINENO: checking for db_create in -ldb" >&5 echo $ECHO_N "checking for db_create in -ldb... $ECHO_C" >&6; } if test "${ac_cv_lib_db_db_create+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char db_create (); int main () { return db_create (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_db_db_create=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_db_db_create=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_db_db_create" >&5 echo "${ECHO_T}$ac_cv_lib_db_db_create" >&6; } if test $ac_cv_lib_db_db_create = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDB 1 _ACEOF LIBS="-ldb $LIBS" else nodb=yes fi if test "x$nodb" = "xyes" then { echo "$as_me:$LINENO: checking for db_create in -ldb" >&5 echo $ECHO_N "checking for db_create in -ldb... $ECHO_C" >&6; } if test "${ac_cv_lib_db_db_create+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char db_create (); int main () { return db_create (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_db_db_create=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_db_db_create=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_db_db_create" >&5 echo "${ECHO_T}$ac_cv_lib_db_db_create" >&6; } if test $ac_cv_lib_db_db_create = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDB 1 _ACEOF LIBS="-ldb $LIBS" else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } echo "*** Cannot find a suitable Berkeley DB library on your system." echo "*** Version 3.2.9 or above is required." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 fi fi { echo "$as_me:$LINENO: checking for version of db" >&5 echo $ECHO_N "checking for version of db... $ECHO_C" >&6; } if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { int major=0, minor=0, patch=0; db_version(&major, &minor, &patch); if ( major > 3 || (major==3 && ((minor==2 && patch>=9) || minor>2)) ) exit(0); else exit(1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then { echo "$as_me:$LINENO: result: >= 3.2.9, ok" >&5 echo "${ECHO_T}>= 3.2.9, ok" >&6; } else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { echo "$as_me:$LINENO: result: < 3.2.9, failed" >&5 echo "${ECHO_T}< 3.2.9, failed" >&6; } echo "*** The version of the Berkeley DB library installed is not" echo "*** 3.2.9 or above, make sure the correct version is installed." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else # AC_MSG_NOTICE([Skipping libdb test]) echo fi if test "x$use_gtk" = "xyes"; then # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo *** pkg-config too old; version 0.7 or better required. no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=2.0.0 { echo "$as_me:$LINENO: checking for GTK+ - version >= $min_gtk_version" >&5 echo $ECHO_N "checking for GTK+ - version >= $min_gtk_version... $ECHO_C" >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { echo "$as_me:$LINENO: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 echo "${ECHO_T}yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_GTK 1 _ACEOF else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" : fi rm -f conf.gtktest fi if test "x$use_xosd" = "xyes"; then # Check whether --with-xosd-config was given. if test "${with_xosd_config+set}" = set; then withval=$with_xosd_config; LIBXOSD_CONFIG="$withval" fi # Extract the first word of "xosd-config", so it can be a program name with args. set dummy xosd-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_LIBXOSD_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $LIBXOSD_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBXOSD_CONFIG="$LIBXOSD_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBXOSD_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBXOSD_CONFIG" && ac_cv_path_LIBXOSD_CONFIG="no" ;; esac fi LIBXOSD_CONFIG=$ac_cv_path_LIBXOSD_CONFIG if test -n "$LIBXOSD_CONFIG"; then { echo "$as_me:$LINENO: result: $LIBXOSD_CONFIG" >&5 echo "${ECHO_T}$LIBXOSD_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi { echo "$as_me:$LINENO: checking for libxosd" >&5 echo $ECHO_N "checking for libxosd... $ECHO_C" >&6; } if test "$LIBXOSD_CONFIG" = "no"; then { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } : else LIBXOSD_CFLAGS=`$LIBXOSD_CONFIG --cflags` LIBXOSD_LIBS=`$LIBXOSD_CONFIG --libs` { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define HAVE_LIBXOSD 1 _ACEOF fi fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5 echo $ECHO_N "checking whether sys/types.h defines makedev... $ECHO_C" >&6; } if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return makedev(0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_header_sys_types_h_makedev=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_types_h_makedev=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5 echo "${ECHO_T}$ac_cv_header_sys_types_h_makedev" >&6; } if test $ac_cv_header_sys_types_h_makedev = no; then if test "${ac_cv_header_sys_mkdev_h+set}" = set; then { echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_mkdev_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5 echo $ECHO_N "checking sys/mkdev.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5 echo $ECHO_N "checking sys/mkdev.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_mkdev_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_sys_mkdev_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6; } fi if test $ac_cv_header_sys_mkdev_h = yes; then cat >>confdefs.h <<\_ACEOF #define MAJOR_IN_MKDEV 1 _ACEOF fi if test $ac_cv_header_sys_mkdev_h = no; then if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then { echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5 echo $ECHO_N "checking sys/sysmacros.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5 echo $ECHO_N "checking sys/sysmacros.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_sys_sysmacros_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6; } fi if test $ac_cv_header_sys_sysmacros_h = yes; then cat >>confdefs.h <<\_ACEOF #define MAJOR_IN_SYSMACROS 1 _ACEOF fi fi fi { echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYS_WAIT_H 1 _ACEOF fi for ac_header in fcntl.h sys/ioctl.h sys/time.h unistd.h string.h strings.h syslog.h sys/file.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for pid_t" >&5 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef pid_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } if test $ac_cv_type_pid_t = yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef size_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF #define TIME_WITH_SYS_TIME 1 _ACEOF fi if test $ac_cv_c_compiler_gnu = yes; then { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi for ac_func in vprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF { echo "$as_me:$LINENO: checking for _doprnt" >&5 echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; } if test "${ac_cv_func__doprnt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define _doprnt to an innocuous variant, in case declares _doprnt. For example, HP-UX 11i declares gettimeofday. */ #define _doprnt innocuous__doprnt /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef _doprnt /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char _doprnt (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub__doprnt || defined __stub____doprnt choke me #endif int main () { return _doprnt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func__doprnt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func__doprnt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 echo "${ECHO_T}$ac_cv_func__doprnt" >&6; } if test $ac_cv_func__doprnt = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DOPRNT 1 _ACEOF fi fi done { echo "$as_me:$LINENO: checking whether closedir returns void" >&5 echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6; } if test "${ac_cv_func_closedir_void+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_closedir_void=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header_dirent> #ifndef __cplusplus int closedir (); #endif int main () { return closedir (opendir (".")) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_closedir_void=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_closedir_void=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 echo "${ECHO_T}$ac_cv_func_closedir_void" >&6; } if test $ac_cv_func_closedir_void = yes; then cat >>confdefs.h <<\_ACEOF #define CLOSEDIR_VOID 1 _ACEOF fi for ac_func in select strdup strerror getopt_long do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile src/Makefile def/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "def/Makefile") CONFIG_FILES="$CONFIG_FILES def/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim SET_MAKE!$SET_MAKE$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINT!$MAINT$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim LN_S!$LN_S$ac_delim XMKMF!$XMKMF$ac_delim X_CFLAGS!$X_CFLAGS$ac_delim X_PRE_LIBS!$X_PRE_LIBS$ac_delim X_LIBS!$X_LIBS$ac_delim X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim XML2_CONFIG!$XML2_CONFIG$ac_delim XML_CFLAGS!$XML_CFLAGS$ac_delim XML_LIBS!$XML_LIBS$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim GTK_CFLAGS!$GTK_CFLAGS$ac_delim GTK_LIBS!$GTK_LIBS$ac_delim LIBXOSD_CONFIG!$LIBXOSD_CONFIG$ac_delim LIBXOSD_CFLAGS!$LIBXOSD_CFLAGS$ac_delim LIBXOSD_LIBS!$LIBXOSD_LIBS$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 78; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "default-1":C) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi hotkeys-0.5.7.4/hotkeys.spec0000664000000000000000000000260307253726363012623 0ustar Summary: A program to use the special keys on internet/multimedia keyboards. Name: hotkeys Version: 0.5.2 Release: 1 Serial: 1 Copyright: GPL Group: Applications/System Source: http://ypwong.org/hotkeys/%{name}_%{version}.tar.gz URL: http://ypwong.org/hotkeys/ BuildRoot: %{_tmppath}/%{name}-root Requires: xosd, libxml BuildRequires: xosd, db2-devel, libxml-devel %description The HotKeys daemon listens for the "special" hotkeys that you won't normally use on your Internet/Multimedia keyboards. The buttons perform their intended behaviors, such as volume up and down, mute the speaker, or launch applications. It has On-screen display (OSD) to show the volume, program that's being started, etc. It features an XML-based keycode configuration file format, which makes it possible to define the hotkeys to launch any programs you want. %prep %setup -q -n %{name}-%{version} %build %configure make %install rm -rf %{buildroot} %makeinstall %clean rm -rf %{buildroot} %files %defattr(-, root, root) %doc AUTHORS BUGS COPYING INSTALL TODO def/sample.xml debian/changelog %{_bindir}/%{name} %{_datadir}/%{name} %{_mandir}/man*/* %changelog * Thu Feb 8 2001 Matthias Saou - Update to 0.5 * Sat Feb 3 2001 Matthias Saou - Update to 0.4 * Sat Jan 20 2001 Matthias Saou - Initial spec file. hotkeys-0.5.7.4/INSTALL0000664000000000000000000000034307253731773011312 0ustar HOTKEYS ------- To compile the program, just type ./configure && make You will get an executable file called 'hotkeys'. For compilation options, please use ./configure --help To install, type make install hotkeys-0.5.7.4/NEWS0000664000000000000000000000000007571427165010746 0ustar hotkeys-0.5.7.4/AUTHORS0000664000000000000000000000226507567515767011351 0ustar The program is written by Anthony Wong The following persons sent me keycodes of their keyboards, suggestions, and whatever :) Brett Pemberton for initial xosd patch Matthias Saou for RPM packaging jas Jeffrey Panczyk Phil Hagen Fran Firman Hendrik Muhs Roberto Piscitello Petter Knudsen David Blackman Nathan Yawn Dave Crane Matthijs Melchior Sebastien Delestaing Cord Beermann Andrew Molloy Ste sKaBoy wl Christophe GIRARD WanSLenowski Derrik Pates Junichi Uekawa Please remind me if I have left out your name :) hotkeys-0.5.7.4/BUGS0000664000000000000000000000046507255325172010743 0ustar For any known bugs, please refer to the BUGS section in the man page. Please send any bug report and suggestions to hotkeys@ypwong.org . Remember to mention the version number of hotkeys, the versions of all related libraries, an output of running ldd on hotkeys and strace/ltrace/core file if it segfaults. hotkeys-0.5.7.4/aclocal.m40000664000000000000000000014476710650141111012114 0ustar dnl aclocal.m4t generated automatically by aclocal 1.4-p6 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. # Macro to add for using GNU gettext. # Ulrich Drepper , 1995. # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # serial 5 AC_DEFUN(AM_GTK_WITH_NLS, [AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) USE_INCLUDED_LIBINTL=no dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then # AC_DEFINE(ENABLE_NLS) # AC_MSG_CHECKING([whether included gettext is requested]) # AC_ARG_WITH(included-gettext, # [ --with-included-gettext use the GNU gettext library included here], # nls_cv_force_use_gnu_gettext=$withval, # nls_cv_force_use_gnu_gettext=no) # AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_force_use_gnu_gettext="no" nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If gettext or catgets are available (in this order) we dnl use this. Else we have to fall back to GNU NLS library. dnl catgets is only used if permitted by option --with-catgets. nls_cv_header_intl= nls_cv_header_libgt= CATOBJEXT=NONE AC_CHECK_HEADER(libintl.h, [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([#include ], [return (int) dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)]) if test "$gt_cv_func_dgettext_libc" != "yes"; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CACHE_CHECK([for dgettext in libintl], gt_cv_func_dgettext_libintl, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes, gt_cv_func_dgettext_libintl=no)], gt_cv_func_dgettext_libintl=no)]) fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then LIBS="$LIBS -lintl"; fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then AC_DEFINE(HAVE_GETTEXT) AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then AC_CHECK_FUNCS(dcgettext) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) INSTOBJEXT=.mo fi fi # Added by Martin Baulig 12/15/98 for libc5 systems if test "$gt_cv_func_dgettext_libc" != "yes" \ && test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS=-lintl LIBS=`echo $LIBS | sed -e 's/-lintl//'` fi ]) if test "$CATOBJEXT" = "NONE"; then AC_MSG_CHECKING([whether catgets can be used]) AC_ARG_WITH(catgets, [ --with-catgets use catgets functions if available], nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) AC_MSG_RESULT($nls_cv_use_catgets) if test "$nls_cv_use_catgets" = "yes"; then dnl No gettext in C library. Try catgets next. AC_CHECK_LIB(i, main) AC_CHECK_FUNC(catgets, [AC_DEFINE(HAVE_CATGETS) INTLOBJS="\$(CATOBJS)" AC_PATH_PROG(GENCAT, gencat, no)dnl # if test "$GENCAT" != "no"; then # AC_PATH_PROG(GMSGFMT, gmsgfmt, no) # if test "$GMSGFMT" = "no"; then # AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) # fi # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) # USE_INCLUDED_LIBINTL=yes # CATOBJEXT=.cat # INSTOBJEXT=.cat # DATADIRNAME=lib # INTLDEPS='$(top_builddir)/intl/libintl.a' # INTLLIBS=$INTLDEPS # LIBS=`echo $LIBS | sed -e 's/-lintl//'` # nls_cv_header_intl=intl/libintl.h # nls_cv_header_libgt=intl/libgettext.h # fi ]) fi fi if test "$CATOBJEXT" = "NONE"; then dnl Neither gettext nor catgets in included in the C library. dnl Fall back on GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" != "yes"; then AC_DEFINE(ENABLE_NLS) else # Unset this variable since we use the non-zero value as a flag. CATOBJEXT= # dnl Mark actions used to generate GNU NLS library. # INTLOBJS="\$(GETTOBJS)" # AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) # AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) # AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, # [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) # AC_SUBST(MSGFMT) # USE_INCLUDED_LIBINTL=yes # CATOBJEXT=.gmo # INSTOBJEXT=.mo # DATADIRNAME=share # INTLDEPS='$(top_builddir)/intl/libintl.a' # INTLLIBS=$INTLDEPS # LIBS=`echo $LIBS | sed -e 's/-lintl//'` # nls_cv_header_intl=intl/libintl.h # nls_cv_header_libgt=intl/libgettext.h fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po else DATADIRNAME=share nls_cv_header_intl=intl/libintl.h nls_cv_header_libgt=intl/libgettext.h fi AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) # # If this is used in GNU gettext we have to set USE_NLS to `yes' # # because some of the sources are only built for this goal. # if test "$PACKAGE" = gettext; then # USE_NLS=yes # USE_INCLUDED_LIBINTL=yes # fi dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLDEPS) AC_SUBST(INTLLIBS) AC_SUBST(INTLOBJS) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) AC_DEFUN(AM_GTK_GNU_GETTEXT, [AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ strdup __argz_count __argz_stringify __argz_next]) if test "${ac_cv_func_stpcpy+set}" != "set"; then AC_CHECK_FUNCS(stpcpy) fi if test "${ac_cv_func_stpcpy}" = "yes"; then AC_DEFINE(HAVE_STPCPY) fi AM_LC_MESSAGES AM_GTK_WITH_NLS if test "x$CATOBJEXT" != "x"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; esac done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl The reference to in the installed file dnl must be resolved because we cannot expect the users of this dnl to define HAVE_LOCALE_H. if test $ac_cv_header_locale_h = yes; then INCLUDE_LOCALE_H="#include " else INCLUDE_LOCALE_H="\ /* The system does not provide the header . Take care yourself. */" fi AC_SUBST(INCLUDE_LOCALE_H) dnl Determine which catalog format we have (if any is needed) dnl For now we know about two different formats: dnl Linux libc-5 and the normal X/Open format test -d intl || mkdir intl if test "$CATOBJEXT" = ".cat"; then AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) dnl Transform the SED scripts while copying because some dumb SEDs dnl cannot handle comments. sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed fi dnl po2tbl.sed is always needed. sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed dnl In the intl/Makefile.in we have a special dependency which makes dnl only sense for gettext. We comment this out for non-gettext dnl packages. if test "$PACKAGE" = "gettext"; then GT_NO="#NO#" GT_YES= else GT_NO= GT_YES="#YES#" fi AC_SUBST(GT_NO) AC_SUBST(GT_YES) dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl *** For now the libtool support in intl/Makefile is not for real. l= AC_SUBST(l) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) dnl----------------------------------------------------------------------- dnl Checks for LIBDB dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_DB, [ if test ! x$db_libdir = x; then LIBS="$LIBS -L$db_libdir" fi if test ! x$db_incdir = x; then CPPFLAGS="$CPPFLAGS -I$db_incdir" fi dnl dnl We need to check both libdb and libdb dnl AC_CHECK_LIB(db, db_create, , [ nodb=yes ]) if test "x$nodb" = "xyes" then AC_CHECK_LIB(db, db_create, , [ AC_MSG_RESULT(no) echo "*** Cannot find a suitable Berkeley DB library on your system." echo "*** Version 3.2.9 or above is required." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 ]) fi dnl dnl Check its version dnl AC_MSG_CHECKING(for version of db) AC_TRY_RUN([ #include int main () { int major=0, minor=0, patch=0; db_version(&major, &minor, &patch); if ( major > 3 || (major==3 && ((minor==2 && patch>=9) || minor>2)) ) exit(0); else exit(1); } ],[ AC_MSG_RESULT([>= 3.2.9, ok]) ], [ AC_MSG_RESULT([< 3.2.9, failed]) echo "*** The version of the Berkeley DB library installed is not" echo "*** 3.2.9 or above, make sure the correct version is installed." echo "*** If you've installed it in an unusual location, please" echo "*** use --with-db-inc and --with-db-lib to specify it." exit 1 ], [echo $ac_n "cross compiling; assumed OK... $ac_c"] ) ]) dnl----------------------------------------------------------------------- dnl Checks for LIBXML2 dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_LIBXML2, [ if test x$xml_config_prefix != x then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x$PATH != x then xml_search_path="$PATH:$xml_config_prefix/bin" else xml_search_path="$xml_config_prefix/bin" fi dnl if test x${XML_CONFIG+set} != xset dnl then dnl XML_CONFIG=$xml_config_prefix/bin/xml-config dnl fi else xml_search_path=$PATH fi dnl dnl Search for both xml-config and xml2-config dnl AC_PATH_PROGS( XML_CONFIG, xml2-config xml-config, no, $xml_search_path ) if test "$XML_CONFIG" = "no" then dnl AC_CHECK_PROG( HAVE_XML_CONFIG, xml-config, "yes", "no" ) dnl if test x$HAVE_XML_CONFIG = "xno" ; then AC_MSG_ERROR(xml-config/xml2-config not found. You need to install libxml2. If it has already been installed, please use --xml-prefix to specify its location.) fi XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML_CONFIG $xml_config_args --libs` CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$LIBS $XML_LIBS" dnl AC_SUBST(XML_CFLAGS) dnl AC_SUBST(XML_LIBS) AC_CHECK_LIB(xml2, xmlParseFile) AC_MSG_CHECKING(for xmlChildrenNode in parser.h) AC_TRY_RUN([ #include int main () { #ifdef xmlChildrenNode exit(0); #else exit(1); #endif } ],[ AC_MSG_RESULT(yes) ], [ AC_MSG_RESULT(no) echo "*** This version of libxml has not defined xmlChildrenNode." echo "*** Please upgrade it. Version 2.2.8 and above are known to" echo "*** to be good. If you've installed it in an unusual location," echo "*** please use --with-xml-prefix to specify it." exit 1 ], [echo $ac_n "cross compiling; assumed OK... $ac_c"] ) ]) dnl----------------------------------------------------------------------- dnl Checks for LIBXOSD (>= 0.7.0) dnl----------------------------------------------------------------------- AC_DEFUN(AM_CHECK_LIBXOSD, [ if test ! x$xosd_libdir = x; then LIBS="$LIBS -L$xosd_libdir" fi if test ! x$xosd_incdir = x; then CPPFLAGS="$CPPFLAGS -I$xosd_incdir" fi if test "x$enable_xosd" = "xyes" then dnl dnl Check its version dnl AC_MSG_CHECKING(for version of libxosd) LIBS="-lxosd $LIBS" AC_TRY_LINK([#include ], [ void test() { xosd* t = xosd_init("font", "colour", 0, XOSD_top, 0, 0); } ],[ AC_MSG_RESULT([>= 0.7.0, ok]) AC_DEFINE(HAVE_LIBXOSD) CFLAGS="$CFLAGS -D_REENTRANT" LIBS="$LIBS -lpthread" ], [ AC_MSG_RESULT([< 0.7.0, failed]) echo "*** The version of XOSD library installed is not 0.7.0 or" echo "*** above, make sure the correct version is installed." exit 1 ] ) fi ]) # progtest.m4 serial 2 (gettext-0.10.40) dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) # lcmessage.m4 serial 3 (gettext-0.11.3) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([AM_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN([AM_CONFIG_HEADER], [AC_PREREQ([2.12]) AC_CONFIG_HEADER([$1]) dnl When config.status generates a header, we must update the stamp-h file. dnl This file resides in the same directory as the config header dnl that is generated. We must strip everything past the first ":", dnl and everything past the last "/". AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, <>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, <>; do case " <<$>>CONFIG_HEADERS " in *" <<$>>am_file "*<<)>> echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ;; esac am_indx=`expr "<<$>>am_indx" + 1` done<<>>dnl>>) changequote([,]))]) # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 1 dnl Usage: dnl AM_INIT_AUTOMAKE(package,version, [no-define]) AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL]) PACKAGE=[$1] AC_SUBST(PACKAGE) VERSION=[$2] AC_SUBST(VERSION) dnl test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi ifelse([$3],, AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_REQUIRE([AM_SANITY_CHECK]) AC_REQUIRE([AC_ARG_PROGRAM]) dnl FIXME This is truly gross. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AC_REQUIRE([AC_PROG_MAKE_SET])]) # Copyright 2002 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.4-p6])]) # # Check to make sure that the build environment is sane. # AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftestfile # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` if test "[$]*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftestfile` fi if test "[$]*" != "X $srcdir/configure conftestfile" \ && test "[$]*" != "X conftestfile $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "[$]2" = conftestfile ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi rm -f conftest* AC_MSG_RESULT(yes)]) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl The program must properly implement --version. AC_DEFUN([AM_MISSING_PROG], [AC_MSG_CHECKING(for working $2) # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. if ($2 --version) < /dev/null > /dev/null 2>&1; then $1=$2 AC_MSG_RESULT(found) else $1="$3/missing $2" AC_MSG_RESULT(missing) fi AC_SUBST($1)]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT($USE_MAINTAINER_MODE) AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_SUBST($1_TRUE) AC_SUBST($1_FALSE) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi]) # Configure paths for LIBXML2 # Toshio Kuratomi 2001-04-21 # Adapted from: # Configure paths for GLIB # Owen Taylor 97-11-3 dnl AM_PATH_XML([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for XML, and define XML_CFLAGS and XML_LIBS dnl AC_DEFUN(AM_PATH_XML,[ AC_ARG_WITH(xml-prefix, [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], xml_config_prefix="$withval", xml_config_prefix="") AC_ARG_WITH(xml-exec-prefix, [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], xml_config_exec_prefix="$withval", xml_config_exec_prefix="") AC_ARG_ENABLE(xmltest, [ --disable-xmltest Do not try to compile and run a test LIBXML program],, enable_xmltest=yes) if test x$xml_config_exec_prefix != x ; then xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" if test x${XML_CONFIG+set} != xset ; then XML_CONFIG=$xml_config_exec_prefix/bin/xml-config fi fi if test x$xml_config_prefix != x ; then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x${XML_CONFIG+set} != xset ; then XML_CONFIG=$xml_config_prefix/bin/xml-config fi fi AC_PATH_PROG(XML_CONFIG, xml-config, no) min_xml_version=ifelse([$1], ,1.0.0,[$1]) AC_MSG_CHECKING(for libxml - version >= $min_xml_version) no_xml="" if test "$XML_CONFIG" = "no" ; then no_xml=yes else XML_CFLAGS=`$XML_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML_CONFIG $xml_config_args --libs` xml_config_major_version=`$XML_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` xml_config_minor_version=`$XML_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` xml_config_micro_version=`$XML_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_xmltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$XML_LIBS $LIBS" dnl dnl Now check if the installed libxml is sufficiently new. dnl (Also sanity checks the results of xml-config to some extent) dnl rm -f conf.xmltest AC_TRY_RUN([ #include #include #include #include int main() { int xml_major_version, xml_minor_version, xml_micro_version; int major, minor, micro; char *tmp_version; int tmp_int_version; system("touch conf.xmltest"); /* Capture xml-config output via autoconf/configure variables */ /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = (char *)strdup("$min_xml_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string from xml-config\n", "$min_xml_version"); exit(1); } free(tmp_version); /* Capture the version information from the header files */ tmp_int_version = LIBXML_VERSION; xml_major_version=tmp_int_version / 10000; xml_minor_version=(tmp_int_version - xml_major_version * 10000) / 100; xml_micro_version=(tmp_int_version - xml_minor_version * 100 - xml_major_version * 10000); /* Compare xml-config output to the libxml headers */ if ((xml_major_version != $xml_config_major_version) || (xml_minor_version != $xml_config_minor_version) #if 0 || /* The last released version of libxml-1.x has an incorrect micro version in * the header file so neither the includes nor the library will match the * micro_version to the output of xml-config */ (xml_micro_version != $xml_config_micro_version) #endif ) { printf("*** libxml header files (version %d.%d.%d) do not match\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** xml-config (version %d.%d.%d)\n", $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); return 1; } /* Compare the headers to the library to make sure we match */ /* Less than ideal -- doesn't provide us with return value feedback, * only exits if there's a serious mismatch between header and library. */ LIBXML_TEST_VERSION; /* Test that the library is greater than our minimum version */ if (($xml_config_major_version > major) || (($xml_config_major_version == major) && ($xml_config_minor_version > minor)) || (($xml_config_major_version == major) && ($xml_config_minor_version == minor) && ($xml_config_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the xml-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBXML, but you can also set the XML_CONFIG environment to point to the\n"); printf("*** correct copy of xml-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } return 1; } ],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_xml" = x ; then AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$XML_CONFIG" = "no" ; then echo "*** The xml-config script installed by LIBXML could not be found" echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the XML_CONFIG environment variable to the" echo "*** full path to xml-config." else if test -f conf.xmltest ; then : else echo "*** Could not run libxml test program, checking why..." CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$LIBS $XML_LIBS" AC_TRY_LINK([ #include #include ], [ LIBXML_TEST_VERSION; return 0;], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBXML or finding the wrong" echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" echo "*** may want to edit the xml-config script: $XML_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi XML_CFLAGS="" XML_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(XML_CFLAGS) AC_SUBST(XML_LIBS) rm -f conf.xmltest ]) # Configure paths for LIBXML2 # Toshio Kuratomi 2001-04-21 # Adapted from: # Configure paths for GLIB # Owen Taylor 97-11-3 dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for XML, and define XML_CFLAGS and XML_LIBS dnl AC_DEFUN(AM_PATH_XML2,[ AC_ARG_WITH(xml-prefix, [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], xml_config_prefix="$withval", xml_config_prefix="") AC_ARG_WITH(xml-exec-prefix, [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], xml_config_exec_prefix="$withval", xml_config_exec_prefix="") AC_ARG_ENABLE(xmltest, [ --disable-xmltest Do not try to compile and run a test LIBXML program],, enable_xmltest=yes) if test x$xml_config_exec_prefix != x ; then xml_config_args="$xml_config_args --exec-prefix=$xml_config_exec_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config fi fi if test x$xml_config_prefix != x ; then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_prefix/bin/xml2-config fi fi AC_PATH_PROG(XML2_CONFIG, xml2-config, no) min_xml_version=ifelse([$1], ,2.0.0,[$1]) AC_MSG_CHECKING(for libxml - version >= $min_xml_version) no_xml="" if test "$XML2_CONFIG" = "no" ; then no_xml=yes else XML_CFLAGS=`$XML2_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_xmltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$XML_LIBS $LIBS" dnl dnl Now check if the installed libxml is sufficiently new. dnl (Also sanity checks the results of xml2-config to some extent) dnl rm -f conf.xmltest AC_TRY_RUN([ #include #include #include #include int main() { int xml_major_version, xml_minor_version, xml_micro_version; int major, minor, micro; char *tmp_version; system("touch conf.xmltest"); /* Capture xml2-config output via autoconf/configure variables */ /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = (char *)strdup("$min_xml_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string from xml2-config\n", "$min_xml_version"); exit(1); } free(tmp_version); /* Capture the version information from the header files */ tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); exit(1); } free(tmp_version); /* Compare xml2-config output to the libxml headers */ if ((xml_major_version != $xml_config_major_version) || (xml_minor_version != $xml_config_minor_version) || (xml_micro_version != $xml_config_micro_version)) { printf("*** libxml header files (version %d.%d.%d) do not match\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** xml2-config (version %d.%d.%d)\n", $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); return 1; } /* Compare the headers to the library to make sure we match */ /* Less than ideal -- doesn't provide us with return value feedback, * only exits if there's a serious mismatch between header and library. */ LIBXML_TEST_VERSION; /* Test that the library is greater than our minimum version */ if ((xml_major_version > major) || ((xml_major_version == major) && (xml_minor_version > minor)) || ((xml_major_version == major) && (xml_minor_version == minor) && (xml_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); printf("*** correct copy of xml2-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } return 1; } ],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_xml" = x ; then AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$XML2_CONFIG" = "no" ; then echo "*** The xml2-config script installed by LIBXML could not be found" echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the XML2_CONFIG environment variable to the" echo "*** full path to xml2-config." else if test -f conf.xmltest ; then : else echo "*** Could not run libxml test program, checking why..." CFLAGS="$CFLAGS $XML_CFLAGS" LIBS="$LIBS $XML_LIBS" AC_TRY_LINK([ #include #include ], [ LIBXML_TEST_VERSION; return 0;], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBXML or finding the wrong" echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi XML_CFLAGS="" XML_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(XML_CFLAGS) AC_SUBST(XML_LIBS) rm -f conf.xmltest ]) # Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN(AM_PATH_GTK_2_0, [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) pkg_config_args=gtk+-2.0 for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo *** pkg-config too old; version 0.7 or better required. no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) # Oron Peled (Sun Jun 30 2002) # Taken from libglade.m4 # a macro to get the libs/cflags for libxosd dnl AM_PATH_LIBXOSD([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Test to see if libxosd is installed, and define LIBXOSD_CFLAGS, LIBXOSDLIBS dnl AC_DEFUN(AM_PATH_LIBXOSD, [dnl dnl Get the cflags and libraries from the xosd-config script dnl AC_ARG_WITH(xosd-config, [ --with-xosd-config=LIBXOSD_CONFIG Location of xosd-config], LIBXOSD_CONFIG="$withval") AC_PATH_PROG(LIBXOSD_CONFIG, xosd-config, no) AC_MSG_CHECKING(for libxosd) if test "$LIBXOSD_CONFIG" = "no"; then AC_MSG_RESULT(no) ifelse([$2], , :, [$2]) else LIBXOSD_CFLAGS=`$LIBXOSD_CONFIG --cflags` LIBXOSD_LIBS=`$LIBXOSD_CONFIG --libs` AC_MSG_RESULT(yes) ifelse([$1], , :, [$1]) fi AC_SUBST(LIBXOSD_CFLAGS) AC_SUBST(LIBXOSD_LIBS) ]) hotkeys-0.5.7.4/debian/0000775000000000000000000000000012235206407011466 5ustar hotkeys-0.5.7.4/debian/dirs0000664000000000000000000000001007227133627012351 0ustar usr/bin hotkeys-0.5.7.4/debian/copyright0000664000000000000000000000242411173741245013427 0ustar This is hotkeys, written and maintained by Anthony Wong on Fri, 29 Dec 2000 21:25:58 +0800. The original source can always be found at: ftp://ftp.debian.org/debian/dists/woody/main/source/x11/ Copyright: Copyright (C) 2000,2001 Anthony Y P Wong src/xbacklight.c: Copyright © 2007 Keith Packard src/amixer.c: Copyright (C) 1999-2000 by Jaroslav Kysela src/apmlib.c: Copyright (C) 1996, 1997 Rickard E. Faith src/splash.c: Copyright (C) 1995 Spencer Kimball and Peter Mattis License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License with the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. hotkeys-0.5.7.4/debian/changelog0000664000000000000000000000000012235206407017374 1hotkeys-0.5.7.4/ChangeLogustar hotkeys-0.5.7.4/debian/control0000664000000000000000000000214312135107424013067 0ustar Source: hotkeys Section: x11 Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Alexander Wirt Build-Depends: debhelper (>= 5.0.0), libxml2-dev (>= 2.2.8), libxosd-dev (>= 2.0.2), libdb-dev, autoconf (>= 2.56), libgtk2.0-dev, libglib2.0-dev, libx11-dev, libxkbfile-dev, libxmu-dev, x11proto-core-dev, libasound2-dev Standards-Version: 3.8.1 Package: hotkeys Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: xmms (<< 1.2.6-1) Description: A hotkeys daemon for your Internet/multimedia keyboard in X This program sits at the back and listens for the "special" hotkeys that you won't normally use on your Internet/Multimedia keyboards. The buttons perform their intended behaviors, such as volume up and down, mute the speaker, control the backlight, launch applications, etc. It has On-screen display (OSD) to show the volume, program that's being started, etc. . It features an XML-based keycode configuration file format, which makes it possible to define the hotkeys to launch any programs you want. hotkeys-0.5.7.4/debian/shlibs.local0000664000000000000000000000007507261153451013773 0ustar libdb2 2 libdb2 (>= 2.7.7) libxml2 2 libxml2 (>= 2.2.8) hotkeys-0.5.7.4/debian/hotkeys.postrm0000664000000000000000000000155007227133627014433 0ustar #! /bin/sh # postrm script for hotkeys # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # for details, see /usr/share/doc/packaging-manual/ case "$1" in purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 0 esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# hotkeys-0.5.7.4/debian/menu0000664000000000000000000000031711173734455012367 0ustar ?package(hotkeys):\ needs="X11" \ section="Applications/System/Administration"\ title="Hotkeys daemon"\ longtitle="hotkeys daemon for your Internet/multimedia keyboard"\ command="/usr/bin/hotkeys" hotkeys-0.5.7.4/debian/rules0000775000000000000000000000311311173742500012543 0ustar #!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. PACKAGE=hotkeys # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 configure: configure-stamp configure-stamp: dh_testdir # Add here commands to configure the package. ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \ --with-xosd --with-gtk touch configure-stamp build: configure-stamp build-stamp build-stamp: dh_testdir # Add here commands to compile the package. $(MAKE) #/usr/bin/docbook-to-man debian/hotkeys.sgml > hotkeys.1 touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp rm -rf debian/$(PACKAGE) # Add here commands to clean up after the build process. [ ! -f Makefile ] || $(MAKE) distclean dh_clean /bin/rm -f Makefile install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(PACKAGE) install # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot # dh_installdebconf dh_installdocs dh_installexamples dh_installmenu # dh_installcron # dh_installmanpages # dh_installinfo dh_installchangelogs # dh_link dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure hotkeys-0.5.7.4/debian/postinst.hotkeys0000664000000000000000000000233607227133627014775 0ustar #! /bin/sh # postinst script for hotkeys # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # for details, see /usr/share/doc/packaging-manual/ # # quoting from the policy: # Any necessary prompting should almost always be confined to the # post-installation script, and should be protected with a conditional # so that unnecessary prompting doesn't happen if a package's # installation fails and the `postinst' is called with `abort-upgrade', # `abort-remove' or `abort-deconfigure'. case "$1" in configure) ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 hotkeys-0.5.7.4/debian/docs0000664000000000000000000000004307573176751012357 0ustar README TODO AUTHORS def/sample.xml hotkeys-0.5.7.4/debian/compat0000664000000000000000000000000211173727225012672 0ustar 5 hotkeys-0.5.7.4/TODO0000664000000000000000000000645411173730024010742 0ustar TODO ---- My wishlist, in probably no specific priority order: - Stabilize on the XML of def files, the current one has many deficiencies in it. Once this is finished, I'll release it as version 1.0. At the same time, write a DTD for it. - Support more keyboard types, please e-mail me on this if you have a keyboard that's not yet supported. - Support of devfs - Multiple functionalities per key - Support true sleeping, suspend and power down (or logging out from WM). - use XSetScreenSaver to support screen saver - Run xscreensaver daemon on start-up (configurable) - A cleaner fix for the VMware problem: listen for notification and act accordingly. - A GUI for configuration, probably a GTK one, with Gnome integration. Later I may do for KDE too. - Internationalization, gettextize it! - Documentation, should be done after the code is stabilized. - Separate into a library: - New tags suggested by Jean-Philippe (bug #146029): Vendor (for the HP key) Photo or Camera (for My Photo Centre) Sports Finance Music or MediaPlayer Interface (suggestions welcome) --------- . int hkey_addkey(int keycode, Act action, int order) keycode - the keycode to be added action - the built-in action to take when the key is pressed order - the position that this action appears in the 'chain' of functionalities of this keycode, starts from 0, -1 for the last (that is append) FIXME: need an argument to specify the modifiers (CTRL, SHIFT, etc) returns 0 if success, -1 if already added, -2 if keycode is probably being used by another program . int hkey_addkeyc(int keycode, int (*callback)(int, int, struct timeval), int order) callback - the function to execute when the key with keycode is pressed, the keycode, the number of times this key has been pressed, and the time that the key was last pressed are passed to the function. returns 0 if success, -1 if already added, -2 probably being used by another program . int hkey_addkeyl(int keycode, const char * string, int order) string - command line to execute returns 0 if success, -1 if already added, -2 probably being used by another program . int hkey_rmkey(int keycode) returns 0 if success, -1 if keycode not added, -2 unknown error . int hkey_modkey(int keycode, Act action, int order) returns 0 if success, -1 if keycode not added, -2 if keycode present but no such order, -3 unknown error . int hkey_modkeyc(int keycode, int (*callback)(int, int, struct timeval), int order) . int hkey_modkeyl(int keycode, const char * string, int order) . int hkey_chkkey(int keycode) check if the keycode is being used by another program, not 100% correct, but it's a very good guess. returns 1 if it's being used, 0 otherwise. . int hkey_forceadd(int opt) if opt is 1, then all addkey* calls will not check whether the key is being used by another program, and will add it whatever. To reset it set opt to 0. This call always succeeds. . int hkey_version(int * major, int * minor, int * patch) return the major version and minor versions and patch level. the return value is undefined. . int hkey_clracts(int start, int end) (undocumented) clear all action messages starting from start to end, for testing and debugging. returns 0 if success, -1 otherwise.