math/mpreduce.h: Missing include files.
[u/mdw/catacomb] / symm / Makefile.am
index 9c2895b..c4043d2 100644 (file)
@@ -32,7 +32,7 @@ nodist_libsymm_la_SOURCES =
 
 TEST_LIBS               = libsymm.la
 
-VPATH                  += modes
+VPATH                  += $(srcdir)/modes
 
 ###--------------------------------------------------------------------------
 ### Autogenerated lists.
@@ -89,17 +89,21 @@ pkginclude_HEADERS  += $(BLKC_H)
 
 ## Schneier's `Blowfish' block cipher.
 BLKCS                  += blowfish
-blowfish.lo: blowfish-tab.h
-CLEANFILES             += blowfish-tab.h
-noinst_PROGRAMS                += blowfish-mktab
+libsymm_la_SOURCES     += $(precomp)/blowfish-tab.c
+PRECOMPS               += $(precomp)/blowfish-tab.c
+PRECOMP_PROGS          += blowfish-mktab
 blowfish_mktab_CPPFLAGS         = $(AM_CPPFLAGS) -DQUIET
-blowfish-tab.h: blowfish-mktab$e
-       $(AM_V_GEN)./blowfish-mktab >blowfish-tab.h.new && \
-               mv blowfish-tab.h.new blowfish-tab.h
+if !CROSS_COMPILING
+$(precomp)/blowfish-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) blowfish-mktab$e
+       $(AM_V_GEN)./blowfish-mktab >$(precomp)/blowfish-tab.c.new && \
+               mv $(precomp)/blowfish-tab.c.new $(precomp)/blowfish-tab.c
+endif
 
 ## Adams and Tavares' `CAST' block ciphers.
 BLKCS                  += cast128 cast256
-libsymm_la_SOURCES     += cast-s.c cast-sk.c cast-base.h cast-tab.h
+libsymm_la_SOURCES     += cast-s.c cast-sk.c cast-base.h
 cast256.$t: t/cast256
 EXTRA_DIST             += t/cast256.aes
 MAINTAINERCLEANFILES   += $(srcdir)/t/cast256
@@ -111,29 +115,36 @@ t/cast256: t/cast256.aes
 
 ## IBM's `DES' block cipher, by Feistel, Coppersmith, and others.
 BLKCS                  += des des3
-libsymm_la_SOURCES     += des-base.h des-base.c desx-tab.h
-des-base.lo: des-tab.h
-CLEANFILES             += des-tab.h
-noinst_PROGRAMS                += des-mktab
-des-tab.h: des-mktab$e
-       $(AM_V_GEN)./des-mktab >des-tab.h.new && \
-               mv des-tab.h.new des-tab.h
+libsymm_la_SOURCES     += des-base.h $(precomp)/des-tab.c
+PRECOMPS               += $(precomp)/des-tab.c
+PRECOMP_PROGS          += des-mktab
+if !CROSS_COMPILING
+$(precomp)/des-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) des-mktab$e
+       $(AM_V_GEN)./des-mktab >$(precomp)/des-tab.c.new && \
+               mv $(precomp)/des-tab.c.new $(precomp)/des-tab.c
+endif
 
 ## Rivest's `DESX' variant, with pre- and post-whitening.
 BLKCS                  += desx
-libsymm_la_SOURCES     += desx-tab.h
+libsymm_la_SOURCES     += desx-tab.c
 
 ## Lai and Massey's IDEA.
 BLKCS                  += idea
 
 ## IBM's `MARS' block cipher.
 BLKCS                  += mars
