Always build library object files with shared library cflags
[openssl.git] / crypto / bn / Makefile.in
1 #
2 # OpenSSL/crypto/bn/Makefile
3 #
4
5 DIR=    bn
6 TOP=    ../..
7 CC=     cc
8 CPP=    $(CC) -E
9 INCLUDES= -I.. -I$(TOP) -I../include -I../../include
10 CFLAG=-g
11 MAKEFILE=       Makefile
12 AR=             ar r
13
14 BN_ASM=         bn_asm.o
15
16 CFLAGS= $(INCLUDES) $(CFLAG) $(SHARED_CFLAG)
17 ASFLAGS= $(INCLUDES) $(ASFLAG)
18 AFLAGS= $(ASFLAGS)
19
20 GENERAL=Makefile
21
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
28
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
34
35 SRC= $(LIBSRC)
36
37 HEADER= bn_lcl.h bn_prime.h
38
39 ALL=    $(GENERAL) $(SRC) $(HEADER)
40
41 top:
42         (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44 all:    lib
45
46 bn_prime.h: bn_prime.pl
47         $(PERL) bn_prime.pl >bn_prime.h
48
49 divtest: divtest.c ../../libcrypto.a
50         cc -I../../include divtest.c -o divtest ../../libcrypto.a
51
52 bnbug: bnbug.c ../../libcrypto.a top
53         cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
54
55 lib:    $(LIBOBJ)
56         $(AR) $(LIB) $(LIBOBJ)
57         $(RANLIB) $(LIB) || echo Never mind.
58         @touch lib
59
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) > $@
68
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) > $@
83
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) $@
88
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) $@
93
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) > $@
106
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)
111
112 parisc-mont.s:  asm/parisc-mont.pl
113         $(PERL) asm/parisc-mont.pl $(PERLASM_SCHEME) $@
114
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) $@
119
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)
124
125 # GNU make "catch all"
126 %-mont.S:       asm/%-mont.pl;  $(PERL) $< $(PERLASM_SCHEME) $@
127 %-gf2m.S:       asm/%-gf2m.pl;  $(PERL) $< $(PERLASM_SCHEME) $@
128
129 armv4-mont.o:   armv4-mont.S
130 armv4-gf2m.o:   armv4-gf2m.S
131 armv8-mont.o:   armv8-mont.S
132
133 files:
134         $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
135
136 div:
137         rm -f a.out
138         gcc -I.. -g div.c ../../libcrypto.a
139
140 generate: bn_prime.h
141
142 depend:
143         $(TOP)/util/domd $(CFLAG) $(INCLUDES) -- $(PROGS) $(LIBSRC)
144
145 clean:
146         rm -f *.s *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
147
148 # Different flavours of make disagree on where output goes
149 .c.o:
150         $(CC) $(CFLAGS) -c $< -o $@
151
152 # DO NOT DELETE THIS LINE -- make depend depends on it.