diff options
author | Carl Hetherington <carl@carlh.net> | 2007-11-13 10:45:40 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2007-11-13 10:45:40 +0000 |
commit | aa6faa86b556b99c2c81675dfd1c558b21b6289b (patch) | |
tree | 82a935740772418926a7aae0ea2138b625cb7cbc /libs | |
parent | a313924b771513efb49663eb2004f1aac4e7121d (diff) |
More missing stuff...
git-svn-id: svn://localhost/ardour2/trunk@2645 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
32 files changed, 5856 insertions, 0 deletions
diff --git a/libs/glibmm2/examples/Makefile.am b/libs/glibmm2/examples/Makefile.am new file mode 100644 index 0000000000..79d9c73a9c --- /dev/null +++ b/libs/glibmm2/examples/Makefile.am @@ -0,0 +1,21 @@ +example_dirs = markup options thread iochannel_stream child_watch + +# These use gtkmm stuff: +# thread + +SUBDIRS = $(example_dirs) +EXTRA_DIST = README Makefile.am_fragment + +#Web upload: +include $(top_srcdir)/docs/Makefile_web.am_fragment + +web_path = $(web_path_gtkmm)examples + +#rsync --cvs-exclude ignores *.o and anything in .cvsignore and some more: +rsync_options = -vzr --rsh ssh --cvs-exclude --delete-excluded --exclude=.libs --exclude=.deps --exclude=core --exclude=.cvsignore --exclude=a.out --exclude=Makefile --exclude=Makefile.in + +post-html: + rsync $(rsync_options) $(example_dirs) $$USER@$(web_host):$(web_path) + +.PHONY: post-html + diff --git a/libs/glibmm2/examples/Makefile.am_fragment b/libs/glibmm2/examples/Makefile.am_fragment new file mode 100644 index 0000000000..83433390c6 --- /dev/null +++ b/libs/glibmm2/examples/Makefile.am_fragment @@ -0,0 +1,40 @@ + +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la + +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) + +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFS = @DEFS@ +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) + +glibmm_docdir = $(datadir)/doc/glibmm-2.4 + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src diff --git a/libs/glibmm2/examples/Makefile.in b/libs/glibmm2/examples/Makefile.in new file mode 100644 index 0000000000..552afa3ec4 --- /dev/null +++ b/libs/glibmm2/examples/Makefile.in @@ -0,0 +1,530 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/docs/Makefile_web.am_fragment +subdir = examples +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +example_dirs = markup options thread iochannel_stream child_watch + +# These use gtkmm stuff: +# thread +SUBDIRS = $(example_dirs) +EXTRA_DIST = README Makefile.am_fragment +web_host = gtkmm.org +web_path_gtkmm = /home/murrayc/gtkmm.org/docs/glibmm-2.4/ +#web_path_gtkmm = /home/groups/g/gt/gtkmm/htdocs/docs/glibmm-2.4/ +web_path_docs = $(web_path_gtkmm)docs/ +rsync_args = -vz --rsh ssh --delete --delete-after +gtkmm_docdir = $(datadir)/doc/glibmm-2.4/docs + +#Web upload: +web_path = $(web_path_gtkmm)examples + +#rsync --cvs-exclude ignores *.o and anything in .cvsignore and some more: +rsync_options = -vzr --rsh ssh --cvs-exclude --delete-excluded --exclude=.libs --exclude=.deps --exclude=core --exclude=.cvsignore --exclude=a.out --exclude=Makefile --exclude=Makefile.in +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/docs/Makefile_web.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# 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. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + 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) \ + || eval $$failcom; \ + 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: + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + 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) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../docs + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + clean clean-generic clean-libtool clean-recursive ctags \ + ctags-recursive distclean distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-info-am + + +post-html: + rsync $(rsync_options) $(example_dirs) $$USER@$(web_host):$(web_path) + +.PHONY: post-html +# 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: diff --git a/libs/glibmm2/examples/README b/libs/glibmm2/examples/README new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/libs/glibmm2/examples/README @@ -0,0 +1 @@ + diff --git a/libs/glibmm2/examples/child_watch/Makefile.am b/libs/glibmm2/examples/child_watch/Makefile.am new file mode 100644 index 0000000000..b819ac2e37 --- /dev/null +++ b/libs/glibmm2/examples/child_watch/Makefile.am @@ -0,0 +1,11 @@ +include $(top_srcdir)/examples/Makefile.am_fragment + +# fork() does not work on win32 +if OS_WIN32 +else + +#Build the executable, but don't install it. +noinst_PROGRAMS = child_watch +child_watch_SOURCES = main.cc + +endif diff --git a/libs/glibmm2/examples/child_watch/Makefile.in b/libs/glibmm2/examples/child_watch/Makefile.in new file mode 100644 index 0000000000..234736252f --- /dev/null +++ b/libs/glibmm2/examples/child_watch/Makefile.in @@ -0,0 +1,493 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/examples/Makefile.am_fragment +@OS_WIN32_FALSE@noinst_PROGRAMS = child_watch$(EXEEXT) +subdir = examples/child_watch +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am__child_watch_SOURCES_DIST = main.cc +@OS_WIN32_FALSE@am_child_watch_OBJECTS = main.$(OBJEXT) +child_watch_OBJECTS = $(am_child_watch_OBJECTS) +child_watch_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(child_watch_SOURCES) +DIST_SOURCES = $(am__child_watch_SOURCES_DIST) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) +glibmm_docdir = $(datadir)/doc/glibmm-2.4 +@OS_WIN32_FALSE@child_watch_SOURCES = main.cc +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/examples/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/child_watch/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/child_watch/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +child_watch$(EXEEXT): $(child_watch_OBJECTS) $(child_watch_DEPENDENCIES) + @rm -f child_watch$(EXEEXT) + $(CXXLINK) $(child_watch_LDFLAGS) $(child_watch_OBJECTS) $(child_watch_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../examples + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-local + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-local + + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src +# 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: diff --git a/libs/glibmm2/examples/child_watch/main.cc b/libs/glibmm2/examples/child_watch/main.cc new file mode 100644 index 0000000000..5c0e793a64 --- /dev/null +++ b/libs/glibmm2/examples/child_watch/main.cc @@ -0,0 +1,69 @@ +/* Copyright (C) 2005 The glibmm Development Team + * + * 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 <glibmm.h> +#include <sys/types.h> +#include <unistd.h> +#include <iostream> + +using namespace std; + +class ChildWatch : public sigc::trackable +{ +public: + ChildWatch(const Glib::RefPtr<Glib::MainLoop>& mainLoop) + : m_mainLoop(mainLoop) + {} + + void on_child_exited(GPid pid,int status); + void run(); // fork a child and call signal_child_watch + +private: + Glib::RefPtr<Glib::MainLoop> m_mainLoop; +}; + +void ChildWatch::run() +{ + GPid pid = fork(); + + if(pid==0) + { + sleep(5); + exit(0); + } + + std:: cout << "Child " << pid << " created" << std::endl; + + Glib::signal_child_watch().connect(sigc::mem_fun(*this, &ChildWatch::on_child_exited), pid); +} + +void ChildWatch::on_child_exited(GPid pid, int status) +{ + std::cout << "Child " << pid << " exited with status " << status << std::endl; + m_mainLoop->quit(); +} + +int main() +{ + Glib::RefPtr<Glib::MainLoop> mainLoop = Glib::MainLoop::create(); + + ChildWatch cwatch(mainLoop); + cwatch.run(); + mainLoop->run(); + + return 0; +} diff --git a/libs/glibmm2/examples/iochannel_stream/Makefile.am b/libs/glibmm2/examples/iochannel_stream/Makefile.am new file mode 100644 index 0000000000..8c877e9be1 --- /dev/null +++ b/libs/glibmm2/examples/iochannel_stream/Makefile.am @@ -0,0 +1,11 @@ +include $(top_srcdir)/examples/Makefile.am_fragment + +#Build the executable, but don't install it. + +# Don't build natively (mingw32) on win32 as mkfifo is +# not supported (TODO: implement with CreateNamedPipe). +if OS_WIN32 +else +noinst_PROGRAMS = example +example_SOURCES = main.cc fdstream.h fdstream.cc +endif diff --git a/libs/glibmm2/examples/iochannel_stream/Makefile.in b/libs/glibmm2/examples/iochannel_stream/Makefile.in new file mode 100644 index 0000000000..9b9ad03242 --- /dev/null +++ b/libs/glibmm2/examples/iochannel_stream/Makefile.in @@ -0,0 +1,502 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/examples/Makefile.am_fragment +@OS_WIN32_FALSE@noinst_PROGRAMS = example$(EXEEXT) +subdir = examples/iochannel_stream +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am__example_SOURCES_DIST = main.cc fdstream.h fdstream.cc +@OS_WIN32_FALSE@am_example_OBJECTS = main.$(OBJEXT) fdstream.$(OBJEXT) +example_OBJECTS = $(am_example_OBJECTS) +example_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(example_SOURCES) +DIST_SOURCES = $(am__example_SOURCES_DIST) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) +glibmm_docdir = $(datadir)/doc/glibmm-2.4 +@OS_WIN32_FALSE@example_SOURCES = main.cc fdstream.h fdstream.cc +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/examples/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/iochannel_stream/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/iochannel_stream/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) + @rm -f example$(EXEEXT) + $(CXXLINK) $(example_LDFLAGS) $(example_OBJECTS) $(example_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdstream.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../examples + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-local + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-local + + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src +# 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: diff --git a/libs/glibmm2/examples/iochannel_stream/fdstream.cc b/libs/glibmm2/examples/iochannel_stream/fdstream.cc new file mode 100644 index 0000000000..bc46a3db45 --- /dev/null +++ b/libs/glibmm2/examples/iochannel_stream/fdstream.cc @@ -0,0 +1,402 @@ +/* Copyright (C) 2004 The glibmm Development Team + * + * 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 "fdstream.h" + +#include <glibmm/main.h> + +fdstreambuf::fdstreambuf() +{ + reset(); +} + +fdstreambuf::fdstreambuf(int fd, bool manage) +{ + create_iochannel(fd, manage); +} + +fdstreambuf::~fdstreambuf() +{ + sync(); +} + +void fdstreambuf::reset() +{ + setg(putback_buffer + 1, putback_buffer + 1, putback_buffer + 1); + error_condition.error = false; +} + +void fdstreambuf::create_iochannel(int fd, bool manage) +{ + sync(); + reset(); + + if(fd >= 0) + { + iochannel_ = Glib::IOChannel::create_from_fd(fd); + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + iochannel_->set_encoding(""); + #else + std::auto_ptr<Glib::Error> ex; + iochannel_->set_encoding("", ex); + #endif //GLIBMM_EXCEPTIONS_ENABLED + + iochannel_->set_buffered(true); + iochannel_->set_close_on_unref(manage); + } +} + +void fdstreambuf::detach_fd() +{ + iochannel_->set_close_on_unref(false); +} + +void fdstreambuf::connect(const sigc::slot<bool, Glib::IOCondition>& callback, + Glib::IOCondition condition) +{ + Glib::signal_io().connect(callback, iochannel_, condition); +} + +fdstream_error fdstreambuf::get_error() const +{ + return error_condition; +} + +// the standard requires sync to return 0 for success and -1 for error +int fdstreambuf::sync() +{ + if (!iochannel_) + return -1; + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + iochannel_->flush(); + } + catch(Glib::IOChannelError& io_error) + { + error_condition.error = true; + error_condition.code = io_error.code(); + return -1; + } + #else + std::auto_ptr<Glib::Error> io_error; + iochannel_->flush(io_error); + if(io_error.get()) + { + error_condition.error = true; + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + return -1; + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + + return 0; +} + +void fdstreambuf::close_iochannel() +{ + iochannel_->set_close_on_unref(false); + reset(); + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + iochannel_->close(true); + } + catch(Glib::IOChannelError& io_error) + { + error_condition.error = true; + error_condition.code = io_error.code(); + } + #else + std::auto_ptr<Glib::Error> io_error; + iochannel_->close(true, io_error); + if(io_error.get()) + { + error_condition.error = true; + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + +} + +// the standard requires this to return either the character +// written on overflow or traits_type::eof() (= EOF with char_type == char) +fdstreambuf::traits_type::int_type fdstreambuf::overflow(int_type c) +{ + if(!traits_type::eq_int_type(c, traits_type::eof())) + { + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + gsize result = 0; + char write_char = c; + iochannel_->write(&write_char, 1, result); + } + catch(Glib::IOChannelError& io_error) + { + error_condition.error = true; + error_condition.code = io_error.code(); + return traits_type::eof(); + } + #else + std::auto_ptr<Glib::Error> io_error; + gsize result = 0; + char write_char = c; + iochannel_->write(&write_char, 1, result, io_error); + if(io_error.get()) + { + error_condition.error = true; + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + return traits_type::eof();; + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + } + return traits_type::not_eof(c); +} + +// the standard requires this to return the number of characters written +// (which will be 0 for stream failure - it is not correct to return EOF) +std::streamsize fdstreambuf::xsputn(const char* source, std::streamsize num) +{ + gsize result = 0; + + // the documentation for Glib::IOChannel indicates that Glib::IOChannel::write() + // will only do a short write in the event of stream failure, so there is no + // need to check result and have a second bite (byte) at it as would be + // necessary with Unix write() + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + iochannel_->write(source, num, result); + } + catch(Glib::IOChannelError& io_error) + { + error_condition.error = true; + error_condition.code = io_error.code(); + result = 0; + } + #else + std::auto_ptr<Glib::Error> io_error; + iochannel_->write(source, num, result, io_error); + if(io_error.get()) + { + error_condition.error = true; + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + result = 0; + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + + return result; +} + +// the standard requires this to return the first character available +// on underflow or traits_type::eof() (= EOF with char_type == char) +fdstreambuf::traits_type::int_type fdstreambuf::underflow() +{ + if(gptr() < egptr()) + return traits_type::to_int_type(*gptr()); + + // copy the character in bump position (if any) to putback position + if(gptr() - eback()) + *putback_buffer = *(gptr() - 1); + + // now insert a character into the bump position + gsize result = 0; + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + iochannel_->read(putback_buffer + 1, 1, result); + } + catch(Glib::IOChannelError& io_error) + { + error_condition.error = true; + error_condition.code = io_error.code(); + return traits_type::eof(); + } + #else + std::auto_ptr<Glib::Error> io_error; + iochannel_->read(putback_buffer + 1, 1, result, io_error); + if(io_error.get()) + { + error_condition.error = true; + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + return traits_type::eof(); + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + + // some other error - is this possible? In case it is, cater for it + if (result == 0) + return traits_type::eof(); + + // reset buffer pointers + setg(putback_buffer, + putback_buffer + 1, + putback_buffer + 2); + + // return character in bump/peek position + return traits_type::to_int_type(*gptr()); // == *(putback_buffer + 1) +} + +// the standard requires this to return the number of characters fetched +// (which will be 0 for stream failure - it is not correct to return EOF) +std::streamsize fdstreambuf::xsgetn(char* dest, std::streamsize num) +{ + std::streamsize chars_read = 0; + + // available would normally be 0, but could be up to 2 if there + // have been putbacks or a peek and a putback + std::streamsize available = egptr() - gptr(); + + // if num is less than or equal to the characters already in the + // putback buffer, extract from buffer + if (num <= available) + { + traits_type::copy(dest, gptr(), num); + gbump(num); + chars_read = num; + } + else + { + // first copy out putback buffer + if (available) + { + traits_type::copy(dest, gptr(), available); + chars_read = available; + } + + // read up to everything else we need with Glib::IOChannel::read() + gsize result = 0; + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + #else + std::auto_ptr<Glib::Error> io_error; + #endif //GLIBMM_EXCEPTIONS_ENABLED + do + { + #ifdef GLIBMM_EXCEPTIONS_ENABLED + iochannel_->read(dest + chars_read, + num - chars_read, + result); + #else + iochannel_->read(dest + chars_read, + num - chars_read, + result, io_error); + #endif //GLIBMM_EXCEPTIONS_ENABLED + + if (result > 0) + chars_read += result; + } + while (result > 0 && result < static_cast<gsize>(num - chars_read)); + #ifdef GLIBMM_EXCEPTIONS_ENABLED + } + catch(Glib::IOChannelError& io_error) + #else + if(io_error.get()) + #endif //GLIBMM_EXCEPTIONS_ENABLED + { + error_condition.error = true; + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + error_condition.code = io_error.code(); + #else + error_condition.code = (Glib::IOChannelError::Code)io_error->code(); + #endif //GLIBMM_EXCEPTIONS_ENABLED + return chars_read; + } + + if(chars_read) + { + // now mimic extraction of all characters by sbumpc() by putting + // two characters into the buffer (if available) and resetting the + // buffer pointers + int putback_count = 0; + if(chars_read >= 2) + { + *putback_buffer = *(dest + (chars_read - 2)); + putback_count = 2; + } + else + { // if we have reached here then we have only fetched + // one character and it must have been read with + // Glib::IOChannel::read() and not taken from the + // putback buffer - otherwise we would have ended + // at the first if block in this method + // - and this also means that gptr() == egptr() + if(gptr() - eback()) + { + *putback_buffer = *(gptr() - 1); + putback_count = 2; + } + else putback_count = 1; + } + + *(putback_buffer + 1) = *(dest + (chars_read - 1)); + + // reset buffer pointers + this->setg(putback_buffer + (2 - putback_count), + putback_buffer + 2, + putback_buffer + 2); + } + } + return chars_read; +} + +fdstream::fdstream(int fd, bool manage) +: std::istream(0), + std::ostream(0), + buf(fd, manage) +{ + std::istream::rdbuf(&buf); + std::ostream::rdbuf(&buf); +} + +fdstream::fdstream() +: std::istream(0), + std::ostream(0) +{ + std::istream::rdbuf(&buf); + std::ostream::rdbuf(&buf); +} + +void fdstream::attach(int fd, bool manage) +{ + buf.create_iochannel(fd, manage); +} + +void fdstream::detach() +{ + buf.detach_fd(); +} + +void fdstream::close() +{ + buf.close_iochannel(); +} + +void fdstream::connect(const sigc::slot<bool, Glib::IOCondition>& callback, + Glib::IOCondition condition) +{ + buf.connect(callback, condition); +} + +fdstream_error fdstream::get_error() const +{ + return buf.get_error(); +} diff --git a/libs/glibmm2/examples/iochannel_stream/fdstream.h b/libs/glibmm2/examples/iochannel_stream/fdstream.h new file mode 100644 index 0000000000..3dad22f126 --- /dev/null +++ b/libs/glibmm2/examples/iochannel_stream/fdstream.h @@ -0,0 +1,121 @@ +/* Copyright (C) 2004 The glibmm Development Team + * + * 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. + */ + +/* + * The fdstream/fdstreambuf example classes provide a streambuffer + * interface for Glib::IOChannel, so that standard iostreams can be + * used with fifos, pipes and sockets, with safe temporary files + * opened with mkstemp() and with files opened with other system + * functions such as Unix open(). + * + * It does not make use of the Glib::IOChannel automatic charset code + * conversion facilities (which when enabled will convert from UTF-8 + * to the locale codeset when writing out, and vice-versa when reading + * in). Such automatic codeset conversion is usually undesirable as + * it makes the target file unportable - a file written out in the + * locale charset can only be used by those expecting the same locale + * codeset. It is also unnecessary as the <<() and >>() operators for + * Glib::ustring already carry out this codeset conversion (to avoid + * this use Glib::ustring::raw() when writing out to a stream via + * operator <<(), and read in via a std::string object with operator + * >>()). + * + * If an automatic codeset conversion option is thought to be + * valuable, it would be possible to provide this by having a read + * buffer in fdstreambuf large enough to take and putback six bytes + * (the largest space occupied by a UTF-8 character). This would + * require rewriting fdstreambuf::underflow(), but in compensation + * fdstreambuf::xsgetn() could be omitted, as if a read buffer were + * provided then std::streambuf::xsgetn() would be adequate for the + * purpose by itself. + * + * A serious implementation would probably also provide separate + * read-only ifdstream classes and write-only ofdstream classes, as + * fdstream provides both read and write facilities. +*/ + + +#ifndef GLIBMMEXAMPLE_FDSTREAM_H +#define GLIBMMEXAMPLE_FDSTREAM_H + +#include <istream> +#include <ostream> +#include <streambuf> +#include <glibmm/iochannel.h> + +struct fdstream_error +{ + bool error; + Glib::IOChannelError::Code code; +}; + +class fdstreambuf: public std::streambuf +{ +public: + fdstreambuf(int fd, bool manage); + fdstreambuf(); + ~fdstreambuf(); + + void create_iochannel(int fd, bool manage); + void detach_fd(); + void close_iochannel(); + void connect(const sigc::slot<bool, Glib::IOCondition>& callback, Glib::IOCondition condition); + fdstream_error get_error() const; + +protected: + virtual int_type underflow(); + virtual std::streamsize xsgetn(char* dest, std::streamsize num); + virtual int sync(); + virtual int_type overflow(int_type c); + virtual std::streamsize xsputn(const char* source, std::streamsize num); + +private: + Glib::RefPtr<Glib::IOChannel> iochannel_; + fdstream_error error_condition; + + // putback_buffer does not do any buffering: it reserves one character + // for putback and one character for a peek() and/or for bumping + // with sbumpc/uflow() + char putback_buffer[2]; + + void reset(); +}; + +class fdstream : + public std::istream, + public std::ostream +{ +public: + + explicit fdstream(int fd, bool manage = true); + fdstream(); + + // If fdstream is managing a file descriptor, attaching a new + // one will close the old one - call detach() to unmanage it + void attach(int fd, bool manage = true); + void detach(); + + void close(); + void connect(const sigc::slot<bool, Glib::IOCondition>& callback, + Glib::IOCondition condition); + fdstream_error get_error() const; + +private: + fdstreambuf buf; +}; + +#endif /*GLIBMMEXAMPLE_FDSTREAM_H*/ diff --git a/libs/glibmm2/examples/iochannel_stream/main.cc b/libs/glibmm2/examples/iochannel_stream/main.cc new file mode 100644 index 0000000000..873f989cc5 --- /dev/null +++ b/libs/glibmm2/examples/iochannel_stream/main.cc @@ -0,0 +1,102 @@ +/* Copyright (C) 2004 The glibmm Development Team + * + * 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 <glibmm.h> +#include <fcntl.h> +#include <unistd.h> +#include <limits.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <iostream> +#include <string> + +#include "fdstream.h" + +fdstream input_stream; +Glib::RefPtr<Glib::MainLoop> mainloop; + +/* + send to the fifo with: + echo "Hello" > testfifo + + quit the program with: + echo "Q" > testfifo +*/ + +// this will be our signal handler for read operations +// it will print out the message sent to the fifo +// and quit the program if the message was, or began +// with, 'Q' +bool MyCallback(Glib::IOCondition io_condition) +{ + if ((io_condition & Glib::IO_IN) == 0) + { + std::cerr << "Invalid fifo response" << std::endl; + } + else + { + // stream for stdout (does the same as std::cout + // - this is an example of using fdstream for output) + fdstream out(1, false); + std::string text; + input_stream >> text; + out << text << std::endl; + + if (text[0] == 'Q') + mainloop->quit(); + } + + return true; +} + + +int main( /* int argc, char *argv[] */) +{ + Glib::init(); + + // the usual Glib::Main object + mainloop = Glib::MainLoop::create(); + + if(access("testfifo", F_OK) == -1) + { + // fifo doesn't exit - create it + if (mkfifo("testfifo", 0666) != 0) + { + std::cerr << "error creating fifo" << std::endl; + return -1; + } + } + + int read_fd = open("testfifo", O_RDONLY); + if(read_fd == -1) + { + std::cerr << "error opening fifo" << std::endl; + return -1; + } + + input_stream.attach(read_fd); + input_stream.connect(sigc::ptr_fun(MyCallback), Glib::IO_IN); + + // and last but not least - run the application main loop + mainloop->run(); + + // now remove the temporary fifo + if(unlink("testfifo")) + std::cerr << "error removing fifo" << std::endl; + + return 0; +} diff --git a/libs/glibmm2/examples/markup/Makefile.am b/libs/glibmm2/examples/markup/Makefile.am new file mode 100644 index 0000000000..861b9131ca --- /dev/null +++ b/libs/glibmm2/examples/markup/Makefile.am @@ -0,0 +1,8 @@ +include $(top_srcdir)/examples/Makefile.am_fragment + +EXTRA_DIST = test.xml + +#Build the executable, but don't install it. +noinst_PROGRAMS = parser +parser_SOURCES = parser.cc + diff --git a/libs/glibmm2/examples/markup/Makefile.in b/libs/glibmm2/examples/markup/Makefile.in new file mode 100644 index 0000000000..1113d1abd8 --- /dev/null +++ b/libs/glibmm2/examples/markup/Makefile.in @@ -0,0 +1,493 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/examples/Makefile.am_fragment +noinst_PROGRAMS = parser$(EXEEXT) +subdir = examples/markup +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_parser_OBJECTS = parser.$(OBJEXT) +parser_OBJECTS = $(am_parser_OBJECTS) +parser_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(parser_SOURCES) +DIST_SOURCES = $(parser_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) +glibmm_docdir = $(datadir)/doc/glibmm-2.4 +EXTRA_DIST = test.xml +parser_SOURCES = parser.cc +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/examples/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/markup/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/markup/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +parser$(EXEEXT): $(parser_OBJECTS) $(parser_DEPENDENCIES) + @rm -f parser$(EXEEXT) + $(CXXLINK) $(parser_LDFLAGS) $(parser_OBJECTS) $(parser_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../examples + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-local + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-local + + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src +# 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: diff --git a/libs/glibmm2/examples/markup/parser.cc b/libs/glibmm2/examples/markup/parser.cc new file mode 100644 index 0000000000..c9286f6c0b --- /dev/null +++ b/libs/glibmm2/examples/markup/parser.cc @@ -0,0 +1,176 @@ +/* Copyright (C) 2002 The gtkmm Development Team + * + * 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 <glibmm.h> +#include <iomanip> +#include <iostream> + + +namespace +{ + +#ifndef GLIBMM_EXCEPTIONS_ENABLED +//This is an alternative, to use when we have disabled exceptions: +std::auto_ptr<Glib::Error> processing_error; +#endif //GLIBMM_EXCEPTIONS_ENABLED + +void file_get_contents(const std::string& filename, Glib::ustring& contents) +{ + #ifdef GLIBMM_EXCEPTIONS_ENABLED + const Glib::RefPtr<Glib::IOChannel> channel = Glib::IOChannel::create_from_file(filename, "r"); + channel->read_to_end(contents); + #else + const Glib::RefPtr<Glib::IOChannel> channel = Glib::IOChannel::create_from_file(filename, "r", processing_error); + channel->read_to_end(contents, processing_error); + #endif //GLIBMM_EXCEPTIONS_ENABLED +} + +Glib::ustring trim_whitespace(const Glib::ustring& text) +{ + Glib::ustring::const_iterator pbegin (text.begin()); + Glib::ustring::const_iterator pend (text.end()); + + while(pbegin != pend && Glib::Unicode::isspace(*pbegin)) + ++pbegin; + + Glib::ustring::const_iterator temp (pend); + + while(pbegin != temp && Glib::Unicode::isspace(*--temp)) + pend = temp; + + return Glib::ustring(pbegin, pend); +} + + +class DumpParser : public Glib::Markup::Parser +{ +public: + DumpParser(); + virtual ~DumpParser(); + +protected: + virtual void on_start_element(Glib::Markup::ParseContext& context, + const Glib::ustring& element_name, + const AttributeMap& attributes); + + virtual void on_end_element(Glib::Markup::ParseContext& context, + const Glib::ustring& element_name); + + virtual void on_text(Glib::Markup::ParseContext& context, const Glib::ustring& text); + +private: + int parse_depth_; + + void indent(); +}; + +DumpParser::DumpParser() +: + parse_depth_ (0) +{} + +DumpParser::~DumpParser() +{} + +void DumpParser::on_start_element(Glib::Markup::ParseContext&, + const Glib::ustring& element_name, + const AttributeMap& attributes) +{ + indent(); + std::cout << '<' << element_name; + + for(AttributeMap::const_iterator p = attributes.begin(); p != attributes.end(); ++p) + { + std::cout << ' ' << p->first << "=\"" << p->second << '"'; + } + + std::cout << ">\n"; + + ++parse_depth_; +} + +void DumpParser::on_end_element(Glib::Markup::ParseContext&, const Glib::ustring& element_name) +{ + --parse_depth_; + + indent(); + std::cout << "</" << element_name << ">\n"; +} + +void DumpParser::on_text(Glib::Markup::ParseContext&, const Glib::ustring& text) +{ + const Glib::ustring trimmed_text = trim_whitespace(text); + + if(!trimmed_text.empty()) + { + indent(); + std::cout << trimmed_text << '\n'; + } +} + +void DumpParser::indent() +{ + if(parse_depth_ > 0) + { + std::cout << std::setw(4 * parse_depth_) + /* gcc 2.95.3 doesn't like this: << std::right */ + << ' '; + } +} + +} // anonymous namespace + + +int main(int argc, char** argv) +{ + if(argc < 2) + { + std::cerr << "Usage: parser filename\n"; + return 1; + } + + DumpParser parser; + Glib::Markup::ParseContext context (parser); + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + #endif //GLIBMM_EXCEPTIONS_ENABLED + Glib::ustring contents; + file_get_contents(argv[1], contents); + + context.parse(contents); + context.end_parse(); + #ifdef GLIBMM_EXCEPTIONS_ENABLED + } + catch(const Glib::Error& error) + { + std::cerr << argv[1] << ": " << error.what() << std::endl; + return 1; + } + #else + if(processing_error.get()) + { + std::cerr << argv[1] << ": " << processing_error->what() << std::endl; + return 1; + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + + + return 0; +} + diff --git a/libs/glibmm2/examples/markup/test.xml b/libs/glibmm2/examples/markup/test.xml new file mode 100644 index 0000000000..890f08cc37 --- /dev/null +++ b/libs/glibmm2/examples/markup/test.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> + +<glade-interface> + +<widget class="GtkDialog" id="DialogBasic"> + <property name="title" translatable="yes">basic libglademm example</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox2"> + <property name="border_width">2</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area2"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <property name="spacing">10</property> + + <child> + <widget class="GtkButton" id="quit_button"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-quit</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">0</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes">This is a basic libglademm example</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> +</widget> + +</glade-interface> diff --git a/libs/glibmm2/examples/options/Makefile.am b/libs/glibmm2/examples/options/Makefile.am new file mode 100644 index 0000000000..0c79f50b7a --- /dev/null +++ b/libs/glibmm2/examples/options/Makefile.am @@ -0,0 +1,6 @@ +include $(top_srcdir)/examples/Makefile.am_fragment + +#Build the executable, but don't install it. +noinst_PROGRAMS = example +example_SOURCES = main.cc + diff --git a/libs/glibmm2/examples/options/Makefile.in b/libs/glibmm2/examples/options/Makefile.in new file mode 100644 index 0000000000..beaee3a7f5 --- /dev/null +++ b/libs/glibmm2/examples/options/Makefile.in @@ -0,0 +1,492 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/examples/Makefile.am_fragment +noinst_PROGRAMS = example$(EXEEXT) +subdir = examples/options +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_example_OBJECTS = main.$(OBJEXT) +example_OBJECTS = $(am_example_OBJECTS) +example_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(example_SOURCES) +DIST_SOURCES = $(example_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) +glibmm_docdir = $(datadir)/doc/glibmm-2.4 +example_SOURCES = main.cc +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/examples/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/options/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/options/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) + @rm -f example$(EXEEXT) + $(CXXLINK) $(example_LDFLAGS) $(example_OBJECTS) $(example_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../examples + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-local + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-local + + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src +# 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: diff --git a/libs/glibmm2/examples/options/main.cc b/libs/glibmm2/examples/options/main.cc new file mode 100644 index 0000000000..2fa853768c --- /dev/null +++ b/libs/glibmm2/examples/options/main.cc @@ -0,0 +1,141 @@ +/* Copyright (C) 2004 The glibmm Development Team + * + * 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 <glibmm.h> +#include <iomanip> +#include <iostream> + + +class ExampleOptionGroup : public Glib::OptionGroup +{ +public: + ExampleOptionGroup(); + + virtual bool on_pre_parse(Glib::OptionContext& context, Glib::OptionGroup& group); + virtual bool on_post_parse(Glib::OptionContext& context, Glib::OptionGroup& group); + virtual void on_error(Glib::OptionContext& context, Glib::OptionGroup& group); + + //These int instances should live as long as the OptionGroup to which they are added, + //and as long as the OptionContext to which those OptionGroups are added. + int m_arg_foo; + std::string m_arg_filename; + Glib::ustring m_arg_goo; + bool m_arg_boolean; + Glib::OptionGroup::vecustrings m_arg_list; +}; + +ExampleOptionGroup::ExampleOptionGroup() +: Glib::OptionGroup("example_group", "description of example group", "help description of example group"), + m_arg_foo(0), m_arg_boolean(false) +{ + Glib::OptionEntry entry1; + entry1.set_long_name("foo"); + entry1.set_short_name('f'); + entry1.set_description("The Foo"); + add_entry(entry1, m_arg_foo); + + Glib::OptionEntry entry2; + entry2.set_long_name("file"); + entry2.set_short_name('F'); + entry2.set_description("The Filename"); + add_entry_filename(entry2, m_arg_filename); + + Glib::OptionEntry entry3; + entry3.set_long_name("goo"); + entry3.set_short_name('g'); + entry3.set_description("The Goo"); + add_entry(entry3, m_arg_goo); + + Glib::OptionEntry entry4; + entry4.set_long_name("activate_something"); + entry4.set_description("Activate something"); + add_entry(entry4, m_arg_boolean); + + Glib::OptionEntry entry5; + entry5.set_long_name("list"); + entry5.set_short_name('l'); + entry5.set_description("The List"); + add_entry(entry5, m_arg_list); +} + +bool ExampleOptionGroup::on_pre_parse(Glib::OptionContext& context, Glib::OptionGroup& group) +{ + //This is called before the m_arg_* instances are given their values. + return Glib::OptionGroup::on_pre_parse(context, group); +} + +bool ExampleOptionGroup::on_post_parse(Glib::OptionContext& context, Glib::OptionGroup& group) +{ + //This is called after the m_arg_* instances are given their values. + return Glib::OptionGroup::on_post_parse(context, group); +} + +void ExampleOptionGroup::on_error(Glib::OptionContext& context, Glib::OptionGroup& group) +{ + Glib::OptionGroup::on_error(context, group); +} + + + +int main(int argc, char** argv) +{ + //This example should be executed like so: + //./example --foo=1 --bar=2 --goo=abc + //./example --help + + Glib::init(); + + Glib::OptionContext context; + + ExampleOptionGroup group; + context.set_main_group(group); + + #ifdef GLIBMM_EXCEPTIONS_ENABLED + try + { + context.parse(argc, argv); + } + catch(const Glib::Error& ex) + { + std::cout << "Exception: " << ex.what() << std::endl; + } + #else + std::auto_ptr<Glib::Error> ex; + context.parse(argc, argv, ex); + if(ex.get()) + { + std::cout << "Exception: " << ex->what() << std::endl; + } + #endif //GLIBMM_EXCEPTIONS_ENABLED + + std::cout << "parsed values: " << std::endl << + " foo = " << group.m_arg_foo << std::endl << + " filename = " << group.m_arg_filename << std::endl << + " activate_something = " << (group.m_arg_boolean ? "enabled" : "disabled") << std::endl << + " goo = " << group.m_arg_goo << std::endl; + + //This one shows the results of multiple instance of the same option, such as --list=1 --list=a --list=b + std::cout << " list = "; + for(Glib::OptionGroup::vecustrings::const_iterator iter = group.m_arg_list.begin(); iter != group.m_arg_list.end(); ++iter) + { + std::cout << *iter << ", "; + } + std::cout << std::endl; + + return 0; +} + diff --git a/libs/glibmm2/examples/thread/Makefile.am b/libs/glibmm2/examples/thread/Makefile.am new file mode 100644 index 0000000000..4360557086 --- /dev/null +++ b/libs/glibmm2/examples/thread/Makefile.am @@ -0,0 +1,19 @@ +include $(top_srcdir)/examples/Makefile.am_fragment + +INCLUDES += $(GTHREAD_CFLAGS) + +## Build the executable, but don't install it. +noinst_PROGRAMS = dispatcher dispatcher2 thread threadpool + +dispatcher_SOURCES = dispatcher.cc +dispatcher_LDFLAGS = $(GTHREAD_LIBS) + +dispatcher2_SOURCES = dispatcher2.cc +dispatcher2_LDFLAGS = $(GTHREAD_LIBS) + +thread_SOURCES = thread.cc +thread_LDFLAGS = $(GTHREAD_LIBS) + +threadpool_SOURCES = threadpool.cc +threadpool_LDFLAGS = $(GTHREAD_LIBS) + diff --git a/libs/glibmm2/examples/thread/Makefile.in b/libs/glibmm2/examples/thread/Makefile.in new file mode 100644 index 0000000000..d4b6a2aef7 --- /dev/null +++ b/libs/glibmm2/examples/thread/Makefile.in @@ -0,0 +1,523 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/examples/Makefile.am_fragment +noinst_PROGRAMS = dispatcher$(EXEEXT) dispatcher2$(EXEEXT) \ + thread$(EXEEXT) threadpool$(EXEEXT) +subdir = examples/thread +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_dispatcher_OBJECTS = dispatcher.$(OBJEXT) +dispatcher_OBJECTS = $(am_dispatcher_OBJECTS) +dispatcher_LDADD = $(LDADD) +am_dispatcher2_OBJECTS = dispatcher2.$(OBJEXT) +dispatcher2_OBJECTS = $(am_dispatcher2_OBJECTS) +dispatcher2_LDADD = $(LDADD) +am_thread_OBJECTS = thread.$(OBJEXT) +thread_OBJECTS = $(am_thread_OBJECTS) +thread_LDADD = $(LDADD) +am_threadpool_OBJECTS = threadpool.$(OBJEXT) +threadpool_OBJECTS = $(am_threadpool_OBJECTS) +threadpool_LDADD = $(LDADD) +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(dispatcher_SOURCES) $(dispatcher2_SOURCES) \ + $(thread_SOURCES) $(threadpool_SOURCES) +DIST_SOURCES = $(dispatcher_SOURCES) $(dispatcher2_SOURCES) \ + $(thread_SOURCES) $(threadpool_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(local_glibmm_lib) $(GLIBMM_LIBS) +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +local_glibmm_lib = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +all_includes = -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(DISABLE_DEPRECATED_CFLAGS) $(DISABLE_DEPRECATED_API_CFLAGS) + +DEFAULT_INCLUDES = +INCLUDES = -I. -I$(srcdir) $(strip $(all_includes)) $(GTHREAD_CFLAGS) +glibmm_docdir = $(datadir)/doc/glibmm-2.4 +dispatcher_SOURCES = dispatcher.cc +dispatcher_LDFLAGS = $(GTHREAD_LIBS) +dispatcher2_SOURCES = dispatcher2.cc +dispatcher2_LDFLAGS = $(GTHREAD_LIBS) +thread_SOURCES = thread.cc +thread_LDFLAGS = $(GTHREAD_LIBS) +threadpool_SOURCES = threadpool.cc +threadpool_LDFLAGS = $(GTHREAD_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/examples/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/thread/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu examples/thread/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +dispatcher$(EXEEXT): $(dispatcher_OBJECTS) $(dispatcher_DEPENDENCIES) + @rm -f dispatcher$(EXEEXT) + $(CXXLINK) $(dispatcher_LDFLAGS) $(dispatcher_OBJECTS) $(dispatcher_LDADD) $(LIBS) +dispatcher2$(EXEEXT): $(dispatcher2_OBJECTS) $(dispatcher2_DEPENDENCIES) + @rm -f dispatcher2$(EXEEXT) + $(CXXLINK) $(dispatcher2_LDFLAGS) $(dispatcher2_OBJECTS) $(dispatcher2_LDADD) $(LIBS) +thread$(EXEEXT): $(thread_OBJECTS) $(thread_DEPENDENCIES) + @rm -f thread$(EXEEXT) + $(CXXLINK) $(thread_LDFLAGS) $(thread_OBJECTS) $(thread_LDADD) $(LIBS) +threadpool$(EXEEXT): $(threadpool_OBJECTS) $(threadpool_DEPENDENCIES) + @rm -f threadpool$(EXEEXT) + $(CXXLINK) $(threadpool_LDFLAGS) $(threadpool_OBJECTS) $(threadpool_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dispatcher.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dispatcher2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadpool.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../examples + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-local + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-local + + +install-example-src: + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(glibmm_docdir)/$(subdir) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +uninstall-example-src: + @$(NORMAL_UNINSTALL) + for p in $(srcdir)/*.cc $(srcdir)/*.h; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f"; \ + rm -f $(DESTDIR)$(glibmm_docdir)/$(subdir)/$$f; \ + fi; \ + done + +install-data-local: install-example-src + +uninstall-local: uninstall-example-src + +.PHONY: install-example-src uninstall-example-src +# 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: diff --git a/libs/glibmm2/examples/thread/dispatcher.cc b/libs/glibmm2/examples/thread/dispatcher.cc new file mode 100644 index 0000000000..ca74d05db9 --- /dev/null +++ b/libs/glibmm2/examples/thread/dispatcher.cc @@ -0,0 +1,197 @@ +/* + * Glib::Dispatcher example -- cross thread signalling + * by Daniel Elstner <daniel.elstner@gmx.net> + * + * modified to only use glibmm + * by J. Abelardo Gutierrez <jabelardo@cantv.net> + * + * Copyright (c) 2002-2003 Free Software Foundation + */ + +#include <glibmm.h> + +#include <algorithm> +#include <functional> +#include <iostream> +#include <list> +#include <memory> + + +namespace +{ + +class ThreadProgress : public sigc::trackable +{ +public: + explicit ThreadProgress(int id); + virtual ~ThreadProgress(); + + void launch(); + void join(); + + sigc::signal<void>& signal_finished(); + int id() const; + + virtual void reference() const { ++ref_count_; } + virtual void unreference() const { if (!(--ref_count_)) delete this; } + +private: + Glib::Thread* thread_; + int id_; + unsigned int progress_; + Glib::Dispatcher signal_increment_; + sigc::signal<void> signal_finished_; + + void progress_increment(); + void thread_function(); + + mutable int ref_count_; + +}; + +class Application : public sigc::trackable +{ +public: + Application(); + virtual ~Application(); + + void launch_threads(); + void run(); + +private: + Glib::RefPtr<Glib::MainLoop> main_loop_; + std::list<ThreadProgress*> progress_list_; + std::list<Glib::RefPtr<ThreadProgress> > progress_ref_list_; + + void on_progress_finished(ThreadProgress* thread_progress); +}; + + +ThreadProgress::ThreadProgress(int id) +: + thread_ (0), + id_ (id), + progress_ (0), + ref_count_(0) +{ + // Increment the reference count + reference(); + // Connect to the cross-thread signal. + signal_increment_.connect(sigc::mem_fun(*this, &ThreadProgress::progress_increment)); +} + +ThreadProgress::~ThreadProgress() +{} + +void ThreadProgress::launch() +{ + // Create a joinable thread. + thread_ = Glib::Thread::create(sigc::mem_fun(*this, &ThreadProgress::thread_function), true); +} + +void ThreadProgress::join() +{ + thread_->join(); +} + +sigc::signal<void>& ThreadProgress::signal_finished() +{ + return signal_finished_; +} + +int ThreadProgress::id() const +{ + return id_; +} + +void ThreadProgress::progress_increment() +{ + // Use an integer because floating point arithmetic is inaccurate -- + // we want to finish *exactly* after the 100th increment. + ++progress_; + + std::cout << "Thread " << id_ << ": " << progress_ << '%' << std::endl; + + if(progress_ >= 100) + signal_finished_(); +} + +void ThreadProgress::thread_function() +{ + Glib::Rand rand; + int usecs = 5000; + + for(int i = 0; i < 100; ++i) + { + usecs = rand.get_int_range(std::max(0, usecs - 1000 - i), std::min(20000, usecs + 1000 + i)); + Glib::usleep(usecs); + + // Tell the main thread to increment the progress value. + signal_increment_(); + } +} + +Application::Application() +: + main_loop_ (Glib::MainLoop::create()) +{ + std::cout << "Thread Dispatcher Example." << std::endl; + + for(int i = 1; i <= 5; ++i) + { + ThreadProgress* progress=new ThreadProgress(i); + progress_list_.push_back(progress); + progress_ref_list_.push_back(Glib::RefPtr<ThreadProgress>(progress)); + + progress->signal_finished().connect( + sigc::bind<1>(sigc::mem_fun(*this, &Application::on_progress_finished), progress)); + } +} + +Application::~Application() +{ +} + +void Application::launch_threads() +{ + std::for_each(progress_list_.begin(), progress_list_.end(), + std::mem_fun(&ThreadProgress::launch)); +} + +void Application::run() +{ + main_loop_->run(); +} + +void Application::on_progress_finished(ThreadProgress* thread_progress) +{ + { + progress_list_.remove(thread_progress); + thread_progress->join(); + + std::cout << "Thread " << thread_progress->id() + << ": finished." << std::endl; + } + + if(progress_list_.empty()) + main_loop_->quit(); +} + +} // anonymous namespace + + +int main(int, char**) +{ + Glib::thread_init(); + + Application application; + + // Install a one-shot idle handler to launch the threads + Glib::signal_idle().connect( + sigc::bind_return(sigc::mem_fun(application, &Application::launch_threads), false)); + + application.run(); + + return 0; +} + diff --git a/libs/glibmm2/examples/thread/dispatcher2.cc b/libs/glibmm2/examples/thread/dispatcher2.cc new file mode 100644 index 0000000000..fd7379e39c --- /dev/null +++ b/libs/glibmm2/examples/thread/dispatcher2.cc @@ -0,0 +1,232 @@ +/* + * original Glib::Dispatcher example -- cross thread signalling + * by Daniel Elstner <daniel.elstner@gmx.net> + * + * Modified by Stephan Puchegger <stephan.puchegger@ap.univie.ac.at> + * to contain 2 mainloops in 2 different threads, that communicate + * via cross thread signalling in both directions. The timer thread + * sends the UI thread a cross thread signal every second, which in turn + * updates the label stating how many seconds have passed since the start + * of the program. + * + * Modified by J. Abelardo Gutierrez <jabelardo@cantv.net> + * to cast all gtkmm out and make it glimm only + * + * Note: This example is special stuff that's seldomly needed by the + * vast majority of applications. Don't bother working out what this + * code does unless you know for sure you need 2 main loops running in + * 2 distinct main contexts. + * + * Copyright (c) 2002-2003 Free Software Foundation + */ + +#include <glibmm.h> +#include <sstream> +#include <iostream> + + +namespace +{ +Glib::RefPtr<Glib::MainLoop> main_loop; + +class ThreadTimer : public sigc::trackable +{ +public: + ThreadTimer(); + ~ThreadTimer(); + + void launch(); + void signal_finished_emit(); + void print() const; + + typedef sigc::signal<void> type_signal_end; + static type_signal_end& signal_end(); + +private: + unsigned int time_; + Glib::Dispatcher signal_increment_; + Glib::Dispatcher* signal_finished_ptr_; + + Glib::Mutex startup_mutex_; + Glib::Cond startup_cond_; + Glib::Thread* thread_; + + static type_signal_end signal_end_; + + void timer_increment(); + bool timeout_handler(); + static void finished_handler(Glib::RefPtr<Glib::MainLoop> mainloop); + void thread_function(); +}; + +//TODO: Rename to avoid confusion with Glib::Dispatcher. murrayc +class Dispatcher : public sigc::trackable +{ +public: + Dispatcher(); + + void launch_thread(); + void end(); + +private: + ThreadTimer* timer_; +}; + +ThreadTimer::ThreadTimer() +: + time_ (0), + // Create a new dispatcher that is attached to the default main context, + signal_increment_ (), + // This pointer will be initialized later by the 2nd thread. + signal_finished_ptr_ (NULL) +{ + // Connect the cross-thread signal. + signal_increment_.connect(sigc::mem_fun(*this, &ThreadTimer::timer_increment)); +} + +ThreadTimer::~ThreadTimer() +{} + +void ThreadTimer::launch() +{ + // Unfortunately, the thread creation has to be fully synchronized in + // order to access the Dispatcher object instantiated by the 2nd thread. + // So, let's do some kind of hand-shake using a mutex and a condition + // variable. + Glib::Mutex::Lock lock (startup_mutex_); + + // Create a joinable thread -- it needs to be joined, otherwise it's a memory leak. + thread_ = Glib::Thread::create( + sigc::mem_fun(*this, &ThreadTimer::thread_function), true); + + // Wait for the 2nd thread's startup notification. + while(signal_finished_ptr_ == NULL) + startup_cond_.wait(startup_mutex_); +} + +void ThreadTimer::signal_finished_emit() +{ + // Cause the 2nd thread's main loop to quit. + signal_finished_ptr_->emit(); + + // wait for the thread to join + if(thread_ != NULL) + thread_->join(); + + signal_finished_ptr_ = NULL; +} + +void ThreadTimer::print() const +{ + std::cout << time_ << " seconds since start" << std::endl; +} + +sigc::signal< void >& ThreadTimer::signal_end() +{ + return signal_end_; +} + +void ThreadTimer::timer_increment() +{ + // another second has passed since the start of the program + ++time_; + print(); + + if(time_ >= 10) + signal_finished_emit(); +} + +// static +void ThreadTimer::finished_handler(Glib::RefPtr<Glib::MainLoop> mainloop) +{ + // quit the timer thread mainloop + mainloop->quit(); + std::cout << "timer thread mainloop finished" << std::endl; + ThreadTimer::signal_end().emit(); +} + +bool ThreadTimer::timeout_handler() +{ + // inform the printing thread that another second has passed + signal_increment_(); + + // this timer should stay alive + return true; +} + +void ThreadTimer::thread_function() +{ + // create a new Main Context + Glib::RefPtr<Glib::MainContext> context = Glib::MainContext::create(); + // create a new Main Loop + Glib::RefPtr<Glib::MainLoop> mainloop = Glib::MainLoop::create(context, true); + + // attach a timeout handler, that is called every second, to the + // newly created MainContext + context->signal_timeout().connect(sigc::mem_fun(*this, &ThreadTimer::timeout_handler), 1000); + + // We need to lock while creating the Dispatcher instance, + // in order to ensure memory visibility. + Glib::Mutex::Lock lock (startup_mutex_); + + // create a new dispatcher, that is connected to the newly + // created MainContext + Glib::Dispatcher signal_finished (context); + + signal_finished.connect(sigc::bind(sigc::ptr_fun(&ThreadTimer::finished_handler), mainloop)); + + signal_finished_ptr_ = &signal_finished; + + // Tell the launcher thread that everything is in place now. + startup_cond_.signal(); + lock.release(); + + // start the mainloop + mainloop->run(); +} + +// initialize static member: +ThreadTimer::type_signal_end ThreadTimer::signal_end_; + +Dispatcher::Dispatcher() +: + timer_ (NULL) +{ + std::cout << "Thread Dispatcher Example #2" << std::endl; + + timer_ = new ThreadTimer(); + timer_->signal_end().connect(sigc::mem_fun(*this, &Dispatcher::end)); + timer_->print(); +} + +void Dispatcher::launch_thread() +{ + // launch the timer thread + timer_->launch(); +} + +void Dispatcher::end() +{ + // quit the main mainloop + main_loop->quit(); +} + +} // anonymous namespace + + +int main(int, char**) +{ + Glib::thread_init(); + main_loop = Glib::MainLoop::create(); + + Dispatcher dispatcher; + + // Install a one-shot idle handler to launch the threads + Glib::signal_idle().connect( + sigc::bind_return(sigc::mem_fun(dispatcher, &Dispatcher::launch_thread), false)); + + main_loop->run(); + + return 0; +} + diff --git a/libs/glibmm2/examples/thread/thread.cc b/libs/glibmm2/examples/thread/thread.cc new file mode 100644 index 0000000000..d1882069dd --- /dev/null +++ b/libs/glibmm2/examples/thread/thread.cc @@ -0,0 +1,113 @@ + +#include <iostream> +#include <queue> +#include <glibmm/random.h> +#include <glibmm/thread.h> +#include <glibmm/timer.h> + + +namespace +{ + +class MessageQueue : public sigc::trackable +{ +public: + MessageQueue(); + ~MessageQueue(); + + void producer(); + void consumer(); + +private: + Glib::Mutex mutex_; + Glib::Cond cond_push_; + Glib::Cond cond_pop_; + std::queue<int> queue_; +}; + + +MessageQueue::MessageQueue() +{} + +MessageQueue::~MessageQueue() +{} + +void MessageQueue::producer() +{ + Glib::Rand rand (1234); + + for(int i = 0; i < 200; ++i) + { + { + Glib::Mutex::Lock lock (mutex_); + + while(queue_.size() >= 64) + cond_pop_.wait(mutex_); + + queue_.push(i); + std::cout << '*'; + std::cout.flush(); + + cond_push_.signal(); + } + + if(rand.get_bool()) + continue; + + Glib::usleep(rand.get_int_range(0, 100000)); + } +} + +void MessageQueue::consumer() +{ + Glib::Rand rand (4567); + + for(;;) + { + { + Glib::Mutex::Lock lock (mutex_); + + while(queue_.empty()) + cond_push_.wait(mutex_); + + const int i = queue_.front(); + queue_.pop(); + std::cout << "\x08 \x08"; + std::cout.flush(); + + cond_pop_.signal(); + + if(i >= 199) + break; + } + + if(rand.get_bool()) + continue; + + Glib::usleep(rand.get_int_range(10000, 200000)); + } +} + +} + + +int main(int, char**) +{ + Glib::thread_init(); + + MessageQueue queue; + + Glib::Thread *const producer = Glib::Thread::create( + sigc::mem_fun(queue, &MessageQueue::producer), true); + + Glib::Thread *const consumer = Glib::Thread::create( + sigc::mem_fun(queue, &MessageQueue::consumer), true); + + producer->join(); + consumer->join(); + + std::cout << std::endl; + + return 0; +} + diff --git a/libs/glibmm2/examples/thread/threadpool.cc b/libs/glibmm2/examples/thread/threadpool.cc new file mode 100644 index 0000000000..8b36277d04 --- /dev/null +++ b/libs/glibmm2/examples/thread/threadpool.cc @@ -0,0 +1,49 @@ + +#include <iostream> +#include <glibmm/random.h> +#include <glibmm/thread.h> +#include <glibmm/threadpool.h> +#include <glibmm/timer.h> + + +namespace +{ + +Glib::StaticMutex mutex = GLIBMM_STATIC_MUTEX_INIT; + +void print_char(char c) +{ + Glib::Rand rand; + + for(int i = 0; i < 100; ++i) + { + { + Glib::Mutex::Lock lock (mutex); + std::cout << c; + std::cout.flush(); + } + Glib::usleep(rand.get_int_range(10000, 100000)); + } +} + +} // anonymous namespace + + +int main(int, char**) +{ + Glib::thread_init(); + + Glib::ThreadPool pool (10); + + for(char c = 'a'; c <= 'z'; ++c) + { + pool.push(sigc::bind<1>(sigc::ptr_fun(&print_char), c)); + } + + pool.shutdown(); + + std::cout << std::endl; + + return 0; +} + diff --git a/libs/glibmm2/tests/Makefile.am b/libs/glibmm2/tests/Makefile.am new file mode 100644 index 0000000000..6326d68635 --- /dev/null +++ b/libs/glibmm2/tests/Makefile.am @@ -0,0 +1,4 @@ +test_dirs = glibmm_value + +SUBDIRS = $(test_dirs) +EXTRA_DIST = Makefile.am_fragment diff --git a/libs/glibmm2/tests/Makefile.am_fragment b/libs/glibmm2/tests/Makefile.am_fragment new file mode 100644 index 0000000000..45a626cbf2 --- /dev/null +++ b/libs/glibmm2/tests/Makefile.am_fragment @@ -0,0 +1,7 @@ +INCLUDES = \ + -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(GTHREAD_CFLAGS) + +LIBS = $(top_builddir)/glib/glibmm/libglibmm-2.4.la + $(GLIBMM_LIBS) + diff --git a/libs/glibmm2/tests/Makefile.in b/libs/glibmm2/tests/Makefile.in new file mode 100644 index 0000000000..44bf1f9a25 --- /dev/null +++ b/libs/glibmm2/tests/Makefile.in @@ -0,0 +1,508 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +test_dirs = glibmm_value +SUBDIRS = $(test_dirs) +EXTRA_DIST = Makefile.am_fragment +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# 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. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + 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) \ + || eval $$failcom; \ + 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: + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + 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) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + clean clean-generic clean-libtool clean-recursive ctags \ + ctags-recursive distclean distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-info-am + +# 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: diff --git a/libs/glibmm2/tests/glibmm_value/Makefile.am b/libs/glibmm2/tests/glibmm_value/Makefile.am new file mode 100644 index 0000000000..005f55c7f1 --- /dev/null +++ b/libs/glibmm2/tests/glibmm_value/Makefile.am @@ -0,0 +1,7 @@ +include $(top_srcdir)/tests/Makefile.am_fragment + +noinst_PROGRAMS = test +test_SOURCES = main.cc glibmm_value.cc + + + diff --git a/libs/glibmm2/tests/glibmm_value/Makefile.in b/libs/glibmm2/tests/glibmm_value/Makefile.in new file mode 100644 index 0000000000..b9dfabcce2 --- /dev/null +++ b/libs/glibmm2/tests/glibmm_value/Makefile.in @@ -0,0 +1,465 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/tests/Makefile.am_fragment +noinst_PROGRAMS = test$(EXEEXT) +subdir = tests/glibmm_value +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/scripts/cxx.m4 \ + $(top_srcdir)/scripts/cxx_std.m4 \ + $(top_srcdir)/scripts/docgen.m4 \ + $(top_srcdir)/scripts/glibmm_check_perl.m4 \ + $(top_srcdir)/scripts/macros.m4 \ + $(top_srcdir)/scripts/reduced.m4 $(top_srcdir)/scripts/sun.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h \ + $(top_builddir)/glib/glibmmconfig.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_test_OBJECTS = main.$(OBJEXT) glibmm_value.$(OBJEXT) +test_OBJECTS = $(am_test_OBJECTS) +test_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/glib +depcomp = $(SHELL) $(top_srcdir)/scripts/depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(test_SOURCES) +DIST_SOURCES = $(test_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_API_CFLAGS = @DISABLE_DEPRECATED_API_CFLAGS@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLIBMM_CFLAGS = @GLIBMM_CFLAGS@ +GLIBMM_LIBS = @GLIBMM_LIBS@ +GLIBMM_MAJOR_VERSION = @GLIBMM_MAJOR_VERSION@ +GLIBMM_MICRO_VERSION = @GLIBMM_MICRO_VERSION@ +GLIBMM_MINOR_VERSION = @GLIBMM_MINOR_VERSION@ +GLIBMM_RELEASE = @GLIBMM_RELEASE@ +GLIBMM_VERSION = @GLIBMM_VERSION@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTKMMPROC_MERGECDOCS = @GTKMMPROC_MERGECDOCS@ +GTKMM_DOXYGEN_INPUT = @GTKMM_DOXYGEN_INPUT@ +GTKMM_FALSE_FALSE = @GTKMM_FALSE_FALSE@ +GTKMM_FALSE_TRUE = @GTKMM_FALSE_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGLIBMM_SO_VERSION = @LIBGLIBMM_SO_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = $(top_builddir)/glib/glibmm/libglibmm-2.4.la +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +M4 = @M4@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS_WIN32_FALSE = @OS_WIN32_FALSE@ +OS_WIN32_TRUE = @OS_WIN32_TRUE@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL_PATH = @PERL_PATH@ +PKG_CONFIG = @PKG_CONFIG@ +PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@ +PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_AS = @ac_ct_AS@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DLLTOOL = @ac_ct_DLLTOOL@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_OBJDUMP = @ac_ct_OBJDUMP@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +INCLUDES = \ + -I$(top_builddir)/glib -I$(top_srcdir)/glib \ + $(GLIBMM_CFLAGS) $(GTHREAD_CFLAGS) + +test_SOURCES = main.cc glibmm_value.cc +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/tests/Makefile.am_fragment $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/glibmm_value/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/glibmm_value/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) + @rm -f test$(EXEEXT) + $(CXXLINK) $(test_LDFLAGS) $(test_OBJECTS) $(test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glibmm_value.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/../../tests + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-info-am + + $(GLIBMM_LIBS) +# 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: diff --git a/libs/glibmm2/tests/glibmm_value/glibmm_value.cc b/libs/glibmm2/tests/glibmm_value/glibmm_value.cc new file mode 100644 index 0000000000..b3bf759aee --- /dev/null +++ b/libs/glibmm2/tests/glibmm_value/glibmm_value.cc @@ -0,0 +1,32 @@ + +#include <glibmm.h> + +struct Foo +{ + int bar; +}; + +namespace Gtk +{ +class Widget; +} + +void some_method() +{ +// custom copyable + Glib::Value<Foo> value_foo; + + // custom pointer + Glib::Value<Foo*> value_foo_pointer; + Glib::Value<const Foo*> value_foo_const_pointer; + +// Glib::Object pointer + Glib::Value<Gtk::Widget*> value_widget_pointer; + Glib::Value<const Gtk::Widget*> value_widget_const_pointer; +} + +// Glib::Object RefPtr<> + +//template Glib::Value< Glib::RefPtr<Gdk::Pixbuf> >; +//template Glib::Value< Glib::RefPtr<const Gdk::Pixbuf> >; + diff --git a/libs/glibmm2/tests/glibmm_value/main.cc b/libs/glibmm2/tests/glibmm_value/main.cc new file mode 100644 index 0000000000..1f318f05b8 --- /dev/null +++ b/libs/glibmm2/tests/glibmm_value/main.cc @@ -0,0 +1,8 @@ + +#include <glibmm.h> + +int main(int, char**) +{ + return 0; +} + |