From a436c5afac07e5d3670eb98dc795f030d8f7d25d Mon Sep 17 00:00:00 2001 From: matthieu Date: Sun, 28 Aug 2011 10:45:18 +0000 Subject: [PATCH] Update to x11perf 1.5.4 --- app/x11perf/ChangeLog | 137 +++++++ app/x11perf/Makefile.am | 45 +-- app/x11perf/Makefile.in | 255 +++++++++----- app/x11perf/aclocal.m4 | 414 ++++++++++++++++++++-- app/x11perf/configure | 490 ++++++++++++++++---------- app/x11perf/configure.ac | 13 +- app/x11perf/do_blt.c | 58 ++- app/x11perf/do_tests.c | 24 ++ app/x11perf/man/Makefile.am | 12 + app/x11perf/man/Makefile.in | 365 +++++++++++++++++++ app/x11perf/{ => man}/Xmark.man | 12 +- app/x11perf/{ => man}/x11perf.man | 54 +-- app/x11perf/{ => man}/x11perfcomp.man | 20 +- app/x11perf/x11pcomp.cpp | 103 ------ app/x11perf/x11perf.h | 3 + app/x11perf/x11perfcomp.in | 108 ++++++ 16 files changed, 1614 insertions(+), 499 deletions(-) create mode 100644 app/x11perf/man/Makefile.am create mode 100644 app/x11perf/man/Makefile.in rename app/x11perf/{ => man}/Xmark.man (94%) rename app/x11perf/{ => man}/x11perf.man (97%) rename app/x11perf/{ => man}/x11perfcomp.man (91%) delete mode 100644 app/x11perf/x11pcomp.cpp create mode 100644 app/x11perf/x11perfcomp.in diff --git a/app/x11perf/ChangeLog b/app/x11perf/ChangeLog index 6a90fd8f9..10fa1c660 100644 --- a/app/x11perf/ChangeLog +++ b/app/x11perf/ChangeLog @@ -1,3 +1,140 @@ +commit 84bfc56a89929999db92925c078d9e2f801b1689 +Author: Alan Coopersmith +Date: Wed Jul 27 18:29:38 2011 -0700 + + x11perf 1.5.4 + + Signed-off-by: Alan Coopersmith + +commit d171454212bff8f4a32cf3cef08566e29237da9d +Author: Alan Coopersmith +Date: Thu Jul 7 22:40:14 2011 -0700 + + Add MKTEMP to DIR_SUBSTS in Makefile + + Needed for commit 1188465112a1 to work after revert of 4af24b2f5b3f8f + + Signed-off-by: Alan Coopersmith + Reviewed-by: Gaetan Nadon + +commit 86cf2ab52ad5c6b4b262c1673ad5bd4c8713e3e8 +Author: Alan Coopersmith +Date: Thu Jul 7 17:16:52 2011 -0700 + + Revert "Let autoconf generate x11perfcomp directly instead of doing it via sed" + + This reverts commit 4af24b2f5b3f8f2c20271ae323b6fa528b9b2127. + + Letting autoconf do it failed to handle the recursive expansion needed, + resulting in "PATH=${exec_prefix}/lib/X11/x11perfcomp:..." without having + exec_prefix defined in x11perfcomp. + + Signed-off-by: Alan Coopersmith + Reviewed-by: Jeremy Huddleston + Reviewed-by: Gaetan Nadon + +commit be99f1c0ecac26255aa9b0bb0347bab1b6e0fb88 +Author: Alan Coopersmith +Date: Fri Jul 1 19:59:34 2011 -0700 + + Remove stray remaining CVS id tag + + Signed-off-by: Alan Coopersmith + +commit 1188465112a1a3c6acce9d370d448df70fd4fa4d +Author: Alan Coopersmith +Date: Fri Jul 1 19:51:47 2011 -0700 + + x11perfcomp should use mktemp instead of pid for tmp directory + + Signed-off-by: Alan Coopersmith + +commit 4af24b2f5b3f8f2c20271ae323b6fa528b9b2127 +Author: Alan Coopersmith +Date: Fri Jul 1 17:38:01 2011 -0700 + + Let autoconf generate x11perfcomp directly instead of doing it via sed + + Signed-off-by: Alan Coopersmith + +commit fefc834c419085b2db3b2d7d57bdbfe240d1b75c +Author: Alan Coopersmith +Date: Fri Jul 1 17:30:14 2011 -0700 + + x11perfcomp: use saner $PATH + + Signed-off-by: Alan Coopersmith + +commit 4e86c85ac8cf2fc6631be704de45f098d1a58ab3 +Author: Alan Coopersmith +Date: Fri Mar 11 14:46:00 2011 -0800 + + Make Makefile.am's compatible with Solaris make + + Solaris make won't substitute $< in explicit rules, only implicit ones + + Signed-off-by: Alan Coopersmith + +commit 8b8f94bca1576e7365c492cfc8131d5aa7bcd7c8 +Author: Gaetan Nadon +Date: Sat Jan 22 14:41:33 2011 -0500 + + config: substitute x11perfcompdir using Autoconf @x11perfcompdir@ + + Use the Autoconf recommended way of substituting bindir and friends, see + http://www.gnu.org/software/autoconf/manual/autoconf.html + + Use # sign for comment in script. + Only sed is used, drop the cpp terminology. + + Reviewed-by: RĂ©mi Cardona + Signed-off-by: Gaetan Nadon + +commit 490ceddc3e97e8c5bf1ed61265525c213abf65d1 +Author: Gaetan Nadon +Date: Wed Jan 19 10:06:55 2011 -0500 + + config: move man pages into their own directory + + Use services provided by XORG_MANPAGE_SECTIONS. + Use standard Makefile for man pages. + + Signed-off-by: Gaetan Nadon + +commit 36d4517099505fac29a3c0b8c6c3779b3f05b8ff +Author: Gaetan Nadon +Date: Thu Jan 13 17:15:36 2011 -0500 + + man: replace hard coded man page section with substitution strings + + Signed-off-by: Gaetan Nadon + +commit 8ebaae2bf1350b9414d261fc8509fcd898d9b152 +Author: Gaetan Nadon +Date: Thu Jan 13 11:15:47 2011 -0500 + + man: remove trailing spaces and tabs + + Using s/[ \t]*$// + + Signed-off-by: Gaetan Nadon + +commit 7f46d58f7523a07e9086b7c47534c37240d83409 +Author: Chris Wilson +Date: Thu Jan 6 10:58:53 2011 +0000 + + Add tests for ShmGetImage + + Similar to GetImage and ShmPutImage, test the performance of retrieving + pixel data from the X server without the overhead of copying the pixels. + In the upper bound, using XShmGetImage, the performance will be limited + by the RTT latency (x11perf -prop). However, comparing the scaling factors + of XShmGetImage and XGetImage will give some insight into the driver + efficiency. + + Signed-off-by: Chris Wilson + Reviewed-by: Adam Jackson + commit c39d831d409537fce2f36c8672f908a7cc810519 Author: Alan Coopersmith Date: Wed Jan 5 16:33:36 2011 -0800 diff --git a/app/x11perf/Makefile.am b/app/x11perf/Makefile.am index c14391cca..30c9ec77c 100644 --- a/app/x11perf/Makefile.am +++ b/app/x11perf/Makefile.am @@ -19,15 +19,10 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. +SUBDIRS = man + bin_PROGRAMS = x11perf -bin_SCRIPTS = x11perfcomp - -LIBPATH = $(libdir)/X11/x11perfcomp - -x11perfcompdir = $(LIBPATH) -dist_x11perfcomp_SCRIPTS = fillblnk perfboth perfratio Xmark - AM_CFLAGS = $(CWARNFLAGS) $(XEXT_CFLAGS) $(XFT_CFLAGS) $(XRENDER_CFLAGS) $(X11PERF_CFLAGS) x11perf_LDADD = $(XEXT_LIBS) $(XFT_LIBS) $(XRENDER_LIBS) $(X11PERF_LIBS) -lm @@ -52,34 +47,22 @@ x11perf_SOURCES = \ x11perf.c \ x11perf.h -appman_PRE = \ - x11perfcomp.man \ - x11perf.man \ - Xmark.man +bin_SCRIPTS = x11perfcomp +CLEANFILES = $(bin_SCRIPTS) +EXTRA_DIST = $(bin_SCRIPTS:=.in) +DIR_SUBSTS = -e 's|@x11perfcompdir[@]|$(x11perfcompdir)|g' +DIR_SUBSTS += -e 's|@MKTEMP[@]|$(MKTEMP)|g' -x11perfcomp: x11pcomp.cpp - $(AM_V_GEN)$(SED) s/LIBPATH/`echo $(LIBPATH) | sed -e s/\\\\//\\\\\\\\\\\\\//g`/ < $(srcdir)/x11pcomp.cpp | \ - $(SED) s/XCOMM/\#/ > $@ +x11perfcomp: x11perfcomp.in + $(AM_V_GEN)$(SED) $(DIR_SUBSTS) < $(srcdir)/$@.in > $@ +dist_x11perfcomp_SCRIPTS = \ + fillblnk \ + perfboth \ + perfratio \ + Xmark MAINTAINERCLEANFILES = ChangeLog INSTALL -CLEANFILES = $(bin_SCRIPTS) x11perfcomp - -EXTRA_DIST = x11pcomp.cpp - -appmandir = $(APP_MAN_DIR) - -appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) - -EXTRA_DIST += $(appman_PRE) -CLEANFILES += $(appman_DATA) - -SUFFIXES = .$(APP_MAN_SUFFIX) .man - -# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure -.man.$(APP_MAN_SUFFIX): - $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ - .PHONY: ChangeLog INSTALL diff --git a/app/x11perf/Makefile.in b/app/x11perf/Makefile.in index f28a40315..30f306180 100644 --- a/app/x11perf/Makefile.in +++ b/app/x11perf/Makefile.in @@ -36,7 +36,6 @@ # PERFORMANCE OF THIS SOFTWARE. - srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ @@ -46,9 +45,9 @@ 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_sh_DATA = ${SHELL} $(install_sh) -c -m 644 +install_sh_PROGRAM = ${SHELL} $(install_sh) -c +install_sh_SCRIPT = ${SHELL} $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : @@ -76,7 +75,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(x11perfcompdir)" "$(DESTDIR)$(appmandir)" + "$(DESTDIR)$(x11perfcompdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_x11perf_OBJECTS = bitmaps.$(OBJEXT) do_arcs.$(OBJEXT) \ @@ -101,16 +100,15 @@ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(x11perf_SOURCES) DIST_SOURCES = $(x11perf_SOURCES) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -appmanDATA_INSTALL = $(INSTALL_DATA) -DATA = $(appman_DATA) +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) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -173,6 +171,7 @@ MAKEINFO = @MAKEINFO@ MAN_SUBSTS = @MAN_SUBSTS@ MISC_MAN_DIR = @MISC_MAN_DIR@ MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ +MKTEMP = @MKTEMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -185,6 +184,7 @@ PKG_CONFIG = @PKG_CONFIG@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +STRICT_CFLAGS = @STRICT_CFLAGS@ STRIP = @STRIP@ VERSION = @VERSION@ X11PERF_CFLAGS = @X11PERF_CFLAGS@ @@ -239,10 +239,8 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ -bin_SCRIPTS = x11perfcomp -LIBPATH = $(libdir)/X11/x11perfcomp -x11perfcompdir = $(LIBPATH) -dist_x11perfcomp_SCRIPTS = fillblnk perfboth perfratio Xmark +x11perfcompdir = @x11perfcompdir@ +SUBDIRS = man AM_CFLAGS = $(CWARNFLAGS) $(XEXT_CFLAGS) $(XFT_CFLAGS) $(XRENDER_CFLAGS) $(X11PERF_CFLAGS) x11perf_LDADD = $(XEXT_LIBS) $(XFT_LIBS) $(XRENDER_LIBS) $(X11PERF_LIBS) -lm x11perf_SOURCES = \ @@ -266,22 +264,23 @@ x11perf_SOURCES = \ x11perf.c \ x11perf.h -appman_PRE = \ - x11perfcomp.man \ - x11perf.man \ - Xmark.man +bin_SCRIPTS = x11perfcomp +CLEANFILES = $(bin_SCRIPTS) +EXTRA_DIST = $(bin_SCRIPTS:=.in) +DIR_SUBSTS = -e 's|@x11perfcompdir[@]|$(x11perfcompdir)|g' -e \ + 's|@MKTEMP[@]|$(MKTEMP)|g' +dist_x11perfcomp_SCRIPTS = \ + fillblnk \ + perfboth \ + perfratio \ + Xmark MAINTAINERCLEANFILES = ChangeLog INSTALL -CLEANFILES = $(bin_SCRIPTS) x11perfcomp $(appman_DATA) -EXTRA_DIST = x11pcomp.cpp $(appman_PRE) -appmandir = $(APP_MAN_DIR) -appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) -SUFFIXES = .$(APP_MAN_SUFFIX) .man all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-am + $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .$(APP_MAN_SUFFIX) .man .c .o .obj +.SUFFIXES: .c .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @@ -435,22 +434,76 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` uninstall-info-am: -install-appmanDATA: $(appman_DATA) - @$(NORMAL_INSTALL) - test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)" - @list='$(appman_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \ - $(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \ - done -uninstall-appmanDATA: - @$(NORMAL_UNINSTALL) - @list='$(appman_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \ - rm -f "$(DESTDIR)$(appmandir)/$$f"; \ +# 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) @@ -463,10 +516,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) mkid -fID $$unique tags: TAGS -TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(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) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ @@ -479,7 +545,7 @@ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $$tags $$unique; \ fi ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ @@ -530,6 +596,21 @@ distdir: $(DISTFILES) || 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 $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook @@ -631,21 +712,22 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) config.h -installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(x11perfcompdir)" "$(DESTDIR)$(appmandir)"; do \ +check: check-recursive +all-am: Makefile $(PROGRAMS) $(SCRIPTS) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(x11perfcompdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-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-am +installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ @@ -663,84 +745,83 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am +clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am -distclean: distclean-am +distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags -dvi: dvi-am +dvi: dvi-recursive dvi-am: -html: html-am +html: html-recursive -info: info-am +info: info-recursive info-am: -install-data-am: install-appmanDATA install-dist_x11perfcompSCRIPTS +install-data-am: install-dist_x11perfcompSCRIPTS install-exec-am: install-binPROGRAMS install-binSCRIPTS -install-info: install-info-am +install-info: install-info-recursive install-man: installcheck-am: -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic -pdf: pdf-am +pdf: pdf-recursive pdf-am: -ps: ps-am +ps: ps-recursive ps-am: -uninstall-am: uninstall-appmanDATA uninstall-binPROGRAMS \ - uninstall-binSCRIPTS uninstall-dist_x11perfcompSCRIPTS \ - uninstall-info-am +uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ + uninstall-dist_x11perfcompSCRIPTS uninstall-info-am -.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ - clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-hdr \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-appmanDATA install-binPROGRAMS install-binSCRIPTS \ +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ + check-am clean clean-binPROGRAMS clean-generic clean-recursive \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-recursive distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-binSCRIPTS \ install-data install-data-am install-dist_x11perfcompSCRIPTS \ 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 pdf pdf-am \ - ps ps-am tags uninstall uninstall-am uninstall-appmanDATA \ - uninstall-binPROGRAMS uninstall-binSCRIPTS \ - uninstall-dist_x11perfcompSCRIPTS uninstall-info-am + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-binSCRIPTS uninstall-dist_x11perfcompSCRIPTS \ + uninstall-info-am -x11perfcomp: x11pcomp.cpp - $(AM_V_GEN)$(SED) s/LIBPATH/`echo $(LIBPATH) | sed -e s/\\\\//\\\\\\\\\\\\\//g`/ < $(srcdir)/x11pcomp.cpp | \ - $(SED) s/XCOMM/\#/ > $@ - -# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure -.man.$(APP_MAN_SUFFIX): - $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +x11perfcomp: x11perfcomp.in + $(AM_V_GEN)$(SED) $(DIR_SUBSTS) < $(srcdir)/$@.in > $@ .PHONY: ChangeLog INSTALL diff --git a/app/x11perf/aclocal.m4 b/app/x11perf/aclocal.m4 index d24c77a27..cdf4062b0 100644 --- a/app/x11perf/aclocal.m4 +++ b/app/x11perf/aclocal.m4 @@ -1022,7 +1022,7 @@ dnl DEALINGS IN THE SOFTWARE. # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.11.0]) +m4_define([vers_have], [1.15.0]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, @@ -1049,7 +1049,7 @@ AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], # which is not the best choice for supporting other OS'es, but covers most # of the ones we need for now. AC_MSG_CHECKING([if $RAWCPP requires -undef]) -AC_LANG_CONFTEST([Does cpp redefine unix ?]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then AC_MSG_RESULT([no]) else @@ -1067,7 +1067,7 @@ fi rm -f conftest.$ac_ext AC_MSG_CHECKING([if $RAWCPP requires -traditional]) -AC_LANG_CONFTEST([Does cpp preserve "whitespace"?]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then AC_MSG_RESULT([no]) else @@ -1417,6 +1417,123 @@ AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) ]) # XORG_WITH_XMLTO +# XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT]) +# -------------------------------------------- +# Minimum version: 1.12.0 +# Minimum version for optional DEFAULT argument: 1.12.0 +# +# XSLT (Extensible Stylesheet Language Transformations) is a declarative, +# XML-based language used for the transformation of XML documents. +# The xsltproc command line tool is for applying XSLT stylesheets to XML documents. +# It is used under the cover by xmlto to generate html files from DocBook/XML. +# The XSLT processor is often used as a standalone tool for transformations. +# It should not be assumed that this tool is used only to work with documnetation. +# When DEFAULT is not specified, --with-xsltproc assumes 'auto'. +# +# Interface to module: +# HAVE_XSLTPROC: used in makefiles to conditionally generate documentation +# XSLTPROC: returns the path of the xsltproc program found +# returns the path set by the user in the environment +# --with-xsltproc: 'yes' user instructs the module to use xsltproc +# 'no' user instructs the module not to use xsltproc +# have_xsltproc: returns yes if xsltproc found in PATH or no +# +# If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path. +# +AC_DEFUN([XORG_WITH_XSLTPROC],[ +AC_ARG_VAR([XSLTPROC], [Path to xsltproc command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(xsltproc, + AS_HELP_STRING([--with-xsltproc], + [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]), + [use_xsltproc=$withval], [use_xsltproc=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_xsltproc" = x"auto"; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_WARN([xsltproc not found - cannot transform XML documents]) + have_xsltproc=no + else + have_xsltproc=yes + fi +elif test "x$use_xsltproc" = x"yes" ; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH]) + fi + have_xsltproc=yes +elif test "x$use_xsltproc" = x"no" ; then + if test "x$XSLTPROC" != "x"; then + AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified]) + fi + have_xsltproc=no +else + AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes]) +]) # XORG_WITH_XSLTPROC + +# XORG_WITH_PERL([MIN-VERSION], [DEFAULT]) +# ---------------------------------------- +# Minimum version: 1.15.0 +# +# PERL (Practical Extraction and Report Language) is a language optimized for +# scanning arbitrary text files, extracting information from those text files, +# and printing reports based on that information. +# +# When DEFAULT is not specified, --with-perl assumes 'auto'. +# +# Interface to module: +# HAVE_PERL: used in makefiles to conditionally scan text files +# PERL: returns the path of the perl program found +# returns the path set by the user in the environment +# --with-perl: 'yes' user instructs the module to use perl +# 'no' user instructs the module not to use perl +# have_perl: returns yes if perl found in PATH or no +# +# If the user sets the value of PERL, AC_PATH_PROG skips testing the path. +# +AC_DEFUN([XORG_WITH_PERL],[ +AC_ARG_VAR([PERL], [Path to perl command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(perl, + AS_HELP_STRING([--with-perl], + [Use perl for extracting information from files (default: ]_defopt[)]), + [use_perl=$withval], [use_perl=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_perl" = x"auto"; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_WARN([perl not found - cannot extract information and report]) + have_perl=no + else + have_perl=yes + fi +elif test "x$use_perl" = x"yes" ; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH]) + fi + have_perl=yes +elif test "x$use_perl" = x"no" ; then + if test "x$PERL" != "x"; then + AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified]) + fi + have_perl=no +else + AC_MSG_ERROR([--with-perl expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes]) +]) # XORG_WITH_PERL + # XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT]) # ---------------- # Minimum version: 1.5.0 @@ -1662,10 +1779,11 @@ AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) ]) # XORG_WITH_GROFF -# XORG_WITH_FOP([DEFAULT]) -# ---------------- +# XORG_WITH_FOP([MIN-VERSION], [DEFAULT]) +# --------------------------------------- # Minimum version: 1.6.0 # Minimum version for optional DEFAULT argument: 1.11.0 +# Minimum version for optional MIN-VERSION argument: 1.15.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the @@ -1685,7 +1803,7 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) # AC_DEFUN([XORG_WITH_FOP],[ AC_ARG_VAR([FOP], [Path to fop command]) -m4_define([_defopt], m4_default([$1], [auto])) +m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(fop, AS_HELP_STRING([--with-fop], [Use fop to regenerate documentation (default: ]_defopt[)]), @@ -1714,6 +1832,22 @@ elif test "x$use_fop" = x"no" ; then else AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) fi + +# Test for a minimum version of fop, if provided. +m4_ifval([$1], +[if test "$have_fop" = yes; then + # scrape the fop version + AC_MSG_CHECKING([for fop minimum version]) + fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3` + AC_MSG_RESULT([$fop_version]) + AS_VERSION_COMPARE([$fop_version], [$1], + [if test "x$use_fop" = xauto; then + AC_MSG_WARN([fop version $fop_version found, but $1 needed]) + have_fop=no + else + AC_MSG_ERROR([fop version $fop_version found, but $1 needed]) + fi]) +fi]) AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) ]) # XORG_WITH_FOP @@ -1796,12 +1930,12 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_DOCS],[ -m4_define([default], m4_default([$1], [yes])) +m4_define([docs_default], m4_default([$1], [yes])) AC_ARG_ENABLE(docs, AS_HELP_STRING([--enable-docs], - [Enable building the documentation (default: ]default[)]), - [build_docs=$enableval], [build_docs=]default) -m4_undefine([default]) + [Enable building the documentation (default: ]docs_default[)]), + [build_docs=$enableval], [build_docs=]docs_default) +m4_undefine([docs_default]) AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) AC_MSG_CHECKING([whether to build documentation]) AC_MSG_RESULT([$build_docs]) @@ -1873,6 +2007,194 @@ AC_MSG_CHECKING([whether to build functional specifications]) AC_MSG_RESULT([$build_specs]) ]) # XORG_ENABLE_SPECS +# XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto) +# ---------------------------------------------- +# Minimum version: 1.13.0 +# +# This macro enables a builder to enable/disable unit testing +# It makes no assumption about the test cases implementation +# Test cases may or may not use Automake "Support for test suites" +# They may or may not use the software utility library GLib +# +# When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL +# ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib. +# The variable enable_unit_tests is used by other macros in this file. +# +# Interface to module: +# ENABLE_UNIT_TESTS: used in makefiles to conditionally build tests +# enable_unit_tests: used in configure.ac for additional configuration +# --enable-unit-tests: 'yes' user instructs the module to build tests +# 'no' user instructs the module not to build tests +# parm1: specify the default value, yes or no. +# +AC_DEFUN([XORG_ENABLE_UNIT_TESTS],[ +AC_BEFORE([$0], [XORG_WITH_GLIB]) +AC_BEFORE([$0], [XORG_LD_WRAP]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests], + [Enable building unit test cases (default: ]_defopt[)]), + [enable_unit_tests=$enableval], [enable_unit_tests=]_defopt) +m4_undefine([_defopt]) +AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno]) +AC_MSG_CHECKING([whether to build unit test cases]) +AC_MSG_RESULT([$enable_unit_tests]) +]) # XORG_ENABLE_UNIT_TESTS + +# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT]) +# ---------------------------------------- +# Minimum version: 1.13.0 +# +# GLib is a library which provides advanced data structures and functions. +# This macro enables a module to test for the presence of Glib. +# +# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing. +# Otherwise the value of $enable_unit_tests is blank. +# +# Interface to module: +# HAVE_GLIB: used in makefiles to conditionally build targets +# with_glib: used in configure.ac to know if GLib has been found +# --with-glib: 'yes' user instructs the module to use glib +# 'no' user instructs the module not to use glib +# +AC_DEFUN([XORG_WITH_GLIB],[ +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib], + [Use GLib library for unit testing (default: ]_defopt[)]), + [with_glib=$withval], [with_glib=]_defopt) +m4_undefine([_defopt]) + +have_glib=no +# Do not probe GLib if user explicitly disabled unit testing +if test "x$enable_unit_tests" != x"no"; then + # Do not probe GLib if user explicitly disabled it + if test "x$with_glib" != x"no"; then + m4_ifval( + [$1], + [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])], + [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])] + ) + fi +fi + +# Not having GLib when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Having unit testing disabled when GLib has been explicitly requested is an error +if test "x$enable_unit_tests" = x"no"; then + if test "x$with_glib" = x"yes"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Not having GLib when it has been explicitly requested is an error +if test "x$with_glib" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found]) + fi +fi + +AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes]) +]) # XORG_WITH_GLIB + +# XORG_LD_WRAP +# ------------ +# Minimum version: 1.13.0 +# +# Check if linker supports -wrap, passed via compiler flags +# +# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing. +# Otherwise the value of $enable_unit_tests is blank. +# +AC_DEFUN([XORG_LD_WRAP],[ +XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no]) +# Not having ld wrap when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes"; then + if test "x$have_ld_wrap" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available]) + fi +fi +AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes]) +# +]) # XORG_LD_WRAP + +# XORG_CHECK_LINKER_FLAGS +# ----------------------- +# SYNOPSIS +# +# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE]) +# +# DESCRIPTION +# +# Check whether the given linker FLAGS work with the current language's +# linker, or whether they give an error. +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# NOTE: Based on AX_CHECK_COMPILER_FLAGS. +# +# LICENSE +# +# Copyright (c) 2009 Mike Frysinger +# Copyright (c) 2009 Steven G. Johnson +# Copyright (c) 2009 Matteo Frigo +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well.# +AC_DEFUN([XORG_CHECK_LINKER_FLAGS], +[AC_MSG_CHECKING([whether the linker accepts $1]) +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: +AS_LITERAL_IF([$1], + [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [ + ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS])], + [ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS]) +eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1]) +AC_MSG_RESULT($xorg_check_linker_flags) +if test "x$xorg_check_linker_flags" = xyes; then + m4_default([$2], :) +else + m4_default([$3], :) +fi +]) # XORG_CHECK_LINKER_FLAGS + # XORG_CHECK_MALLOC_ZERO # ---------------------- # Minimum version: 1.0.0 @@ -1889,18 +2211,16 @@ AC_ARG_ENABLE(malloc0returnsnull, AC_MSG_CHECKING([whether malloc(0) returns NULL]) if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then - AC_RUN_IFELSE([ -char *malloc(); -char *realloc(); -char *calloc(); -main() { + AC_RUN_IFELSE([AC_LANG_PROGRAM([ +#include +],[ char *m0, *r0, *c0, *p; m0 = malloc(0); p = malloc(10); r0 = realloc(p,0); - c0 = calloc(0); - exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1); -}], + c0 = calloc(0,10); + exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1); +])], [MALLOC_ZERO_RETURNS_NULL=yes], [MALLOC_ZERO_RETURNS_NULL=no], [MALLOC_ZERO_RETURNS_NULL=yes]) @@ -2026,6 +2346,23 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) ]) # XORG_LINT_LIBRARY +# XORG_COMPILER_BRAND +# ------------------- +# Minimum version: 1.14.0 +# +# Checks for various brands of compilers and sets flags as appropriate: +# GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes" +# clang compiler - sets CLANGCC to "yes" +# Intel compiler - sets INTELCC to "yes" +# Sun/Oracle Solaris Studio cc - sets SUNCC to "yes" +# +AC_DEFUN([XORG_COMPILER_BRAND], [ +AC_REQUIRE([AC_PROG_CC_C99]) +AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"]) +AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) +AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) +]) # XORG_COMPILER_BRAND + # XORG_CWARNFLAGS # --------------- # Minimum version: 1.2.0 @@ -2034,6 +2371,7 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) # AC_DEFUN([XORG_CWARNFLAGS], [ AC_REQUIRE([AC_PROG_CC_C99]) +AC_REQUIRE([XORG_COMPILER_BRAND]) if test "x$GCC" = xyes ; then CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ @@ -2044,7 +2382,6 @@ if test "x$GCC" = xyes ; then ;; esac else - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) if test "x$SUNCC" = "xyes"; then CWARNFLAGS="-v" fi @@ -2056,28 +2393,43 @@ AC_SUBST(CWARNFLAGS) # ----------------------- # Minimum version: 1.3.0 # -# Add configure option to enable strict compilation +# Add configure option to enable strict compilation flags, such as treating +# warnings as fatal errors. +# If --enable-strict-compilation is passed to configure, adds strict flags to +# $CWARNFLAGS. +# +# Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or +# when strict compilation is unconditionally desired. AC_DEFUN([XORG_STRICT_OPTION], [ # If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89 AC_REQUIRE([AC_PROG_CC_C99]) +AC_REQUIRE([XORG_COMPILER_BRAND]) AC_REQUIRE([XORG_CWARNFLAGS]) AC_ARG_ENABLE(strict-compilation, AS_HELP_STRING([--enable-strict-compilation], [Enable all warnings from compiler and make them errors (default: disabled)]), [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) -if test "x$STRICT_COMPILE" = "xyes"; then - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) - AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) - if test "x$GCC" = xyes ; then - STRICT_CFLAGS="-pedantic -Werror" - elif test "x$SUNCC" = "xyes"; then - STRICT_CFLAGS="-errwarn" - elif test "x$INTELCC" = "xyes"; then - STRICT_CFLAGS="-Werror" - fi +if test "x$GCC" = xyes ; then + STRICT_CFLAGS="-pedantic -Werror" + # Add -Werror=attributes if supported (gcc 4.2 & later) + AC_MSG_CHECKING([if $CC supports -Werror=attributes]) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $STRICT_CFLAGS -Werror=attributes" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([return 0;])], + [STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes" + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + CFLAGS="$save_CFLAGS" +elif test "x$SUNCC" = "xyes"; then + STRICT_CFLAGS="-errwarn" +elif test "x$INTELCC" = "xyes"; then + STRICT_CFLAGS="-Werror" fi -CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +if test "x$STRICT_COMPILE" = "xyes"; then + CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +fi +AC_SUBST([STRICT_CFLAGS]) AC_SUBST([CWARNFLAGS]) ]) # XORG_STRICT_OPTION diff --git a/app/x11perf/configure b/app/x11perf/configure index db11338fa..ee84c0f22 100644 --- a/app/x11perf/configure +++ b/app/x11perf/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for x11perf 1.5.3. +# Generated by GNU Autoconf 2.62 for x11perf 1.5.4. # # Report bugs to . # @@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='x11perf' PACKAGE_TARNAME='x11perf' -PACKAGE_VERSION='1.5.3' -PACKAGE_STRING='x11perf 1.5.3' +PACKAGE_VERSION='1.5.4' +PACKAGE_STRING='x11perf 1.5.4' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' ac_unique_file="Makefile.am" @@ -718,6 +718,7 @@ CPP GREP EGREP CWARNFLAGS +STRICT_CFLAGS CHANGELOG_CMD PKG_CONFIG INSTALL_CMD @@ -745,6 +746,8 @@ ADMIN_MAN_DIR XORG_MAN_PAGE MAN_SUBSTS AM_DEFAULT_VERBOSITY +x11perfcompdir +MKTEMP X11PERF_CFLAGS X11PERF_LIBS XRENDER_CFLAGS @@ -1332,7 +1335,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures x11perf 1.5.3 to adapt to many kinds of systems. +\`configure' configures x11perf 1.5.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1402,7 +1405,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of x11perf 1.5.3:";; + short | recursive ) echo "Configuration of x11perf 1.5.4:";; esac cat <<\_ACEOF @@ -1507,7 +1510,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -x11perf configure 1.5.3 +x11perf configure 1.5.4 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1521,7 +1524,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by x11perf $as_me 1.5.3, which was +It was created by x11perf $as_me 1.5.4, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -2175,7 +2178,7 @@ fi # Define the identity of the package. PACKAGE='x11perf' - VERSION='1.5.3' + VERSION='1.5.4' cat >>confdefs.h <<_ACEOF @@ -4287,6 +4290,186 @@ done +{ $as_echo "$as_me:$LINENO: checking whether __clang__ is declared" >&5 +$as_echo_n "checking whether __clang__ is declared... " >&6; } +if test "${ac_cv_have_decl___clang__+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef __clang__ + (void) __clang__; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl___clang__=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl___clang__=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___clang__" >&5 +$as_echo "$ac_cv_have_decl___clang__" >&6; } +if test $ac_cv_have_decl___clang__ = yes; then + CLANGCC="yes" +else + CLANGCC="no" +fi + +{ $as_echo "$as_me:$LINENO: checking whether __INTEL_COMPILER is declared" >&5 +$as_echo_n "checking whether __INTEL_COMPILER is declared... " >&6; } +if test "${ac_cv_have_decl___INTEL_COMPILER+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef __INTEL_COMPILER + (void) __INTEL_COMPILER; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl___INTEL_COMPILER=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl___INTEL_COMPILER=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___INTEL_COMPILER" >&5 +$as_echo "$ac_cv_have_decl___INTEL_COMPILER" >&6; } +if test $ac_cv_have_decl___INTEL_COMPILER = yes; then + INTELCC="yes" +else + INTELCC="no" +fi + +{ $as_echo "$as_me:$LINENO: checking whether __SUNPRO_C is declared" >&5 +$as_echo_n "checking whether __SUNPRO_C is declared... " >&6; } +if test "${ac_cv_have_decl___SUNPRO_C+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef __SUNPRO_C + (void) __SUNPRO_C; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl___SUNPRO_C=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl___SUNPRO_C=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___SUNPRO_C" >&5 +$as_echo "$ac_cv_have_decl___SUNPRO_C" >&6; } +if test $ac_cv_have_decl___SUNPRO_C = yes; then + SUNCC="yes" +else + SUNCC="no" +fi + + + + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -4563,6 +4746,7 @@ $as_echo "$ac_cv_path_SED" >&6; } + if test "x$GCC" = xyes ; then CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ @@ -4573,65 +4757,6 @@ if test "x$GCC" = xyes ; then ;; esac else - { $as_echo "$as_me:$LINENO: checking whether __SUNPRO_C is declared" >&5 -$as_echo_n "checking whether __SUNPRO_C is declared... " >&6; } -if test "${ac_cv_have_decl___SUNPRO_C+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __SUNPRO_C - (void) __SUNPRO_C; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___SUNPRO_C=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___SUNPRO_C=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___SUNPRO_C" >&5 -$as_echo "$ac_cv_have_decl___SUNPRO_C" >&6; } -if test $ac_cv_have_decl___SUNPRO_C = yes; then - SUNCC="yes" -else - SUNCC="no" -fi - if test "x$SUNCC" = "xyes"; then CWARNFLAGS="-v" fi @@ -4643,6 +4768,7 @@ fi + # Check whether --enable-strict-compilation was given. if test "${enable_strict_compilation+set}" = set; then enableval=$enable_strict_compilation; STRICT_COMPILE=$enableval @@ -4650,134 +4776,61 @@ else STRICT_COMPILE=no fi +if test "x$GCC" = xyes ; then + STRICT_CFLAGS="-pedantic -Werror" + # Add -Werror=attributes if supported (gcc 4.2 & later) + { $as_echo "$as_me:$LINENO: checking if $CC supports -Werror=attributes" >&5 +$as_echo_n "checking if $CC supports -Werror=attributes... " >&6; } + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $STRICT_CFLAGS -Werror=attributes" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +return 0; +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" +elif test "x$SUNCC" = "xyes"; then + STRICT_CFLAGS="-errwarn" +elif test "x$INTELCC" = "xyes"; then + STRICT_CFLAGS="-Werror" +fi if test "x$STRICT_COMPILE" = "xyes"; then - { $as_echo "$as_me:$LINENO: checking whether __SUNPRO_C is declared" >&5 -$as_echo_n "checking whether __SUNPRO_C is declared... " >&6; } -if test "${ac_cv_have_decl___SUNPRO_C+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __SUNPRO_C - (void) __SUNPRO_C; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___SUNPRO_C=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___SUNPRO_C=no + CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___SUNPRO_C" >&5 -$as_echo "$ac_cv_have_decl___SUNPRO_C" >&6; } -if test $ac_cv_have_decl___SUNPRO_C = yes; then - SUNCC="yes" -else - SUNCC="no" -fi - - { $as_echo "$as_me:$LINENO: checking whether __INTEL_COMPILER is declared" >&5 -$as_echo_n "checking whether __INTEL_COMPILER is declared... " >&6; } -if test "${ac_cv_have_decl___INTEL_COMPILER+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __INTEL_COMPILER - (void) __INTEL_COMPILER; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___INTEL_COMPILER=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___INTEL_COMPILER=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___INTEL_COMPILER" >&5 -$as_echo "$ac_cv_have_decl___INTEL_COMPILER" >&6; } -if test $ac_cv_have_decl___INTEL_COMPILER = yes; then - INTELCC="yes" -else - INTELCC="no" -fi - - if test "x$GCC" = xyes ; then - STRICT_CFLAGS="-pedantic -Werror" - elif test "x$SUNCC" = "xyes"; then - STRICT_CFLAGS="-errwarn" - elif test "x$INTELCC" = "xyes"; then - STRICT_CFLAGS="-Werror" - fi -fi -CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" @@ -4974,6 +5027,52 @@ _ACEOF +# Define the installation directory for the x11 performance compare scripts +x11perfcompdir=$libdir/X11/x11perfcomp + + +# Checks for programs run by the scripts we install +# Extract the first word of "mktemp", so it can be a program name with args. +set dummy mktemp; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MKTEMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MKTEMP in + [\\/]* | ?:[\\/]*) + ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +MKTEMP=$ac_cv_path_MKTEMP +if test -n "$MKTEMP"; then + { $as_echo "$as_me:$LINENO: result: $MKTEMP" >&5 +$as_echo "$MKTEMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Checks for pkg-config packages pkg_failed=no @@ -5435,7 +5534,7 @@ done ;; esac -ac_config_files="$ac_config_files Makefile" +ac_config_files="$ac_config_files Makefile man/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -5877,7 +5976,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by x11perf $as_me 1.5.3, which was +This file was extended by x11perf $as_me 1.5.4, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5930,7 +6029,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -x11perf config.status 1.5.3 +x11perf config.status 1.5.4 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -6055,6 +6154,7 @@ do "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} diff --git a/app/x11perf/configure.ac b/app/x11perf/configure.ac index 552ea8d4d..a92863040 100644 --- a/app/x11perf/configure.ac +++ b/app/x11perf/configure.ac @@ -23,7 +23,7 @@ dnl Process this file with autoconf to create configure. # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([x11perf], - [1.5.3], + [1.5.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [x11perf]) AC_CONFIG_SRCDIR([Makefile.am]) @@ -41,6 +41,12 @@ XORG_DEFAULT_OPTIONS AC_TYPE_SIGNAL +# Define the installation directory for the x11 performance compare scripts +AC_SUBST([x11perfcompdir], [$libdir/X11/x11perfcomp]) + +# Checks for programs run by the scripts we install +AC_PATH_PROG(MKTEMP, mktemp) + # Checks for pkg-config packages PKG_CHECK_MODULES(X11PERF, x11 xmuu) @@ -72,4 +78,7 @@ yes) ;; esac -AC_OUTPUT([Makefile]) +AC_CONFIG_FILES([ + Makefile + man/Makefile]) +AC_OUTPUT diff --git a/app/x11perf/do_blt.c b/app/x11perf/do_blt.c index 558ddf0f8..4051df52c 100644 --- a/app/x11perf/do_blt.c +++ b/app/x11perf/do_blt.c @@ -364,8 +364,8 @@ shmerrorhandler(Display *d, XErrorEvent *e) return (*origerrorhandler)(d,e); } -int -InitShmPutImage(XParms xp, Parms p, int reps) +static int +InitShmImage(XParms xp, Parms p, int reps, Bool read_only) { int image_size; @@ -382,7 +382,6 @@ InitShmPutImage(XParms xp, Parms p, int reps) free(segsb); return False; } - XClearWindow(xp->d, xp->w); shm_image = *image; image_size = image->bytes_per_line * image->height; /* allow XYPixmap choice: */ @@ -418,7 +417,7 @@ InitShmPutImage(XParms xp, Parms p, int reps) shmctl (shm_info.shmid, IPC_RMID, NULL); return False; } - shm_info.readOnly = True; + shm_info.readOnly = read_only; XSync(xp->d,True); haderror = False; origerrorhandler = XSetErrorHandler(shmerrorhandler); @@ -447,7 +446,21 @@ InitShmPutImage(XParms xp, Parms p, int reps) return reps; } -void +int +InitShmPutImage(XParms xp, Parms p, int reps) +{ + if (!InitShmImage(xp, p, reps, True)) return False; + XClearWindow(xp->d, xp->w); + return reps; +} + +int +InitShmGetImage(XParms xp, Parms p, int reps) +{ + return InitShmImage(xp, p, reps, False); +} + +void DoShmPutImage(XParms xp, Parms p, int reps) { int i, size; @@ -467,10 +480,30 @@ DoShmPutImage(XParms xp, Parms p, int reps) } } -void -EndShmPutImage(XParms xp, Parms p) +void +DoShmGetImage(XParms xp, Parms p, int reps) { + int i, size; + XSegment *sa, *sb; + size = p->special; + + shm_image.width = size; + shm_image.height = size; + + for (sa = segsa, sb = segsb, i = 0; i != reps; i++, sa++, sb++) { + /* compute offsets into image data? */ + XShmGetImage(xp->d, xp->w, &shm_image, sa->x1, sa->y1, xp->planemask); + XShmGetImage(xp->d, xp->w, &shm_image, sa->x2, sa->y2, xp->planemask); + XShmGetImage(xp->d, xp->w, &shm_image, sb->x2, sb->y2, xp->planemask); + XShmGetImage(xp->d, xp->w, &shm_image, sb->x1, sb->y1, xp->planemask); + CheckAbort (); + } +} + +static void +EndShmImage(XParms xp, Parms p) +{ EndGetImage (xp, p); XShmDetach (xp->d, &shm_info); XSync(xp->d, False); /* need server to detach so can remove id */ @@ -480,6 +513,17 @@ EndShmPutImage(XParms xp, Parms p) perror("shmctl rmid:"); } +void +EndShmGetImage(XParms xp, Parms p) +{ + EndShmImage(xp, p); +} + +void +EndShmPutImage(XParms xp, Parms p) +{ + EndShmImage(xp, p); +} #endif diff --git a/app/x11perf/do_tests.c b/app/x11perf/do_tests.c index e4f3cb1c1..5d30dc57f 100644 --- a/app/x11perf/do_tests.c +++ b/app/x11perf/do_tests.c @@ -1210,6 +1210,30 @@ Test test[] = { InitShmPutImage, DoShmPutImage, MidCopyPix, EndShmPutImage, V1_4FEATURE, ROP, 0, {4, 500, "XY"}}, + {"-shmget10", "ShmGetImage 10x10 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_2FEATURE, ROP, 0, + {4, 10}}, + {"-shmget100", "ShmGetImage 100x100 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_2FEATURE, ROP, 0, + {4, 100}}, + {"-shmget500", "ShmGetImage 500x500 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_2FEATURE, ROP, 0, + {4, 500}}, + {"-shmgetxy10", "ShmGetImage XY 10x10 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_4FEATURE, ROP, 0, + {4, 10, "XY"}}, + {"-shmgetxy100", "ShmGetImage XY 100x100 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_4FEATURE, ROP, 0, + {4, 100, "XY"}}, + {"-shmgetxy500", "ShmGetImage XY 500x500 square", NULL, + InitShmGetImage, DoShmGetImage, NullProc, EndShmGetImage, + V1_4FEATURE, ROP, 0, + {4, 500, "XY"}}, #endif {"-getimage10", "GetImage 10x10 square", NULL, InitGetImage, DoGetImage, NullProc, EndGetImage, diff --git a/app/x11perf/man/Makefile.am b/app/x11perf/man/Makefile.am new file mode 100644 index 000000000..14c63bdb9 --- /dev/null +++ b/app/x11perf/man/Makefile.am @@ -0,0 +1,12 @@ + +appmandir = $(APP_MAN_DIR) +appman_PRE = x11perfcomp.man x11perf.man Xmark.man +appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX)) + +EXTRA_DIST = $(appman_PRE) +CLEANFILES = $(appman_DATA) +SUFFIXES = .$(APP_MAN_SUFFIX) .man + +# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure +.man.$(APP_MAN_SUFFIX): + $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ diff --git a/app/x11perf/man/Makefile.in b/app/x11perf/man/Makefile.in new file mode 100644 index 000000000..e421feee4 --- /dev/null +++ b/app/x11perf/man/Makefile.in @@ -0,0 +1,365 @@ +# 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 = ${SHELL} $(install_sh) -c -m 644 +install_sh_PROGRAM = ${SHELL} $(install_sh) -c +install_sh_SCRIPT = ${SHELL} $(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 = man +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(appmandir)" +appmanDATA_INSTALL = $(INSTALL_DATA) +DATA = $(appman_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ +ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APP_MAN_DIR = @APP_MAN_DIR@ +APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHANGELOG_CMD = @CHANGELOG_CMD@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CWARNFLAGS = @CWARNFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ +DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FILE_MAN_DIR = @FILE_MAN_DIR@ +FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ +INSTALL_CMD = @INSTALL_CMD@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIB_MAN_DIR = @LIB_MAN_DIR@ +LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MAN_SUBSTS = @MAN_SUBSTS@ +MISC_MAN_DIR = @MISC_MAN_DIR@ +MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ +MKTEMP = @MKTEMP@ +OBJEXT = @OBJEXT@ +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@ +PKG_CONFIG = @PKG_CONFIG@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRICT_CFLAGS = @STRICT_CFLAGS@ +STRIP = @STRIP@ +VERSION = @VERSION@ +X11PERF_CFLAGS = @X11PERF_CFLAGS@ +X11PERF_LIBS = @X11PERF_LIBS@ +XEXT_CFLAGS = @XEXT_CFLAGS@ +XEXT_LIBS = @XEXT_LIBS@ +XFT_CFLAGS = @XFT_CFLAGS@ +XFT_LIBS = @XFT_LIBS@ +XORG_MAN_PAGE = @XORG_MAN_PAGE@ +XRENDER_CFLAGS = @XRENDER_CFLAGS@ +XRENDER_LIBS = @XRENDER_LIBS@ +ac_ct_CC = @ac_ct_CC@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_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@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +x11perfcompdir = @x11perfcompdir@ +appmandir = $(APP_MAN_DIR) +appman_PRE = x11perfcomp.man x11perf.man Xmark.man +appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX)) +EXTRA_DIST = $(appman_PRE) +CLEANFILES = $(appman_DATA) +SUFFIXES = .$(APP_MAN_SUFFIX) .man +all: all-am + +.SUFFIXES: +.SUFFIXES: .$(APP_MAN_SUFFIX) .man +$(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) --foreign man/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign man/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 +uninstall-info-am: +install-appmanDATA: $(appman_DATA) + @$(NORMAL_INSTALL) + test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)" + @list='$(appman_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \ + $(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \ + done + +uninstall-appmanDATA: + @$(NORMAL_UNINSTALL) + @list='$(appman_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \ + rm -f "$(DESTDIR)$(appmandir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +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 +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(appmandir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +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: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +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 mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-appmanDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-appmanDATA uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-appmanDATA 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-generic pdf \ + pdf-am ps ps-am uninstall uninstall-am uninstall-appmanDATA \ + uninstall-info-am + + +# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure +.man.$(APP_MAN_SUFFIX): + $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +# 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/app/x11perf/Xmark.man b/app/x11perf/man/Xmark.man similarity index 94% rename from app/x11perf/Xmark.man rename to app/x11perf/man/Xmark.man index a5c30d509..4e9116208 100644 --- a/app/x11perf/Xmark.man +++ b/app/x11perf/man/Xmark.man @@ -32,13 +32,13 @@ following way: It is possible to run the GXcopy and GXxor tests separately, as long as they are concatenated to the same output file: .nf -.BI "x11perf -display " display " -v1.3 -rop GXcopy -all > " datafile -.BI "x11perf -display " display " -v1.3 -rop GXxor -all >> " datafile +.BI "x11perf -display " display " -v1.3 -rop GXcopy -all > " datafile +.BI "x11perf -display " display " -v1.3 -rop GXxor -all >> " datafile .fi or .nf -.BI "x11perf -display " display " -v1.3 -rop GXxor -all > " datafile -.BI "x11perf -display " display " -v1.3 -rop GXcopy -all >> " datafile +.BI "x11perf -display " display " -v1.3 -rop GXxor -all > " datafile +.BI "x11perf -display " display " -v1.3 -rop GXcopy -all >> " datafile .fi .SH FILES .TP @@ -48,7 +48,7 @@ Temporary file created in the current directory, deleted after use. .TP .B Usage: Xmark datafile .I Xmark -was invoked without arguments or with more than one argument, or +was invoked without arguments or with more than one argument, or with options. Xmark takes no options. .TP .B "Error: data file does not exist or is not ordinary." @@ -63,4 +63,4 @@ by x11perf in the expected way. .BR "Diagnostic: ERROR: sum of weights =" nnn ", not equal to 4566.0;" There is an internal error in Xmark. .SH "SEE ALSO" -X(__miscmansuffix__), x11perf(1), x11perfcomp(1) +X(__miscmansuffix__), x11perf(__appmansuffix__), x11perfcomp(__appmansuffix__) diff --git a/app/x11perf/x11perf.man b/app/x11perf/man/x11perf.man similarity index 97% rename from app/x11perf/x11perf.man rename to app/x11perf/man/x11perf.man index b1e7be299..1fcbf20b9 100644 --- a/app/x11perf/x11perf.man +++ b/app/x11perf/man/x11perf.man @@ -1,15 +1,15 @@ .\" Copyright 1988, 1989 Digital Equipment Corporation. .\" Copyright 1989, 1994, 1998 The Open Group -.\" +.\" .\" Permission to use, copy, modify, distribute, and sell this software and its .\" documentation for any purpose is hereby granted without fee, provided that .\" the above copyright notice appear in all copies and that both that .\" copyright notice and this permission notice appear in supporting .\" documentation. -.\" +.\" .\" The above copyright notice and this permission notice shall be included .\" in all copies or substantial portions of the Software. -.\" +.\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17,7 +17,7 @@ .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR .\" OTHER DEALINGS IN THE SOFTWARE. -.\" +.\" .\" Except as contained in this notice, the name of The Open Group shall .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization @@ -42,25 +42,25 @@ done on some other device, like a terminal. Such benchmarks usually measure drawing speed for lines, polygons, text, etc. .PP Since workstations are not used as standalone graphics engines, but as -super-terminals, -.I x11perf +super-terminals, +.I x11perf measures window management performance as well as -traditional graphics performance. -.I x11perf +traditional graphics performance. +.I x11perf includes benchmarks for the time it takes to create and map windows (as when you start up an application); to map a pre-existing set of windows onto the screen (as when you deiconify an application or pop up a menu); and to rearrange windows (as when you slosh windows to and fro trying to find the one you want). .PP -.I x11perf +.I x11perf also measures graphics performance for operations not normally used in standalone graphics displays, but are nonetheless used frequently by X applications. Such operations include CopyPlane (used to map bitmaps into pixels), scrolling (used in text windows), and various stipples and tiles (used for CAD and color half-toning, respectively). .PP -.I x11perf +.I x11perf should be used to analyze particular strengths and weaknesses of servers, and is most useful to a server writer who wants to analyze and improve a server. @@ -72,10 +72,10 @@ While it can be used as a benchmark, it was written and is intended as a performance testing tool. .PP As such, -.I x11perf +.I x11perf DOES NOT whittle down measurements to a single ``HeXStones'' -or ``MeXops'' number. We consider such numbers to be uninformative -at best and misleading at worst. +or ``MeXops'' number. We consider such numbers to be uninformative +at best and misleading at worst. Some servers which are very fast for certain applications can be very slow for others. No single number or small set of numbers are sufficient to @@ -86,15 +86,15 @@ may be able to use the numbers reports to predict its performance on a given X implementation. .PP That said, you might also want to look at -.I x11perfcomp(1), -a program to compare the outputs of different +.I x11perfcomp(__appmansuffix__), +a program to compare the outputs of different .I x11perf runs. You provide a list of files containing results from .I x11perf, and it lays them out in a nice tabular format. .PP -For repeatable results, -.I x11perf +For repeatable results, +.I x11perf should be run using a local connection on a freshly-started server. The default configuration runs each test 5 times, in order to see if each trial takes approximately the same amount of time. @@ -117,7 +117,7 @@ the work requested by fetching a pixel back from the test window, which means that servers talking to graphics accelerators can't claim that they are done, while in the meantime the accelerator is painting madly. .PP -By default +By default .I x11perf automatically calibrates the number of repetitions of each test, so that each should take approximately the same length of time to run across @@ -138,15 +138,15 @@ The current program is mostly the responsibility of Joel McCormack. It is based upon the x11perf developed by Phil Karlton, Susan Angebranndt, Chris Kent, Mary Walker, and Todd Newman, who wanted to assess performance differences between various servers. Several tests were added in order to write and tune -the PMAX (DECStation 3100) servers. -For a general release to the world, -.I x11perf +the PMAX (DECStation 3100) servers. +For a general release to the world, +.I x11perf was rewritten to ease making comparisons between widely varying machines, to cover most important (and unimportant) X functionality, and to exercise graphics operations in as many different orientations and alignments as possible. .SH OPTIONS -.I x11perf +.I x11perf is solely Xlib based, and accepts the options listed below: .TP 14 @@ -155,7 +155,7 @@ Specifies which display to use. .TP 14 .B \-sync Runs the tests in synchronous mode. -Normally only useful for debugging +Normally only useful for debugging .I x11perf . .TP 14 .B \-pack @@ -164,7 +164,7 @@ This makes it easy to debug server code for stipples and tiles...if the pattern looks ugly, you've got alignment problems. .TP 14 .B \-repeat \fI\fP -Repeats each test +Repeats each test .I n times (by default each test is run 5 times). .TP 14 @@ -238,8 +238,8 @@ Set the save_under window attribute to True on all windows created by x11perf. Default is False. .TP 14 .B \-bs -Set the backing_store window attribute to the given value on all windows -created by x11perf. can be WhenMapped or +Set the backing_store window attribute to the given value on all windows +created by x11perf. can be WhenMapped or Always. Default is NotUseful. .TP 14 .B \-dot @@ -1001,7 +1001,7 @@ Circulate unmapped window to top. .SH X DEFAULTS There are no X defaults used by this program. .SH "SEE ALSO" -X(__miscmansuffix__), x11perfcomp(1) +X(__miscmansuffix__), x11perfcomp(__appmansuffix__) .SH AUTHORS Joel McCormack .br diff --git a/app/x11perf/x11perfcomp.man b/app/x11perf/man/x11perfcomp.man similarity index 91% rename from app/x11perf/x11perfcomp.man rename to app/x11perf/man/x11perfcomp.man index 45e4ad3ce..4f567d29a 100644 --- a/app/x11perf/x11perfcomp.man +++ b/app/x11perf/man/x11perfcomp.man @@ -1,14 +1,14 @@ .\" Copyright 1993, 1994, 1998 The Open Group -.\" +.\" .\" Permission to use, copy, modify, distribute, and sell this software and its .\" documentation for any purpose is hereby granted without fee, provided that .\" the above copyright notice appear in all copies and that both that .\" copyright notice and this permission notice appear in supporting .\" documentation. -.\" +.\" .\" The above copyright notice and this permission notice shall be included .\" in all copies or substantial portions of the Software. -.\" +.\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16,7 +16,7 @@ .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR .\" OTHER DEALINGS IN THE SOFTWARE. -.\" +.\" .\" Except as contained in this notice, the name of The Open Group shall .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization @@ -33,11 +33,11 @@ x11perfcomp \- X11 server performance comparison program The .I x11perfcomp program merges the output of several -.I x11perf(1) +.I x11perf(__appmansuffix__) runs into a nice tabular format. It takes the results in each file, fills in any missing test results if necessary, and for each test shows the objects/second rate of each server. -If invoked with the -r or -ro options, it shows the relative performance +If invoked with the -r or -ro options, it shows the relative performance of each server to the first server. .PP Normally, @@ -46,16 +46,16 @@ uses the first file specified to determine which specific tests it should report on. Some (non-DEC :) servers may fail to perform all tests. In this case, .I x11perfcomp -automatically substitutes in a rate of 0.0 objects/second. +automatically substitutes in a rate of 0.0 objects/second. Since the first file determines which tests to report on, this file must contain a superset of -the tests reported in the other files, else +the tests reported in the other files, else .I x11perfcomp will fail. .PP You can provide an explicit list of tests to report on by using the -l switch to specify a file of labels. You can create a label -file by using the -label option in +file by using the -label option in .I x11perf. .SH OPTIONS .I x11perfcomp @@ -73,7 +73,7 @@ Specifies a label file to use. .SH X DEFAULTS There are no X defaults used by this program. .SH "SEE ALSO" -X(__miscmansuffix__), x11perf(1) +X(__miscmansuffix__), x11perf(__appmansuffix__) .SH AUTHORS Mark Moraes wrote the original scripts to compare servers. .br diff --git a/app/x11perf/x11pcomp.cpp b/app/x11perf/x11pcomp.cpp deleted file mode 100644 index be7d3971c..000000000 --- a/app/x11perf/x11pcomp.cpp +++ /dev/null @@ -1,103 +0,0 @@ -XCOMM! /bin/sh -XCOMM -XCOMM $XFree86$ -XCOMM -XCOMM Collects multiple outputs of x11perf. Just feed it a list of files, each -XCOMM containing the output from an x11perf run, and this shell will extract the -XCOMM object/second information and show it in tabular form. An 80-column line -XCOMM is big enough to compare 4 different servers. -XCOMM -XCOMM This script normally uses the results from $1 to extract the test label -XCOMM descriptions, so you can run x11perf on a subset of the test and then -XCOMM compare the results. But note that x11perffill requires the labels file -XCOMM to be a superset of the x11perf results file. If you run into an ugly -XCOMM situation in which none of the servers completes the desired tests -XCOMM (quite possible on non-DEC servers :), you can use -l as $1 and -XCOMM $2 to force x11perfcomp to use the labels stored in file $2. (You can run -XCOMM x11perf with the -labels option to generate such a file.) -XCOMM -XCOMM Mark Moraes, University of Toronto -XCOMM Joel McCormack, DEC Western Research Lab -XCOMM - -PATH=LIBPATH:.:$PATH -export PATH - -set -e -tmp=${TMPDIR-/tmp}/rates.$$ -trap "rm -rf $tmp" 0 1 2 15 -mkdir $tmp || exit 1 -mkdir $tmp/rates -ratio= -allfiles= -XCOMM Include relative rates in output? Report only relative rates? -case $1 in --r|-a) - ratio=1 - shift; - ;; --ro) - ratio=2 - shift; - ;; -esac -XCOMM Get either the provided label file, or construct one from all the -XCOMM files given. -case $1 in --l) cp $2 $tmp/labels - shift; shift - ;; -*) for file in "$@"; do - awk '$2 == "reps" || $2 == "trep" { print $0; next; }' $file | - sed 's/^.*: //' | - sed 's/ /_/g' | - awk 'NR > 1 { printf ("%s %s\n", prev, $0); } \ - { prev = $0; }' - done | tsort 2>/dev/null | sed 's/_/ /g' > $tmp/labels - ;; -esac -XCOMM Go through all files, and create a corresponding rate file for each -n=1 -for i -do -XCOMM Get lines with average numbers, fill in any tests that may be missing -XCOMM then extract the rate field - base=`basename $i` - (echo " $n " - echo '--------' - awk '$2 == "reps" || $2 == "trep" { \ - line = $0; \ - next; \ - } \ - NF == 0 && line != "" { \ - print line; \ - line=""; \ - next; \ - } \ - ' $i > $tmp/$n.avg - fillblnk $tmp/$n.avg $tmp/labels | - sed 's/( *\([0-9]*\)/(\1/' | - awk '$2 == "reps" || $2 == "trep" { \ - n = substr($6,2,length($6)-7); \ - printf "%8s\n", n; \ - }' - ) > $tmp/rates/$n - echo "$n: $i" - allfiles="$allfiles$tmp/rates/$n " - n=`expr $n + 1` -done -case x$ratio in -x) - ratio=/bin/cat - ;; -x1) - ratio="perfboth $n" - ;; -*) - ratio="perfratio $n" - ;; -esac -echo '' -(echo Operation; echo '---------'; cat $tmp/labels) | -paste $allfiles - | sed 's/ / /g' | $ratio -rm -rf $tmp diff --git a/app/x11perf/x11perf.h b/app/x11perf/x11perf.h index 1deb0372b..3cbb6314f 100644 --- a/app/x11perf/x11perf.h +++ b/app/x11perf/x11perf.h @@ -183,8 +183,11 @@ extern void DoGetImage ( XParms xp, Parms p, int reps ); extern void DoPutImage ( XParms xp, Parms p, int reps ); #ifdef MITSHM extern int InitShmPutImage ( XParms xp, Parms p, int reps ); +extern int InitShmGetImage ( XParms xp, Parms p, int reps ); extern void DoShmPutImage ( XParms xp, Parms p, int reps ); +extern void DoShmGetImage ( XParms xp, Parms p, int reps ); extern void EndShmPutImage ( XParms xp, Parms p ); +extern void EndShmGetImage ( XParms xp, Parms p ); #endif extern void MidCopyPix ( XParms xp, Parms p ); extern void EndCopyWin ( XParms xp, Parms p ); diff --git a/app/x11perf/x11perfcomp.in b/app/x11perf/x11perfcomp.in new file mode 100644 index 000000000..498bbf0df --- /dev/null +++ b/app/x11perf/x11perfcomp.in @@ -0,0 +1,108 @@ +#! /bin/sh +# +# Collects multiple outputs of x11perf. Just feed it a list of files, each +# containing the output from an x11perf run, and this shell will extract the +# object/second information and show it in tabular form. An 80-column line +# is big enough to compare 4 different servers. +# +# This script normally uses the results from $1 to extract the test label +# descriptions, so you can run x11perf on a subset of the test and then +# compare the results. But note that x11perffill requires the labels file +# to be a superset of the x11perf results file. If you run into an ugly +# situation in which none of the servers completes the desired tests +# (quite possible on non-DEC servers :), you can use -l as $1 and +# $2 to force x11perfcomp to use the labels stored in file $2. (You can run +# x11perf with the -labels option to generate such a file.) +# +# Mark Moraes, University of Toronto +# Joel McCormack, DEC Western Research Lab +# + +PATH="@x11perfcompdir@:/bin:/usr/bin:$PATH" +export PATH + +MKTEMP="@MKTEMP@" + +set -e +if [ "x$MKTEMP" != "x" ] && [ -x "$MKTEMP" ] ; then + tmp=`$MKTEMP -p /tmp -d rates.XXXXXX` + if [ "x$tmp" = "x" ]; then exit 1 ; fi +else + tmp=${TMPDIR-/tmp}/rates.$$ + mkdir $tmp || exit 1 +fi +trap "rm -rf $tmp" 0 1 2 15 +mkdir $tmp/rates +ratio= +allfiles= +# Include relative rates in output? Report only relative rates? +case $1 in +-r|-a) + ratio=1 + shift; + ;; +-ro) + ratio=2 + shift; + ;; +esac +# Get either the provided label file, or construct one from all the +# files given. +case $1 in +-l) cp $2 $tmp/labels + shift; shift + ;; +*) for file in "$@"; do + awk '$2 == "reps" || $2 == "trep" { print $0; next; }' $file | + sed 's/^.*: //' | + sed 's/ /_/g' | + awk 'NR > 1 { printf ("%s %s\n", prev, $0); } \ + { prev = $0; }' + done | tsort 2>/dev/null | sed 's/_/ /g' > $tmp/labels + ;; +esac +# Go through all files, and create a corresponding rate file for each +n=1 +for i +do +# Get lines with average numbers, fill in any tests that may be missing +# then extract the rate field + base=`basename $i` + (echo " $n " + echo '--------' + awk '$2 == "reps" || $2 == "trep" { \ + line = $0; \ + next; \ + } \ + NF == 0 && line != "" { \ + print line; \ + line=""; \ + next; \ + } \ + ' $i > $tmp/$n.avg + fillblnk $tmp/$n.avg $tmp/labels | + sed 's/( *\([0-9]*\)/(\1/' | + awk '$2 == "reps" || $2 == "trep" { \ + n = substr($6,2,length($6)-7); \ + printf "%8s\n", n; \ + }' + ) > $tmp/rates/$n + echo "$n: $i" + allfiles="$allfiles$tmp/rates/$n " + n=`expr $n + 1` +done +case x$ratio in +x) + ratio=/bin/cat + ;; +x1) + ratio="perfboth $n" + ;; +*) + ratio="perfratio $n" + ;; +esac +echo '' +(echo Operation; echo '---------'; cat $tmp/labels) | +paste $allfiles - | sed 's/ / /g' | $ratio +rm -rf $tmp