symm: Expunge stubby header files from the source tree.
[catacomb] / symm / Makefile.am
index 7107f1f..bd7710b 100644 (file)
@@ -46,10 +46,16 @@ EXTRA_DIST          += multigen
 ## we generate it using `multigen'.  Unfortunately, this needs to be done
 ## at the Automake level, which causes some interesting bootstrapping
 ## problems.
+##
+## Of course, now that we have this machinery for the complicated modes
+## generation, we might as well use it for simpler things.
 include modes.am
+include stubs.am
 
 EXTRA_DIST             += modes.am.in modes.am
+EXTRA_DIST             += stubs.am.in stubs.am
 MAINTAINERCLEANFILES   += $(srcdir)/modes.am
+MAINTAINERCLEANFILES   += $(srcdir)/stubs.am
 
 ## Generate the lists.
 $(srcdir)/modes.am: modes.am.in Makefile.am
@@ -61,12 +67,19 @@ $(srcdir)/modes.am: modes.am.in Makefile.am
                        hashmode="$(HASHMODES)" \
                        hashciphermode="$(HASHCIPHERMODES)" \
                        hashmacmode="$(HASHMACMODES)"
+$(srcdir)/stubs.am: stubs.am.in Makefile.am
+       $(AM_V_GEN)$(multigen) -g $(srcdir)/stubs.am.in $(srcdir)/stubs.am \
+               descr,hname,base="$(STUBS_HDR)" cname="$(STUBS_SRC)"
 
 ## Initialize lists of known classes.
 ALL_CIPHERS             = $(CIPHER_MODES)
 ALL_HASHES              = $(HASHES)
 ALL_MACS                = $(MAC_MODES)
 
+## Stub headers and sources.
+STUBS_HDR               =
+STUBS_SRC               =
+
 ###--------------------------------------------------------------------------
 ### Block ciphers.
 
@@ -191,6 +204,7 @@ BLKCS                       += safer safersk
 libsymm_la_SOURCES     += $(precomp)/safer-tab.c
 PRECOMPS               += $(precomp)/safer-tab.c
 PRECOMP_PROGS          += safer-mktab
+STUBS_HDR              += SAFER-SK,safersk,safer
 if !CROSS_COMPILING
 $(precomp)/safer-tab.c:
        $(AM_V_at)$(MKDIR_P) $(precomp)
@@ -297,6 +311,8 @@ HASHES                      += sha
 ## The National Security Agency's `SHA-2' suite.
 HASHES                 += sha224 sha256
 HASHES                 += sha384 sha512
+STUBS_HDR              += SHA-224,sha224,sha256
+STUBS_HDR              += SHA-384,sha384,sha512
 
 ## Anderson and Biham's `Tiger' hash function.
 HASHES                 += tiger
@@ -316,6 +332,7 @@ HASHES                      += whirlpool whirlpool256
 libsymm_la_SOURCES     += $(precomp)/whirlpool-tab.c
 PRECOMPS               += $(precomp)/whirlpool-tab.c
 PRECOMP_PROGS          += whirlpool-mktab
+STUBS_HDR              += Whirlpool-256,whirlpool256,whirlpool
 if !CROSS_COMPILING
 $(precomp)/whirlpool-tab.c:
        $(AM_V_at)$(MKDIR_P) $(precomp)
@@ -391,6 +408,27 @@ pkginclude_HEADERS += $(GENMODES_H)
 $(GENMODES_H): modes/gen-stamp
 
 ###--------------------------------------------------------------------------
+### Autogenerated stub headers.
+
+## The master stamp file.
+EXTRA_DIST             += stub.h.in
+EXTRA_DIST             += stubs.gen-stamp
+MAINTAINERCLEANFILES   += stubs.gen-stamp
+stubs.gen-stamp: Makefile.am
+       $(AM_V_at)$(MKDIR_P) $(srcdir)/stubs
+       $(AM_V_GEN)$(multigen) -g $(srcdir)/stub.h.in \
+               $(srcdir)/@name.h descr,name,base="$(STUBS_HDR)"
+       $(AM_V_GEN)$(multigen) -g $(srcdir)/stub.c.in \
+               $(srcdir)/@name.c name="$(STUBS_SRC)"
+       $(AM_V_at)touch $(srcdir)/stubs.gen-stamp
+
+## Generated stub headers.
+BUILT_SOURCES          += $(STUB_H) $(STUB_C)
+MAINTAINERCLEANFILES   += $(STUB_H) $(STUB_C)
+pkginclude_HEADERS     += $(STUB_H)
+$(STUB_H) $(STUB_C): stubs.gen-stamp
+
+###--------------------------------------------------------------------------
 ### Tables of classes for encryption, hashing, and message authentication.
 
 ## The skeleton for the class tables.