-TESTS = $(check_PROGRAMS) check_symbols
-
-CFLAGS_tests = `$(VLC_CONFIG) --cflags libvlc`
-LDFLAGS_tests = $(AM_LDFLAGS) -no-install
-
-test_block_SOURCES = test/block.c
-test_block_LDADD = libvlccore.la
-test_block_CFLAGS = $(CFLAGS_tests)
-test_block_LDFLAGS = $(LDFLAGS_tests)
-
-test_dictionary_SOURCES = test/dictionary.c
-test_dictionary_LDADD = libvlccore.la
-test_dictionary_CFLAGS = $(CFLAGS_tests)
-test_dictionary_LDFLAGS = $(LDFLAGS_tests)
-
-test_i18n_atof_SOURCES = test/i18n_atof.c text/charset.c
-test_i18n_atof_LDADD = libvlccore.la
-test_i18n_atof_CFLAGS = $(CFLAGS_tests)
-test_i18n_atof_LDFLAGS = $(LDFLAGS_tests)
-
-test_url_SOURCES = test/url.c
-test_url_LDADD = libvlccore.la
-test_url_CFLAGS = $(CFLAGS_tests)
-test_url_LDFLAGS = $(LDFLAGS_tests)
-
-test_utf8_SOURCES = test/utf8.c
-test_utf8_LDADD = libvlccore.la
-test_utf8_CFLAGS = $(CFLAGS_tests)
-test_utf8_LDFLAGS = $(LDFLAGS_tests)
-
-test_headers_SOURCES = test/headers.c
-test_headers_CFLAGS = $(CFLAGS_tests)
-test_headers_LDFLAGS = $(LDFLAGS_tests)
+TESTS = check_symbols
+
+check_DATA = libvlc-headers.sym libvlc-sorted.sym
+CLEANFILES += $(check_DATA)
+
+libvlc-sorted.sym: libvlccore.sym
+ rm -f libvlc-sorted.sym
+ sort -fdu < "$(srcdir)/libvlccore.sym" > libvlc-sorted.sym
+
+libvlc-headers.sym:
+ rm -f libvlc-headers.sym
+ cat ${srcdir}/../include/vlc_*.h ${srcdir}/control/*.h | \
+ sed -n -e 's/^[ ]*VLC_EXPORT[ ]*([^,]*,\([^,]*\),.*/\1/p' | \
+ sed -e 's/[^a-zA-Z0-9_]*//' | \
+ sort -fdu > libvlc-headers.sym
+
+.PHONY: libvlc-headers.sym