2 # OpenSSL/crypto/bn/Makefile
9 INCLUDES= -I.. -I$(TOP) -I../include -I../../include
16 CFLAGS= $(INCLUDES) $(CFLAG)
17 ASFLAGS= $(INCLUDES) $(ASFLAG)
22 LIB=$(TOP)/libcrypto.a
23 LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
24 bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
25 bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \
26 bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \
27 bn_depr.c bn_const.c bn_x931p.c bn_intern.c bn_dh.c bn_srp.c
29 LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
30 bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
31 bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \
32 bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o bn_gf2m.o bn_nist.o \
33 bn_depr.o bn_const.o bn_x931p.o bn_intern.o bn_dh.o bn_srp.o
37 HEADER= bn_lcl.h bn_prime.h
39 ALL= $(GENERAL) $(SRC) $(HEADER)
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
46 bn_prime.h: bn_prime.pl
47 $(PERL) bn_prime.pl >bn_prime.h
49 divtest: divtest.c ../../libcrypto.a
50 cc -I../../include divtest.c -o divtest ../../libcrypto.a
52 bnbug: bnbug.c ../../libcrypto.a top
53 cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
56 $(AR) $(LIB) $(LIBOBJ)
57 $(RANLIB) $(LIB) || echo Never mind.
60 bn-586.s: asm/bn-586.pl ../perlasm/x86asm.pl
61 $(PERL) asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
62 co-586.s: asm/co-586.pl ../perlasm/x86asm.pl
63 $(PERL) asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
64 x86-mont.s: asm/x86-mont.pl ../perlasm/x86asm.pl
65 $(PERL) asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
66 x86-gf2m.s: asm/x86-gf2m.pl ../perlasm/x86asm.pl
67 $(PERL) asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
69 sparcv8.o: asm/sparcv8.S
70 $(CC) $(CFLAGS) -c asm/sparcv8.S
71 bn-sparcv9.o: asm/sparcv8plus.S
72 $(CC) $(CFLAGS) -c -o $@ asm/sparcv8plus.S
73 sparcv9a-mont.s: asm/sparcv9a-mont.pl
74 $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@
75 sparcv9-mont.s: asm/sparcv9-mont.pl
76 $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@
77 vis3-mont.s: asm/vis3-mont.pl
78 $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@
79 sparct4-mont.S: asm/sparct4-mont.pl
80 $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@
81 sparcv9-gf2m.S: asm/sparcv9-gf2m.pl
82 $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@
84 bn-mips.s: asm/mips.pl
85 $(PERL) asm/mips.pl $(PERLASM_SCHEME) $@
86 mips-mont.s: asm/mips-mont.pl
87 $(PERL) asm/mips-mont.pl $(PERLASM_SCHEME) $@
89 bn-s390x.o: asm/s390x.S
90 $(CC) $(CFLAGS) -c -o $@ asm/s390x.S
91 s390x-gf2m.s: asm/s390x-gf2m.pl
92 $(PERL) asm/s390x-gf2m.pl $(PERLASM_SCHEME) $@
94 x86_64-gcc.o: asm/x86_64-gcc.c
95 $(CC) $(CFLAGS) -c -o $@ asm/x86_64-gcc.c
96 x86_64-mont.s: asm/x86_64-mont.pl
97 $(PERL) asm/x86_64-mont.pl $(PERLASM_SCHEME) > $@
98 x86_64-mont5.s: asm/x86_64-mont5.pl
99 $(PERL) asm/x86_64-mont5.pl $(PERLASM_SCHEME) > $@
100 x86_64-gf2m.s: asm/x86_64-gf2m.pl
101 $(PERL) asm/x86_64-gf2m.pl $(PERLASM_SCHEME) > $@
102 rsaz-x86_64.s: asm/rsaz-x86_64.pl
103 $(PERL) asm/rsaz-x86_64.pl $(PERLASM_SCHEME) > $@
104 rsaz-avx2.s: asm/rsaz-avx2.pl
105 $(PERL) asm/rsaz-avx2.pl $(PERLASM_SCHEME) > $@
107 bn-ia64.s: asm/ia64.S
108 $(CC) $(CFLAGS) -E asm/ia64.S > $@
109 ia64-mont.s: asm/ia64-mont.pl
110 $(PERL) asm/ia64-mont.pl $@ $(CFLAGS)
112 parisc-mont.s: asm/parisc-mont.pl
113 $(PERL) asm/parisc-mont.pl $(PERLASM_SCHEME) $@
115 # ppc - AIX, Linux, MacOS X...
116 bn-ppc.s: asm/ppc.pl; $(PERL) asm/ppc.pl $(PERLASM_SCHEME) $@
117 ppc-mont.s: asm/ppc-mont.pl;$(PERL) asm/ppc-mont.pl $(PERLASM_SCHEME) $@
118 ppc64-mont.s: asm/ppc64-mont.pl;$(PERL) asm/ppc64-mont.pl $(PERLASM_SCHEME) $@
120 alpha-mont.s: asm/alpha-mont.pl
121 (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
122 $(PERL) asm/alpha-mont.pl > $$preproc && \
123 $(CC) -E -P $$preproc > $@ && rm $$preproc)
125 # GNU make "catch all"
126 %-mont.S: asm/%-mont.pl; $(PERL) $< $(PERLASM_SCHEME) $@
127 %-gf2m.S: asm/%-gf2m.pl; $(PERL) $< $(PERLASM_SCHEME) $@
129 armv4-mont.o: armv4-mont.S
130 armv4-gf2m.o: armv4-gf2m.S
131 armv8-mont.o: armv8-mont.S
134 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
138 gcc -I.. -g div.c ../../libcrypto.a
143 $(TOP)/util/domd $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
146 rm -f *.s *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
148 # Different flavours of make disagree on where output goes
150 $(CC) $(CFLAGS) -c $< -o $@
152 # DO NOT DELETE THIS LINE -- make depend depends on it.