263 lines
7.5 KiB
Makefile
263 lines
7.5 KiB
Makefile
# UNIX Makefile for MIRACL Software Multi-Precision Math Lib.
|
|
#
|
|
# Contributed by John Kennedy
|
|
# Updated by M.Scott 15/7/97
|
|
#
|
|
# Notes: This is a "bare-bones" makefile for compiling
|
|
# the MIRACL libs and C demo programs on a UNIX
|
|
# system using the GNU C compiler. Please examine the CFLAGS and
|
|
# other configuration definitions to make sure they are
|
|
# appropriate for your environment. Particularly the
|
|
# CC, LIBS, and CFLAGS definitions. Also read the discussion
|
|
# below about assembly language vs. portable C lib
|
|
# support. Use with mirdef.h32 (typically)
|
|
# Some MIRACL builds might need certain extra modules included (e.g.
|
|
# mrkcm.c), and certain modules ommitted (e.g. mrmuldv.s)
|
|
#
|
|
# BEFORE running this make file, assembly mrmuldv.s (if you are
|
|
# using one), as
|
|
#
|
|
# as mrmuldv.s -o mrmuldv.o
|
|
#
|
|
# Invoke as "make -f miracl.mak"
|
|
#
|
|
# Use at your own risk!
|
|
#
|
|
# Note that this make file does not make the C++ programs.
|
|
# To build for example the pk-demo.cpp application, proceed as follows
|
|
#
|
|
# g++ -I. -c crt.cpp
|
|
# g++ -I. -c ecn.cpp
|
|
# g++ -I. -c big.cpp
|
|
# g++ -I. pk-demo.cpp crt.o ecn.o big.o -I/usr/lib miracl.a \
|
|
# -lm -o pk-demo
|
|
#
|
|
# or perhaps that should be gpp rather than g++
|
|
#
|
|
#
|
|
CC = gcc
|
|
AR = ar
|
|
|
|
SHELL = /bin/sh
|
|
|
|
#OPTIMIZE FLAGS
|
|
CFLAGS = -c -O2 -I. -I/usr/lib
|
|
|
|
|
|
.KEEP_STATE :
|
|
|
|
MIRPROGS = hail factor fact genprime brick brent brute deciph decode dssetup \
|
|
dssgen dssign dssver ecsgen ecsign ecsver enciph encode hilbert index \
|
|
kangaroo mersenne pollard qsieve roots williams palin genkey identity sample \
|
|
lenstra pk-demo factor
|
|
|
|
|
|
MIRACL = mrflsh4 mrflsh3 mrflsh2 mrpi mrflsh1 mrio2 mrio1 mrdouble mrflash \
|
|
mrrand mrprime mrcrt mrcurve mrshs mrshs256 mrshs512 mrsha3 mrfpe mraes mrgcm mrstrong mrbrick mrebrick mrgf2m mrec2m \
|
|
mrscrt mrfast mrjack mrfrnd mrxgcd mrgcd mrround mrbuild mrarth3 mrbits mrarth2 \
|
|
mrlucas mrzzn2 mrzzn2b mrzzn3 mrecn2 mrmonty mrpower mrsroot mralloc mrarth1 mrarth0 mrsmall mrcore mrmuldv
|
|
|
|
# Try one of these two ....
|
|
|
|
LIBS = miracl.a /usr/lib/libm.a
|
|
|
|
# LIBS = miracl.a -lm
|
|
|
|
MIROBJS = mrflsh4.o mrflsh3.o mrflsh2.o mrpi.o mrflsh1.o mrio2.o mrio1.o \
|
|
mrdouble.o mrflash.o mrrand.o mrprime.o mrcrt.o mrscrt.o mrfast.o mrjack.o \
|
|
mrfrnd.o mrxgcd.o mrgcd.o mrstrong.o mrbrick.o mrebrick.o mrcurve.o mrshs256.o mrshs512.o mrfpe.o mrsha3.o mrshs.o \
|
|
mraes.o mrgcm.o mrround.o mrbuild.o mrarth3.o mrbits.o mrarth2.o mrpower.o mrsroot.o mrec2m.o mrgf2m.o \
|
|
mrlucas.o mrzzn2.o mrzzn2b.o mrzzn3.o mrecn2.o mrmonty.o mralloc.o mrarth1.o mrarth0.o mrsmall.o mrcore.o \
|
|
mrmuldv.o
|
|
|
|
# NOTE: THE ASSEMBLY SOURCE SHOULD BE PLACED IN 'mrmuldv.s'.
|
|
# IF YOU DON'T HAVE ASSEMBLY CODE, COMMENT OUT THE
|
|
# 'mrmuldv.o LINE AND DELETE THE '\' CONTINUATION CHARACTER
|
|
# ON THE LINE ABOVE.
|
|
#
|
|
# Ideally FOR A 32-BIT MACHINE LIKE A SUN SPARCstation, USE mirdef.h32
|
|
# (but change ENDIAN definition) for mirdef.h with an assembly language
|
|
# mrmuldv.s
|
|
#
|
|
# Alternatively omit mrmuldv. This will be slower.
|
|
#
|
|
# See mrmuldv.any for advice on creating a mrmuldv.s assembly
|
|
# language module. In most cases the muldvd() function is the most
|
|
# time critical, so even if only this one can be written in assembly
|
|
# language, it will be worth it. It may be necessary then to create
|
|
# two files, mrmuldv.c for muldvm() and muldiv(), and a seperate
|
|
# mrmuldvd.s This make file will then have to modified to accomodate
|
|
# this change.
|
|
#
|
|
ALL: miracl.a $(MIRPROGS)
|
|
|
|
miracl.a: $(MIROBJS)
|
|
# $(RM) $@
|
|
$(AR) crv $@ $(MIROBJS)
|
|
|
|
#
|
|
# DEPENDENCIES
|
|
#
|
|
|
|
miracl.h: mirdef.h
|
|
|
|
mrcore.o: mrcore.c mirdef.h miracl.h
|
|
mrarth0.o: mrarth0.c miracl.h
|
|
mrarth1.o: mrarth1.c miracl.h
|
|
mrarth2.o: mrarth2.c miracl.h
|
|
mralloc.o: mralloc.c miracl.h
|
|
mrmonty.o: mrmonty.c miracl.h
|
|
mrpower.o: mrpower.c miracl.h
|
|
mrsroot.o: mrsroot.c miracl.h
|
|
mrlucas.o: mrlucas.c miracl.h
|
|
mrzzn2.o: mrzzn2.c miracl.h
|
|
mrzzn2b.o: mrzzn2b.c miracl.h
|
|
mrzzn3.o: mrzzn3.c miracl.h
|
|
mrecn2.o: mrecn2.c miracl.h
|
|
mrsmall.o: mrsmall.c miracl.h
|
|
mrround.o: mrround.c miracl.h
|
|
mrio1.o: mrio1.c miracl.h
|
|
mrio2.o: mrio2.c miracl.h
|
|
mrgcd.o: mrgcd.c miracl.h
|
|
mrjack.o: mrjack.c miracl.h
|
|
mrxgcd.o: mrxgcd.c miracl.h
|
|
mrarth3.o: mrarth3.c miracl.h
|
|
mrbits.o: mrbits.c miracl.h
|
|
mrrand.o: mrrand.c miracl.h
|
|
mrprime.o: mrprime.c miracl.h
|
|
mrcrt.o: mrcrt.c miracl.h
|
|
mrscrt.o: mrscrt.c miracl.h
|
|
mrshs.o: mrshs.c miracl.h
|
|
mrshs256.o: mrshs256.c miracl.h
|
|
mrshs512.o: mrshs512.c miracl.h
|
|
mrsha3.o: mrsha3.c miracl.h
|
|
mrfpe.o: mrfpe.c miracl.h
|
|
mraes.o: mraes.c miracl.h
|
|
mrgcm.o: mrgcm.c miracl.h
|
|
mrstrong.o: mrstrong.c miracl.h
|
|
mrbrick.o: mrbrick.c miracl.h
|
|
mrebrick.o: mrebrick.c miracl.h
|
|
mrec2m.o: mrec2m.c miracl.h
|
|
mrgf2m.o: mrgf2m.c miracl.h
|
|
mrcurve.o: mrcurve.c miracl.h
|
|
mrfast.o: mrfast.c miracl.h
|
|
mrfrnd.o: mrfrnd.c miracl.h
|
|
mrflash.o: mrflash.c miracl.h
|
|
mrdouble.o: mrdouble.c miracl.h
|
|
mrbuild.o: mrbuild.c miracl.h
|
|
mrflsh1.o: mrflsh1.c miracl.h
|
|
mrpi.o: mrpi.c miracl.h
|
|
mrflsh2.o: mrflsh2.c miracl.h
|
|
mrflsh3.o: mrflsh3.c miracl.h
|
|
mrflsh4.o: mrflsh4.c miracl.h
|
|
mrmuldv.o: mrmuldv.s
|
|
|
|
#DEMO PROGRAMS
|
|
|
|
hail: hail.o miracl.h
|
|
factor: factor.o miracl.h
|
|
fact: fact.o miracl.h
|
|
palin: palin.o miracl.h
|
|
genkey: genkey.o miracl.h
|
|
genprime: genprime.o miracl.h
|
|
identity: identity.o miracl.h
|
|
sample: sample.o miracl.h
|
|
pk-demo: pk-demo.o miracl.h
|
|
brent: brent.o miracl.h
|
|
brick: brick.o miracl.h
|
|
brute: brute.o miracl.h
|
|
deciph: deciph.o miracl.h
|
|
decode: decode.o miracl.h
|
|
dssetup: dssetup.o miracl.h
|
|
dssgen: dssgen.o miracl.h
|
|
dssign: dssign.o miracl.h
|
|
dssver: dssver.o miracl.h
|
|
ecsgen: ecsgen.o miracl.h
|
|
ecsign: ecsign.o miracl.h
|
|
ecsver: ecsver.o miracl.h
|
|
enciph: enciph.o miracl.h
|
|
encode: encode.o miracl.h
|
|
hilbert: hilbert.o miracl.h
|
|
index: index.o miracl.h
|
|
kangaroo: kangaroo.o miracl.h
|
|
lenstra: lenstra.o miracl.h
|
|
mersenne: mersenne.o miracl.h
|
|
pollard: pollard.o miracl.h
|
|
qsieve: qsieve.o miracl.h
|
|
roots: roots.o miracl.h
|
|
williams: williams.o miracl.h
|
|
|
|
hail: hail.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
palin: palin.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
identity: identity.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
factor: factor.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
fact: fact.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
genprime: genprime.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
genkey: genkey.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
lenstra: lenstra.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
pk-demo: pk-demo.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
brick: brick.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
brent: brent.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
brute: brute.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
deciph: deciph.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
decode: decode.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
dssetup: dssetup.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
dssgen: dssgen.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
dssign: dssign.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
dssver: dssver.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
ecsgen: ecsgen.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
ecsign: ecsign.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
ecsver: ecsver.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
enciph: enciph.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
encode: encode.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
hilbert: hilbert.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
sample: sample.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
index: index.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
kangaroo: kangaroo.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
mersenne: mersenne.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
pollard: pollard.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
qsieve: qsieve.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
roots: roots.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
williams: williams.o $(LIBS)
|
|
$(CC) -o $@ $@.o $(LIBS)
|
|
|
|
|
|
clean:
|
|
-rm -f core a.out tags
|
|
tags:
|
|
ctags *.c *.h
|
|
|
|
|
|
|