-mars.lo: mars-tab.h
-CLEANFILES             += mars-tab.h
-noinst_PROGRAMS                += mars-mktab
-mars-tab.h: mars-mktab$e
-       $(AM_V_GEN)./mars-mktab >mars-tab.h.new && \
-               mv mars-tab.h.new mars-tab.h
+libsymm_la_SOURCES     += $(precomp)/mars-tab.c
+PRECOMPS               += $(precomp)/mars-tab.c
+PRECOMP_PROGS          += mars-mktab
+if !CROSS_COMPILING
+$(precomp)/mars-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) mars-mktab$e
+       $(AM_V_GEN)./mars-mktab >$(precomp)/mars-tab.c.new && \
+               mv $(precomp)/mars-tab.c.new $(precomp)/mars-tab.c
+endif
 mars.$t: t/mars
 EXTRA_DIST             += t/mars.aes
 MAINTAINERCLEANFILES   += $(srcdir)/t/mars
@@ -148,7 +159,7 @@ BLKCS                       += noekeon
 
 ## Rivest's `RC2' block cipher.
 BLKCS                  += rc2
-libsymm_la_SOURCES     += rc2-tab.h
+libsymm_la_SOURCES     += rc2-tab.c
 
 ## Rivest's `RC5'.
 BLKCS                  += rc5
@@ -156,12 +167,16 @@ BLKCS                     += rc5
 ## Daemen and Rijmen's `Rijndael' block cipher, selected as AES.
 BLKCS                  += rijndael rijndael192 rijndael256
 libsymm_la_SOURCES     += rijndael-base.h rijndael-base.c
-rijndael-base.lo: rijndael-tab.h
-CLEANFILES             += rijndael-tab.h
-noinst_PROGRAMS                += rijndael-mktab
-rijndael-tab.h: rijndael-mktab$e
-       $(AM_V_GEN)./rijndael-mktab >rijndael-tab.h.new && \
-               mv rijndael-tab.h.new rijndael-tab.h
+libsymm_la_SOURCES     += $(precomp)/rijndael-tab.c
+PRECOMPS               += $(precomp)/rijndael-tab.c
+PRECOMP_PROGS          += rijndael-mktab
+if !CROSS_COMPILING
+$(precomp)/rijndael-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) rijndael-mktab$e
+       $(AM_V_GEN)./rijndael-mktab >$(precomp)/rijndael-tab.c.new && \
+               mv $(precomp)/rijndael-tab.c.new $(precomp)/rijndael-tab.c
+endif
 rijndael.$t: t/rijndael
 EXTRA_DIST             += t/rijndael.aes
 MAINTAINERCLEANFILES   += $(srcdir)/t/rijndael
@@ -173,17 +188,21 @@ t/rijndael: t/rijndael.aes
 
 ## Massey's `SAFER' block ciphers.
 BLKCS                  += safer safersk
-safer.lo: safer-tab.h
-CLEANFILES             += safer-tab.h
-noinst_PROGRAMS                += safer-mktab
-safer-tab.h: safer-mktab$e
-       $(AM_V_GEN)./safer-mktab >safer-tab.h.new && \
-               mv safer-tab.h.new safer-tab.h
+libsymm_la_SOURCES     += $(precomp)/safer-tab.c
+PRECOMPS               += $(precomp)/safer-tab.c
+PRECOMP_PROGS          += safer-mktab
+if !CROSS_COMPILING
+$(precomp)/safer-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) safer-mktab$e
+       $(AM_V_GEN)./safer-mktab >$(precomp)/safer-tab.c.new && \
+               mv $(precomp)/safer-tab.c.new $(precomp)/safer-tab.c
+endif
 
 ## Anderson, Biham and Knudsen's `Serpent' block cipher.
 BLKCS                  += serpent
 libsymm_la_SOURCES     += serpent-sbox.h
-noinst_PROGRAMS                += serpent-check
+check_PROGRAMS         += serpent-check
 TESTS                  += serpent-check
 serpent.$t: t/serpent
 EXTRA_DIST             += t/serpent.aes
@@ -197,16 +216,20 @@ t/serpent: t/serpent.aes
 ## The National Security Agency's `Skipjack' block cipher.  You don't want to
 ## use this.
 BLKCS                  += skipjack
