KGC_TEST/KGCAPP/3rdparty/miracl/lib/miracl.mak

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