X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/e2edda6866f01a1a9051abedc91c6d5a9d6aa2d8..f0c52873e4c1e3a16bb2d5a086df2526f698e4ac:/Makefile.m4 diff --git a/Makefile.m4 b/Makefile.m4 index 04d03f6..6312e98 100644 --- a/Makefile.m4 +++ b/Makefile.m4 @@ -1,6 +1,6 @@ ## -*-m4-*- ## -## $Id: Makefile.m4,v 1.83 2004/04/21 00:37:32 mdw Exp $ +## $Id$ ## ## Makefile for Catacomb ## @@ -15,12 +15,12 @@ ## it under the terms of the GNU Library General Public License as ## published by the Free Software Foundation; either version 2 of the ## License, or (at your option) any later version. -## +## ## Catacomb is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU Library General Public License for more details. -## +## ## You should have received a copy of the GNU Library General Public ## License along with Catacomb; if not, write to the Free ## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, @@ -67,6 +67,7 @@ define(`cipher_modes', `_(ecb) _(cbc) _(cfb) _(ofb) _(counter)') define(`hashes', `dnl _(md5) _(md4) _(md2) _(tiger) _(has160) dnl _(sha) _(sha224) _(sha256) _(sha384) _(sha512) dnl +_(whirlpool) _(whirlpool256) dnl _(rmd128) _(rmd160) _(rmd256) _(rmd320)') define(`hash_modes', `_(mgf) _(hmac)') @@ -84,45 +85,65 @@ modes-stamp: genmodes define(`gen_tables', `dnl _(des) _(blowfish) _(twofish) dnl -_(square) _(rijndael) dnl +_(square) _(rijndael) _(whirlpool) dnl _(safer) _(mars) _(tiger) dnl _(gfshare) _(gfx-sqr)') -autoheaders: addsuffix(`gen_tables', `-tab.h') primetab.h mptypes.h +autoheaders: \ + addsuffix(`gen_tables', `-tab.h') \ + primetab.h wheel.h mptypes.h mplimits.h define(`emit', ` -_item`'-tab.h: _item`'-mktab +_item`'-tab.h: _item`'-mktab$(EXEEXT) ./_item`'-mktab >_item`'-tab.h.new mv _item`'-tab.h.new _item`'-tab.h')dnl gen_tables primetab.h: primetab.c -primetab.c: genprimes +primetab.c: genprimes$(EXEEXT) ./genprimes -h primetab.h -c primetab.c \ -s CATACOMB_PRIMETAB_H -n 256 \ -t "unsigned short" -i primetab -archinclude_HEADERS = mptypes.h -mptypes.h: mptypes + +wheel.h: wheel.c +wheel.c: genwheel$(EXEEXT) + ./genwheel -h wheel.h -c wheel.c \ + -s CATACOMB_WHEEL_H -n 5 \ + -t "unsigned char" -i wheel + +archinclude_HEADERS = mptypes.h mplimits.h +mptypes.h: mptypes$(EXEEXT) ./mptypes >mptypes.h.new mv mptypes.h.new mptypes.h -ectab.c: ectab.in ec-gentab.awk mpdump +mplimits.h: genlimits$(EXEEXT) + ./genlimits h >mplimits.h.new + mv mplimits.h.new mplimits.h +mplimits.c: genlimits$(EXEEXT) + ./genlimits c >mplimits.c.new + mv mplimits.c.new mplimits.c + +ectab.c: ectab.in ec-gentab.awk mpdump$(EXEEXT) $(srcdir)/ec-gentab.awk <$(srcdir)/ectab.in >ectab.c.new mv ectab.c.new ectab.c -ptab.c: ptab.in p-gentab.awk mpdump +ptab.c: ptab.in p-gentab.awk mpdump$(EXEEXT) $(srcdir)/p-gentab.awk <$(srcdir)/ptab.in >ptab.c.new mv ptab.c.new ptab.c +bintab.c: bintab.in bin-gentab.awk mpdump$(EXEEXT) + $(srcdir)/bin-gentab.awk <$(srcdir)/bintab.in >bintab.c.new + mv bintab.c.new bintab.c + gciphertab.c: gengctab $(srcdir)/gengctab gccipher gcipher >gciphertab.c.new \ "lit(join(`ciphers', `-', `cipher_modes')) \ lit(join(`hashes', `-', `_(mgf)')) \ - rc4 seal" + rc4 seal" mv gciphertab.c.new gciphertab.c gmactab.c: gengctab $(srcdir)/gengctab gcmac gmac >gmactab.c.new \ - "lit(join(`hashes', `-', `_(hmac)'))" + "lit(join(`hashes', `-', `_(hmac)'))" mv gmactab.c.new gmactab.c ghashtab.c: gengctab @@ -142,80 +163,89 @@ BUILT_SOURCES = \ lib_LTLIBRARIES = libcatacomb.la -libcatacomb_la_LDFLAGS = -version-info 3:0:1 +libcatacomb_la_LIBADD = $(CATACOMB_LIBS) +libcatacomb_la_LDFLAGS = -version-info 3:1:1 ## Middle number is the patchlevel. Final number is the minor version. The ## difference between the first and last numbers is major version. pkginclude_HEADERS = \ - arena.h paranoia.h buf.h qdparse.h \ + arena.h paranoia.h buf.h qdparse.h keysz.h \ blkc.h hash.h gcipher.h ghash.h gmac.h grand.h ghash-def.h \ lcrand.h fibrand.h rc4.h seal.h rand.h noise.h fipstest.h maurer.h \ - key.h key-data.h passphrase.h pixie.h lmem.h \ + key.h key-error.h key-data.h passphrase.h pixie.h lmem.h \ mpx.h bitops.h mpw.h mpscan.h mparena.h mp.h mptext.h mpint.h \ - exp.h mpbarrett.h mpmont.h mpreduce.h \ + exp.h mpbarrett.h mpmont.h mpreduce.h mp-exp.h \ mpcrt.h mprand.h mpmul.h \ - gfx.h gf.h gfreduce.h gfn.h \ - primetab.h pfilt.h rabin.h \ - pgen.h prim.h strongprime.h limlee.h keycheck.h \ + gfx.h gf.h gfreduce.h gfn.h gf-exp.h \ + primetab.h wheel.h pfilt.h rabin.h \ + pgen.h primeiter.h prim.h strongprime.h limlee.h keycheck.h \ bbs.h rsa.h dh.h dsarand.h dsa.h gdsa.h gkcdsa.h \ tlsprf.h sslprf.h \ gfshare.h share.h \ rho.h \ - field.h ec.h ec-exp.h ec-test.h ectab.h ec-keys.h ec-raw.h \ - ptab.h group.h \ + field.h field-guts.h field-exp.h \ + ec.h ec-guts.h ec-exp.h ec-test.h ectab.h ec-keys.h ec-raw.h \ + ptab.h bintab.h group.h group-guts.h \ allwithsuffix(`ciphers', `cipher_modes', `.h') \ allwithsuffix(`hashes', `hash_modes', `.h') \ addsuffix(`cipher_modes', `-def.h') \ addsuffix(`hash_modes', `-def.h') crc32.h +define(`MP_BASE', + `mpx.c mpx-kmul.c mpx-ksqr.c mpscan.c mparena.c \ + mp-misc.c mp-mem.c mp-const.c mp-arith.c mp-io.c \ + mptext.c mptext-string.c') + define(`MP_SOURCES', - `mpx.c mpx-kmul.c mpx-ksqr.c mpscan.c mparena.c qdparse.c \ - mp-misc.c mp-mem.c mp-const.c mp-io.c mp-arith.c mp-test.c \ - mp-sqrt.c mp-gcd.c mp-jacobi.c mp-modsqrt.c \ - mpint.c mptext.c mptext-file.c mptext-string.c mptext-dstr.c \ + `qdparse.c \ + mp-test.c mplimits.c \ + mp-sqrt.c mp-gcd.c mp-jacobi.c mp-modsqrt.c mp-exp.c mp-modexp.c \ + mpint.c mptext-file.c mptext-dstr.c \ mptext-len.c \ exp.c mpcrt.c mpmul.c mprand.c \ mpbarrett.c mpbarrett-exp.c mpbarrett-mexp.c mpbarrett-exp.h \ mpmont.c mpmont-exp.c mpmont-mexp.c mpmont-exp.h \ mpreduce.c mpreduce-exp.h \ - group-stdops.c group-exp.c group-exp.h g-prime.c group-parse.c \ + group-stdops.c group-exp.c group-exp.h g-prime.c g-bin.c \ + group-parse.c \ group-string.c group-file.c group-dstr.c \ - rho.c buf.c ptab.c \ + rho.c buf.c ptab.c bintab.c \ GF_SOURCES PGEN_SOURCES EC_SOURCES') define(`GF_SOURCES', - `gfx.c gfx-kmul.c gfx-sqr.c gf-arith.c gf-gcd.c \ + `gfx.c gfx-kmul.c gfx-sqr.c gf-arith.c gf-exp.c gf-gcd.c \ gfreduce.c gfreduce-exp.h gfn.c') define(`EC_SOURCES', - `field.c field-parse.c f-prime.c f-niceprime.c f-binpoly.c \ + `field.c field-parse.c field-exp.c \ + f-prime.c f-niceprime.c f-binpoly.c \ ec.c ec-exp.c ec-prime.c ec-bin.c ec-test.c ec-info.c ectab.c \ ec-fetch.c ec-raw.c g-ec.c') define(`PGEN_SOURCES', - `pfilt.c rabin.c \ - pgen.c pgen-stdev.c pgen-safe.c pgen-gcd.c prim.c strongprime.c \ - limlee.c \ + `pfilt.c primeiter.c rabin.c \ + pgen.c pgen-stdev.c pgen-gcd.c pgen-simul.c \ + prim.c strongprime.c limlee.c \ keycheck.c keycheck-mp.c keycheck-report.c \ bbs-rand.c bbs-gen.c bbs-jump.c bbs-fetch.c \ rsa-priv.c rsa-pub.c rsa-gen.c rsa-recover.c rsa-fetch.c \ oaep.c pkcs1.c pss.c \ - dh-gen.c dh-limlee.c dh-check.c dh-fetch.c dh-param.c \ - dsarand.c dsa-sign.c dsa-verify.c dsa-gen.c dsa-check.c \ + dh-gen.c dh-limlee.c dh-kcdsa.c dh-check.c dh-fetch.c dh-param.c \ + dsarand.c dsa-misc.c dsa-sign.c dsa-verify.c dsa-gen.c dsa-check.c \ gdsa.c gkcdsa.c \ key-data.c key-flags.c key-text.c key-binary.c key-pass.c \ key-pack.c key-misc.c key-file.c key-attr.c key-io.c key-moan.c \ key-error.c key-fetch.c \ - primetab.c share.c') + primetab.c wheel.c share.c') libcatacomb_la_SOURCES = \ - grand.c keysz.c \ + grand.c keysz.c keysz-conv.c \ lcrand.c fibrand.c rc4.c seal.c rand.c noise.c fipstest.c maurer.c \ arena.c \ - passphrase.c pixie-client.c pixie-common.c lmem.c \ + passphrase.c pixie-common.c lmem.c \ tlsprf.c sslprf.c \ gfshare.c \ - MP_SOURCES karatsuba.h \ + MP_BASE MP_SOURCES karatsuba.h \ gciphertab.c ghashtab.c gmactab.c \ des-base.c des-base.h \ desx-tab.h \ @@ -235,37 +265,53 @@ blowfish.lo: blowfish-tab.h twofish.lo: twofish-tab.h square.lo: square-tab.h rijndael-base.lo: rijndael-tab.h +whirlpool.lo: whirlpool-tab.h safer.lo: safer-tab.h mars.lo: mars-tab.h tiger.lo: tiger-tab.h gfshare.lo: gfshare-tab.h gfx-sqr.lo: gfx-sqr-tab.h -patsubst(MP_SOURCES, `\.c\>', `.lo') dsig.o keyutil.o rspit.o: \ - mptypes.h primetab.h ## --- Utility programs --- bin_PROGRAMS = \ - dsig key pixie rspit factorial hashsum mkphrase catcrypt -bin_SCRIPTS = catacomb-config xpixie + dsig key pixie cookie rspit factorial hashsum mkphrase \ + catcrypt catsign +noinst_LIBRARIES = libcatcrypt.a +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = catacomb.pc noinst_PROGRAMS = \ - genprimes mptypes serpent-check bittest mpdump \ + genprimes genwheel mptypes genlimits serpent-check bittest mpdump \ perftest \ addsuffix(`gen_tables', `-mktab') -LDADD = libcatacomb.la - -dsig_SOURCES = dsig.c cc.h cc-sig.c getdate.y getdate.h -catcrypt_SOURCES = catcrypt.c cc.h cc-sig.c cc-kem.c cc-enc.c -key_SOURCES = keyutil.c getdate.y getdate.h +LDADD = libcatcrypt.a libcatacomb.la + +define(`LIBCAT_SRC', `cc.h getdate.h dnl + cc-sig.c cc-subcmd.c cc-enc.c cc-kem.c cc-list.c') +libcatcrypt_a_SOURCES = LIBCAT_SRC getdate.y + +patsubst(MP_BASE MP_SOURCES, `\.c\>', `.lo') dsig.o keyutil.o rspit.o \ + patsubst(LIBCAT_SRC, `\.c\>', `.o'): \ + mptypes.h primetab.h wheel.h +patsubst(MP_SOURCES, `\.c\>', `.lo'): mplimits.h + +dsig_SOURCES = dsig.c +cookie_SOURCES = cookie.c +catcrypt_SOURCES = catcrypt.c +catsign_SOURCES = catsign.c +key_SOURCES = keyutil.c hashsum_SOURCES = hashsum.c rspit_SOURCES = rspit.c factorial_SOURCES = factorial.c perftest_SOURCES = perftest.c -pixie_SOURCES = pixie.c pixie-common.c lmem.c arena.c -pixie_LDADD = +perftest_LDADD = $(CATACOMB_LIBS) $(LDADD) +pixie_SOURCES = pixie.c pixie-common.c lmem.c arena.c passphrase.c +pixie_LDADD = $(PIXIE_LIBS) +pixie_CFLAGS = $(AM_CFLAGS) mkphrase_SOURCES = mkphrase.c +mkphrase_LDADD = $(CATACOMB_LIBS) $(LDADD) bittest_SOURCES = bittest.c -bittest_LDADD = +bittest_LDADD = define(`emit', ` patsubst(_item, `[^a-zA-Z0-9]', `_')_mktab_SOURCES = _item`'-mktab.c @@ -278,15 +324,19 @@ serpent_check_LDADD = genprimes_SOURCES = genprimes.c genprimes_LDADD = +genwheel_SOURCES = genwheel.c +genwheel_LDADD = + mptypes_SOURCES = mptypes.c mptypes_LDADD = -mpdump_SOURCES = \ - mpdump.c \ - mpx.c mpx-kmul.c mpx-ksqr.c mpscan.c mparena.c \ - mp-misc.c mp-mem.c mp-const.c mp-arith.c mp-io.c \ - mptext.c mptext-string.c +genlimits_SOURCES = genlimits.c MP_BASE mptypes.h +genlimits_LDADD = +genlimits_CFLAGS = $(AM_CFLAGS) + +mpdump_SOURCES = mpdump.c MP_BASE mpdump_LDADD = +mpdump_CFLAGS = $(AM_CFLAGS) ## --- Install the pixie setuid-root if we can --- ## @@ -294,7 +344,7 @@ mpdump_LDADD = ## `install' if there are subdirectories. changequote(<, >) -install: install-exec-hook +# install: install-exec-hook install-exec-hook: @pixie="$(DESTDIR)$(bindir)/`echo pixie|sed $(transform)`"; \ if chown root $$pixie && chmod 4755 $$pixie; then \ @@ -309,14 +359,25 @@ changequote(`, ') ## --- Documentation --- -man_MANS = key.1 hashsum.1 keyring.5 pixie.1 +man_MANS = \ + key.1 dsig.1 cookie.1 catcrypt.1 catsign.1 hashsum.1 mkphrase.1 \ + keyring.5 pixie.1 + +## --- Prime group keyring --- + +pkgdata_DATA = pgroups.kr + +$(srcdir)/pgroups.kr: ptab.in mkpgroups + cd $(srcdir) && rm -f pgroups.kr && ./mkpgroups