-libsymm_la_SOURCES     += skipjack-tab.h
+libsymm_la_SOURCES     += skipjack-tab.c
 
 ## Daemen and Rijmen's `Square' block cipher.
 BLKCS                  += square
-square.lo: square-tab.h
-CLEANFILES             += square-tab.h
-noinst_PROGRAMS                += square-mktab
-square-tab.h: square-mktab$e
-       $(AM_V_GEN)./square-mktab >square-tab.h.new && \
-               mv square-tab.h.new square-tab.h
+libsymm_la_SOURCES     += $(precomp)/square-tab.c
+PRECOMPS               += $(precomp)/square-tab.c
+PRECOMP_PROGS          += square-mktab
+if !CROSS_COMPILING
+$(precomp)/square-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) square-mktab$e
+       $(AM_V_GEN)./square-mktab >$(precomp)/square-tab.c.new && \
+               mv $(precomp)/square-tab.c.new $(precomp)/square-tab.c
+endif
 
 ## Wheeler and Needham's `TEA' and `XTEA' block ciphers.
 BLKCS                  += tea xtea
@@ -214,12 +237,16 @@ BLKCS                     += tea xtea
 ## Schneier, Kelsey, Whiting, Wagner, Hall and Ferguson's `Twofish' block
 ## cipher.
 BLKCS                  += twofish
-twofish.lo: twofish-tab.h
-CLEANFILES             += twofish-tab.h
-noinst_PROGRAMS                += twofish-mktab
-twofish-tab.h: twofish-mktab$e
-       $(AM_V_GEN)./twofish-mktab >twofish-tab.h.new && \
-               mv twofish-tab.h.new twofish-tab.h
+libsymm_la_SOURCES     += $(precomp)/twofish-tab.c
+PRECOMPS               += $(precomp)/twofish-tab.c
+PRECOMP_PROGS          += twofish-mktab
+if !CROSS_COMPILING
+$(precomp)/twofish-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) twofish-mktab$e
+       $(AM_V_GEN)./twofish-mktab >$(precomp)/twofish-tab.c.new && \
+               mv $(precomp)/twofish-tab.c.new $(precomp)/twofish-tab.c
+endif
 twofish.$t: t/twofish
 EXTRA_DIST             += t/twofish.aes
 MAINTAINERCLEANFILES   += $(srcdir)/t/twofish
@@ -259,7 +286,7 @@ HASHES                      += has160
 
 ## Rivest's `MD' series of hash functions
 HASHES                 += md2 md4 md5
-libsymm_la_SOURCES     += md2-tab.h
+libsymm_la_SOURCES     += md2-tab.c
 
 ## Dobbertin, Bosselaers and Preneel's `RIPEMD' suite.
 HASHES                 += rmd128 rmd160 rmd256 rmd320
@@ -273,22 +300,29 @@ HASHES                    += sha384 sha512
 
 ## Anderson and Biham's `Tiger' hash function.
 HASHES                 += tiger
-libsymm_la_SOURCES     += tiger-base.h
-tiger.lo: tiger-tab.h
-CLEANFILES             += tiger-tab.h
-noinst_PROGRAMS                += tiger-mktab
-tiger-tab.h: tiger-mktab$e
-       $(AM_V_GEN)./tiger-mktab >tiger-tab.h.new && \
-               mv tiger-tab.h.new tiger-tab.h
+libsymm_la_SOURCES     += tiger-base.h $(precomp)/tiger-tab.c
+PRECOMPS               += $(precomp)/tiger-tab.c
+PRECOMP_PROGS          += tiger-mktab
+if !CROSS_COMPILING
+$(precomp)/tiger-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) tiger-mktab$e
+       $(AM_V_GEN)./tiger-mktab >$(precomp)/tiger-tab.c.new && \
+               mv $(precomp)/tiger-tab.c.new $(precomp)/tiger-tab.c
+endif
 
 ## Barreto and Rijmen's `Whirlpool' hash function.
 HASHES                 += whirlpool whirlpool256
