more generic approach

diff --git a/examples/Makefile.am b/examples/Makefile.am
index 2fb1c2c..4890a55 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -22,8 +22,8 @@
 	./crfc2asn1.pl $(ASN1_SOURCE_1)
 
 EXTRA_DIST = rfc*.txt				\
+	decoder-template.c			\
 	sample.source.PKIX1/README		\
-	sample.source.PKIX1/x509dump.c		\
 	sample.source.PKIX1/config.h		\
 	sample.source.PKIX1/Makefile		\
 	sample.source.PKIX1/regenerate.Makefile
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 7aad746..61bc66d 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -174,8 +174,8 @@
 	rfc3280-PKIX1Implicit88.asn1
 
 EXTRA_DIST = rfc*.txt				\
+	decoder-template.c			\
 	sample.source.PKIX1/README		\
-	sample.source.PKIX1/x509dump.c		\
 	sample.source.PKIX1/config.h		\
 	sample.source.PKIX1/Makefile		\
 	sample.source.PKIX1/regenerate.Makefile
diff --git a/examples/sample.source.PKIX1/Makefile b/examples/sample.source.PKIX1/Makefile
index 9626063..a69669d 100644
--- a/examples/sample.source.PKIX1/Makefile
+++ b/examples/sample.source.PKIX1/Makefile
@@ -357,6 +357,9 @@
 	./regenerate.Makefile
 	make
 
+$(TARGET).o: ../decoder-template.c
+	$(CC) $(CFLAGS) -Dasn_DEF=asn_DEF_Certificate -o $(TARGET).o -c ../decoder-template.c
+
 distclean: clean
 	rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
 	rm -f Makefile.am.sample
diff --git a/examples/sample.source.PKIX1/README b/examples/sample.source.PKIX1/README
index 76762f0..6a4ecb4 100644
--- a/examples/sample.source.PKIX1/README
+++ b/examples/sample.source.PKIX1/README
@@ -1,5 +1,6 @@
 
 The X.509 (PKIX1) certificate decoder. Invoking `make` will compile the ASN.1
-specifications from the RFC3280 in the above directory. This x509dump.c will
-supply the missing "int main()" routine which drives the decoding process.
+specifications from the RFC3280 in the above directory.
+The ../decoder-template.c will supply the missing "int main()" routine
+which drives the decoding process.