security/nss/lib/freebl/mpi/Makefile

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:13004438132f
1 #
2 # Makefile for MPI library
3
4 # This Source Code Form is subject to the terms of the Mozilla Public
5 # License, v. 2.0. If a copy of the MPL was not distributed with this
6 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
8 ## Define CC to be the C compiler you wish to use. The GNU cc
9 ## compiler (gcc) should work, at the very least
10 #CC=cc
11 #CC=gcc
12
13 ##
14 ## Define PERL to point to your local Perl interpreter. It
15 ## should be Perl 5.x, although it's conceivable that Perl 4
16 ## might work ... I haven't tested it.
17 ##
18 #PERL=/usr/bin/perl
19 #PERL=perl
20
21 include target.mk
22
23 CFLAGS+= $(XCFLAGS)
24
25 ##
26 ## Define LIBS to include any libraries you need to link against.
27 ## If NO_TABLE is define, LIBS should include '-lm' or whatever is
28 ## necessary to bring in the math library. Otherwise, it can be
29 ## left alone, unless your system has other peculiar requirements.
30 ##
31 LIBS=#-lmalloc#-lefence#-lm
32
33 ##
34 ## Define RANLIB to be the library header randomizer; you might not
35 ## need this on some systems (just set it to 'echo' on these systems,
36 ## such as IRIX)
37 ##
38 RANLIB=echo
39
40 ##
41 ## This is the version string used for the documentation and
42 ## building the distribution tarball. Don't mess with it unless
43 ## you are releasing a new version
44 VERS=1.7p6
45
46 ## ----------------------------------------------------------------------
47 ## You probably don't need to change anything below this line...
48 ##
49
50 ##
51 ## This is the list of source files that need to be packed into
52 ## the distribution file
53 SRCS= mpi.c mpprime.c mplogic.c mp_gf2m.c mpmontg.c mpi-test.c primes.c \
54 mpcpucache.c tests/ \
55 utils/gcd.c utils/invmod.c utils/lap.c \
56 utils/ptab.pl utils/sieve.c utils/isprime.c\
57 utils/dec2hex.c utils/hex2dec.c utils/bbs_rand.c \
58 utils/bbsrand.c utils/prng.c utils/primegen.c \
59 utils/basecvt.c utils/makeprime.c\
60 utils/fact.c utils/exptmod.c utils/pi.c utils/metime.c \
61 utils/mpi.h utils/mpprime.h mulsqr.c \
62 make-test-arrays test-arrays.txt all-tests make-logtab \
63 types.pl stats timetest multest
64
65 ## These are the header files that go into the distribution file
66 HDRS=mpi.h mpi-config.h utils/mpi.h utils/mpi-config.h mpprime.h mplogic.h mp_gf2m.h \
67 mp_gf2m-priv.h utils/bbs_rand.h tests/mpi.h tests/mpprime.h
68
69 ## These are the documentation files that go into the distribution file
70 DOCS=README doc utils/README utils/PRIMES
71
72 ## This is the list of tools built by 'make tools'
73 TOOLS=gcd invmod isprime lap dec2hex hex2dec primegen prng \
74 basecvt fact exptmod pi makeprime identest
75
76 LIBOBJS = mpprime.o mpmontg.o mplogic.o mp_gf2m.o mpi.o mpcpucache.o $(AS_OBJS)
77 LIBHDRS = mpi-config.h mpi-priv.h mpi.h
78 APPHDRS = mpi-config.h mpi.h mplogic.h mp_gf2m.h mpprime.h
79
80 help:
81 @ echo ""
82 @ echo "The following targets can be built with this Makefile:"
83 @ echo ""
84 @ echo "libmpi.a - arithmetic and prime testing library"
85 @ echo "mpi-test - test driver (requires MP_IOFUNC)"
86 @ echo "tools - command line tools"
87 @ echo "doc - manual pages for tools"
88 @ echo "clean - clean up objects and such"
89 @ echo "distclean - get ready for distribution"
90 @ echo "dist - distribution tarball"
91 @ echo ""
92
93 .SUFFIXES: .c .o .i
94
95 .c.i:
96 $(CC) $(CFLAGS) -E $< > $@
97
98 #.c.o: $*.h $*.c
99 # $(CC) $(CFLAGS) -c $<
100
101 #---------------------------------------
102
103 $(LIBOBJS): $(LIBHDRS)
104
105 logtab.h: make-logtab
106 $(PERL) make-logtab > logtab.h
107
108 mpi.o: mpi.c logtab.h $(LIBHDRS)
109
110 mplogic.o: mplogic.c mpi-priv.h mplogic.h $(LIBHDRS)
111
112 mp_gf2m.o: mp_gf2m.c mpi-priv.h mp_gf2m.h mp_gf2m-priv.h $(LIBHDRS)
113
114 mpmontg.o: mpmontg.c mpi-priv.h mplogic.h mpprime.h $(LIBHDRS)
115
116 mpprime.o: mpprime.c mpi-priv.h mpprime.h mplogic.h primes.c $(LIBHDRS)
117
118 mpcpucache.o: mpcpucache.c $(LIBHDRS)
119
120 mpi_mips.o: mpi_mips.s
121 $(CC) -o $@ $(ASFLAGS) -c mpi_mips.s
122
123 mpi_sparc.o : montmulf.h
124
125 mpv_sparcv9.s: vis_64.il mpv_sparc.c
126 $(CC) -o $@ $(SOLARIS_FPU_FLAGS) -S vis_64.il mpv_sparc.c
127
128 mpv_sparcv8.s: vis_64.il mpv_sparc.c
129 $(CC) -o $@ $(SOLARIS_FPU_FLAGS) -S vis_32.il mpv_sparc.c
130
131 montmulfv8.o montmulfv9.o mpv_sparcv8.o mpv_sparcv9.o : %.o : %.s
132 $(CC) -o $@ $(SOLARIS_ASM_FLAGS) -c $<
133
134 mpi_arm.o: mpi_arm.c $(LIBHDRS)
135
136 # This rule is used to build the .s sources, which are then hand optimized.
137 #montmulfv8.s montmulfv9.s : montmulf%.s : montmulf%.il montmulf.c montmulf.h
138 # $(CC) -o $@ $(SOLARIS_ASM_FLAGS) -S montmulf$*.il montmulf.c
139
140
141 libmpi.a: $(LIBOBJS)
142 ar -cvr libmpi.a $(LIBOBJS)
143 $(RANLIB) libmpi.a
144
145 lib libs: libmpi.a
146
147 mpi.i: mpi.h
148
149 #---------------------------------------
150
151 MPTESTOBJS = mptest1.o mptest2.o mptest3.o mptest3a.o mptest4.o mptest4a.o \
152 mptest4b.o mptest6.o mptest7.o mptest8.o mptest9.o mptestb.o
153 MPTESTS = $(MPTESTOBJS:.o=)
154
155 $(MPTESTOBJS): mptest%.o: tests/mptest-%.c $(LIBHDRS)
156 $(CC) $(CFLAGS) -o $@ -c $<
157
158 $(MPTESTS): mptest%: mptest%.o libmpi.a
159 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
160
161 tests: mptest1 mptest2 mptest3 mptest3a mptest4 mptest4a mptest4b mptest6 \
162 mptestb bbsrand
163
164 utests: mptest7 mptest8 mptest9
165
166 #---------------------------------------
167
168 EXTRAOBJS = bbsrand.o bbs_rand.o prng.o
169 UTILOBJS = primegen.o metime.o identest.o basecvt.o fact.o exptmod.o pi.o \
170 makeprime.o gcd.o invmod.o lap.o isprime.o \
171 dec2hex.o hex2dec.o
172 UTILS = $(UTILOBJS:.o=)
173
174 $(UTILS): % : %.o libmpi.a
175 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
176
177 $(UTILOBJS) $(EXTRAOBJS): %.o : utils/%.c $(LIBHDRS)
178 $(CC) $(CFLAGS) -o $@ -c $<
179
180 prng: prng.o bbs_rand.o libmpi.a
181 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
182
183 bbsrand: bbsrand.o bbs_rand.o libmpi.a
184 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
185
186 utils: $(UTILS) prng bbsrand
187
188 #---------------------------------------
189
190 test-info.c: test-arrays.txt
191 $(PERL) make-test-arrays test-arrays.txt > test-info.c
192
193 mpi-test.o: mpi-test.c test-info.c $(LIBHDRS)
194 $(CC) $(CFLAGS) -o $@ -c $<
195
196 mpi-test: mpi-test.o libmpi.a
197 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
198
199 mdxptest.o: mdxptest.c $(LIBHDRS) mpi-priv.h
200
201 mdxptest: mdxptest.o libmpi.a
202 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
203
204 mulsqr.o: mulsqr.c logtab.h mpi.h mpi-config.h mpprime.h
205 $(CC) $(CFLAGS) -DMP_SQUARE=1 -o $@ -c mulsqr.c
206
207 mulsqr: mulsqr.o libmpi.a
208 $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
209
210 #---------------------------------------
211
212 alltests: tests utests mpi-test
213
214 tools: $(TOOLS)
215
216 doc:
217 (cd doc; ./build)
218
219 clean:
220 rm -f *.o *.a *.i
221 rm -f core
222 rm -f *~ .*~
223 rm -f utils/*.o
224 rm -f utils/core
225 rm -f utils/*~ utils/.*~
226
227 clobber: clean
228 rm -f $(TOOLS) $(UTILS)
229
230 distclean: clean
231 rm -f mptest? mpi-test metime mulsqr karatsuba
232 rm -f mptest?a mptest?b
233 rm -f utils/mptest?
234 rm -f test-info.c logtab.h
235 rm -f libmpi.a
236 rm -f $(TOOLS)
237
238 dist: Makefile $(HDRS) $(SRCS) $(DOCS)
239 tar -cvf mpi-$(VERS).tar Makefile $(HDRS) $(SRCS) $(DOCS)
240 pgps -ab mpi-$(VERS).tar
241 chmod +r mpi-$(VERS).tar.asc
242 gzip -9 mpi-$(VERS).tar
243
244 # END

mercurial