Release version 1.3-2
699
Makefile.in
Normal file
@ -0,0 +1,699 @@
|
|||||||
|
# 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 $(am__configure_deps) $(dist_sysconf_DATA) \
|
||||||
|
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||||
|
$(srcdir)/libcvautomation.pc.in $(top_srcdir)/configure \
|
||||||
|
$(top_srcdir)/debian/changelog.in \
|
||||||
|
$(top_srcdir)/debian/copyright.in \
|
||||||
|
$(top_srcdir)/include/libcvautomation/libcvautomation.h.in \
|
||||||
|
$(top_srcdir)/rpm/libcvautomation.spec.in AUTHORS COPYING \
|
||||||
|
ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \
|
||||||
|
install-sh ltmain.sh missing
|
||||||
|
subdir = .
|
||||||
|
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)
|
||||||
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
configure.lineno configure.status.lineno
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_CLEAN_FILES = libcvautomation.pc \
|
||||||
|
include/libcvautomation/libcvautomation.h \
|
||||||
|
rpm/libcvautomation.spec debian/copyright debian/changelog
|
||||||
|
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
|
||||||
|
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)$(sysconfdir)" \
|
||||||
|
"$(DESTDIR)$(pkgconfigdir)"
|
||||||
|
dist_sysconfDATA_INSTALL = $(INSTALL_DATA)
|
||||||
|
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
|
||||||
|
DATA = $(dist_sysconf_DATA) $(pkgconfig_DATA)
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DIST_SUBDIRS = libcvautomation examples docs
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
top_distdir = $(distdir)
|
||||||
|
am__remove_distdir = \
|
||||||
|
{ test ! -d $(distdir) \
|
||||||
|
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -fr $(distdir); }; }
|
||||||
|
DIST_ARCHIVES = $(distdir).tar.gz
|
||||||
|
GZIP_ENV = --best
|
||||||
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMDEP_FALSE = @AMDEP_FALSE@
|
||||||
|
AMDEP_TRUE = @AMDEP_TRUE@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BUILD_DOXYGEN_FALSE = @BUILD_DOXYGEN_FALSE@
|
||||||
|
BUILD_DOXYGEN_TRUE = @BUILD_DOXYGEN_TRUE@
|
||||||
|
BUILD_EXAMPLES_FALSE = @BUILD_EXAMPLES_FALSE@
|
||||||
|
BUILD_EXAMPLES_TRUE = @BUILD_EXAMPLES_TRUE@
|
||||||
|
BUILD_MAN_FALSE = @BUILD_MAN_FALSE@
|
||||||
|
BUILD_MAN_TRUE = @BUILD_MAN_TRUE@
|
||||||
|
BUILD_TEX_FALSE = @BUILD_TEX_FALSE@
|
||||||
|
BUILD_TEX_TRUE = @BUILD_TEX_TRUE@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CV_CFLAGS = @CV_CFLAGS@
|
||||||
|
CV_LIBS = @CV_LIBS@
|
||||||
|
CV_VERSION = @CV_VERSION@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
Doxygen = @Doxygen@
|
||||||
|
ECHO = @ECHO@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MAN = @ENABLE_MAN@
|
||||||
|
ENABLE_TEX = @ENABLE_TEX@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
F77 = @F77@
|
||||||
|
FFLAGS = @FFLAGS@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIBTOOL_VERSION = @LIBTOOL_VERSION@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OpenCV_CFLAGS = @OpenCV_CFLAGS@
|
||||||
|
OpenCV_LIBS = @OpenCV_LIBS@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATCHLEVEL = @PATCHLEVEL@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
X11_CFLAGS = @X11_CFLAGS@
|
||||||
|
X11_LIBS = @X11_LIBS@
|
||||||
|
XTEST_CFLAGS = @XTEST_CFLAGS@
|
||||||
|
XTEST_LIBS = @XTEST_LIBS@
|
||||||
|
XTest_CFLAGS = @XTest_CFLAGS@
|
||||||
|
XTest_LIBS = @XTest_LIBS@
|
||||||
|
ac_ct_AR = @ac_ct_AR@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_F77 = @ac_ct_F77@
|
||||||
|
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@
|
||||||
|
@BUILD_DOXYGEN_FALSE@SUBDIRS = libcvautomation examples
|
||||||
|
@BUILD_DOXYGEN_TRUE@SUBDIRS = libcvautomation examples docs
|
||||||
|
|
||||||
|
#And the BASH macros
|
||||||
|
dist_sysconf_DATA = libcvautomation_funcs
|
||||||
|
|
||||||
|
#And the pkg-config files
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = libcvautomation.pc
|
||||||
|
DISTCLEANFILES = libcvautomation.pc
|
||||||
|
|
||||||
|
#Make sure to distribute some special files we need for building
|
||||||
|
#the libcvautomation.h header
|
||||||
|
EXTRA_DIST = include/opencv1_includes include/opencv2_includes
|
||||||
|
all: all-recursive
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
am--refresh:
|
||||||
|
@:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||||
|
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
echo ' $(SHELL) ./config.status'; \
|
||||||
|
$(SHELL) ./config.status;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(srcdir) && $(AUTOCONF)
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
libcvautomation.pc: $(top_builddir)/config.status $(srcdir)/libcvautomation.pc.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
include/libcvautomation/libcvautomation.h: $(top_builddir)/config.status $(top_srcdir)/include/libcvautomation/libcvautomation.h.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
rpm/libcvautomation.spec: $(top_builddir)/config.status $(top_srcdir)/rpm/libcvautomation.spec.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
debian/copyright: $(top_builddir)/config.status $(top_srcdir)/debian/copyright.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
debian/changelog: $(top_builddir)/config.status $(top_srcdir)/debian/changelog.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
-rm -f libtool
|
||||||
|
uninstall-info-am:
|
||||||
|
install-dist_sysconfDATA: $(dist_sysconf_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
|
||||||
|
@list='$(dist_sysconf_DATA)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " $(dist_sysconfDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||||
|
$(dist_sysconfDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-dist_sysconfDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(dist_sysconf_DATA)'; for p in $$list; do \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
|
||||||
|
rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
|
||||||
|
done
|
||||||
|
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)"
|
||||||
|
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||||
|
$(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgconfigDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkgconfig_DATA)'; for p in $$list; do \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
|
||||||
|
rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
mkdir $(distdir)
|
||||||
|
$(mkdir_p) $(distdir)/. $(distdir)/debian $(distdir)/docs $(distdir)/include $(distdir)/include/libcvautomation $(distdir)/rpm
|
||||||
|
@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
|
||||||
|
-find $(distdir) -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \
|
||||||
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||||
|
|| chmod -R a+r $(distdir)
|
||||||
|
dist-gzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-bzip2: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-tarZ: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-zip: distdir
|
||||||
|
-rm -f $(distdir).zip
|
||||||
|
zip -rq $(distdir).zip $(distdir)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist dist-all: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
|
# it guarantees that the distribution is self-contained by making another
|
||||||
|
# tarfile.
|
||||||
|
distcheck: dist
|
||||||
|
case '$(DIST_ARCHIVES)' in \
|
||||||
|
*.tar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
|
*.tar.bz2*) \
|
||||||
|
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
|
*.tar.Z*) \
|
||||||
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
|
*.shar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||||
|
*.zip*) \
|
||||||
|
unzip $(distdir).zip ;;\
|
||||||
|
esac
|
||||||
|
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||||
|
mkdir $(distdir)/_build
|
||||||
|
mkdir $(distdir)/_inst
|
||||||
|
chmod a-w $(distdir)
|
||||||
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
|
&& cd $(distdir)/_build \
|
||||||
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||||
|
distuninstallcheck \
|
||||||
|
&& chmod -R a-w "$$dc_install_base" \
|
||||||
|
&& ({ \
|
||||||
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||||
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||||
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||||
|
&& rm -rf "$$dc_destdir" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||||
|
$(am__remove_distdir)
|
||||||
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||||
|
distuninstallcheck:
|
||||||
|
@cd $(distuninstallcheck_dir) \
|
||||||
|
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||||
|
|| { echo "ERROR: files left after uninstall:" ; \
|
||||||
|
if test -n "$(DESTDIR)"; then \
|
||||||
|
echo " (check DESTDIR support)"; \
|
||||||
|
fi ; \
|
||||||
|
$(distuninstallcheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
distcleancheck: distclean
|
||||||
|
@if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
check-am: all-am
|
||||||
|
check: check-recursive
|
||||||
|
all-am: Makefile $(DATA)
|
||||||
|
installdirs: installdirs-recursive
|
||||||
|
installdirs-am:
|
||||||
|
for dir in "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||||
|
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||||
|
done
|
||||||
|
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)
|
||||||
|
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||||
|
|
||||||
|
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 $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-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-pkgconfigDATA
|
||||||
|
|
||||||
|
install-exec-am: install-dist_sysconfDATA
|
||||||
|
|
||||||
|
install-info: install-info-recursive
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
|
-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-dist_sysconfDATA uninstall-info-am \
|
||||||
|
uninstall-pkgconfigDATA
|
||||||
|
|
||||||
|
uninstall-info: uninstall-info-recursive
|
||||||
|
|
||||||
|
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||||
|
check-am clean clean-generic clean-libtool clean-recursive \
|
||||||
|
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||||
|
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||||
|
distclean-generic distclean-libtool distclean-recursive \
|
||||||
|
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||||
|
dvi-am html html-am info info-am install install-am \
|
||||||
|
install-data install-data-am install-dist_sysconfDATA \
|
||||||
|
install-exec install-exec-am install-info install-info-am \
|
||||||
|
install-man install-pkgconfigDATA 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-dist_sysconfDATA \
|
||||||
|
uninstall-info-am uninstall-pkgconfigDATA
|
||||||
|
|
||||||
|
# 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:
|
22
README.md
@ -1,22 +0,0 @@
|
|||||||
libcvautomation
|
|
||||||
============
|
|
||||||
|
|
||||||
Use OpenCV to create a GUI testing framework - replaces Sikuli, Xpresser
|
|
||||||
|
|
||||||
###### Why I'm doing this ######
|
|
||||||
In trying to create an application testing framework for the MOSAIC team at the University of North Carolina at Charlotte, I was very discouraged by what was currently offered.
|
|
||||||
|
|
||||||
Sikuli represented some great ideas, and the built-in IDE was great. Problem being, it crashed whenever I tried to create the first screenshot. Xpresser also looked like it could be great, but died pretty quickly too. Plus, neither of these programs ran on the Prominent North American Enterprise Linux Vendor's software platform.
|
|
||||||
|
|
||||||
As such, starting with a sample OpenCV program to recognize sub-images, I'm attempting to create a GUI testing framework that's more stable, no-questions-asked, simple, and otherwise just usable (specifically from BASH - don't make things more complicated than they need to be.)
|
|
||||||
|
|
||||||
###### How it works ######
|
|
||||||
OpenCV is used for image processing, and XTestExtension is used for driving X11. Reference implementations are given, and they are fairly full-featured.
|
|
||||||
|
|
||||||
###### Where we're headed #######
|
|
||||||
Image recognition and basic X automation are done. From here, code more advanced X automations (ex. Giving the library a string of text to enter, rather than just a character at a time), and clean up the code.
|
|
||||||
|
|
||||||
After the basic functionality is done (Image recognition and automation) I'll develop python bindings to make interfacing with the library simpler. If there are any suggestions, please let me know!
|
|
||||||
|
|
||||||
###### Get in contact #######
|
|
||||||
If you have a suggestion, comment, question, concern, or otherwise, feel free to email me at <bspeice@uncc.edu>. This product is developed with the community in mind, so if there's any feedback to be had I welcome it.
|
|
7407
aclocal.m4
vendored
Normal file
23
autogen.sh
@ -1,23 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#===============================================================================
|
|
||||||
#
|
|
||||||
# FILE: autogen.sh
|
|
||||||
#
|
|
||||||
# USAGE: ./autogen.sh
|
|
||||||
#
|
|
||||||
# DESCRIPTION:
|
|
||||||
#
|
|
||||||
# OPTIONS: ---
|
|
||||||
# REQUIREMENTS: ---
|
|
||||||
# BUGS: ---
|
|
||||||
# NOTES: ---
|
|
||||||
# AUTHOR: Bradlee Speice, bspeice@uncc.edu
|
|
||||||
# ORGANIZATION:
|
|
||||||
# CREATED: 06/22/2012 11:05:47 AM EDT
|
|
||||||
# REVISION: ---
|
|
||||||
#===============================================================================
|
|
||||||
|
|
||||||
aclocal
|
|
||||||
autoconf
|
|
||||||
libtoolize --copy
|
|
||||||
automake --copy --add-missing
|
|
142
compile
Executable file
@ -0,0 +1,142 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand `-c -o'.
|
||||||
|
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file `INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
eat=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||||
|
# So we strip `-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no `-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# `.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
1411
config.guess
vendored
Executable file
1500
config.sub
vendored
Executable file
1
debian/compat
vendored
@ -1 +0,0 @@
|
|||||||
8
|
|
36
debian/control
vendored
@ -1,36 +0,0 @@
|
|||||||
Source: libcvautomation
|
|
||||||
Section: devel
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Bradlee Speice <bspeice@uncc.edu>
|
|
||||||
Build-Depends: debhelper (>= 8.0.0), autotools-dev, pkg-config, libpcre3, libx11-dev, libxtst-dev, libopencv-core-dev, libopencv-highgui-dev, libopencv-imgproc-dev, doxygen
|
|
||||||
Standards-Version: 3.9.3
|
|
||||||
Homepage: http://djbushido.github.com/libcvautomation/
|
|
||||||
|
|
||||||
Package: libcvautomation-dev
|
|
||||||
Section: libdevel
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libxtst-dev, libx11-dev, libopencv-core2.3, libopencv-highgui2.3, libopencv-imgproc2.3
|
|
||||||
Description: GUI Automation and Testing Library
|
|
||||||
Contains the Libcvautomation main library, headers, and pkg-config files.
|
|
||||||
Libcvautomation is a GUI automation and testing tool based on image
|
|
||||||
recognition and response. This program was designed as a direct replacement
|
|
||||||
for Sikuli and Xpresser. Each solution had large problems with crashing, and
|
|
||||||
both refused to function on Red Hat Linux and Ubuntu 12.04. The author really
|
|
||||||
liked the way each of these programs approached GUI automation, but they
|
|
||||||
simply didn't work. As such, a simple library was designed to integrate OpenCV
|
|
||||||
and XTest, which can be used by BASH to drive GUI testing and automation, and
|
|
||||||
works on both new and old Linux distributions.
|
|
||||||
|
|
||||||
Package: libcvautomation-doc
|
|
||||||
Section: doc
|
|
||||||
Architecture: all
|
|
||||||
Depends: ${misc:Depends}, ${source:Version}
|
|
||||||
Description: documentation for libcvautomation
|
|
||||||
Contains the HTML documentation for libcvautomation.
|
|
||||||
|
|
||||||
Package: libcvautomation-examples
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libxtst-dev, libx11-dev, libopencv-core2.3, libopencv-highgui2.3, libopencv-imgproc2.3
|
|
||||||
Architecture: any
|
|
||||||
Description: Example programs to demonstrate libcvautomation functionality
|
|
||||||
Contains programs designed to showcase the functionality of libcvautomation,
|
|
||||||
as well as a BASH wrapper to write application tests from BASH.
|
|
2
debian/docs
vendored
@ -1,2 +0,0 @@
|
|||||||
NEWS
|
|
||||||
README
|
|
3
debian/libcvautomation-dev.install
vendored
@ -1,3 +0,0 @@
|
|||||||
usr/lib/*
|
|
||||||
usr/share/man/man3/*
|
|
||||||
usr/include/*
|
|
1
debian/libcvautomation-doc.docs
vendored
@ -1 +0,0 @@
|
|||||||
#DOCS#
|
|
2
debian/libcvautomation-doc.install
vendored
@ -1,2 +0,0 @@
|
|||||||
#DOCS#
|
|
||||||
usr/share/libcvautomation/*
|
|
3
debian/libcvautomation-examples.install
vendored
@ -1,3 +0,0 @@
|
|||||||
/usr/share/man/man1/*
|
|
||||||
/usr/bin/*
|
|
||||||
/etc/*
|
|
26
debian/rules
vendored
@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
# -*- makefile -*-
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
#
|
|
||||||
# This file was originally written by Joey Hess and Craig Small.
|
|
||||||
# As a special exception, when this file is copied by dh-make into a
|
|
||||||
# dh-make output file, you may use that output file without restriction.
|
|
||||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
||||||
#
|
|
||||||
# Modified to make a template file for a multi-binary package with separated
|
|
||||||
# build-arch and build-indep targets by Bill Allombert 2001
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
#export DH_VERBOSE=1
|
|
||||||
|
|
||||||
# This has to be exported to make some magic below work.
|
|
||||||
export DH_OPTIONS
|
|
||||||
|
|
||||||
|
|
||||||
%:
|
|
||||||
dh $@
|
|
||||||
|
|
||||||
override_dh_install:
|
|
||||||
find debian/tmp/usr/lib -name "*.la" -exec \
|
|
||||||
sed -i -e "s,^dependency_libs=.*,dependency_libs=''," {} \;
|
|
||||||
dh_install
|
|
1
debian/source/format
vendored
@ -1 +0,0 @@
|
|||||||
3.0 (quilt)
|
|
530
depcomp
Executable file
@ -0,0 +1,530 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2005-07-09.11
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by `PROGRAMS ARGS'.
|
||||||
|
object Object file output by `PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputing dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say).
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
|
## The second -e expression handles DOS-style file names with drive letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the `deleted header file' problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" |
|
||||||
|
## Some versions of gcc put a space before the `:'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||||
|
tr '
|
||||||
|
' ' ' >> $depfile
|
||||||
|
echo >> $depfile
|
||||||
|
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> $depfile
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then :
|
||||||
|
else
|
||||||
|
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||||
|
tmpdepfile="$stripped.u"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
outname="$stripped.o"
|
||||||
|
# Each line is of the form `foo.o: dependent.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
# Intel's C compiler understands `-MD -MF file'. However on
|
||||||
|
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||||
|
# ICC 7.0 will fill foo.d with something like
|
||||||
|
# foo.o: sub/foo.c
|
||||||
|
# foo.o: sub/foo.h
|
||||||
|
# which is wrong. We want:
|
||||||
|
# sub/foo.o: sub/foo.c
|
||||||
|
# sub/foo.o: sub/foo.h
|
||||||
|
# sub/foo.c:
|
||||||
|
# sub/foo.h:
|
||||||
|
# ICC 7.1 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using \ :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||||
|
sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
|
# static library. This mecanism is used in libtool 1.4 series to
|
||||||
|
# handle both shared and static libraries in a single compilation.
|
||||||
|
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||||
|
#
|
||||||
|
# With libtool 1.5 this exception was removed, and libtool now
|
||||||
|
# generates 2 separate objects for the 2 libraries. These two
|
||||||
|
# compilations output dependencies in in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||||
|
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.o.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
tmpdepfile4=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a tab and a space in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for `:'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
|
' | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test $1 != '--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E |
|
||||||
|
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o,
|
||||||
|
# because we must use -o when running libtool.
|
||||||
|
"$@" || exit $?
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||||
|
echo " " >> "$depfile"
|
||||||
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
485
docs/Makefile.in
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
# 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 = docs
|
||||||
|
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Doxyfile_example.in \
|
||||||
|
$(srcdir)/Doxyfile_library.in $(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 = $(install_sh) -d
|
||||||
|
CONFIG_CLEAN_FILES = Doxyfile_library Doxyfile_example
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
man1dir = $(mandir)/man1
|
||||||
|
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)"
|
||||||
|
man3dir = $(mandir)/man3
|
||||||
|
NROFF = nroff
|
||||||
|
MANS = $(dist_man_MANS)
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMDEP_FALSE = @AMDEP_FALSE@
|
||||||
|
AMDEP_TRUE = @AMDEP_TRUE@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AR = @AR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BUILD_DOXYGEN_FALSE = @BUILD_DOXYGEN_FALSE@
|
||||||
|
BUILD_DOXYGEN_TRUE = @BUILD_DOXYGEN_TRUE@
|
||||||
|
BUILD_EXAMPLES_FALSE = @BUILD_EXAMPLES_FALSE@
|
||||||
|
BUILD_EXAMPLES_TRUE = @BUILD_EXAMPLES_TRUE@
|
||||||
|
BUILD_MAN_FALSE = @BUILD_MAN_FALSE@
|
||||||
|
BUILD_MAN_TRUE = @BUILD_MAN_TRUE@
|
||||||
|
BUILD_TEX_FALSE = @BUILD_TEX_FALSE@
|
||||||
|
BUILD_TEX_TRUE = @BUILD_TEX_TRUE@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CV_CFLAGS = @CV_CFLAGS@
|
||||||
|
CV_LIBS = @CV_LIBS@
|
||||||
|
CV_VERSION = @CV_VERSION@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
Doxygen = @Doxygen@
|
||||||
|
ECHO = @ECHO@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MAN = @ENABLE_MAN@
|
||||||
|
ENABLE_TEX = @ENABLE_TEX@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
F77 = @F77@
|
||||||
|
FFLAGS = @FFLAGS@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIBTOOL_VERSION = @LIBTOOL_VERSION@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OpenCV_CFLAGS = @OpenCV_CFLAGS@
|
||||||
|
OpenCV_LIBS = @OpenCV_LIBS@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATCHLEVEL = @PATCHLEVEL@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
X11_CFLAGS = @X11_CFLAGS@
|
||||||
|
X11_LIBS = @X11_LIBS@
|
||||||
|
XTEST_CFLAGS = @XTEST_CFLAGS@
|
||||||
|
XTEST_LIBS = @XTEST_LIBS@
|
||||||
|
XTest_CFLAGS = @XTest_CFLAGS@
|
||||||
|
XTest_LIBS = @XTest_LIBS@
|
||||||
|
ac_ct_AR = @ac_ct_AR@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_F77 = @ac_ct_F77@
|
||||||
|
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@
|
||||||
|
@BUILD_DOXYGEN_TRUE@EXTRA_DIST = html
|
||||||
|
@BUILD_DOXYGEN_TRUE@CLEANFILES = doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@directory_1 = man/man1
|
||||||
|
@BUILD_MAN_TRUE@directory_3 = man/man3
|
||||||
|
@BUILD_MAN_TRUE@dist_man_MANS = $(directory_3)/cvaPoint.3 $(directory_3)/libcvautomation.h.3 $(directory_3)/libcvautomation-xlib.h.3 $(directory_3)/libcvautomation_search_methods.3 $(directory_3)/xtest_key_strings.3 $(directory_3)/cvautomationList.3 $(directory_3)/libcvautomation-opencv.h.3 $(directory_3)/libcvautomation-xtest.h.3 $(directory_3)/xtest_command_strings.3 $(directory_3)/libcvautomation.3 $(directory_3)/writing_app_tests.3 $(directory_1)/cva-match.1 $(directory_1)/cva-input.1
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: $(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 docs/Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu docs/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: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
Doxyfile_library: $(top_builddir)/config.status $(srcdir)/Doxyfile_library.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
Doxyfile_example: $(top_builddir)/config.status $(srcdir)/Doxyfile_example.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
-rm -f libtool
|
||||||
|
uninstall-info-am:
|
||||||
|
install-man1: $(man1_MANS) $(man_MANS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
|
||||||
|
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
|
*.1*) list="$$list $$i" ;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||||
|
else file=$$i; fi; \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
case "$$ext" in \
|
||||||
|
1*) ;; \
|
||||||
|
*) ext='1' ;; \
|
||||||
|
esac; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||||
|
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||||
|
done
|
||||||
|
uninstall-man1:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
|
*.1*) list="$$list $$i" ;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
case "$$ext" in \
|
||||||
|
1*) ;; \
|
||||||
|
*) ext='1' ;; \
|
||||||
|
esac; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||||
|
rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||||
|
done
|
||||||
|
install-man3: $(man3_MANS) $(man_MANS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(man3dir)" || $(mkdir_p) "$(DESTDIR)$(man3dir)"
|
||||||
|
@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
|
*.3*) list="$$list $$i" ;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||||
|
else file=$$i; fi; \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
case "$$ext" in \
|
||||||
|
3*) ;; \
|
||||||
|
*) ext='3' ;; \
|
||||||
|
esac; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
|
||||||
|
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst"; \
|
||||||
|
done
|
||||||
|
uninstall-man3:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
|
||||||
|
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||||
|
for i in $$l2; do \
|
||||||
|
case "$$i" in \
|
||||||
|
*.3*) list="$$list $$i" ;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do \
|
||||||
|
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||||
|
case "$$ext" in \
|
||||||
|
3*) ;; \
|
||||||
|
*) ext='3' ;; \
|
||||||
|
esac; \
|
||||||
|
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||||
|
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||||
|
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||||
|
echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
|
||||||
|
rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
|
||||||
|
done
|
||||||
|
tags: TAGS
|
||||||
|
TAGS:
|
||||||
|
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS:
|
||||||
|
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
$(mkdir_p) $(distdir)/$(directory_1) $(distdir)/$(directory_3)
|
||||||
|
@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
|
||||||
|
@BUILD_DOXYGEN_FALSE@all-local:
|
||||||
|
all-am: Makefile $(MANS) all-local
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)"; 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."
|
||||||
|
@BUILD_DOXYGEN_FALSE@uninstall-local:
|
||||||
|
@BUILD_DOXYGEN_FALSE@install-data-local:
|
||||||
|
@BUILD_DOXYGEN_FALSE@clean-local:
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic distclean-libtool
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am: install-data-local install-man
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-man: install-man1 install-man3
|
||||||
|
|
||||||
|
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 mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-info-am uninstall-local uninstall-man
|
||||||
|
|
||||||
|
uninstall-man: uninstall-man1 uninstall-man3
|
||||||
|
|
||||||
|
.PHONY: all all-am all-local check check-am clean clean-generic \
|
||||||
|
clean-libtool clean-local distclean distclean-generic \
|
||||||
|
distclean-libtool 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-man1 install-man3 \
|
||||||
|
install-strip installcheck installcheck-am installdirs \
|
||||||
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
|
uninstall uninstall-am uninstall-info-am uninstall-local \
|
||||||
|
uninstall-man uninstall-man1 uninstall-man3
|
||||||
|
|
||||||
|
@BUILD_DOXYGEN_TRUE@install-data-local:
|
||||||
|
@BUILD_DOXYGEN_TRUE@ $(mkdir_p) $(DESTDIR)$(datadir)/$(PACKAGE)/html
|
||||||
|
@BUILD_DOXYGEN_TRUE@ for f in html/*; do \
|
||||||
|
@BUILD_DOXYGEN_TRUE@ $(INSTALL_DATA) $$f \
|
||||||
|
@BUILD_DOXYGEN_TRUE@ $(DESTDIR)$(datadir)/$(PACKAGE)/html; done
|
||||||
|
|
||||||
|
@BUILD_DOXYGEN_TRUE@uninstall-local:
|
||||||
|
@BUILD_DOXYGEN_TRUE@ rm $(DESTDIR)$(datadir)/$(PACKAGE)/html/*
|
||||||
|
@BUILD_DOXYGEN_TRUE@ -rmdir $(DESTDIR)$(datadir)/$(PACKAGE)/html
|
||||||
|
|
||||||
|
@BUILD_DOXYGEN_TRUE@doxyfile.stamp:
|
||||||
|
@BUILD_DOXYGEN_TRUE@ $(Doxygen) Doxyfile_library
|
||||||
|
@BUILD_DOXYGEN_TRUE@ $(Doxygen) Doxyfile_example
|
||||||
|
@BUILD_DOXYGEN_TRUE@ echo Timestamp > doxyfile.stamp
|
||||||
|
|
||||||
|
@BUILD_DOXYGEN_TRUE@all-local: doxyfile.stamp
|
||||||
|
@BUILD_DOXYGEN_TRUE@clean-local:
|
||||||
|
@BUILD_DOXYGEN_TRUE@ rm -rf $(top_srcdir)/docs/man $(top_srcdir)/docs/html $(top_srcdir)/docs/latex
|
||||||
|
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/cvaPoint.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation.h.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation-xlib.h.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation_search_methods.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/xtest_key_strings.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/cvautomationList.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation-opencv.h.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation-xtest.h.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/xtest_command_strings.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/libcvautomation.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_3)/writing_app_tests.3: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_1)/cva-match.1: doxyfile.stamp
|
||||||
|
@BUILD_MAN_TRUE@$(directory_1)/cva-input.1: doxyfile.stamp
|
||||||
|
# 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:
|
Before Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 847 B |
Before Width: | Height: | Size: 733 B |
80
docs/man/man1/cva-input.1
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
.TH "cva-input" 1 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
cva-input \- \fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice <bspeice@uncc.edu>
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Usage:"
|
||||||
|
.PP
|
||||||
|
This program works kind of like a mini-language. All options are parsed left-to-right, and executed right there. Thus, specifying '--display' at different places in the options will cause this program to use the most recent given display. The return code is 1 if there are no commands given, or if all commands fail. It is 0 otherwise.
|
||||||
|
.SH "Example Usage:"
|
||||||
|
.PP
|
||||||
|
Click the mouse:
|
||||||
|
.PP
|
||||||
|
cva-input -s 'click 1'
|
||||||
|
.PP
|
||||||
|
Press key 'a':
|
||||||
|
.PP
|
||||||
|
cva-input -s 'keyclick a'
|
||||||
|
.SH "Full Options:"
|
||||||
|
.PP
|
||||||
|
-h, --help: Display this usage message.
|
||||||
|
.PP
|
||||||
|
-u, --usage: Display this usage message.
|
||||||
|
.PP
|
||||||
|
-d, --display: Specify the X display to use.
|
||||||
|
.PP
|
||||||
|
-m, --search-method: Specify a method to search by. See \fCcva-match --help\fP for more information on this.
|
||||||
|
.PP
|
||||||
|
-t, --tolerance: Specify how strict the match is.
|
||||||
|
.PP
|
||||||
|
-b, --button: Specify the mouse button to press (default 1).
|
||||||
|
.PP
|
||||||
|
-c, --center: Instead of matching the top-left corner of an image, match the center of the image.
|
||||||
|
.PP
|
||||||
|
-o, --sane-tolerance: Set the tolerance using a scale of 1-100, rather than INT_MIN to INT_MAX (100 ~= INT_MAX)
|
||||||
|
.PP
|
||||||
|
-s, --string: Command string - see below.
|
||||||
|
.PP
|
||||||
|
-i, --timeout: Specify the timeout to use when using the 'waitfor' command
|
||||||
|
.SH "Full Command List:"
|
||||||
|
.PP
|
||||||
|
\fCmouseclick:\fP Click the mouse in-place.
|
||||||
|
.PP
|
||||||
|
\fCimouseclick:\fP Click the mouse at an image's top-left corner.
|
||||||
|
.PP
|
||||||
|
\fCicmouseclick:\fP Click the mouse at an image's center.
|
||||||
|
.PP
|
||||||
|
\fCmousexy:\fP Move the mouse to the given coordinate.
|
||||||
|
.PP
|
||||||
|
\fCmouserxy:\fP Move the mouse by the given x and y values (relative motion).
|
||||||
|
.PP
|
||||||
|
\fCmouseimage:\fP Move the mouse to an image's top-left corner.
|
||||||
|
.PP
|
||||||
|
\fCcmouseimage:\fP Move the mouse to an image's center.
|
||||||
|
.PP
|
||||||
|
\fCmousedown:\fP Push and leave down a mouse button.
|
||||||
|
.PP
|
||||||
|
\fCmouseup:\fP Release a mouse button.
|
||||||
|
.PP
|
||||||
|
\fCmousejiggle:\fP Jiggle the mouse (helps to activate some widgets).
|
||||||
|
.PP
|
||||||
|
\fCmousescrollu:\fP Scroll the mouse wheel up
|
||||||
|
.PP
|
||||||
|
\fCmousescrolld:\fP Scroll the mouse wheel down
|
||||||
|
.PP
|
||||||
|
\fCkeyclick:\fP Click a keyboard button.
|
||||||
|
.PP
|
||||||
|
\fCkeydown:\fP Push and leave down a keyboard button.
|
||||||
|
.PP
|
||||||
|
\fCkeyup:\fP Release a keyboard button.
|
||||||
|
.PP
|
||||||
|
\fCkeystring:\fP Input a string of keys to X11.
|
||||||
|
.PP
|
||||||
|
\fCwaitfor:\fP Wait for an image to be displayed
|
||||||
|
.SH "Contact Information:"
|
||||||
|
.PP
|
||||||
|
Questions? Comments? Concerns? Suggestions? Send all feedback to Bradlee Speice at <bspeice@uncc.edu>
|
60
docs/man/man1/cva-match.1
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
.TH "cva-match" 1 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
cva-match \- \fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice <bspeice@uncc.edu>
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Usage:"
|
||||||
|
.PP
|
||||||
|
This program uses OpenCV in order to recognize an image within an image. The return code is 0 for at least one successful match, and 1 otherwise.
|
||||||
|
.SH "Example Usage:"
|
||||||
|
.PP
|
||||||
|
Match two images against the root X11 window:
|
||||||
|
.PP
|
||||||
|
cva-match --x-root -s '<image_name>' -s '<image_name_2>'
|
||||||
|
.PP
|
||||||
|
Match a root and sub image with a custom tolerance and search method
|
||||||
|
.PP
|
||||||
|
cva-match -r '<root_image>' -s '<image_name>' -o 75 -m 1
|
||||||
|
.SH "Full Options:"
|
||||||
|
.PP
|
||||||
|
-h, --help: Display this usage message.
|
||||||
|
.PP
|
||||||
|
-u, --usage: Display this usage message.
|
||||||
|
.PP
|
||||||
|
-r, --root-image: Location of the root image to compare against.
|
||||||
|
.PP
|
||||||
|
-s, --sub-image: Location of the sub-image to find in root.
|
||||||
|
.PP
|
||||||
|
-p, --separator: Separator of the X and Y coordinates.
|
||||||
|
.PP
|
||||||
|
-t, --tolerance: Set how strict the match is - 100 is recommended lowest value.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
When using CCORR or CCOEFF tolerance works in opposite direction, so -50 is recommended highest value.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
-m, --search-method: Set which method is used to search for sub-images.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
Search Methods: CV_TM_SQDIFF = 0, CV_TM_SQDIFF_NORMED = 1, CV_TM_CCORR = 2, CV_TM_CCORR_NORMED = 3, CV_TM_CCOEFF = 4, CV_TM_COEFF_NORMED = 5
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
-x, --x-root[=DISPLAY]: Set the root image to come from X11
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
The DISPLAY variable is optional, not specifying it will cause X to use the default display (not specifically :0.0)
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
-c, --center: The output points should be centered on the sub-image, rather than the top-left corner.
|
||||||
|
.PP
|
||||||
|
-o, --sane-tolerance: Set the tolerance using a scale of 1-100, rather than INT_MIN to INT_MAX (100 ~= INT_MAX)
|
||||||
|
.SH "Contact Information:"
|
||||||
|
.PP
|
||||||
|
Questions? Comments? Concerns? Suggestions? Send all feedback to Bradlee Speice at <bspeice@uncc.edu>
|
40
docs/man/man3/cvaPoint.3
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
.TH "cvaPoint" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
cvaPoint \- Very simple structure to standardize how points are used in libcvautomation.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <libcvautomation.h>\fP
|
||||||
|
.PP
|
||||||
|
.SS "Public Attributes"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "int \fBx\fP"
|
||||||
|
.br
|
||||||
|
.ti -1c
|
||||||
|
.RI "int \fBy\fP"
|
||||||
|
.br
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
Very simple structure to standardize how points are used in libcvautomation.
|
||||||
|
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIx\fP An X-coordinate
|
||||||
|
.br
|
||||||
|
\fIy\fP A Y-coordinate
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition at line 42 of file libcvautomation.h.
|
||||||
|
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
62
docs/man/man3/cvautomationList.3
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
.TH "cvautomationList" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
cvautomationList \- Implements a structure to build an array for methods like \fBmatchSubImage_a()\fP.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <libcvautomation.h>\fP
|
||||||
|
.PP
|
||||||
|
.SS "Public Attributes"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "IplImage * \fBcvaImage\fP"
|
||||||
|
.br
|
||||||
|
.ti -1c
|
||||||
|
.RI "char * \fBfileName\fP"
|
||||||
|
.br
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBresultPoint\fP"
|
||||||
|
.br
|
||||||
|
.ti -1c
|
||||||
|
.RI "int \fBsearchMethod\fP"
|
||||||
|
.br
|
||||||
|
.ti -1c
|
||||||
|
.RI "int \fBtolerance\fP"
|
||||||
|
.br
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
Implements a structure to build an array for methods like \fBmatchSubImage_a()\fP.
|
||||||
|
|
||||||
|
This structure is a simple way to wrap up all needed information for matching sub images in one location.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIcvaImage\fP An image in IplImage format
|
||||||
|
.br
|
||||||
|
\fIfileName\fP The file location of an image to be loaded
|
||||||
|
.br
|
||||||
|
\fIresultPoint\fP Holder for a result - for example, storing where this sub image was located in its root image
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for this sub image in a root image
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for this sub image in a root image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition at line 48 of file libcvautomation.h.
|
||||||
|
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
276
docs/man/man3/libcvautomation-opencv.h.3
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
.TH "libcvautomation-opencv.h" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation-opencv.h \- The source code to access libcv from inside libcvautomation.
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <libcvautomation/libcvautomation.h>\fP
|
||||||
|
.br
|
||||||
|
|
||||||
|
.SS "Functions"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage\fP (IplImage *rootImage, IplImage *subImage, int searchMethod, double tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the location of a sub image in its root image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_center\fP (IplImage *rootImage, IplImage *subImage, int searchMethod, double tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the center of a sub image in its root image, rather than the top-left corner. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_location\fP (const char *rootImage_location, const char *subImage_location, int searchMethod, double tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the location of a sub image in its root image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_location_center\fP (const char *rootImage_location, const char *subImage_location, int searchMethod, double tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the center of a sub image in its root image, rather than the top-left corner. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBmatchSubImage_a\fP (IplImage *rootImage, \fBcvautomationList\fP *subImageArray, int listSize)"
|
||||||
|
.br
|
||||||
|
.RI "\fIParse an array of sub images and send them to \fBmatchSubImage()\fP. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBmatchSubImage_a_center\fP (IplImage *rootImage, \fBcvautomationList\fP *subImageArray, int listSize)"
|
||||||
|
.br
|
||||||
|
.RI "\fIParse an array of sub images and send them to \fBmatchSubImage_center()\fP. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBmatchSubImage_a_location\fP (const char *rootImageFileName, \fBcvautomationList\fP *subImageArray, int listSize)"
|
||||||
|
.br
|
||||||
|
.RI "\fIParse an array of sub images and send them to \fBmatchSubImage()\fP. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBmatchSubImage_a_location_center\fP (const char *rootImageFileName, \fBcvautomationList\fP *subImageArray, int listSize)"
|
||||||
|
.br
|
||||||
|
.RI "\fIParse an array of sub images and send them to \fBmatchSubImage_center()\fP. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
The source code to access libcv from inside libcvautomation.
|
||||||
|
|
||||||
|
This source file builds in the necessary functionality to use libcv functions inside libcvautomation.
|
||||||
|
.PP
|
||||||
|
\fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition in file \fBlibcvautomation-opencv.h\fP.
|
||||||
|
.SH "Function Documentation"
|
||||||
|
.PP
|
||||||
|
.SS "CvPoint matchSubImage (IplImage * rootImage, IplImage * subImage, int searchMethod, double tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the location of a sub image in its root image.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage\fP The root image (in IplImage format) to search in
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to search for in \fCrootImage\fP
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of the sub image in root image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "CvPoint matchSubImage_center (IplImage * rootImage, IplImage * subImage, int searchMethod, double tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the center of a sub image in its root image, rather than the top-left corner.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage\fP The root image (in IplImage format) to search in
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to search for in \fCrootImage\fP
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The center location of the sub image in root image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "CvPoint matchSubImage_location (const char * rootImage_location, const char * subImage_location, int searchMethod, double tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the location of a sub image in its root image.
|
||||||
|
.PP
|
||||||
|
The difference that this function has over \fBmatchSubImage()\fP is that \fIrootImage_location\fP and \fIsubImage_location\fP are from files, rather than an IplImage format image.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage_location\fP The location of the root image
|
||||||
|
.br
|
||||||
|
\fIsubImage_location\fP The location of the sub image to search for in \fCrootImage\fP
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of the sub image in root image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "CvPoint matchSubImage_location_center (const char * rootImage_location, const char * subImage_location, int searchMethod, double tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the center of a sub image in its root image, rather than the top-left corner.
|
||||||
|
.PP
|
||||||
|
The difference that this function has over \fBmatchSubImage_center()\fP is that \fIrootImage_location\fP and \fIsubImage_location\fP are from files, rather than an IplImage format image.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage_location\fP The location of the root image
|
||||||
|
.br
|
||||||
|
\fIsubImage_location\fP The location of the sub image to search for in \fCrootImage\fP
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in \fCrootImage\fP.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The center location of the sub image in root image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void matchSubImage_a (IplImage * rootImage, \fBcvautomationList\fP * subImageArray, int listSize)"
|
||||||
|
.PP
|
||||||
|
Parse an array of sub images and send them to \fBmatchSubImage()\fP.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage\fP The root image (in IplImage format) to search in
|
||||||
|
.br
|
||||||
|
\fIsubImageArray\fP The sub image array to search for in \fCrootImage\fP - Note that the contents of \fCsubImageArray\fP are modified during execution of this routine
|
||||||
|
.br
|
||||||
|
\fIlistSize\fP The number of sub images to search for in subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBcvautomationList\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
This function returns void, and modifies the contents of subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void matchSubImage_a_center (IplImage * rootImage, \fBcvautomationList\fP * subImageArray, int listSize)"
|
||||||
|
.PP
|
||||||
|
Parse an array of sub images and send them to \fBmatchSubImage_center()\fP.
|
||||||
|
.PP
|
||||||
|
Uses the \fBcvautomationList.cvaImage\fP parameter to find a \fCsubImage\fP in \fCrootImage\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage\fP The root image (in IplImage format) to search in
|
||||||
|
.br
|
||||||
|
\fIsubImageArray\fP The sub image array to search for in \fCrootImage\fP - Note that the contents of \fCsubImageArray\fP are modified during execution of this routine
|
||||||
|
.br
|
||||||
|
\fIlistSize\fP The number of sub images to search for in subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBcvautomationList\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
This function returns void, and modifies the contents of subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void matchSubImage_a_location (const char * rootImage_location, \fBcvautomationList\fP * subImageArray, int listSize)"
|
||||||
|
.PP
|
||||||
|
Parse an array of sub images and send them to \fBmatchSubImage()\fP.
|
||||||
|
.PP
|
||||||
|
The difference between this and \fBmatchSubImage_a()\fP is that this uses a root image from filename, rather than from an IplImage format.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage_location\fP The location of the root image
|
||||||
|
.br
|
||||||
|
\fIsubImageArray\fP The sub image array to search for in \fCrootImage_location\fP - Note that the contents of \fCsubImageArray\fP are modified during execution of this routine
|
||||||
|
.br
|
||||||
|
\fIlistSize\fP The number of sub images to search for in subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBcvautomationList\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
This function returns void, and modifies the contents of subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void matchSubImage_a_location_center (const char * rootImage_location, \fBcvautomationList\fP * subImageArray, int listSize)"
|
||||||
|
.PP
|
||||||
|
Parse an array of sub images and send them to \fBmatchSubImage_center()\fP.
|
||||||
|
.PP
|
||||||
|
The difference that this function has over \fBmatchSubImage_a_center()\fP is that \fCrootImage_location\fP is from a file
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIrootImage_location\fP The location of the root image
|
||||||
|
.br
|
||||||
|
\fIsubImageArray\fP The sub image array to search for in \fCrootImage_location\fP - Note that the contents of \fCsubImageArray\fP are modified during execution of this routine
|
||||||
|
.br
|
||||||
|
\fIlistSize\fP The number of sub images to search for in subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBcvautomationList\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
This function returns void, and modifies the contents of subImageArray
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
211
docs/man/man3/libcvautomation-xlib.h.3
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
.TH "libcvautomation-xlib.h" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation-xlib.h \- The source code to access Xlib from inside libcvautomation.
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <libcvautomation/libcvautomation.h>\fP
|
||||||
|
.br
|
||||||
|
|
||||||
|
.SS "Functions"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "Display * \fBcvaOpenDisplay\fP (char *displayName)"
|
||||||
|
.br
|
||||||
|
.RI "\fISimple wrapper for XOpenDisplay. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBcvaCloseDisplay\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fISimple wrapper for XCloseDisplay. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_X11\fP (Display *displayLocation, IplImage *subImage, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the location of a sub image in the X11 root window. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_X11_center\fP (Display *displayLocation, IplImage *subImage, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the center of a sub image in root X11 window, rather than the top-left corner. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_X11_location\fP (Display *displayLocation, const char *subImage_location, int search_method, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the location of a sub image in the X11 root window. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBmatchSubImage_X11_location_center\fP (Display *displayLocation, const char *subImage_location, int search_method, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIReturn the center of a sub image in the root X11 window, rather than the top-left corner. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
The source code to access Xlib from inside libcvautomation.
|
||||||
|
|
||||||
|
This source file builds in the necessary functionality to use xlib functions inside libcvautomation.
|
||||||
|
.PP
|
||||||
|
\fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition in file \fBlibcvautomation-xlib.h\fP.
|
||||||
|
.SH "Function Documentation"
|
||||||
|
.PP
|
||||||
|
.SS "Display * cvaOpenDisplay (char * displayName)"
|
||||||
|
.PP
|
||||||
|
Simple wrapper for XOpenDisplay.
|
||||||
|
.PP
|
||||||
|
Currently this function literally just passes off to XOpenDisplay, but is designed to be used in the future if extra functionality is needed.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayName\fP The name of the display to open - '' is a valid name
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
Pointer to the opened X11 Display
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
You must open a display to use any functions.
|
||||||
|
.PP
|
||||||
|
The program using this library is responsible to close the display as well.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void cvaCloseDisplay (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Simple wrapper for XCloseDisplay.
|
||||||
|
.PP
|
||||||
|
Currently this function literally just passes off to XCloseDisplay, but is designed to be used in the future if extra functionality is needed.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP Pointer to the display to close
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
Nothing
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP matchSubImage_X11 (Display * displayLocation, IplImage * subImage, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the location of a sub image in the X11 root window.
|
||||||
|
.PP
|
||||||
|
This function wraps grabbing the X11 root window, converting it to IplImage format, and then giving this to \fBmatchSubImage()\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP Pointer to the currently open X11 Display
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to search for in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of the sub image in root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP matchSubImage_X11_center (Display * displayLocation, IplImage * subImage, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the center of a sub image in root X11 window, rather than the top-left corner.
|
||||||
|
.PP
|
||||||
|
This function wraps grabbing the X11 root window, converting it to IplImage format, and then giving this to \fBmatchSubImage_center()\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP Pointer to the currently open X11 Display
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to search for in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The center location of the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP matchSubImage_X11_location (Display * displayLocation, const char * subImage_location, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the location of a sub image in the X11 root window.
|
||||||
|
.PP
|
||||||
|
This function wraps grabbing the X11 root window, converting it to IplImage format, and then giving this to \fBmatchSubImage_location()\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP Pointer to the currently open X11 Display
|
||||||
|
.br
|
||||||
|
\fIsubImage_location\fP The location of the sub image to search for in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The center location of the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP matchSubImage_X11_location_center (Display * displayLocation, const char * subImage_location, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Return the center of a sub image in the root X11 window, rather than the top-left corner.
|
||||||
|
.PP
|
||||||
|
This function wraps grabbing the X11 root window, converting it to IplImage format, and then giving this to \fBmatchSubImage_location_center()\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP Pointer to the currently open X11 Display
|
||||||
|
.br
|
||||||
|
\fIsubImage_location\fP The location of the sub image to search for in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The center location of the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
716
docs/man/man3/libcvautomation-xtest.h.3
Normal file
@ -0,0 +1,716 @@
|
|||||||
|
.TH "libcvautomation-xtest.h" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation-xtest.h \- The source code to access the XTest extension inside libcvautomation.
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <libcvautomation/libcvautomation.h>\fP
|
||||||
|
.br
|
||||||
|
|
||||||
|
.SS "Defines"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "#define \fBIS_CMD\fP(x, y) strncmp( x, y, strlen( y ) ) == 0"
|
||||||
|
.br
|
||||||
|
.RI "\fIChecks if string \fC'x'\fP is in \fC'y'\fP. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "#define \fBCOMMAND_STR_LEN\fP 512"
|
||||||
|
.br
|
||||||
|
.RI "\fISpecifies the maximum length of a command string. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SS "Functions"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "Bool \fBxte_XTestSupported\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fICheck if the XTest extension is supported. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_pointerLocation\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fIGrab the current location of the pointer. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_clickMouse\fP (Display *displayLocation, int mouseButton)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse in its current location. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_clickMouseXY\fP (Display *displayLocation, int xLocation, int yLocation, int mouseButton)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse button at an absolute location. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_clickMouseRXY\fP (Display *displayLocation, int xIncrement, int yIncrement, int mouseButton)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse button at a relative location. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_clickMouseImage\fP (Display *displayLocation, IplImage *subImage, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse based on location of an image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_clickMouseImage_location\fP (Display *displayLocation, const char *fileName, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse based on the location of an image from file. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_clickMouseImage_center\fP (Display *displayLocation, IplImage *subImage, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse based on center location of an image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_clickMouseImage_location_center\fP (Display *displayLocation, const char *fileName, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIClick the mouse based on the center location of an image from file. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_hoverMouseXY\fP (Display *displayLocation, int xLocation, int yLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse to a location, but do not click it. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_hoverMouseRXY\fP (Display *displayLocation, int xIncrement, int yIncrement)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse to a relative location, but do not click it. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_hoverMouseImage\fP (Display *displayLocation, IplImage *subImage, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse based on location of an image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_hoverMouseImage_location\fP (Display *displayLocation, const char *filename, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse based on location of an image from file. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_hoverMouseImage_center\fP (Display *displayLocation, IplImage *subImage, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse based on center location of an image. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_hoverMouseImage_location_center\fP (Display *displayLocation, const char *fileName, int searchMethod, int tolerance)"
|
||||||
|
.br
|
||||||
|
.RI "\fIMove the mouse based on the center location of an image from file. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_mouseDown\fP (Display *displayLocation, int mouseButton)"
|
||||||
|
.br
|
||||||
|
.RI "\fIPress a mouse button down, and do not release it. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_mouseUp\fP (Display *displayLocation, int mouseButton)"
|
||||||
|
.br
|
||||||
|
.RI "\fIRelease a mouse button. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_mouseJiggle\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fIJiggle the mouse in place. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_mouseScrollUp\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fIScroll the mouse up. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_mouseScrollDown\fP (Display *displayLocation)"
|
||||||
|
.br
|
||||||
|
.RI "\fIScroll the mouse down. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_clickKey\fP (Display *displayLocation, char *key)"
|
||||||
|
.br
|
||||||
|
.RI "\fIPress and release a keyboard key. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_clickKeyStr\fP (Display *displayLocation, char *string)"
|
||||||
|
.br
|
||||||
|
.RI "\fIInput a string of characters to the X Server. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_keyDown\fP (Display *displayLocation, char *key)"
|
||||||
|
.br
|
||||||
|
.RI "\fIPress a key down, but do not release it. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "void \fBxte_keyUp\fP (Display *displayLocation, char *key)"
|
||||||
|
.br
|
||||||
|
.RI "\fIRelease a key. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_waitForImage\fP (Display *displayLocation, IplImage *subImage, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.br
|
||||||
|
.RI "\fIWait for an image to show up on screen. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_waitForImage_location\fP (Display *displayLocation, const char *fileName, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.br
|
||||||
|
.RI "\fIWait for an image from file to show up on screen. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "\fBcvaPoint\fP \fBxte_commandString\fP (Display *displayLocation, char *commandString, int mouseButton, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.br
|
||||||
|
.RI "\fIExecute a command where the command is coming from a string. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
The source code to access the XTest extension inside libcvautomation.
|
||||||
|
|
||||||
|
This source file builds in the necessary functionality to drive the X11 server in libcvautomation
|
||||||
|
.PP
|
||||||
|
\fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition in file \fBlibcvautomation-xtest.h\fP.
|
||||||
|
.SH "Define Documentation"
|
||||||
|
.PP
|
||||||
|
.SS "#define IS_CMD(x, y) strncmp( x, y, strlen( y ) ) == 0"
|
||||||
|
.PP
|
||||||
|
Checks if string \fC'x'\fP is in \fC'y'\fP.
|
||||||
|
.PP
|
||||||
|
Performs a safe check to see if x is in y - this way, you can check that \fC'command'\fP is inside \fC'command argument'\fP
|
||||||
|
.SH "Function Documentation"
|
||||||
|
.PP
|
||||||
|
.SS "Bool xte_XTestSupported (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Check if the XTest extension is supported.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display to check if XTest is supported on
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
True if XTest is supported, False otherwise
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
The program using this library is responsible for checking to see if XTest is supported.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_pointerLocation (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Grab the current location of the pointer.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to grab the pointer location from
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBcvaPoint\fP with the current location of the pointer
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_clickMouse (Display * displayLocation, int mouseButton)"
|
||||||
|
.PP
|
||||||
|
Click the mouse in its current location.
|
||||||
|
.PP
|
||||||
|
Perform a mouse-down and mouse-up event on button \fCmouseButton\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_clickMouseXY (Display * displayLocation, int xLocation, int yLocation, int mouseButton)"
|
||||||
|
.PP
|
||||||
|
Click the mouse button at an absolute location.
|
||||||
|
.PP
|
||||||
|
Move the mouse to location (\fCxLocation\fP, \fCyLocation\fP ) and then click button \fCmouseButton\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIxLocation\fP The X-coordinate to move the mouse to before clicking
|
||||||
|
.br
|
||||||
|
\fIyLocation\fP The Y-location to move the mouse to before clicking
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_clickMouseRXY (Display * displayLocation, int xIncrement, int yIncrement, int mouseButton)"
|
||||||
|
.PP
|
||||||
|
Click the mouse button at a relative location.
|
||||||
|
.PP
|
||||||
|
Move the mouse horizontally \fCxIncrement\fP and vertically \fCyIncrement\fP before clicking button \fCmouseButton\fP
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIxIncrement\fP Move the mouse horizontally this many pixels - positive value is motion to the right
|
||||||
|
.br
|
||||||
|
\fIyIncrement\fP Move the mouse vertically this many pixels - positive value is motion downwards
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_clickMouseImage (Display * displayLocation, IplImage * subImage, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Click the mouse based on location of an image.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding \fCsubImage\fP in this display, moving the mouse to that location, and then clicking \fCmouseButton\fP. The return value can be ignored, the mouse will already have been clicked there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to find in the root X11 window
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was clicked. This will be (-1,-1) if there was an error, in which case the mouse will not have been clicked.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_clickMouseImage_location (Display * displayLocation, const char * fileName, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Click the mouse based on the location of an image from file.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the sub image from \fCfileName\fP in this display, moving the mouse to that location, and then clicking \fCmouseButton\fP. The return value can be ignored, the mouse will already have been clicked there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIfileName\fP The file name from which to load the sub-image
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for the sub image in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was clicked. This will be (-1,-1) if there was an error, in which case the mouse will not have been clicked.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_clickMouseImage_center (Display * displayLocation, IplImage * subImage, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Click the mouse based on center location of an image.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the center of \fCsubImage\fP in this display, moving the mouse to that location, and then clicking \fCmouseButton\fP. The return value can be ignored, the mouse will already have been clicked there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to find in the root X11 window
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was clicked. This will be (-1,-1) if there was an error, in which case the mouse will not have been clicked.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_clickMouseImage_location_center (Display * displayLocation, const char * fileName, int mouseButton, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Click the mouse based on the center location of an image from file.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the center location of the sub image from \fCfileName\fP in this display, moving the mouse to that location, and then clicking \fCmouseButton\fP. The return value can be ignored, the mouse will already have been clicked there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click the mouse on
|
||||||
|
.br
|
||||||
|
\fIfileName\fP The file name from which to load the sub-image
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for the sub image in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was clicked. This will be (-1,-1) if there was an error, in which case the mouse will not have been clicked.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_hoverMouseXY (Display * displayLocation, int xLocation, int yLocation)"
|
||||||
|
.PP
|
||||||
|
Move the mouse to a location, but do not click it.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse
|
||||||
|
.br
|
||||||
|
\fIxLocation\fP The X-coordinate of which to move the mouse
|
||||||
|
.br
|
||||||
|
\fIyLocation\fP The Y-coordinate of which to move the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_hoverMouseRXY (Display * displayLocation, int xIncrement, int yIncrement)"
|
||||||
|
.PP
|
||||||
|
Move the mouse to a relative location, but do not click it.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse
|
||||||
|
.br
|
||||||
|
\fIxIncrement\fP How far to move the mouse horizontally. Positive values indicate motion to the right.
|
||||||
|
.br
|
||||||
|
\fIyIncrement\fP How far to move the mouse vertically. Positive values indicate motion downward.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_hoverMouseImage (Display * displayLocation, IplImage * subImage, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Move the mouse based on location of an image.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding \fCsubImage\fP in this display, and then moving the mouse to that location. The return value can be ignored, the mouse will already have been moved there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse on
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to find in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was moved. This will be (-1,-1) if there was an error, in which case the mouse will not have been moved.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_hoverMouseImage_location (Display * displayLocation, const char * filename, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Move the mouse based on location of an image from file.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the sub image from \fCfileName\fP in this display, and then moving the mouse to that location. The return value can be ignored, the mouse will already have been moved there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse on
|
||||||
|
.br
|
||||||
|
\fIfilename\fP The file name from which to load the sub-image
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for the sub image in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was moved. This will be (-1,-1) if there was an error, in which case the mouse will not have been moved.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_hoverMouseImage_center (Display * displayLocation, IplImage * subImage, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Move the mouse based on center location of an image.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the center of \fCsubImage\fP in this display, and then moving the mouse to that location. The return value can be ignored, the mouse will already have been moved there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse on
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image (in IplImage format) to find in the root X11 window
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCsubImage\fP in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was moved. This will be (-1,-1) if there was an error, in which case the mouse will not have been moved.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_hoverMouseImage_location_center (Display * displayLocation, const char * fileName, int searchMethod, int tolerance)"
|
||||||
|
.PP
|
||||||
|
Move the mouse based on the center location of an image from file.
|
||||||
|
.PP
|
||||||
|
Wraps grabbing the X11 root window of \fCdisplayLocation\fP, finding the center location of the sub image from \fCfileName\fP in this display, and then moving the mouse to that location. The return value can be ignored, the mouse will already have been moved there.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse on
|
||||||
|
.br
|
||||||
|
\fIfileName\fP The file name from which to load the sub-image
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for the sub image in the root X11 window
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for the sub image in the root X11 window
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBReturns:\fP
|
||||||
|
.RS 4
|
||||||
|
The location of where the mouse was moved. This will be (-1,-1) if there was an error, in which case the mouse will not have been moved.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_mouseDown (Display * displayLocation, int mouseButton)"
|
||||||
|
.PP
|
||||||
|
Press a mouse button down, and do not release it.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to push a mouse button down
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to push down
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_mouseUp (Display * displayLocation, int mouseButton)"
|
||||||
|
.PP
|
||||||
|
Release a mouse button.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to release a mouse button
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to release
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_mouseJiggle (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Jiggle the mouse in place.
|
||||||
|
.PP
|
||||||
|
This moves the mouse down and right one pixel, and then back. This may be needed to activate menu items, etc.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to move the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_mouseScrollUp (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Scroll the mouse up.
|
||||||
|
.PP
|
||||||
|
This moves the mouse scroll wheel up one rotation, which may be multiple lines. What this really does is click mouse button 4.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to scroll the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void void xte_mouseScrollDown (Display * displayLocation)"
|
||||||
|
.PP
|
||||||
|
Scroll the mouse down.
|
||||||
|
.PP
|
||||||
|
This moves the mouse scroll wheel down one rotation, which may be multiple lines. What this really does is click mouse button 5.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to scroll the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_clickKey (Display * displayLocation, char * key)"
|
||||||
|
.PP
|
||||||
|
Press and release a keyboard key.
|
||||||
|
.PP
|
||||||
|
This method allows you to press and release a key, where the key may be \fC'a'\fP, \fC'b'\fP, or maybe something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of keys.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to click a key
|
||||||
|
.br
|
||||||
|
\fIkey\fP The key to click as a string
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBXTest Key Strings\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_clickKeyStr (Display * displayLocation, char * string)"
|
||||||
|
.PP
|
||||||
|
Input a string of characters to the X Server.
|
||||||
|
.PP
|
||||||
|
Instead of specifying a single character to enter at a time (\fC'a'\fP, \fC'space'\fP) this function allows you to enter an entire string (\fC'Hello\fP, World!') at a time.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to enter a key string on
|
||||||
|
.br
|
||||||
|
\fIstring\fP The key string to input to the X Server
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_keyDown (Display * displayLocation, char * key)"
|
||||||
|
.PP
|
||||||
|
Press a key down, but do not release it.
|
||||||
|
.PP
|
||||||
|
This method allows you to push down a key, where the key may be \fC'a'\fP, \fC'b'\fP, or maybe something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of keys.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to push down a key
|
||||||
|
.br
|
||||||
|
\fIkey\fP The key to click as a string
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBXTest Key Strings\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "void xte_keyUp (Display * displayLocation, char * key)"
|
||||||
|
.PP
|
||||||
|
Release a key.
|
||||||
|
.PP
|
||||||
|
This method allows you to release a key, where the key may be \fC'a'\fP, \fC'b'\fP, or maybe something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of keys.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to release a key
|
||||||
|
.br
|
||||||
|
\fIkey\fP The key to click as a string
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBXTest Key Strings\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_waitForImage (Display * displayLocation, IplImage * subImage, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.PP
|
||||||
|
Wait for an image to show up on screen.
|
||||||
|
.PP
|
||||||
|
This method allows you to search for an image on screen and wait for it to show up - this way you can make sure an image exists, and then respond to it. Also makes error checking easy.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to search for an image
|
||||||
|
.br
|
||||||
|
\fIsubImage\fP The sub image to search for
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCtolerance\fP
|
||||||
|
.br
|
||||||
|
\fItimeout\fP The time (in seconds) to search for the image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_waitForImage_location (Display * displayLocation, const char * fileName, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.PP
|
||||||
|
Wait for an image from file to show up on screen.
|
||||||
|
.PP
|
||||||
|
This method allows you to search for an image on screen and wait for it to show up - this way you can make sure an image exists, and then respond to it. Also makes error checking easy.
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to search for an image
|
||||||
|
.br
|
||||||
|
\fIfileName\fP The file to load an image from before searching
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use when searching for \fCsubImage\fP
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use when searching for \fCtolerance\fP
|
||||||
|
.br
|
||||||
|
\fItimeout\fP The time (in seconds) to search for the image
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SS "\fBcvaPoint\fP xte_commandString (Display * displayLocation, char * commandString, int mouseButton, int searchMethod, int tolerance, int timeout)"
|
||||||
|
.PP
|
||||||
|
Execute a command where the command is coming from a string.
|
||||||
|
.PP
|
||||||
|
This function allows you to input a command to libcvautomation from a string. For example, to click a mouse button, you would use the \fCcommand\fP 'mouseclick'. Please note that some \fCcommand\fPs may need arguments to the string, and some may use function arguments. See \fBxte_commandString() Command Strings\fP for a full list of command and arguments
|
||||||
|
.PP
|
||||||
|
\fBParameters:\fP
|
||||||
|
.RS 4
|
||||||
|
\fIdisplayLocation\fP The Display of which to operate on
|
||||||
|
.br
|
||||||
|
\fIcommandString\fP The command string to execute - limit to \fBCOMMAND_STR_LEN\fP characters
|
||||||
|
.br
|
||||||
|
\fImouseButton\fP The mouse button to click if it is needed by the command being executed
|
||||||
|
.br
|
||||||
|
\fIsearchMethod\fP The search method to use if it is needed by the command being executed
|
||||||
|
.br
|
||||||
|
\fItolerance\fP The tolerance to use if it is needed by the command being executed
|
||||||
|
.br
|
||||||
|
\fItimeout\fP The time in seconds to wait for an image to be displayed when using the \fCwaitfor\fP command.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBSee also:\fP
|
||||||
|
.RS 4
|
||||||
|
\fBxte_commandString() Command Strings\fP
|
||||||
|
.PP
|
||||||
|
\fBLibcv Search Methods\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
27
docs/man/man3/libcvautomation.3
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
.TH "libcvautomation" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation \- \fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice <\fCbspeice@uncc.edu\fP>
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Introduction"
|
||||||
|
.PP
|
||||||
|
Welcome to Libcvautomation! Libcvautomation is a GUI automation and testing tool based on image recognition and response. This program was designed as a direct replacement for \fCSikuli\fP and \fCXpresser\fP. I was having incredible difficulty getting either of these solutions to work - Sikuli would crash whenever I tried to take a screenshot, and Xpresser was both too new for our Prominent North American Enterprise Linux systems, but also didn't work or \fCimport\fP correctly. I really liked the way each of these programs approached GUI automation, but they simply didn't work. Additionally, I wanted to create a simple solution - it does what you want it to, and that's it.
|
||||||
|
.SH "How Libcvautomation Works"
|
||||||
|
.PP
|
||||||
|
Libcvautomation represents two software products coming together - \fCOpenCV\fP and the \fCXTest extension\fP to the X11 server. OpenCV is used for image recognition, and XTest is used to actually drive the X server. You can dig into \fBlibcvautomation-xtest.h\fP to get an idea of what all this library is capable of.
|
||||||
|
.br
|
||||||
|
Basically what happens is that for whenever you need to do image recognition, OpenCV is used to find the images, and XTest is used to generate any events needed. Libcvautomation is mostly a wrapper to integrate both of these products, but also adds some functions like \fBmatchSubImage_X11()\fP that allow you to match an image against the X11 root window in place. This means no more \fC'xwd | convert '<out_name>''\fP.
|
||||||
|
.SH "Using Libcvautomation And Writing Application Tests"
|
||||||
|
.PP
|
||||||
|
So how does one go about using libcvautomation?
|
||||||
|
.br
|
||||||
|
I'm so glad you asked! I've provided a few reference programs - \fCcva-match\fP and \fCcva-input\fP - that can be used to demonstrate most of libcvautomation's capabilities. I've even provided a BASH wrapper to make it incredibly easy to use BASH with libcvautomation as well (requires that cva-match and cva-input are installed). Python bindings are on their way too.
|
||||||
|
.br
|
||||||
|
Finally, if you want to know how to write your own application tests, please see \fBWriting Application Tests\fP for more information on that. I've provided code to give you a basic idea of how they work.
|
||||||
|
.SH "Questions? Comments? Concerns?"
|
||||||
|
.PP
|
||||||
|
Please send any feedback to <\fCbspeice@uncc.edu\fP>. Pull requests can be submitted to \fCmy github repository\fP.
|
86
docs/man/man3/libcvautomation.h.3
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
.TH "libcvautomation.h" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation.h \- The top-level include for all projects involving libcvautomation.
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.br
|
||||||
|
.PP
|
||||||
|
\fC#include <stdio.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <string.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <unistd.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <limits.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <opencv/cv.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <opencv/highgui.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <X11/Xlib.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <X11/Xutil.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <X11/extensions/XTest.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <libcvautomation/libcvautomation-opencv.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <libcvautomation/libcvautomation-xlib.h>\fP
|
||||||
|
.br
|
||||||
|
\fC#include <libcvautomation/libcvautomation-xtest.h>\fP
|
||||||
|
.br
|
||||||
|
|
||||||
|
.SS "Classes"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "struct \fBcvaPoint\fP"
|
||||||
|
.br
|
||||||
|
.RI "\fIVery simple structure to standardize how points are used in libcvautomation. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "struct \fBcvautomationList\fP"
|
||||||
|
.br
|
||||||
|
.RI "\fIImplements a structure to build an array for methods like \fBmatchSubImage_a()\fP. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SS "Defines"
|
||||||
|
|
||||||
|
.in +1c
|
||||||
|
.ti -1c
|
||||||
|
.RI "#define \fBLIBCVAUTOMATION_VERSION\fP '1.3'"
|
||||||
|
.br
|
||||||
|
.RI "\fIDefine what version of Libcvautomation we are using. \fP"
|
||||||
|
.ti -1c
|
||||||
|
.RI "#define \fBLIBCVAUTOMATION_BUGREPORT\fP 'bspeice@uncc.edu'"
|
||||||
|
.br
|
||||||
|
.RI "\fIDefine who to send bug reports to for Libcvautomation. \fP"
|
||||||
|
.in -1c
|
||||||
|
.SH "Detailed Description"
|
||||||
|
.PP
|
||||||
|
The top-level include for all projects involving libcvautomation.
|
||||||
|
|
||||||
|
This source file includes all other files needed for libcvautomation projects, and also defines the \fBcvautomationList\fP and \fBcvaPoint\fP structs to be used among libcvautomation functions.
|
||||||
|
.PP
|
||||||
|
\fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Definition in file \fBlibcvautomation.h\fP.
|
||||||
|
.SH "Define Documentation"
|
||||||
|
.PP
|
||||||
|
.SS "#define LIBCVAUTOMATION_VERSION '1.3'"
|
||||||
|
.PP
|
||||||
|
Define what version of Libcvautomation we are using.
|
||||||
|
.PP
|
||||||
|
This define provides access to what version of Libcvautomation we're using. All times that you need to know what it is should use this.
|
||||||
|
.SS "#define LIBCVAUTOMATION_BUGREPORT 'bspeice@uncc.edu'"
|
||||||
|
.PP
|
||||||
|
Define who to send bug reports to for Libcvautomation.
|
||||||
|
.PP
|
||||||
|
This define provides access to who should be emailed in case of a Libcvautomation bug. All times that you need to know what it is should use this.
|
||||||
|
.SH "Author"
|
||||||
|
.PP
|
||||||
|
Generated automatically by Doxygen for libcvautomation from the source code.
|
106
docs/man/man3/libcvautomation_search_methods.3
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
.TH "libcvautomation_search_methods" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
libcvautomation_search_methods \- Libcv Search Methods
|
||||||
|
This page describes the methods libcv uses to search for a sub image in a root image.
|
||||||
|
.SH "Tolerance Values"
|
||||||
|
.PP
|
||||||
|
Tolerance values are used to control how strict each of the following search methods are. Acceptable values are from \fCINT_MIN\fP to \fCINT_MAX\fP.
|
||||||
|
.PP
|
||||||
|
Additionally, each of the reference programs - \fCcva-input\fP and \fCcva-match\fP - have a 'sane tolerance' built in. This is accessed by the '-o' switch, and allows you to specify a tolerance on scale of 1-100, where 1 is incredibly strict, and 100 is incredibly loose.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
The formula for calculating the sane tolerance is: $ T(x) = (10^{\frac{\log{INT\_MAX}}{\lambda}})^x $ where $ \lambda $ is the highest tolerance value (in our case, 100). Finally, we have to round down a little bit to ensure that we don't accidentally generate a value higher than \fCINT_MAX\fP. The formula used does mean that we will never be able to generate values lower than 0.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
The 'sane-tolerance' option doesn't know which search method you are using - Thus while 1 is an incredibly strict search for \fBSquared Difference\fP and \fBSquared Difference (Normalized)\fP, it is fairly loose search for \fBCross Correlation\fP, \fBCross Correlation (Normalized)\fP, \fBCorrelation Coefficient\fP, and \fBCorrelation Coefficient (Normalized)\fP
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Squared Difference"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_SQDIFF 0
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Squared Difference is the default search method used by \fClibcvautomation\fP, as well as \fCcva-match\fP and \fCcva-input\fP.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a low tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $R(x,y) = \sum_{x',y'} (T(x',y') - I(x + x', y+y'))^2 $
|
||||||
|
.SH "Squared Difference (Normalized)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_SQDIFF_NORMED 1
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
This is a normalized version of the \fBSquared Difference\fP search method.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a low tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $ R(x,y) = \frac{\sum_{x',y'}(T(x',y') - I(x + x', y + y'))^2}{ \sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'}I(x + x', y + y')^2}} $
|
||||||
|
.SH "Cross Correlation"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_CCORR 2
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
This is the Cross Correlation search method.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a high tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $ R(x,y)= \sum _{x',y'} (T(x',y') \cdot I(x+x',y+y')) $
|
||||||
|
.SH "Cross Correlation (Normalized)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_CCORR_NORMED 3
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
This is the normalized version of the \fBCross Correlation\fP search method.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a high tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $ R(x,y)= \frac{\sum_{x',y'} (T(x',y') \cdot I'(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}} $
|
||||||
|
.SH "Correlation Coefficient"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_CCOEFF 4
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
This is the Correlation Coefficient search method.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a high tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $ R(x,y)= \sum _{x',y'} (T'(x',y') \cdot I(x+x',y+y')) $ where: $ \begin{array}{l} T'(x',y')=T(x',y') - 1/(w \cdot h) \cdot \sum _{x'',y''} T(x'',y'') \\ I'(x+x',y+y')=I(x+x',y+y') - 1/(w \cdot h) \cdot \sum _{x'',y''} I(x+x'',y+y'') \end{array} $
|
||||||
|
.SH "Correlation Coefficient (Normalized)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#define CV_TM_CCOEFF_NORMED 5
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
This is the normalized version of the \fBCorrelation Coefficient\fP search method.
|
||||||
|
.PP
|
||||||
|
\fBFor this method, setting a high tolerance value results in a more strict match.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Formula: $ R(x,y)= \frac{ \sum_{x',y'} (T'(x',y') \cdot I'(x+x',y+y')) }{ \sqrt{\sum_{x',y'}T'(x',y')^2 \cdot \sum_{x',y'} I'(x+x',y+y')^2} } $
|
321
docs/man/man3/writing_app_tests.3
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
.TH "writing_app_tests" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
writing_app_tests \- Writing Application Tests
|
||||||
|
\fBAuthor:\fP
|
||||||
|
.RS 4
|
||||||
|
Bradlee Speice <\fCbspeice@uncc.edu\fP>
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBDate:\fP
|
||||||
|
.RS 4
|
||||||
|
7/23/2012
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Audience"
|
||||||
|
.PP
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This document was written for people with some intermediate knowledge of BASH.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Screenshot experience is required - being able to create screenshots of windows using \fCGIMP\fP, the \fCimport\fP command from \fCImageMagick\fP, or something similar.
|
||||||
|
.br
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Required for working with libcvautomation internals (not needed strictly for writing application testing):
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Intermediate-level C knowledge required for interfacing with libcvautomation. There isn't much complicated going on with libcvautomation itself, but you need to know to use \fBcvaOpenDisplay()\fP for grabbing a display and then \fBcvaCloseDisplay()\fP for closing it later for example.
|
||||||
|
.IP " \(bu" 4
|
||||||
|
C++ is available, but currently only as \fCextern 'C'\fP style bindings.
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Python bindings are in progress as of time-of-writing
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.SH "Purpose"
|
||||||
|
.PP
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This document is intended to outline the libcvautomation testing library for GUI applications and its two reference programs \fCcva-match\fP and \fCcva-input\fP
|
||||||
|
.IP "\(bu" 2
|
||||||
|
These programs allow you to automate mouse and keyboard events in response to what appears on screen - for example, clicking a button based on an image of that button on screen.
|
||||||
|
.PP
|
||||||
|
.SH "Using Libcvautomation"
|
||||||
|
.PP
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Since libcvautomation is a shared-object library intended to bundle a lot of functionality in one area, we must use external programs to agin access to the functions of libcvautomation.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Two reference programs have been included to make this easy - \fCcva-match\fP and \fCcva-input\fP
|
||||||
|
.IP "\(bu" 2
|
||||||
|
The reference programs are fairly full-featured, and expose most of libcvautomation:
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
\fCcva-match\fP allows you to match multiple image files against a root image providing very fine control over how specific the match is
|
||||||
|
.IP " \(bu" 4
|
||||||
|
\fCcva-input\fP allows you to drive the X11 server using the XTest extension - for example, clicking on a button from image, clicking a key on the keyboard, and more.
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
These two programs should implement all functionality needed for GUI automation. Please contact \fCbspeice@uncc.edu\fP if you have suggestions for extra functionality, patches, comments, etc.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Finally, if you want to write your own programs using libcvautomation, the headers are located on your system. Use:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#include <libcvautomation/libcvautomation.h>
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
to include all necessary header files. See the 'Files' tab above to get an idea of what functionality exists.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
Intermediate C or C++ knowledge is required for programming with libcvautomation. C++ is currently only supported through \fCextern 'C'\fP, and full C++ bindings are not currently planned. Libcvautomation itself is incredibly simple, but interfaces with a few API's (Xlib, libcv) that it is helpful to have an idea of how to use.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.SH "Application Testing"
|
||||||
|
.PP
|
||||||
|
Now we get into the good stuff. The basic process for application testing is as follows:
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Create a sequence of screenshots for all mouse-clicks
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Create a testing wrapper in BASH for automating the application
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Test the wrapper and tune any necessary options
|
||||||
|
.PP
|
||||||
|
.SS "Creating the Screenshot Sequence"
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This process creates a set of screenshots by which libcvautomation can drive the X11 server
|
||||||
|
.IP "\(bu" 2
|
||||||
|
The process is simple - create a screenshot of all buttons you would like to click in an application test, or location where you would like to move the mouse, etc.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This can be accomplished a number of different ways - using GIMP, the \fCimport\fP command, or any other screenshot program. Additionally, libcvautomation will support any image format that OpenCV does. At the time of writing, these are:
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Windows bitmaps - \fC*.bmp\fP, \fC*.dib\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
JPEG files - \fC*.jpeg\fP, \fC*.jpg\fP, \fC*.jpe\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
JPEG 2000 files - \fC*.jp2\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Portable Network Graphics - \fC*.png\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Portable image format - \fC*.pbm\fP, \fC*.pgm\fP, \fC*.ppm\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Sun rasters - \fC*.sr\fP, \fC*.ras\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
TIFF files - \fC*.tiff\fP, \fC*.tif\fP
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Some tips on creating screenshots:
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Use as distinct an image as possible in a screenshot. For example, the following images look very similar, but can do very different things:
|
||||||
|
.br
|
||||||
|
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 6
|
||||||
|
The large amount of grey-space in each of the images can be very confusing. While the text itself is different, the overwhelming amount of grey space can result in a false positive. Limiting the space of the screenshot can be useful:
|
||||||
|
.br
|
||||||
|
|
||||||
|
.IP " \(bu" 6
|
||||||
|
Limiting the button size in this case helps the program identify what button you want to click, but in general you want to include as much detail as possible.
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Be careful of where an image may appear multiple times in a screenshot. For example, a 'Help' button on a dialog may get confused with the 'Help' menu at the top of the screen.
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.SS "Create a Testing Wrapper"
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This is where the BASH knowledge comes into play. We are going to write a script that will run your application test, to make sure that the GUI is functioning correctly.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
The following is the (strongly) recommended process, but is not strictly necessary to follow this. The way I'm going to explain this is by giving an example test I wrote, and explain what is going on:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#!/bin/bash
|
||||||
|
#This is an application test involving libcvautomation and libreoffice
|
||||||
|
. /etc/libcvautomation_funcs
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
#Changing any wrapper parameters should go here
|
||||||
|
|
||||||
|
|
||||||
|
start_libreoffice_writer ()
|
||||||
|
{
|
||||||
|
click_i 'screens/gnome-1_menu.png' 'screens/kde-1_menu.png'
|
||||||
|
click_i 'screens/gnome-2_officeMenu.png' 'screens/kde-2_officeMenu.png'
|
||||||
|
hover_i 'screens/gnome-3_LibreOfficeWriter.png' 'screens/kde-3_LibreOfficeWriter.png'
|
||||||
|
jiggle_mouse
|
||||||
|
click
|
||||||
|
sleep 30
|
||||||
|
}
|
||||||
|
|
||||||
|
close_libreoffice_writer()
|
||||||
|
{
|
||||||
|
click_i 'screens/gnome-4_fileMenu.png' 'screens/kde-4_fileMenu.png'
|
||||||
|
click_i 'screens/gnome-5_fileExit.png' 'screens/kde-5_fileExit.png'
|
||||||
|
click_i 'screens/gnome-6_discard.png' 'screens/kde-6_discard.png'
|
||||||
|
}
|
||||||
|
|
||||||
|
start_libreoffice_writer
|
||||||
|
close_libreoffice_writer
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#!/bin/bash
|
||||||
|
#This is an application test involving libcvautomation and libreoffice
|
||||||
|
. /etc/libcvautomation_funcs
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
#Changing any wrapper parameters should go here
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
The purpose of these lines is just the standard BASH header. Additionally, we import a wrapper created for libcvautomation to make our job easier. Please note that this is the default directory for the wrapper, your installation may be different. Use the command \fClocate libcvautomation_funcs\fP to find it on your computer. The wrapper itself is a handful of macros used to make our job easy.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
The \fCset\fP line will abort the test if an error is ever encountered - for example, no images are found.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Changing any wrapper parameters should go after sourcing the wrapper functions. See \fBEnvironment Variables\fP for more information.
|
||||||
|
.br
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
start_libreoffice_writer ()
|
||||||
|
{
|
||||||
|
click_i 'screens/gnome-1_menu.png' 'screens/kde-1_menu.png'
|
||||||
|
click_i 'screens/gnome-2_officeMenu.png' 'screens/kde-2_officeMenu.png'
|
||||||
|
hover_i 'screens/gnome-3_LibreOfficeWriter.png' 'screens/kde-3_LibreOfficeWriter.png'
|
||||||
|
jiggle_mouse
|
||||||
|
click
|
||||||
|
sleep 30
|
||||||
|
}
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
This is the actual body of work done by libcvautomation
|
||||||
|
.IP "\(bu" 2
|
||||||
|
\fCclick_i\fP is a function to click the mouse at an image - in this case, the gnome or kde menu.
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Because of how the cva-input program is designed, you can give it multiple images, and it will only select the one currently available. See the \fBAppendix of Wrapper Functions and Environment Variables\fP for more information on how to use this (\fCTOLERANCE\fP specifically)
|
||||||
|
.IP " \(bu" 4
|
||||||
|
Additionally, the wrapper (by default) will wait for an image to appear before clicking on it. This way, you can string together click_i commands even when the program may need to wait a while on processing. Make sure to read up on the \fCTIMEOUT\fP option to learn how to use this.
|
||||||
|
.IP " \(bu" 4
|
||||||
|
By using the function \fCclick_i\fP, we make things a bit more readable - the full command line is \fCcva-input -s 'icmouseclick <filename>'\fP
|
||||||
|
.IP " \(bu" 4
|
||||||
|
See the \fBAppendix of Wrapper Functions and Environment Variables\fP for a list of all functions available in the wrapper.
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
\fChover_i\fP is a function to move the mouse to an image - in this case, move it over the LibreOffice menu item.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Then we jiggle the mouse to make sure that the item activates, click, and wait for the program to start up.
|
||||||
|
.br
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
close_libreoffice_writer()
|
||||||
|
{
|
||||||
|
click_i 'screens/gnome-4_fileMenu.png' 'screens/kde-4_fileMenu.png'
|
||||||
|
click_i 'screens/gnome-5_fileExit.png' 'screens/kde-5_fileExit.png'
|
||||||
|
click_i 'screens/gnome-6_discard.png' 'screens/kde-6_discard.png'
|
||||||
|
}
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Use the \fCclick_i\fP function to close down LibreOffice writer - Find the 'File' menu, click 'Exit', and then make sure to discard all changes.
|
||||||
|
.br
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
start_libreoffice_writer
|
||||||
|
close_libreoffice_writer
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Actually run the functions given.
|
||||||
|
.br
|
||||||
|
|
||||||
|
.br
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
Please note that this is a fairly trivial example. The full list of commands available in the wrapper is given in \fBAppendix of Wrapper Functions and Environment Variables\fP
|
||||||
|
.PP
|
||||||
|
.SS "Testing the Testing Wrapper"
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
First things first, run through the testing wrapper to make sure that everything is O.K.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
If you need to, there are a few environment variables you can set to change how the wrapper works. See \fBEnvironment Variables\fP for more information on how these work.
|
||||||
|
.IP "\(bu" 2
|
||||||
|
A full list of commands provided by the wrapper is available at \fBFunctions\fP
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
These options are controlled using the testing script as demonstrated above. Any modifications to the following values should be done at the line:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#Changing any wrapper parameters should go here
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Wrapping Up"
|
||||||
|
.PP
|
||||||
|
.PD 0
|
||||||
|
.IP "\(bu" 2
|
||||||
|
At this point you should have all the information you need to write your own application tests. The libcvautomation library and reference programs were designed to be simple and powerful, but if you invest the time to learn them and some expert BASH scripting, you can do some very complex things.
|
||||||
|
.PD 0
|
||||||
|
|
||||||
|
.IP " \(bu" 4
|
||||||
|
For example, integrating a \fCTest Anything Protocol\fP wrapper into your scripts as well.
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.IP "\(bu" 2
|
||||||
|
If you have questions, comments, concerns, suggestions, or feedback in general, feel free to let me know at \fCbspeice@uncc.edu\fP.
|
||||||
|
.PP
|
||||||
|
|
176
docs/man/man3/xtest_command_strings.3
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
.TH "xtest_command_strings" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
xtest_command_strings \- xte_commandString() Command Strings
|
||||||
|
This page describes the various command strings available for the \fBxte_commandString()\fP function.
|
||||||
|
.SH "Mouse Click"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mouseclick <button_number>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Click the mouse button \fC\fP <button_number> in-place.
|
||||||
|
.SH "Image Mouse Click"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'imouseclick <image_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Click the mouse at an image's top-left corner.
|
||||||
|
.SH "Image Mouse Click (Centered)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'icmouseclick <image_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Click the mouse at an image's center.
|
||||||
|
.SH "Mouse XY Move"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mousexy <x-coord> <y-coord>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Move the mouse to an absolute coordinate.
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
The \fC<x-coord>\fP and \fC<y-coord>\fP are expected to be integers.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Mouse XY Move (Relative)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mouserxy <x-increment> <y-increment>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Move the mouse by the given x and y values (relative motion).
|
||||||
|
.PP
|
||||||
|
\fBA positive X increment will move the mouse to the right, and a positive Y increment will move the mouse down.\fP.RS 4
|
||||||
|
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
The \fC<x-increment>\fP and \fC<y-increment>\fP are expected to be integers.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Mouse Image Move"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mouseimage <image_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Move the mouse to an image's top-left corner.
|
||||||
|
.SH "Mouse Image Move (Centered)"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'cmouseimage <image_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Move the mouse to an image's center.
|
||||||
|
.SH "Mouse Button Down"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mousedown <button_number>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Push and leave down a mouse button.
|
||||||
|
.SH "Mouse Button Up"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mouseup <button_number>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Release mouse button \fC\fP <button_number>
|
||||||
|
.SH "Mouse Jiggle"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mousejiggle'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Jiggle the mouse (helps to activate some widgets). Moves the mouse right and down 1 pixel, and then back.
|
||||||
|
.SH "Mouse Scroll Down"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mousescrolld'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Scroll the mouse down 1 time - depending on window manager settings, etc., this may be multiple lines.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
This is a wrapper function for clicking button 4 on the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Mouse Scroll Up"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'mousescrollu'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Scroll the mouse up 1 time - depending on window manager settings, etc., this may be multiple lines.
|
||||||
|
.PP
|
||||||
|
\fBNote:\fP
|
||||||
|
.RS 4
|
||||||
|
This is a wrapper function for clicking button 5 on the mouse
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Key Button Click"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'keyclick <key_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Push and release a keyboard key. This can be a key like \fC'a'\fP, \fC'b'\fP, or something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of special keys.
|
||||||
|
.SH "Key Button Down"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'keydown <key_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Push down \fIbut do not release\fP a keyboard key. This can be a key like \fC'a'\fP, \fC'b'\fP, or something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of special keys.
|
||||||
|
.SH "Key Button Up"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'keyup <key_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Release a keyboard key. This can be a key like \fC'a'\fP, \fC'b'\fP, or something fancy like \fC'space'\fP. Please see \fBXTest Key Strings\fP for a full list of special keys.
|
||||||
|
.SH "Keyboard Input String"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'keystring <string>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Input a string of text to the X11 server. For example, inputting 'Hello, world!' will act as if you typed 'Hello, world!' from the keyboard.
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
Unlike \fBKey Button Down\fP, \fBKey Button Up\fP, and \fBKey Button Click\fP, this function can not handle special keys like 'space'.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.SH "Wait for Image"
|
||||||
|
.PP
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
'waitfor <image_name>'
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Wait for an image to show up on screen. For example, this can be used to make sure a button exists before clicking it.
|
266
docs/man/man3/xtest_key_strings.3
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
.TH "xtest_key_strings" 3 "24 Jul 2012" "Version 1.3" "libcvautomation" \" -*- nroff -*-
|
||||||
|
.ad l
|
||||||
|
.nh
|
||||||
|
.SH NAME
|
||||||
|
xtest_key_strings \- XTest Key Strings
|
||||||
|
This page describes the various extra key strings to use with X11. The following list is generated with this command:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
xmodmap -pke | cut -d'=' -f2 | sed 's/ /\n/g' | tr -s '\n' | awk '{ print length(), $0 | 'sort -n' }' | cut -d' ' -f2 | uniq
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
a
|
||||||
|
A
|
||||||
|
b
|
||||||
|
B
|
||||||
|
c
|
||||||
|
C
|
||||||
|
d
|
||||||
|
D
|
||||||
|
e
|
||||||
|
E
|
||||||
|
f
|
||||||
|
F
|
||||||
|
g
|
||||||
|
G
|
||||||
|
h
|
||||||
|
H
|
||||||
|
i
|
||||||
|
I
|
||||||
|
j
|
||||||
|
J
|
||||||
|
k
|
||||||
|
K
|
||||||
|
l
|
||||||
|
L
|
||||||
|
m
|
||||||
|
M
|
||||||
|
n
|
||||||
|
N
|
||||||
|
o
|
||||||
|
O
|
||||||
|
p
|
||||||
|
P
|
||||||
|
q
|
||||||
|
Q
|
||||||
|
r
|
||||||
|
R
|
||||||
|
s
|
||||||
|
S
|
||||||
|
t
|
||||||
|
T
|
||||||
|
u
|
||||||
|
U
|
||||||
|
v
|
||||||
|
V
|
||||||
|
w
|
||||||
|
W
|
||||||
|
x
|
||||||
|
X
|
||||||
|
y
|
||||||
|
Y
|
||||||
|
z
|
||||||
|
Z
|
||||||
|
at
|
||||||
|
F1
|
||||||
|
F2
|
||||||
|
F3
|
||||||
|
F4
|
||||||
|
F5
|
||||||
|
F6
|
||||||
|
F7
|
||||||
|
F8
|
||||||
|
F9
|
||||||
|
Up
|
||||||
|
bar
|
||||||
|
End
|
||||||
|
F10
|
||||||
|
F11
|
||||||
|
F12
|
||||||
|
Tab
|
||||||
|
Down
|
||||||
|
Home
|
||||||
|
KP_0
|
||||||
|
KP_1
|
||||||
|
KP_2
|
||||||
|
KP_3
|
||||||
|
KP_4
|
||||||
|
KP_5
|
||||||
|
KP_6
|
||||||
|
KP_7
|
||||||
|
KP_8
|
||||||
|
KP_9
|
||||||
|
Left
|
||||||
|
less
|
||||||
|
Menu
|
||||||
|
Next
|
||||||
|
plus
|
||||||
|
Alt_L
|
||||||
|
Break
|
||||||
|
colon
|
||||||
|
comma
|
||||||
|
equal
|
||||||
|
grave
|
||||||
|
KP_Up
|
||||||
|
minus
|
||||||
|
Pause
|
||||||
|
Print
|
||||||
|
Prior
|
||||||
|
Right
|
||||||
|
slash
|
||||||
|
space
|
||||||
|
aacute
|
||||||
|
Aacute
|
||||||
|
dagger
|
||||||
|
Delete
|
||||||
|
dollar
|
||||||
|
eacute
|
||||||
|
Eacute
|
||||||
|
Escape
|
||||||
|
exclam
|
||||||
|
iacute
|
||||||
|
Iacute
|
||||||
|
Insert
|
||||||
|
KP_Add
|
||||||
|
KP_End
|
||||||
|
Meta_L
|
||||||
|
oacute
|
||||||
|
Oacute
|
||||||
|
period
|
||||||
|
Return
|
||||||
|
uacute
|
||||||
|
Uacute
|
||||||
|
greater
|
||||||
|
Hyper_L
|
||||||
|
KP_Down
|
||||||
|
KP_Home
|
||||||
|
KP_Left
|
||||||
|
KP_Next
|
||||||
|
percent
|
||||||
|
Shift_L
|
||||||
|
Shift_R
|
||||||
|
Super_L
|
||||||
|
Super_R
|
||||||
|
Sys_Req
|
||||||
|
XF86WWW
|
||||||
|
asterisk
|
||||||
|
KP_Begin
|
||||||
|
KP_Enter
|
||||||
|
KP_Equal
|
||||||
|
KP_Prior
|
||||||
|
KP_Right
|
||||||
|
NoSymbol
|
||||||
|
Num_Lock
|
||||||
|
question
|
||||||
|
quotedbl
|
||||||
|
XF86Back
|
||||||
|
XF86Mail
|
||||||
|
XF86Stop
|
||||||
|
XF86WLAN
|
||||||
|
ampersand
|
||||||
|
backslash
|
||||||
|
BackSpace
|
||||||
|
braceleft
|
||||||
|
brokenbar
|
||||||
|
Caps_Lock
|
||||||
|
Control_L
|
||||||
|
Control_R
|
||||||
|
KP_Delete
|
||||||
|
KP_Divide
|
||||||
|
KP_Insert
|
||||||
|
parenleft
|
||||||
|
semicolon
|
||||||
|
XF86Eject
|
||||||
|
XF86Sleep
|
||||||
|
adiaeresis
|
||||||
|
Adiaeresis
|
||||||
|
apostrophe
|
||||||
|
asciitilde
|
||||||
|
braceright
|
||||||
|
ediaeresis
|
||||||
|
Ediaeresis
|
||||||
|
idiaeresis
|
||||||
|
KP_Decimal
|
||||||
|
numbersign
|
||||||
|
odiaeresis
|
||||||
|
Odiaeresis
|
||||||
|
parenright
|
||||||
|
udiaeresis
|
||||||
|
Udiaeresis
|
||||||
|
underscore
|
||||||
|
XF86Reload
|
||||||
|
XF86Search
|
||||||
|
XF86WakeUp
|
||||||
|
asciicircum
|
||||||
|
bracketleft
|
||||||
|
KP_Multiply
|
||||||
|
KP_Subtract
|
||||||
|
Mode_switch
|
||||||
|
Scroll_Lock
|
||||||
|
XF86Battery
|
||||||
|
XF86Display
|
||||||
|
XF86Forward
|
||||||
|
XF86_Ungrab
|
||||||
|
bracketright
|
||||||
|
doubledagger
|
||||||
|
ISO_Left_Tab
|
||||||
|
XF86PowerOff
|
||||||
|
XF86AudioMute
|
||||||
|
XF86AudioNext
|
||||||
|
XF86AudioPrev
|
||||||
|
XF86AudioStop
|
||||||
|
XF86Favorites
|
||||||
|
XF86AudioMedia
|
||||||
|
XF86AudioPause
|
||||||
|
XF86Calculator
|
||||||
|
XF86_ClearGrab
|
||||||
|
XF86MyComputer
|
||||||
|
XF86_Next_VMode
|
||||||
|
XF86_Prev_VMode
|
||||||
|
ISO_Level3_Shift
|
||||||
|
Terminate_Server
|
||||||
|
XF86_Switch_VT_1
|
||||||
|
XF86_Switch_VT_2
|
||||||
|
XF86_Switch_VT_3
|
||||||
|
XF86_Switch_VT_4
|
||||||
|
XF86_Switch_VT_5
|
||||||
|
XF86_Switch_VT_6
|
||||||
|
XF86_Switch_VT_7
|
||||||
|
XF86_Switch_VT_8
|
||||||
|
XF86_Switch_VT_9
|
||||||
|
XF86KbdLightOnOff
|
||||||
|
XF86_Switch_VT_10
|
||||||
|
XF86_Switch_VT_11
|
||||||
|
XF86_Switch_VT_12
|
||||||
|
Pointer_EnableKeys
|
||||||
|
XF86KbdBrightnessUp
|
||||||
|
XF86MonBrightnessUp
|
||||||
|
XF86AudioLowerVolume
|
||||||
|
XF86AudioRaiseVolume
|
||||||
|
XF86KbdBrightnessDown
|
||||||
|
XF86MonBrightnessDown
|
||||||
|
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fBWarning:\fP
|
||||||
|
.RS 4
|
||||||
|
Please note that each key string above is first translated into a key code, and then into the actual key click. Thus, while you might intend to press 'dollar', it will actually come out as '4'. If you need a \fC'$'\fP to come out, use the \fC'keystring $'\fP command to \fBxte_commandString()\fP or \fC'key_str $'\fP function in the BASH wrapper - see the \fBAppendix of Wrapper Functions and Environment Variables\fP.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
|
483
examples/Makefile.in
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
# 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@
|
||||||
|
@BUILD_EXAMPLES_TRUE@bin_PROGRAMS = cva-match$(EXEEXT) \
|
||||||
|
@BUILD_EXAMPLES_TRUE@ cva-input$(EXEEXT)
|
||||||
|
subdir = examples
|
||||||
|
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 = $(install_sh) -d
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
|
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||||
|
PROGRAMS = $(bin_PROGRAMS)
|
||||||
|
am__cva_input_SOURCES_DIST = cva-input.c
|
||||||
|
@BUILD_EXAMPLES_TRUE@am_cva_input_OBJECTS = cva-input.$(OBJEXT)
|
||||||
|
cva_input_OBJECTS = $(am_cva_input_OBJECTS)
|
||||||
|
cva_input_LDADD = $(LDADD)
|
||||||
|
am__cva_match_SOURCES_DIST = cva-match.c
|
||||||
|
@BUILD_EXAMPLES_TRUE@am_cva_match_OBJECTS = cva-match.$(OBJEXT)
|
||||||
|
cva_match_OBJECTS = $(am_cva_match_OBJECTS)
|
||||||
|
cva_match_LDADD = $(LDADD)
|
||||||
|
DEFAULT_INCLUDES = -I. -I$(srcdir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
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 = $(cva_input_SOURCES) $(cva_match_SOURCES)
|
||||||
|
DIST_SOURCES = $(am__cva_input_SOURCES_DIST) \
|
||||||
|
$(am__cva_match_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@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BUILD_DOXYGEN_FALSE = @BUILD_DOXYGEN_FALSE@
|
||||||
|
BUILD_DOXYGEN_TRUE = @BUILD_DOXYGEN_TRUE@
|
||||||
|
BUILD_EXAMPLES_FALSE = @BUILD_EXAMPLES_FALSE@
|
||||||
|
BUILD_EXAMPLES_TRUE = @BUILD_EXAMPLES_TRUE@
|
||||||
|
BUILD_MAN_FALSE = @BUILD_MAN_FALSE@
|
||||||
|
BUILD_MAN_TRUE = @BUILD_MAN_TRUE@
|
||||||
|
BUILD_TEX_FALSE = @BUILD_TEX_FALSE@
|
||||||
|
BUILD_TEX_TRUE = @BUILD_TEX_TRUE@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CV_CFLAGS = @CV_CFLAGS@
|
||||||
|
CV_LIBS = @CV_LIBS@
|
||||||
|
CV_VERSION = @CV_VERSION@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
Doxygen = @Doxygen@
|
||||||
|
ECHO = @ECHO@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MAN = @ENABLE_MAN@
|
||||||
|
ENABLE_TEX = @ENABLE_TEX@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
F77 = @F77@
|
||||||
|
FFLAGS = @FFLAGS@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIBTOOL_VERSION = @LIBTOOL_VERSION@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OpenCV_CFLAGS = @OpenCV_CFLAGS@
|
||||||
|
OpenCV_LIBS = @OpenCV_LIBS@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATCHLEVEL = @PATCHLEVEL@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
X11_CFLAGS = @X11_CFLAGS@
|
||||||
|
X11_LIBS = @X11_LIBS@
|
||||||
|
XTEST_CFLAGS = @XTEST_CFLAGS@
|
||||||
|
XTEST_LIBS = @XTEST_LIBS@
|
||||||
|
XTest_CFLAGS = @XTest_CFLAGS@
|
||||||
|
XTest_LIBS = @XTest_LIBS@
|
||||||
|
ac_ct_AR = @ac_ct_AR@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_F77 = @ac_ct_F77@
|
||||||
|
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@
|
||||||
|
#Need to include the -Ilibcvautomation so that libcvautomation.h can find everything that it needs
|
||||||
|
@BUILD_EXAMPLES_TRUE@AM_LDFLAGS = -L../libcvautomation/.libs -lcvautomation
|
||||||
|
@BUILD_EXAMPLES_TRUE@AM_CFLAGS = -Wall -Werror -O2 -I$(top_srcdir)/include @X11_CFLAGS@ @XTEST_CFLAGS@ @CV_CFLAGS@
|
||||||
|
@BUILD_EXAMPLES_TRUE@cva_match_SOURCES = cva-match.c
|
||||||
|
@BUILD_EXAMPLES_TRUE@cva_input_SOURCES = cva-input.c
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(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 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: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||||
|
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||||
|
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
if test -f $$p \
|
||||||
|
|| test -f $$p1 \
|
||||||
|
; then \
|
||||||
|
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||||
|
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||||
|
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||||
|
else :; fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-binPROGRAMS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||||
|
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||||
|
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||||
|
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
clean-binPROGRAMS:
|
||||||
|
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||||
|
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f $$p $$f"; \
|
||||||
|
rm -f $$p $$f ; \
|
||||||
|
done
|
||||||
|
cva-input$(EXEEXT): $(cva_input_OBJECTS) $(cva_input_DEPENDENCIES)
|
||||||
|
@rm -f cva-input$(EXEEXT)
|
||||||
|
$(LINK) $(cva_input_LDFLAGS) $(cva_input_OBJECTS) $(cva_input_LDADD) $(LIBS)
|
||||||
|
cva-match$(EXEEXT): $(cva_match_OBJECTS) $(cva_match_DEPENDENCIES)
|
||||||
|
@rm -f cva-match$(EXEEXT)
|
||||||
|
$(LINK) $(cva_match_LDFLAGS) $(cva_match_OBJECTS) $(cva_match_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cva-input.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cva-match.Po@am__quote@
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.c.obj:
|
||||||
|
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -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)
|
||||||
|
@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:
|
||||||
|
for dir in "$(DESTDIR)$(bindir)"; 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:
|
||||||
|
|
||||||
|
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-binPROGRAMS clean-generic clean-libtool 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-binPROGRAMS
|
||||||
|
|
||||||
|
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-binPROGRAMS uninstall-info-am
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||||
|
clean-generic clean-libtool ctags distclean distclean-compile \
|
||||||
|
distclean-generic distclean-libtool distclean-tags distdir dvi \
|
||||||
|
dvi-am html html-am info info-am install install-am \
|
||||||
|
install-binPROGRAMS 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-binPROGRAMS 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:
|
427
include/libcvautomation/libcvautomation.h
Normal file
@ -0,0 +1,427 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: libcvautomation.h
|
||||||
|
*
|
||||||
|
* Description: Include wrapper for libcvautomation subsections
|
||||||
|
*
|
||||||
|
* Created: 06/21/2012 12:20:43 PM
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: Bradlee Speice (), bspeice.nc@gmail.com
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
#ifndef LIBCVAUTOMATION_H
|
||||||
|
#define LIBCVAUTOMATION_H
|
||||||
|
|
||||||
|
#define LIBCVAUTOMATION_VERSION "1.3"
|
||||||
|
#define LIBCVAUTOMATION_BUGREPORT "bspeice@uncc.edu"
|
||||||
|
|
||||||
|
/* C includes */
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
/* Autoconf logic to select the correct OpenCV version */
|
||||||
|
|
||||||
|
/* OpenCV includes */
|
||||||
|
|
||||||
|
#include <opencv/cv.h>
|
||||||
|
#include <opencv/highgui.h>
|
||||||
|
|
||||||
|
/* X11 includes */
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xutil.h>
|
||||||
|
#include <X11/extensions/XTest.h>
|
||||||
|
|
||||||
|
/* Define another basic structure for points */
|
||||||
|
typedef struct {
|
||||||
|
int x, y;
|
||||||
|
} cvaPoint;
|
||||||
|
|
||||||
|
/* Define a basic structure to help us with using multiple-picture arguments
|
||||||
|
* Yes, it's a hackish implementation, nobody said you had to use this one. */
|
||||||
|
typedef struct {
|
||||||
|
/* Use one or the other of fileName or cvaImage - cvaImage takes priority */
|
||||||
|
IplImage *cvaImage;
|
||||||
|
char *fileName;
|
||||||
|
|
||||||
|
cvaPoint resultPoint;
|
||||||
|
int searchMethod;
|
||||||
|
int tolerance;
|
||||||
|
|
||||||
|
} cvautomationList;
|
||||||
|
|
||||||
|
/* Project component includes */
|
||||||
|
/* The includes come here to make sure all function prototypes have access
|
||||||
|
* to the cvautomationList struct */
|
||||||
|
#include <libcvautomation/libcvautomation-opencv.h>
|
||||||
|
#include <libcvautomation/libcvautomation-xlib.h>
|
||||||
|
#include <libcvautomation/libcvautomation-xtest.h>
|
||||||
|
|
||||||
|
#endif /* LIBCVAUTOMATION_H */
|
||||||
|
/* Doxygen information */
|
||||||
|
/** \file libcvautomation.h
|
||||||
|
* \brief The top-level include for all projects involving libcvautomation
|
||||||
|
* \details This source file includes all other files needed for libcvautomation projects, and also defines the cvautomationList and cvaPoint structs to be used among libcvautomation functions.
|
||||||
|
* \author Bradlee Speice
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** \mainpage Libcvautomation
|
||||||
|
* \author Bradlee Speice <<a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>>
|
||||||
|
* \section intro Introduction
|
||||||
|
* Welcome to Libcvautomation!
|
||||||
|
* Libcvautomation is a GUI automation and testing tool based on image recognition and response. This program was designed as a direct replacement for <a href="http://sikuli.org">Sikuli</a> and <a href="https://wiki.ubuntu.com/Xpresser">Xpresser</a>. I was having incredible difficulty getting either of these solutions to work - Sikuli would crash whenever I tried to take a screenshot, and Xpresser was both too new for our Prominent North American Enterprise Linux systems, but also didn't work or \c import correctly. I really liked the way each of these programs approached GUI automation, but they simply didn't work. Additionally, I wanted to create a simple solution - it does what you want it to, and that's it.
|
||||||
|
* \section how_it_works How Libcvautomation Works
|
||||||
|
* Libcvautomation represents two software products coming together - <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a> and the <a href="http://www.x.org/docs/Xext/xtest.pdf">XTest extension</a> to the X11 server. OpenCV is used for image recognition, and XTest is used to actually drive the X server. You can dig into \ref libcvautomation-xtest.h to get an idea of what all this library is capable of. <br>
|
||||||
|
* Basically what happens is that for whenever you need to do image recognition, OpenCV is used to find the images, and XTest is used to generate any events needed. Libcvautomation is mostly a wrapper to integrate both of these products, but also adds some functions like matchSubImage_X11() that allow you to match an image against the X11 root window in place. This means no more <tt>'xwd | convert "<out_name>"'</tt>.
|
||||||
|
* \section main_using Using Libcvautomation And Writing Application Tests
|
||||||
|
* So how does one go about using libcvautomation? <br>
|
||||||
|
* I'm so glad you asked! I've provided a few reference programs - \c cva-match and \c cva-input - that can be used to demonstrate most of libcvautomation's capabilities. I've even provided a BASH wrapper to make it incredibly easy to use BASH with libcvautomation as well (requires that \c cva-match and \c cva-input are installed). Python bindings are on their way too. <br>
|
||||||
|
* Finally, if you want to know how to write your own application tests, please see \ref writing_app_tests for more information on that. I've provided code to give you a basic idea of how they work.
|
||||||
|
* \section questions Questions? Comments? Concerns?
|
||||||
|
* Please send any feedback to <<a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>>. Pull requests can be submitted to <a href="https://github.com/DjBushido/libcvautomation">my github repository</a>.*/
|
||||||
|
|
||||||
|
/** \page libcvautomation
|
||||||
|
* \author Bradlee Speice <<a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>>
|
||||||
|
* \section intro Introduction
|
||||||
|
* Welcome to Libcvautomation!
|
||||||
|
* Libcvautomation is a GUI automation and testing tool based on image recognition and response. This program was designed as a direct replacement for <a href="http://sikuli.org">Sikuli</a> and <a href="https://wiki.ubuntu.com/Xpresser">Xpresser</a>. I was having incredible difficulty getting either of these solutions to work - Sikuli would crash whenever I tried to take a screenshot, and Xpresser was both too new for our Prominent North American Enterprise Linux systems, but also didn't work or \c import correctly. I really liked the way each of these programs approached GUI automation, but they simply didn't work. Additionally, I wanted to create a simple solution - it does what you want it to, and that's it.
|
||||||
|
* \section how_it_works How Libcvautomation Works
|
||||||
|
* Libcvautomation represents two software products coming together - <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a> and the <a href="http://www.x.org/docs/Xext/xtest.pdf">XTest extension</a> to the X11 server. OpenCV is used for image recognition, and XTest is used to actually drive the X server. You can dig into \ref libcvautomation-xtest.h to get an idea of what all this library is capable of. <br>
|
||||||
|
* Basically what happens is that for whenever you need to do image recognition, OpenCV is used to find the images, and XTest is used to generate any events needed. Libcvautomation is mostly a wrapper to integrate both of these products, but also adds some functions like matchSubImage_X11() that allow you to match an image against the X11 root window in place. This means no more <tt>'xwd | convert "<out_name>"'</tt>.
|
||||||
|
* \section main_using Using Libcvautomation And Writing Application Tests
|
||||||
|
* So how does one go about using libcvautomation? <br>
|
||||||
|
* I'm so glad you asked! I've provided a few reference programs - \c cva-match and \c cva-input - that can be used to demonstrate most of libcvautomation's capabilities. I've even provided a BASH wrapper to make it incredibly easy to use BASH with libcvautomation as well (requires that cva-match and cva-input are installed). Python bindings are on their way too. <br>
|
||||||
|
* Finally, if you want to know how to write your own application tests, please see \ref writing_app_tests for more information on that. I've provided code to give you a basic idea of how they work.
|
||||||
|
* \section questions Questions? Comments? Concerns?
|
||||||
|
* Please send any feedback to <<a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>>. Pull requests can be submitted to <a href="https://github.com/DjBushido/libcvautomation">my github repository</a>.*/
|
||||||
|
|
||||||
|
/** \page writing_app_tests Writing Application Tests
|
||||||
|
* \author Bradlee Speice <<a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>>
|
||||||
|
* \date 7/23/2012
|
||||||
|
* \section audience Audience
|
||||||
|
* <ul>
|
||||||
|
* <li>This document was written for people with some intermediate knowledge of BASH.
|
||||||
|
* <li>Screenshot experience is required - being able to create screenshots of windows using <a href="http://www.gimp.org/">GIMP</a>, the \c import command from <a href="http://www.imagemagick.org/script/index.php">ImageMagick</a>, or something similar. <br>
|
||||||
|
* <li>Required for working with libcvautomation internals (not needed strictly for writing application testing):
|
||||||
|
* <ul>
|
||||||
|
* <li>Intermediate-level C knowledge required for interfacing with libcvautomation. There isn't much complicated going on with libcvautomation itself, but you need to know to use cvaOpenDisplay() for grabbing a display and then cvaCloseDisplay() for closing it later for example.
|
||||||
|
* <li>C++ is available, but currently only as <tt>extern "C"</tt> style bindings.
|
||||||
|
* <li>Python bindings are in progress as of time-of-writing
|
||||||
|
* </ul>
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* \section purpose Purpose
|
||||||
|
* <ul>
|
||||||
|
* <li>This document is intended to outline the libcvautomation testing library for GUI applications and its two reference programs \c cva-match and \c cva-input
|
||||||
|
* <li>These programs allow you to automate mouse and keyboard events in response to what appears on screen - for example, clicking a button based on an image of that button on screen.
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* \section using Using Libcvautomation
|
||||||
|
* <ul>
|
||||||
|
* <li>Since libcvautomation is a shared-object library intended to bundle a lot of functionality in one area, we must use external programs to agin access to the functions of libcvautomation.
|
||||||
|
* <li>Two reference programs have been included to make this easy - \c cva-match and \c cva-input
|
||||||
|
* <li>The reference programs are fairly full-featured, and expose most of libcvautomation:
|
||||||
|
* <ul>
|
||||||
|
* <li>\c cva-match allows you to match multiple image files against a root image providing very fine control over how specific the match is
|
||||||
|
* <li>\c cva-input allows you to drive the X11 server using the XTest extension - for example, clicking on a button from image, clicking a key on the keyboard, and more.
|
||||||
|
* </ul>
|
||||||
|
* <li>These two programs should implement all functionality needed for GUI automation. Please contact <a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a> if you have suggestions for extra functionality, patches, comments, etc.
|
||||||
|
* <li>Finally, if you want to write your own programs using libcvautomation, the headers are located on your system. Use:
|
||||||
|
* \code #include <libcvautomation/libcvautomation.h> \endcode
|
||||||
|
* to include all necessary header files. See the "Files" tab above to get an idea of what functionality exists.
|
||||||
|
* \note Intermediate C or C++ knowledge is required for programming with libcvautomation. C++ is currently only supported through <tt>extern "C"</tt>, and full C++ bindings are not currently planned. Libcvautomation itself is incredibly simple, but interfaces with a few API's (Xlib, libcv) that it is helpful to have an idea of how to use.
|
||||||
|
*
|
||||||
|
* \section testing Application Testing
|
||||||
|
* Now we get into the good stuff. The basic process for application testing is as follows:
|
||||||
|
* <ul>
|
||||||
|
* <li>Create a sequence of screenshots for all mouse-clicks
|
||||||
|
* <li>Create a testing wrapper in BASH for automating the application
|
||||||
|
* <li>Test the wrapper and tune any necessary options
|
||||||
|
* </ul>
|
||||||
|
* \subsection screenshot_sequence Creating the Screenshot Sequence
|
||||||
|
* <ul>
|
||||||
|
* <li>This process creates a set of screenshots by which libcvautomation can drive the X11 server
|
||||||
|
* <li>The process is simple - create a screenshot of all buttons you would like to click in an application test, or location where you would like to move the mouse, etc.
|
||||||
|
* <li>This can be accomplished a number of different ways - using GIMP, the \c import command, or any other screenshot program. Additionally, libcvautomation will support any image format that OpenCV does. At the time of writing, these are:
|
||||||
|
* <ul>
|
||||||
|
* <li>Windows bitmaps - <tt>*.bmp</tt>, <tt>*.dib</tt>
|
||||||
|
* <li>JPEG files - <tt>*.jpeg</tt>, <tt>*.jpg</tt>, <tt>*.jpe</tt>
|
||||||
|
* <li>JPEG 2000 files - <tt>*.jp2</tt>
|
||||||
|
* <li>Portable Network Graphics - <tt>*.png</tt>
|
||||||
|
* <li>Portable image format - <tt>*.pbm</tt>, <tt>*.pgm</tt>, <tt>*.ppm</tt>
|
||||||
|
* <li>Sun rasters - <tt>*.sr</tt>, <tt>*.ras</tt>
|
||||||
|
* <li>TIFF files - <tt>*.tiff</tt>, <tt>*.tif</tt>
|
||||||
|
* </ul>
|
||||||
|
* <br>
|
||||||
|
* <li>Some tips on creating screenshots:
|
||||||
|
* <ul>
|
||||||
|
* <li>Use as distinct an image as possible in a screenshot. For example, the following images look very similar, but can do very different things:
|
||||||
|
* \image html print-printbutton1.png
|
||||||
|
* <br>
|
||||||
|
* \image html print-helpbutton.png
|
||||||
|
* <ul>
|
||||||
|
* <li>The large amount of grey-space in each of the images can be very confusing. While the text itself is different, the overwhelming amount of grey space can result in a false positive. Limiting the space of the screenshot can be useful:
|
||||||
|
* \image html print-printbutton2.png
|
||||||
|
* <br>
|
||||||
|
* \image html print-helpbutton.png
|
||||||
|
* <li>Limiting the button size in this case helps the program identify what button you want to click, but in general you want to include as much detail as possible.
|
||||||
|
* </ul>
|
||||||
|
* <br>
|
||||||
|
* <li>Be careful of where an image may appear multiple times in a screenshot. For example, a "Help" button on a dialog may get confused with the "Help" menu at the top of the screen.
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* \subsection testing_wrapper Create a Testing Wrapper
|
||||||
|
* <ul>
|
||||||
|
* <li>This is where the BASH knowledge comes into play. We are going to write a script that will run your application test, to make sure that the GUI is functioning correctly.
|
||||||
|
* <li>The following is the (strongly) recommended process, but is not strictly necessary to follow this. The way I'm going to explain this is by giving an example test I wrote, and explain what is going on:
|
||||||
|
* \code
|
||||||
|
* #!/bin/bash
|
||||||
|
* #This is an application test involving libcvautomation and libreoffice
|
||||||
|
* . /etc/libcvautomation_funcs
|
||||||
|
* set -o errexit
|
||||||
|
*
|
||||||
|
* #Changing any wrapper parameters should go here
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* start_libreoffice_writer ()
|
||||||
|
* {
|
||||||
|
* click_i "screens/gnome-1_menu.png" "screens/kde-1_menu.png"
|
||||||
|
* click_i "screens/gnome-2_officeMenu.png" "screens/kde-2_officeMenu.png"
|
||||||
|
* hover_i "screens/gnome-3_LibreOfficeWriter.png" "screens/kde-3_LibreOfficeWriter.png"
|
||||||
|
* jiggle_mouse
|
||||||
|
* click
|
||||||
|
* sleep 30
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* close_libreoffice_writer()
|
||||||
|
* {
|
||||||
|
* click_i "screens/gnome-4_fileMenu.png" "screens/kde-4_fileMenu.png"
|
||||||
|
* click_i "screens/gnome-5_fileExit.png" "screens/kde-5_fileExit.png"
|
||||||
|
* click_i "screens/gnome-6_discard.png" "screens/kde-6_discard.png"
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* start_libreoffice_writer
|
||||||
|
* close_libreoffice_writer
|
||||||
|
* \endcode
|
||||||
|
* <br>
|
||||||
|
* \code
|
||||||
|
* #!/bin/bash
|
||||||
|
* #This is an application test involving libcvautomation and libreoffice
|
||||||
|
* . /etc/libcvautomation_funcs
|
||||||
|
* set -o errexit
|
||||||
|
*
|
||||||
|
* #Changing any wrapper parameters should go here
|
||||||
|
* \endcode
|
||||||
|
* <li>The purpose of these lines is just the standard BASH header. Additionally, we import a wrapper created for libcvautomation to make our job easier. Please note that this is the default directory for the wrapper, your installation may be different. Use the command <tt>locate libcvautomation_funcs</tt> to find it on your computer. The wrapper itself is a handful of macros used to make our job easy.
|
||||||
|
* <li>The \c set line will abort the test if an error is ever encountered - for example, no images are found.
|
||||||
|
* <li>Changing any wrapper parameters should go after sourcing the wrapper functions. See \ref appendix_variables for more information.
|
||||||
|
* <br><br>
|
||||||
|
* \code
|
||||||
|
* start_libreoffice_writer ()
|
||||||
|
* {
|
||||||
|
* click_i "screens/gnome-1_menu.png" "screens/kde-1_menu.png"
|
||||||
|
* click_i "screens/gnome-2_officeMenu.png" "screens/kde-2_officeMenu.png"
|
||||||
|
* hover_i "screens/gnome-3_LibreOfficeWriter.png" "screens/kde-3_LibreOfficeWriter.png"
|
||||||
|
* jiggle_mouse
|
||||||
|
* click
|
||||||
|
* sleep 30
|
||||||
|
* }
|
||||||
|
* \endcode
|
||||||
|
* <li>This is the actual body of work done by libcvautomation
|
||||||
|
* <li>\c click_i is a function to click the mouse at an image - in this case, the gnome or kde menu.
|
||||||
|
* <ul>
|
||||||
|
* <li>Because of how the cva-input program is designed, you can give it multiple images, and it will only select the one currently available. See the \ref wrapper_functions for more information on how to use this (\c TOLERANCE specifically)
|
||||||
|
* <li>Additionally, the wrapper (by default) will wait for an image to appear before clicking on it. This way, you can string together click_i commands even when the program may need to wait a while on processing. Make sure to read up on the \c TIMEOUT option to learn how to use this.
|
||||||
|
* <li>By using the function \c click_i, we make things a bit more readable - the full command line is <tt>cva-input -s 'icmouseclick <filename>'</tt>
|
||||||
|
* <li>See the \ref wrapper_functions for a list of all functions available in the wrapper.
|
||||||
|
* </ul>
|
||||||
|
* <li>\c hover_i is a function to move the mouse to an image - in this case, move it over the LibreOffice menu item.
|
||||||
|
* <li>Then we jiggle the mouse to make sure that the item activates, click, and wait for the program to start up.
|
||||||
|
* <br><br>
|
||||||
|
* \code
|
||||||
|
* close_libreoffice_writer()
|
||||||
|
* {
|
||||||
|
* click_i "screens/gnome-4_fileMenu.png" "screens/kde-4_fileMenu.png"
|
||||||
|
* click_i "screens/gnome-5_fileExit.png" "screens/kde-5_fileExit.png"
|
||||||
|
* click_i "screens/gnome-6_discard.png" "screens/kde-6_discard.png"
|
||||||
|
* }
|
||||||
|
* \endcode
|
||||||
|
* <li>Use the \c click_i function to close down LibreOffice writer - Find the "File" menu, click "Exit", and then make sure to discard all changes.
|
||||||
|
* <br><br>
|
||||||
|
* \code
|
||||||
|
* start_libreoffice_writer
|
||||||
|
* close_libreoffice_writer
|
||||||
|
* \endcode
|
||||||
|
* <li>Actually run the functions given.
|
||||||
|
* <br><br>
|
||||||
|
* <li>Please note that this is a fairly trivial example. The full list of commands available in the wrapper is given in \ref wrapper_functions
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* \subsection testing_test_wrapper Testing the Testing Wrapper
|
||||||
|
* <ul>
|
||||||
|
* <li>First things first, run through the testing wrapper to make sure that everything is O.K.
|
||||||
|
* <li>If you need to, there are a few environment variables you can set to change how the wrapper works. See \ref appendix_variables for more information on how these work.
|
||||||
|
* <li>A full list of commands provided by the wrapper is available at \ref appendix_functions
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* \note These options are controlled using the testing script as demonstrated above. Any modifications to the following values should be done at the line: \code #Changing any wrapper parameters should go here \endcode
|
||||||
|
* </ul>
|
||||||
|
* \section wrapping_up Wrapping Up
|
||||||
|
* <ul>
|
||||||
|
* <li>At this point you should have all the information you need to write your own application tests. The libcvautomation library and reference programs were designed to be simple and powerful, but if you invest the time to learn them and some expert BASH scripting, you can do some very complex things.
|
||||||
|
* <ul>
|
||||||
|
* <li>For example, integrating a <a href="http://testanything.org/wiki/index.php/Tap-functions">Test Anything Protocol</a> wrapper into your scripts as well.
|
||||||
|
* </ul>
|
||||||
|
* <li>If you have questions, comments, concerns, suggestions, or feedback in general, feel free to let me know at <a href="mailto:bspeice@uncc.edu">bspeice@uncc.edu</a>.
|
||||||
|
* </ul>
|
||||||
|
*/
|
||||||
|
/** \page wrapper_functions Appendix of Wrapper Functions and Environment Variables
|
||||||
|
* \section appendix_variables Environment Variables
|
||||||
|
* \subsection appendix_search Search Method
|
||||||
|
* \code SEARCH_METHOD \endcode
|
||||||
|
* This controls how each of the functions searches for an image. See \ref libcvautomation_search_methods for more instruction on how to use this option.
|
||||||
|
*
|
||||||
|
* \subsection appendix_tolerance Tolerance
|
||||||
|
* \code TOLERANCE
|
||||||
|
* USE_SANE_TOLERANCE \endcode
|
||||||
|
* These control how tolerant each function is when searching for an image. Acceptable values are anywhere between \c INT_MIN to \c INT_MAX. See \ref libcvautomation_search_methods for more information on how the tolerance values work.
|
||||||
|
* Additionally, the cva-input and cva-match programs (which this wrapper depends on) implement a "sane-tolerance" option. This allows you to set a tolerance between 1 - 100, where: \f$ 1 \approx 0 \f$, and \f$ 100 \approx INT\_MAX \f$
|
||||||
|
* By default, functions will not use sane tolerance. To make the functions search using sane tolerance, set \code USE_SANE_TOLERANCE="yes" \endcode
|
||||||
|
*
|
||||||
|
* \subsection appendix_center Center
|
||||||
|
* \code USE_CENTER \endcode
|
||||||
|
* This controls whether each function will return a value based on the center of the sub-image, rather than the top-left corner.
|
||||||
|
* By default, functions will use center-based matching. To make the functions use the top-left corner, set \code USE_CENTER="" \endcode
|
||||||
|
*
|
||||||
|
* \subsection appendix_wait Wait
|
||||||
|
* \code USE_WAIT
|
||||||
|
* TIMEOUT \endcode
|
||||||
|
* These control how the "waitfor" function is used. By default, all image-matching functions will wait for an image to appear, and then click on it. This way, it won't click randomly if it can or can't find an image, and provides very easy error recognition. The functions will wait for a period of \c TIMEOUT seconds before complaining.
|
||||||
|
* To disable waiting before performing an action, set \code USE_WAIT="" \endcode
|
||||||
|
* \warning Without setting a tolerance value, the waitfor function becomes totally useless, as the first search will always find an image. <tt>Make sure to set the tolerance</tt> (or just leave it as the default value in the wrapper).
|
||||||
|
*
|
||||||
|
* \subsection appendix_output Output and Debugging
|
||||||
|
* \code OUTFILE
|
||||||
|
* ERRFILE \endcode
|
||||||
|
* These files control the reporting of libcvautomation_funcs. The wrapper generates a decent amount of output to help in debugging application tests, and by default these get redirected to /dev/null. To instead redirect them to a file, you can do something like this:
|
||||||
|
* \code OUTFILE=`mktemp`; echo "Logfile: " $OUTFILE
|
||||||
|
* ERRFILE=`mktemp`; echo "Error file: " $ERR_FILE \endcode
|
||||||
|
* This will redirect the output and error output to a file you own, and inform you of what that file is.
|
||||||
|
*
|
||||||
|
* \section appendix_functions Functions
|
||||||
|
* \subsection appendix_click Click the mouse
|
||||||
|
* \code click \endcode
|
||||||
|
* Click the mouse where it is currently located
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code click_xy <x-coordinate> <y-coordinate> \endcode
|
||||||
|
* Click the mouse on an absolute point on screen
|
||||||
|
* \note The actual process is to move the mouse to the given location, then click there.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code clickr_xy <x-increment> <y-increment> \endcode
|
||||||
|
* Click the mouse on the screen relative to where the mouse is at
|
||||||
|
* \note The actual process is to move the mouse the given distance, then click there.
|
||||||
|
* \note Also, note that a positive \c x-increment moves the mouse to the right, and a positive \c y-increment moves the mouse down.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code click_i <filename> \endcode
|
||||||
|
* Click the mouse on a screenshot from \c filename
|
||||||
|
* \note This is affected by the \c CENTER, \c TOLERANCE, and \c SEARCH_METHOD variables. See \ref appendix_variables for more information on these.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \subsection appendix_move Move the mouse
|
||||||
|
* \code hover_xy <x-coordinate> <y-increment> \endcode
|
||||||
|
* Move the mouse to a location on screen using absolute positioning
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code hoverr_xy <x-increment> <y-increment> \endcode
|
||||||
|
* Move the mouse to a location on screen using relative positioning
|
||||||
|
* \note Note that a positive \c x-increment moves the mouse to the right, and a positive \c y-increment moves the mouse down.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code hover_i <filename> \endcode
|
||||||
|
* Move the mouse to a location on screen based on screenshot
|
||||||
|
* \note This is affected by the \c CENTER, \c TOLERANCE, and \c SEARCH_METHOD variables. See \ref appendix_variables for more information on these.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code mouse_scrollu \endcode
|
||||||
|
* Scroll the mouse wheel up one
|
||||||
|
*
|
||||||
|
* \code mouse_scrolld \endcode
|
||||||
|
* Scroll the mouse wheel down one
|
||||||
|
*
|
||||||
|
* \subsection appendix_find Find an Image
|
||||||
|
* \code image_location <filename> \endcode
|
||||||
|
* Get the location of an image on screen
|
||||||
|
* \note This is affected by the \c CENTER, \c TOLERANCE, and \c SEARCH_METHOD variables. See \ref appendix_variables for more information on these.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code waitfor <filename> \endcode
|
||||||
|
* Wait for an image to display on screen
|
||||||
|
* \note This is affected by the \c TOLERANCE, \c SEARCH_METHOD, and \c TIMEOUT variables. See \ref appendix_variables for more information on these.
|
||||||
|
*
|
||||||
|
* \subsection appendix_keyboard Click the keyboard
|
||||||
|
* \code key_str "<string>" \endcode
|
||||||
|
* Enter a string of characters on the keyboard rather than a single character at a time.
|
||||||
|
* \warning This function <b>does not</b> accept key strings like "Space" as \c key_down, \c key_up, and \c key_click do. If you pass in "Space", that is exactly what will be typed.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code key_down "<key-name>" \endcode
|
||||||
|
* Press a key down and leave it down
|
||||||
|
* \note This function accepts special keys like "Space" - see \ref xtest_key_strings for a full list of characters allowed.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code key_up "<key-name>" \endcode
|
||||||
|
* Release a key
|
||||||
|
* \note This function accepts special keys like "Space" - see \ref xtest_key_strings for a full list of characters allowed.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code key_click "<key-name>" \endcode
|
||||||
|
* Press a key down and then release it immediately after
|
||||||
|
* \note This function accepts special keys like "Space" - see \ref xtest_key_strings for a full list of characters allowed.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \subsection appendix_utilities Useful extras
|
||||||
|
* \code run_process "<process-name>" \endcode
|
||||||
|
* Start a process on the system, background it, and return the PID of the created process.
|
||||||
|
* <br><br>
|
||||||
|
*
|
||||||
|
* \code is_running "<process-name>" \endcode
|
||||||
|
* \code is_running "<process-id>" \endcode
|
||||||
|
* Check if a program name or PID is currently running
|
||||||
|
*
|
||||||
|
* \code notify "<string_to_display>" \endcode
|
||||||
|
* Display a notification to the user, and wait for a response
|
||||||
|
* \warning Uses \c zenity - if \c zenity isn't available, will return an error without pausing, and will not display anything.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** \def LIBCVAUTOMATION_VERSION
|
||||||
|
* \brief Define what version of Libcvautomation we are using
|
||||||
|
* \details This define provides access to what version of Libcvautomation we're using. All times that you need to know what it is should use this.
|
||||||
|
*/
|
||||||
|
/** \def LIBCVAUTOMATION_BUGREPORT
|
||||||
|
* \brief Define who to send bug reports to for Libcvautomation
|
||||||
|
* \details This define provides access to who should be emailed in case of a Libcvautomation bug. All times that you need to know what it is should use this.*/
|
||||||
|
|
||||||
|
/** \struct cvautomationList
|
||||||
|
* \brief Implements a structure to build an array for methods like matchSubImage_a()
|
||||||
|
* \details This structure is a simple way to wrap up all needed information for matching sub images in one location.
|
||||||
|
* \param cvaImage An image in IplImage format
|
||||||
|
* \param fileName The file location of an image to be loaded
|
||||||
|
* \param resultPoint Holder for a result - for example, storing where this sub image was located in its root image
|
||||||
|
* \param searchMethod The search method to use when searching for this sub image in a root image
|
||||||
|
* \param tolerance The tolerance to use when searching for this sub image in a root image
|
||||||
|
* \see \ref libcvautomation_search_methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** \struct cvaPoint
|
||||||
|
* \brief Very simple structure to standardize how points are used in libcvautomation
|
||||||
|
* \param x An X-coordinate
|
||||||
|
* \param y A Y-coordinate */
|
323
install-sh
Executable file
@ -0,0 +1,323 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# 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. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit="${DOITPROG-}"
|
||||||
|
|
||||||
|
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||||
|
|
||||||
|
mvprog="${MVPROG-mv}"
|
||||||
|
cpprog="${CPPROG-cp}"
|
||||||
|
chmodprog="${CHMODPROG-chmod}"
|
||||||
|
chownprog="${CHOWNPROG-chown}"
|
||||||
|
chgrpprog="${CHGRPPROG-chgrp}"
|
||||||
|
stripprog="${STRIPPROG-strip}"
|
||||||
|
rmprog="${RMPROG-rm}"
|
||||||
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
|
chmodcmd="$chmodprog 0755"
|
||||||
|
chowncmd=
|
||||||
|
chgrpcmd=
|
||||||
|
stripcmd=
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
mvcmd="$mvprog"
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dstarg=
|
||||||
|
no_target_directory=
|
||||||
|
|
||||||
|
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-c (ignored)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test -n "$1"; do
|
||||||
|
case $1 in
|
||||||
|
-c) shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-d) dir_arg=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
|
-m) chmodcmd="$chmodprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-t) dstarg=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-T) no_target_directory=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
|
*) # When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
test -n "$dir_arg$dstarg" && break
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dstarg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dstarg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dstarg=$arg
|
||||||
|
done
|
||||||
|
break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$1"; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call `install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $src in
|
||||||
|
-*) src=./$src ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
src=
|
||||||
|
|
||||||
|
if test -d "$dst"; then
|
||||||
|
mkdircmd=:
|
||||||
|
chmodcmd=
|
||||||
|
else
|
||||||
|
mkdircmd=$mkdirprog
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dstarg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dst=$dstarg
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $dst in
|
||||||
|
-*) dst=./$dst ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test -n "$no_target_directory"; then
|
||||||
|
echo "$0: $dstarg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst=$dst/`basename "$src"`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This sed command emulates the dirname command.
|
||||||
|
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
|
||||||
|
|
||||||
|
# Make sure that the destination directory exists.
|
||||||
|
|
||||||
|
# Skip lots of stat calls in the usual case.
|
||||||
|
if test ! -d "$dstdir"; then
|
||||||
|
defaultIFS='
|
||||||
|
'
|
||||||
|
IFS="${IFS-$defaultIFS}"
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
# Some sh's can't handle IFS=/ for some reason.
|
||||||
|
IFS='%'
|
||||||
|
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||||
|
shift
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
pathcomp=
|
||||||
|
|
||||||
|
while test $# -ne 0 ; do
|
||||||
|
pathcomp=$pathcomp$1
|
||||||
|
shift
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
$mkdirprog "$pathcomp"
|
||||||
|
# mkdir can fail with a `File exist' error in case several
|
||||||
|
# install-sh are creating the directory concurrently. This
|
||||||
|
# is OK.
|
||||||
|
test -d "$pathcomp" || exit
|
||||||
|
fi
|
||||||
|
pathcomp=$pathcomp/
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
$doit $mkdircmd "$dst" \
|
||||||
|
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||||
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||||
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||||
|
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||||
|
|
||||||
|
else
|
||||||
|
dstfile=`basename "$dst"`
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
trap '(exit $?); exit' 1 2 13 15
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
$doit $cpprog "$src" "$dsttmp" &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|
||||||
|
|| {
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
if test -f "$dstdir/$dstfile"; then
|
||||||
|
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||||
|
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||||
|
|| {
|
||||||
|
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||||
|
(exit 1); exit 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fi || { (exit 1); exit 1; }
|
||||||
|
done
|
||||||
|
|
||||||
|
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||||
|
{
|
||||||
|
(exit 0); exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
535
libcvautomation/Makefile.in
Normal file
@ -0,0 +1,535 @@
|
|||||||
|
# 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 = libcvautomation
|
||||||
|
DIST_COMMON = $(pkginclude_HEADERS) $(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 = $(install_sh) -d
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
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)$(libdir)" "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||||
|
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||||
|
libcvautomation_la_DEPENDENCIES =
|
||||||
|
am_libcvautomation_la_OBJECTS = \
|
||||||
|
libcvautomation_la-libcvautomation-opencv.lo \
|
||||||
|
libcvautomation_la-libcvautomation-xlib.lo \
|
||||||
|
libcvautomation_la-libcvautomation-xtest.lo
|
||||||
|
libcvautomation_la_OBJECTS = $(am_libcvautomation_la_OBJECTS)
|
||||||
|
DEFAULT_INCLUDES = -I. -I$(srcdir)
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__depfiles_maybe = depfiles
|
||||||
|
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 = $(libcvautomation_la_SOURCES)
|
||||||
|
DIST_SOURCES = $(libcvautomation_la_SOURCES)
|
||||||
|
pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||||
|
HEADERS = $(pkginclude_HEADERS)
|
||||||
|
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@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
BUILD_DOXYGEN_FALSE = @BUILD_DOXYGEN_FALSE@
|
||||||
|
BUILD_DOXYGEN_TRUE = @BUILD_DOXYGEN_TRUE@
|
||||||
|
BUILD_EXAMPLES_FALSE = @BUILD_EXAMPLES_FALSE@
|
||||||
|
BUILD_EXAMPLES_TRUE = @BUILD_EXAMPLES_TRUE@
|
||||||
|
BUILD_MAN_FALSE = @BUILD_MAN_FALSE@
|
||||||
|
BUILD_MAN_TRUE = @BUILD_MAN_TRUE@
|
||||||
|
BUILD_TEX_FALSE = @BUILD_TEX_FALSE@
|
||||||
|
BUILD_TEX_TRUE = @BUILD_TEX_TRUE@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPP = @CPP@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CV_CFLAGS = @CV_CFLAGS@
|
||||||
|
CV_LIBS = @CV_LIBS@
|
||||||
|
CV_VERSION = @CV_VERSION@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
Doxygen = @Doxygen@
|
||||||
|
ECHO = @ECHO@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ENABLE_MAN = @ENABLE_MAN@
|
||||||
|
ENABLE_TEX = @ENABLE_TEX@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
F77 = @F77@
|
||||||
|
FFLAGS = @FFLAGS@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIBTOOL_VERSION = @LIBTOOL_VERSION@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OpenCV_CFLAGS = @OpenCV_CFLAGS@
|
||||||
|
OpenCV_LIBS = @OpenCV_LIBS@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATCHLEVEL = @PATCHLEVEL@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
X11_CFLAGS = @X11_CFLAGS@
|
||||||
|
X11_LIBS = @X11_LIBS@
|
||||||
|
XTEST_CFLAGS = @XTEST_CFLAGS@
|
||||||
|
XTEST_LIBS = @XTEST_LIBS@
|
||||||
|
XTest_CFLAGS = @XTest_CFLAGS@
|
||||||
|
XTest_LIBS = @XTest_LIBS@
|
||||||
|
ac_ct_AR = @ac_ct_AR@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
ac_ct_F77 = @ac_ct_F77@
|
||||||
|
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@
|
||||||
|
AM_CFLAGS =
|
||||||
|
AM_LDFLAGS =
|
||||||
|
AM_LIBS = -shared
|
||||||
|
|
||||||
|
#Lists the libraries to build
|
||||||
|
lib_LTLIBRARIES = libcvautomation.la
|
||||||
|
libcvautomation_la_SOURCES = libcvautomation-opencv.c libcvautomation-xlib.c libcvautomation-xtest.c
|
||||||
|
libcvautomation_la_LDFLAGS = -version-info @LIBTOOL_VERSION@
|
||||||
|
libcvautomation_la_LIBADD = @X11_LIBS@ @XTEST_LIBS@ @CV_LIBS@
|
||||||
|
libcvautomation_la_CFLAGS = -Wall -Werror -O2 -I$(top_srcdir)/include @X11_CFLAGS@ @XTEST_CFLAGS@ @CV_CFLAGS@
|
||||||
|
|
||||||
|
#Lists the headers to distribute
|
||||||
|
pkginclude_HEADERS = $(top_srcdir)/include/libcvautomation/libcvautomation.h $(top_srcdir)/include/libcvautomation/libcvautomation-opencv.h $(top_srcdir)/include/libcvautomation/libcvautomation-xlib.h $(top_srcdir)/include/libcvautomation/libcvautomation-xtest.h $(top_srcdir)/include/libcvautomation/xautomation_kbd.h $(top_srcdir)/include/libcvautomation/xautomation_keysym_map.h $(top_srcdir)/include/libcvautomation/xautomation_multikey_map.h
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .lo .o .obj
|
||||||
|
$(srcdir)/Makefile.in: $(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 libcvautomation/Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu libcvautomation/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: $(am__configure_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
|
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
|
||||||
|
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
if test -f $$p; then \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
||||||
|
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
||||||
|
else :; fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-libLTLIBRARIES:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
p=$(am__strip_dir) \
|
||||||
|
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
||||||
|
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
clean-libLTLIBRARIES:
|
||||||
|
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||||
|
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||||
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||||
|
test "$$dir" != "$$p" || dir=.; \
|
||||||
|
echo "rm -f \"$${dir}/so_locations\""; \
|
||||||
|
rm -f "$${dir}/so_locations"; \
|
||||||
|
done
|
||||||
|
libcvautomation.la: $(libcvautomation_la_OBJECTS) $(libcvautomation_la_DEPENDENCIES)
|
||||||
|
$(LINK) -rpath $(libdir) $(libcvautomation_la_LDFLAGS) $(libcvautomation_la_OBJECTS) $(libcvautomation_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcvautomation_la-libcvautomation-opencv.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcvautomation_la-libcvautomation-xlib.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcvautomation_la-libcvautomation-xtest.Plo@am__quote@
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.c.obj:
|
||||||
|
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
libcvautomation_la-libcvautomation-opencv.lo: libcvautomation-opencv.c
|
||||||
|
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -MT libcvautomation_la-libcvautomation-opencv.lo -MD -MP -MF "$(DEPDIR)/libcvautomation_la-libcvautomation-opencv.Tpo" -c -o libcvautomation_la-libcvautomation-opencv.lo `test -f 'libcvautomation-opencv.c' || echo '$(srcdir)/'`libcvautomation-opencv.c; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcvautomation_la-libcvautomation-opencv.Tpo" "$(DEPDIR)/libcvautomation_la-libcvautomation-opencv.Plo"; else rm -f "$(DEPDIR)/libcvautomation_la-libcvautomation-opencv.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libcvautomation-opencv.c' object='libcvautomation_la-libcvautomation-opencv.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -c -o libcvautomation_la-libcvautomation-opencv.lo `test -f 'libcvautomation-opencv.c' || echo '$(srcdir)/'`libcvautomation-opencv.c
|
||||||
|
|
||||||
|
libcvautomation_la-libcvautomation-xlib.lo: libcvautomation-xlib.c
|
||||||
|
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -MT libcvautomation_la-libcvautomation-xlib.lo -MD -MP -MF "$(DEPDIR)/libcvautomation_la-libcvautomation-xlib.Tpo" -c -o libcvautomation_la-libcvautomation-xlib.lo `test -f 'libcvautomation-xlib.c' || echo '$(srcdir)/'`libcvautomation-xlib.c; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcvautomation_la-libcvautomation-xlib.Tpo" "$(DEPDIR)/libcvautomation_la-libcvautomation-xlib.Plo"; else rm -f "$(DEPDIR)/libcvautomation_la-libcvautomation-xlib.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libcvautomation-xlib.c' object='libcvautomation_la-libcvautomation-xlib.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -c -o libcvautomation_la-libcvautomation-xlib.lo `test -f 'libcvautomation-xlib.c' || echo '$(srcdir)/'`libcvautomation-xlib.c
|
||||||
|
|
||||||
|
libcvautomation_la-libcvautomation-xtest.lo: libcvautomation-xtest.c
|
||||||
|
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -MT libcvautomation_la-libcvautomation-xtest.lo -MD -MP -MF "$(DEPDIR)/libcvautomation_la-libcvautomation-xtest.Tpo" -c -o libcvautomation_la-libcvautomation-xtest.lo `test -f 'libcvautomation-xtest.c' || echo '$(srcdir)/'`libcvautomation-xtest.c; \
|
||||||
|
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcvautomation_la-libcvautomation-xtest.Tpo" "$(DEPDIR)/libcvautomation_la-libcvautomation-xtest.Plo"; else rm -f "$(DEPDIR)/libcvautomation_la-libcvautomation-xtest.Tpo"; exit 1; fi
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libcvautomation-xtest.c' object='libcvautomation_la-libcvautomation-xtest.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcvautomation_la_CFLAGS) $(CFLAGS) -c -o libcvautomation_la-libcvautomation-xtest.lo `test -f 'libcvautomation-xtest.c' || echo '$(srcdir)/'`libcvautomation-xtest.c
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
-rm -f libtool
|
||||||
|
uninstall-info-am:
|
||||||
|
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)"
|
||||||
|
@list='$(pkginclude_HEADERS)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \
|
||||||
|
$(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgincludeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkginclude_HEADERS)'; for p in $$list; do \
|
||||||
|
f=$(am__strip_dir) \
|
||||||
|
echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \
|
||||||
|
rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \
|
||||||
|
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: $(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)/../include/libcvautomation
|
||||||
|
@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 $(LTLIBRARIES) $(HEADERS)
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"; 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:
|
||||||
|
|
||||||
|
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-libLTLIBRARIES clean-libtool \
|
||||||
|
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-pkgincludeHEADERS
|
||||||
|
|
||||||
|
install-exec-am: install-libLTLIBRARIES
|
||||||
|
|
||||||
|
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-libLTLIBRARIES \
|
||||||
|
uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||||
|
clean-libLTLIBRARIES clean-libtool 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-libLTLIBRARIES install-man install-pkgincludeHEADERS \
|
||||||
|
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-libLTLIBRARIES \
|
||||||
|
uninstall-pkgincludeHEADERS
|
||||||
|
|
||||||
|
# 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:
|
360
missing
Executable file
@ -0,0 +1,360 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
|
||||||
|
scriptversion=2005-06-08.21
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||||
|
# Free Software Foundation, Inc.
|
||||||
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301, USA.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
run=:
|
||||||
|
|
||||||
|
# In the cases where this matters, `missing' is being run in the
|
||||||
|
# srcdir already.
|
||||||
|
if test -f configure.ac; then
|
||||||
|
configure_ac=configure.ac
|
||||||
|
else
|
||||||
|
configure_ac=configure.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg="missing on your system"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--run)
|
||||||
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
|
run=
|
||||||
|
shift
|
||||||
|
"$@" && exit 0
|
||||||
|
# Exit code 63 means version mismatch. This often happens
|
||||||
|
# when the user try to use an ancient version of a tool on
|
||||||
|
# a file that requires a minimum version. In this case we
|
||||||
|
# we should proceed has if the program had been absent, or
|
||||||
|
# if --run hadn't been passed.
|
||||||
|
if test $? = 63; then
|
||||||
|
run=:
|
||||||
|
msg="probably too old"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||||
|
error status if there is no known handling for PROGRAM.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
--run try to run the given command, and emulate it if it fails
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal touch file \`aclocal.m4'
|
||||||
|
autoconf touch file \`configure'
|
||||||
|
autoheader touch file \`config.h.in'
|
||||||
|
automake touch all \`Makefile.in' files
|
||||||
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
help2man touch the output file
|
||||||
|
lex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
makeinfo touch the output file
|
||||||
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||||
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
|
||||||
|
Send bug reports to <bug-automake@gnu.org>."
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing $scriptversion (GNU Automake)"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: Unknown \`$1' option"
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Now exit if we have it, but it failed. Also exit now if we
|
||||||
|
# don't have it and --version was passed (most likely to detect
|
||||||
|
# the program).
|
||||||
|
case "$1" in
|
||||||
|
lex|yacc)
|
||||||
|
# Not GNU programs, they don't have --version.
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
if test -n "$run"; then
|
||||||
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||||
|
exit 1
|
||||||
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||||
|
# Could not run --version or --help. This is probably someone
|
||||||
|
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||||
|
# $TOOL exists and not knowing $TOOL uses missing.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
|
# try to emulate it.
|
||||||
|
case "$1" in
|
||||||
|
aclocal*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||||
|
any GNU archive site."
|
||||||
|
touch aclocal.m4
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoconf)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`${configure_ac}'. You might want to install the
|
||||||
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||||
|
archive site."
|
||||||
|
touch configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoheader)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||||
|
from any GNU archive site."
|
||||||
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||||
|
test -z "$files" && files="config.h"
|
||||||
|
touch_files=
|
||||||
|
for f in $files; do
|
||||||
|
case "$f" in
|
||||||
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
|
*) touch_files="$touch_files $f.in";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
touch $touch_files
|
||||||
|
;;
|
||||||
|
|
||||||
|
automake*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
|
You might want to install the \`Automake' and \`Perl' packages.
|
||||||
|
Grab them from any GNU archive site."
|
||||||
|
find . -type f -name Makefile.am -print |
|
||||||
|
sed 's/\.am$/.in/' |
|
||||||
|
while read f; do touch "$f"; done
|
||||||
|
;;
|
||||||
|
|
||||||
|
autom4te)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, but is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them.
|
||||||
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||||
|
archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||||
|
if test -f "$file"; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo "#! /bin/sh"
|
||||||
|
echo "# Created by GNU Automake missing as a replacement of"
|
||||||
|
echo "# $ $@"
|
||||||
|
echo "exit 0"
|
||||||
|
chmod +x $file
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
bison|yacc)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' $msg. You should only need it if
|
||||||
|
you modified a \`.y' file. You may need the \`Bison' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Bison' from any GNU archive site."
|
||||||
|
rm -f y.tab.c y.tab.h
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.y)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.c
|
||||||
|
fi
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" y.tab.h
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.h ]; then
|
||||||
|
echo >y.tab.h
|
||||||
|
fi
|
||||||
|
if [ ! -f y.tab.c ]; then
|
||||||
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
lex|flex)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.l' file. You may need the \`Flex' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Flex' from any GNU archive site."
|
||||||
|
rm -f lex.yy.c
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
eval LASTARG="\${$#}"
|
||||||
|
case "$LASTARG" in
|
||||||
|
*.l)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
|
if [ -f "$SRCFILE" ]; then
|
||||||
|
cp "$SRCFILE" lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -f lex.yy.c ]; then
|
||||||
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
help2man)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a dependency of a manual page. You may need the
|
||||||
|
\`Help2man' package in order for those modifications to take
|
||||||
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||||
|
fi
|
||||||
|
if [ -f "$file" ]; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo ".ab help2man is required to generate this page"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
makeinfo)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||||
|
indirectly affecting the aspect of the manual. The spurious
|
||||||
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
|
# The file to touch is that specified with -o ...
|
||||||
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||||
|
if test -z "$file"; then
|
||||||
|
# ... or it is the one specified with @setfilename ...
|
||||||
|
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
|
||||||
|
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||||
|
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||||
|
fi
|
||||||
|
# If the file does not exist, the user really needs makeinfo;
|
||||||
|
# let's fail without touching anything.
|
||||||
|
test -f $file || exit 1
|
||||||
|
touch $file
|
||||||
|
;;
|
||||||
|
|
||||||
|
tar)
|
||||||
|
shift
|
||||||
|
|
||||||
|
# We have already tried tar in the generic part.
|
||||||
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||||
|
# messages.
|
||||||
|
if (gnutar --version > /dev/null 2>&1); then
|
||||||
|
gnutar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
if (gtar --version > /dev/null 2>&1); then
|
||||||
|
gtar "$@" && exit 0
|
||||||
|
fi
|
||||||
|
firstarg="$1"
|
||||||
|
if shift; then
|
||||||
|
case "$firstarg" in
|
||||||
|
*o*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/o//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$firstarg" in
|
||||||
|
*h*)
|
||||||
|
firstarg=`echo "$firstarg" | sed s/h//`
|
||||||
|
tar "$firstarg" "$@" && exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||||
|
You may want to install GNU tar or Free paxutils, or check the
|
||||||
|
command line arguments."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them. Check the \`README' file,
|
||||||
|
it often tells you about the needed prerequisites for installing
|
||||||
|
this package. You may also peek at any GNU archive site, in case
|
||||||
|
some other package would contain this missing \`$1' program."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
Before Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 678 B |
@ -1,36 +0,0 @@
|
|||||||
#!/bin/bash -
|
|
||||||
#===============================================================================
|
|
||||||
#
|
|
||||||
# FILE: openCVLogo.sh
|
|
||||||
#
|
|
||||||
# USAGE: ./openCVLogo.sh
|
|
||||||
#
|
|
||||||
# DESCRIPTION: This is a test script to demonstrate libcvautomation
|
|
||||||
# We are going to find different sections of the OpenCV logo
|
|
||||||
# in itself.
|
|
||||||
#
|
|
||||||
# OPTIONS: ---
|
|
||||||
# REQUIREMENTS: ---
|
|
||||||
# BUGS: ---
|
|
||||||
# NOTES: ---
|
|
||||||
# AUTHOR: Bradlee Speice (), bspeice.nc@gmail.com
|
|
||||||
# ORGANIZATION:
|
|
||||||
# CREATED: 06/21/2012 03:45:19 PM EDT
|
|
||||||
# REVISION: ---
|
|
||||||
#===============================================================================
|
|
||||||
|
|
||||||
CVAMATCH=`which cva-match`
|
|
||||||
|
|
||||||
if [ ! -x "$CVA_MATCH" ]; then
|
|
||||||
echo "Could not find the cva-match binary! Can't continue..."
|
|
||||||
exit 255
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Finding the red circle in the OpenCV logo..."
|
|
||||||
echo "The red circle is located at: `$CVAMATCH -r opencvlogo.png -s redcircle.png -p ', ' | cut -d',' -f2-`"
|
|
||||||
echo "Finding the blue circle in the OpenCV logo..."
|
|
||||||
echo "The blue circle is located at: `$CVAMATCH -r opencvlogo.png -s bluecircle.png -p ', ' | cut -d',' -f2-`"
|
|
||||||
echo "Finding the green circle in the OpenCV logo..."
|
|
||||||
echo "The green circle is located at: `$CVAMATCH -r opencvlogo.png -s greencircle.png -p ', ' | cut -d',' -f2-`"
|
|
||||||
echo
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 731 B |