1## Process this file with automake to produce Makefile.in.
2
3include $(top_srcdir)/rpm.am
4AM_CFLAGS = @RPMCFLAGS@
5
6EXTRA_DIST =
7CLEANFILES =
8
9##
10TESTSUITE = $(srcdir)/rpmtests
11EXTRA_DIST += local.at $(TESTSUITE)
12
13## testsuite components
14TESTSUITE_AT = rpmtests.at
15TESTSUITE_AT += rpmgeneral.at
16TESTSUITE_AT += rpmquery.at
17TESTSUITE_AT += rpmverify.at
18TESTSUITE_AT += rpmdb.at
19TESTSUITE_AT += rpmbuild.at
20TESTSUITE_AT += rpmbuildid.at
21TESTSUITE_AT += debugedit.at
22TESTSUITE_AT += rpmi.at
23TESTSUITE_AT += rpmvercmp.at
24TESTSUITE_AT += rpmdeps.at
25TESTSUITE_AT += rpmconflict.at
26TESTSUITE_AT += rpmconfig.at
27TESTSUITE_AT += rpmconfig2.at
28TESTSUITE_AT += rpmconfig3.at
29TESTSUITE_AT += rpmreplace.at
30TESTSUITE_AT += rpmmacro.at
31TESTSUITE_AT += rpmpython.at
32TESTSUITE_AT += rpmdepmatch.at
33TESTSUITE_AT += rpmscript.at
34TESTSUITE_AT += rpmsigdig.at
35TESTSUITE_AT += rpmspec.at
36TESTSUITE_AT += rpmio.at
37TESTSUITE_AT += rpmorder.at
38TESTSUITE_AT += rpmvfylevel.at
39EXTRA_DIST += $(TESTSUITE_AT)
40
41## testsuite data
42EXTRA_DIST += data/SPECS/attrtest.spec
43EXTRA_DIST += data/SPECS/buildrequires.spec
44EXTRA_DIST += data/SPECS/docmiss.spec
45EXTRA_DIST += data/SPECS/hello.spec
46EXTRA_DIST += data/SPECS/hello-auto.spec
47EXTRA_DIST += data/SPECS/hello-r2.spec
48EXTRA_DIST += data/SPECS/hello-script.spec
49EXTRA_DIST += data/SPECS/hello2.spec
50EXTRA_DIST += data/SPECS/hello2cp.spec
51EXTRA_DIST += data/SPECS/hello2ln.spec
52EXTRA_DIST += data/SPECS/hello2-suid.spec
53EXTRA_DIST += data/SPECS/hello-g3.spec
54EXTRA_DIST += data/SPECS/foo.spec
55EXTRA_DIST += data/SPECS/globtest.spec
56EXTRA_DIST += data/SPECS/versiontest.spec
57EXTRA_DIST += data/SPECS/conflicttest.spec
58EXTRA_DIST += data/SPECS/configtest.spec
59EXTRA_DIST += data/SPECS/filedep.spec
60EXTRA_DIST += data/SPECS/flangtest.spec
61EXTRA_DIST += data/SPECS/hlinktest.spec
62EXTRA_DIST += data/SPECS/hlbreak.spec
63EXTRA_DIST += data/SPECS/iftest.spec
64EXTRA_DIST += data/SPECS/ifmultiline.spec
65EXTRA_DIST += data/SPECS/eliftest.spec
66EXTRA_DIST += data/SPECS/symlinktest.spec
67EXTRA_DIST += data/SPECS/deptest.spec
68EXTRA_DIST += data/SPECS/verifyscript.spec
69EXTRA_DIST += data/SPECS/fakeshell.spec
70EXTRA_DIST += data/SPECS/mini.spec
71EXTRA_DIST += data/SPECS/scripts.spec
72EXTRA_DIST += data/SPECS/scriptfail.spec
73EXTRA_DIST += data/SPECS/scriptfile.spec
74EXTRA_DIST += data/SPECS/selfconflict.spec
75EXTRA_DIST += data/SPECS/shebang.spec
76EXTRA_DIST += data/SPECS/suicidal.spec
77EXTRA_DIST += data/SPECS/replacetest.spec
78EXTRA_DIST += data/SPECS/triggers.spec
79EXTRA_DIST += data/SPECS/filetriggers.spec
80EXTRA_DIST += data/SPECS/parallel.spec
81EXTRA_DIST += data/SPECS/prefixtest.spec
82EXTRA_DIST += data/SPECS/testdoc.spec
83EXTRA_DIST += data/SPECS/sigpipe.spec
84EXTRA_DIST += data/SPECS/test-parsebits.spec
85EXTRA_DIST += data/SPECS/test-subpackages.spec
86EXTRA_DIST += data/SPECS/test-subpackages-exclude.spec
87EXTRA_DIST += data/SPECS/test-subpackages-pathpostfixes.spec
88EXTRA_DIST += data/SPECS/vattrtest.spec
89EXTRA_DIST += data/SPECS/weirdnames.spec
90EXTRA_DIST += data/SOURCES/buildrequires-1.0.tar.gz
91EXTRA_DIST += data/SOURCES/hello-1.0-modernize.patch
92EXTRA_DIST += data/SOURCES/hello-1.0-install.patch
93EXTRA_DIST += data/SOURCES/hello-1.0.tar.gz
94EXTRA_DIST += data/SOURCES/hello-2.0.tar.gz
95EXTRA_DIST += data/RPMS/capstest-1.0-1.noarch.rpm
96EXTRA_DIST += data/RPMS/foo-1.0-1.noarch.rpm
97EXTRA_DIST += data/RPMS/hello-1.0-1.i386.rpm
98EXTRA_DIST += data/RPMS/hello-1.0-1.ppc64.rpm
99EXTRA_DIST += data/RPMS/hello-2.0-1.i686.rpm
100EXTRA_DIST += data/RPMS/hello-2.0-1.x86_64.rpm
101EXTRA_DIST += data/RPMS/hello-2.0-1.x86_64-signed.rpm
102EXTRA_DIST += data/SRPMS/foo-1.0-1.src.rpm
103EXTRA_DIST += data/SRPMS/hello-1.0-1.src.rpm
104EXTRA_DIST += data/SOURCES/hello.c
105EXTRA_DIST += data/SPECS/hello-attr-buildid.spec
106EXTRA_DIST += data/SPECS/hello-config-buildid.spec
107EXTRA_DIST += data/SPECS/hello-cd.spec
108EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.pub
109EXTRA_DIST += data/keys/rpm.org-rsa-2048-test.secret
110EXTRA_DIST += data/macros.testfile
111EXTRA_DIST += data/macros.debug
112EXTRA_DIST += data/SOURCES/foo.c
113EXTRA_DIST += data/SOURCES/bar.c
114EXTRA_DIST += data/SOURCES/baz.c
115EXTRA_DIST += data/SOURCES/foobar.h
116EXTRA_DIST += data/misc/hello.intro
117EXTRA_DIST += data/misc/hello.payload
118
119.PHONY: populate_testing
120
121# testsuite voodoo
122AUTOTEST = $(AUTOM4TE) --language=autotest
123$(TESTSUITE): $(srcdir)/package.m4 local.at $(TESTSUITE_AT)
124	$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
125	mv $@.tmp $@
126
127$(srcdir)/package.m4: $(top_srcdir)/configure.ac
128	@{ \
129	echo '# Signature of the current package.'; \
130	echo 'm4_define([AT_PACKAGE_NAME],      [@PACKAGE_NAME@])'; \
131	echo 'm4_define([AT_PACKAGE_TARNAME],   [@PACKAGE_TARNAME@])'; \
132	echo 'm4_define([AT_PACKAGE_VERSION],   [@PACKAGE_VERSION@])'; \
133	echo 'm4_define([AT_PACKAGE_STRING],    [@PACKAGE_STRING@])'; \
134	echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
135	} >'$(srcdir)/package.m4'
136EXTRA_DIST += package.m4
137
138atconfig: ${top_builddir}/config.status
139	(cd ${top_builddir} && ./config.status ${subdir}/atconfig)
140CLEANFILES += atconfig
141
142
143atlocal:	atlocal.in Makefile
144	@sed \
145	  -e "s,[@]usrbindir[@],$(bindir)," \
146	  -e "s,[@]usrlibdir[@],$(libdir)," \
147	  -e "s,[@]execprefix[@],$(exec_prefix)," \
148	  -e "s,[@]usrlibexecdir[@],$(rpmlibexecdir),g" \
149	  -e "s,[@]RPMCONFIGDIR[@],$(rpmconfigdir)," \
150	  -e "s,[@]PYTHON[@],$(PYTHON)," \
151	< $(srcdir)/atlocal.in > atlocal
152DISTCLEANFILES = atlocal
153EXTRA_DIST += atlocal.in
154
155# The chmod is needed when copying from read-only sources (eg in distcheck)
156populate_testing:
157	if [ -d testing ]; then chmod -R u+w testing/; fi
158	rm -rf testing
159	mkdir -p testing/$(bindir)
160	ln -s ./$(bindir) testing/bin
161	mkdir -p testing/usr
162	ln -s ../bin testing/usr/bin
163	(cd ${top_builddir} && \
164	          $(MAKE) DESTDIR=`pwd`/${subdir}/testing install)
165	cp -r ${srcdir}/data/ testing/
166	for d in dev etc magic tmp var; do if [ ! -d testing/$${d} ]; then mkdir testing/$${d}; fi; done
167	for node in urandom stdin stderr stdout null full; do ln -s /dev/$${node} testing/dev/$${node}; done
168	for cf in hosts resolv.conf passwd shadow group gshadow mtab ; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done
169	for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch install wc coreutils xargs; do p=`which $${prog}`; if [ "$${p}" != "" ]; then ln -s $${p} testing/$(bindir)/; fi; done
170	for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done
171	(cd testing/magic && file -C)
172	chmod -R u-w testing/
173
174check_DATA = atconfig atlocal $(TESTSUITE)
175
176if HAVE_FAKECHROOT
177check-local: $(check_DATA) populate_testing
178	$(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS)
179else
180check-local:
181	echo "you need to have fakechroot installed"
182	exit 1
183endif !HAVE_FAKECHROOT
184
185installcheck-local: $(check_DATA) populate_testing
186	$(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir):$(rpmlibexecdir)' $(TESTSUITEFLAGS)
187
188clean-local:
189	test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' --clean
190	rm -f *.tmp
191	if [ -d testing ]; then chmod -R u+w testing/; fi
192	rm -rf testing
193