-whirlpool.lo: whirlpool-tab.h
-CLEANFILES             += whirlpool-tab.h
-noinst_PROGRAMS                += whirlpool-mktab
-whirlpool-tab.h: whirlpool-mktab$e
-       $(AM_V_GEN)./whirlpool-mktab >whirlpool-tab.h.new && \
-               mv whirlpool-tab.h.new whirlpool-tab.h
+libsymm_la_SOURCES     += $(precomp)/whirlpool-tab.c
+PRECOMPS               += $(precomp)/whirlpool-tab.c
+PRECOMP_PROGS          += whirlpool-mktab
+if !CROSS_COMPILING
+$(precomp)/whirlpool-tab.c:
+       $(AM_V_at)$(MKDIR_P) $(precomp)
+       $(AM_V_at)$(MAKE) whirlpool-mktab$e
+       $(AM_V_GEN)./whirlpool-mktab >$(precomp)/whirlpool-tab.c.new && \
+               mv $(precomp)/whirlpool-tab.c.new $(precomp)/whirlpool-tab.c
+endif
 
 ## Bellare, Canetti and Krawczyk's `HMAC' mode for message authentication.
 HASHMACMODES           += hmac
@@ -322,36 +356,39 @@ ALL_CIPHERS               += seal
 ### Autogenerated mode implementations.
 
 ## The master stamp file, indicating that we generated all of the sources.
-CLEANFILES             += modes/gen-stamp
 EXTRA_DIST             += mode.h.in mode.c.in
+EXTRA_DIST             += modes/gen-stamp
+MAINTAINERCLEANFILES   += modes/gen-stamp
 modes/gen-stamp:
-       $(AM_V_at)$(MKDIR_P) modes
+       $(AM_V_at)$(MKDIR_P) $(srcdir)/modes
        $(AM_V_GEN)$(multigen) -g $(srcdir)/mode.c.in \
-               modes/@base-@mode.c \
+               $(srcdir)/modes/@base-@mode.c \
                base="$(BLKCS)" mode="$(BLKCMODES)"
        $(AM_V_at)$(multigen) -g $(srcdir)/mode.h.in \
-               modes/@base-@mode.h \
+               $(srcdir)/modes/@base-@mode.h \
                base="$(BLKCS)" mode="$(BLKCMODES)"
        $(AM_V_at)$(multigen) -g $(srcdir)/mode.c.in \
-               modes/@base-@mode.c \
+               $(srcdir)/modes/@base-@mode.c \
                base="$(HASHES)" mode="$(HASHMODES)"
        $(AM_V_at)$(multigen) -g $(srcdir)/mode.h.in \
-               modes/@base-@mode.h \
+               $(srcdir)/modes/@base-@mode.h \
                base="$(HASHES)" mode="$(HASHMODES)"
-       $(AM_V_at)touch modes/gen-stamp
+       $(AM_V_at)touch $(srcdir)/modes/gen-stamp
 
 ## The individual mode interfaces and implementations.
 pkginclude_HEADERS     += $(MODE_H)
 
 ## Generated implementations.
 BUILT_SOURCES          += $(GENMODES_C)
-CLEANFILES             += $(GENMODES_C)
+EXTRA_DIST             += $(GENMODES_C)
+MAINTAINERCLEANFILES   += $(GENMODES_C)
 nodist_libsymm_la_SOURCES += $(GENMODES_C)
 $(GENMODES_C): modes/gen-stamp
 
 ## Generated interfaces.
 BUILT_SOURCES          += $(GENMODES_H)
-CLEANFILES             += $(GENMODES_H)
+EXTRA_DIST             += $(GENMODES_H)
+MAINTAINERCLEANFILES   += $(GENMODES_H)
 nodist_pkginclude_HEADERS += $(GENMODES_H)
 $(GENMODES_H): modes/gen-stamp