]> git.ipfire.org Git - thirdparty/openssl.git/blame - Makefile.org
Complete rewrite of the error code generation script. It now runs as a single
[thirdparty/openssl.git] / Makefile.org
CommitLineData
d56128f0
RE
1##
2## Makefile for OpenSSL
3##
4
5VERSION = 0.9.2b
6PLATFORM=dist
7
d02b48c6
RE
8# RSAref - Define if we are to link with RSAref.
9# NO_IDEA - Define to build without the IDEA algorithm
10# NO_RC4 - Define to build without the RC4 algorithm
11# NO_RC2 - Define to build without the RC2 algorithm
12# THREADS - Define when building with threads, you will probably also need any
58964a49 13# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
d02b48c6
RE
14# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
15# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
16# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
17# DEVRANDOM - Give this the value of the 'random device' if your OS supports
58964a49
RE
18# one. 32 bytes will be read from this when the random
19# number generator is initalised.
d02b48c6 20# SSL_ALLOW_ADH - define if you want the server to be able to use the
58964a49 21# SSLv3 anon-DH ciphers.
baf748ba 22# SSL_FORBID_ENULL - define if you want the server to be not able to use the
58964a49 23# NULL encryption ciphers.
d02b48c6
RE
24#
25# LOCK_DEBUG - turns on lots of lock debug output :-)
26# REF_CHECK - turn on some xyz_free() assertions.
58964a49 27# REF_PRINT - prints some stuff on structure free.
d02b48c6
RE
28# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
29# MFUNC - Make all Malloc/Free/Realloc calls call
58964a49
RE
30# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
31# call application defined callbacks via CRYPTO_set_mem_functions()
32# MD5_ASM needs to be defined to use the x86 assembler for MD5
33# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
34# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
dfeab068
RE
35# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
36# equal 4.
37# PKCS1_CHECK - pkcs1 tests.
d02b48c6 38
8d7ed6ff 39CC= gcc
dfeab068 40#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
8d7ed6ff 41CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
d02b48c6 42PEX_LIBS= -L. -L.. -L../.. -L../../..
651d0aff 43EX_LIBS=
d02b48c6 44AR=ar r
99aab161
UM
45RANLIB= ranlib
46PERL= perl
d02b48c6 47
dfeab068
RE
48# Set BN_ASM to bn_asm.o if you want to use the C version
49BN_ASM= bn_asm.o
50#BN_ASM= bn_asm.o
51#BN_ASM= asm/bn86-elf.o # elf, linux-elf
52#BN_ASM= asm/bn86-sol.o # solaris
53#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
54#BN_ASM= asm/bn86bsdi.o # bsdi
55#BN_ASM= asm/alpha.o # DEC Alpha
56#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
57#BN_ASM= asm/r3000.o # SGI MIPS cpu
58#BN_ASM= asm/sparc.o # Sun solaris/SunOS
59#BN_ASM= asm/bn-win32.o # Windows 95/NT
60#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
61#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
d02b48c6 62
2613c1fa
UM
63# For x86 assembler: Set PROCESSOR to 386 if you want to support
64# the 80386.
65PROCESSOR=
66
d02b48c6
RE
67# Set DES_ENC to des_enc.o if you want to use the C version
68#There are 4 x86 assember options.
8d7ed6ff 69DES_ENC= asm/dx86-out.o asm/yx86-out.o
58964a49
RE
70#DES_ENC= des_enc.o fcrypt_b.o # C
71#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
72#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
73#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
74#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
d02b48c6
RE
75
76# Set BF_ENC to bf_enc.o if you want to use the C version
77#There are 4 x86 assember options.
8d7ed6ff 78BF_ENC= asm/bx86-out.o
58964a49 79#BF_ENC= bf_enc.o
d02b48c6 80#BF_ENC= asm/bx86-elf.o # elf
58964a49
RE
81#BF_ENC= asm/bx86-sol.o # solaris
82#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
83#BF_ENC= asm/bx86bsdi.o # bsdi
d02b48c6 84
58964a49
RE
85# Set CAST_ENC to c_enc.o if you want to use the C version
86#There are 4 x86 assember options.
8d7ed6ff 87CAST_ENC= asm/cx86-out.o
58964a49
RE
88#CAST_ENC= c_enc.o
89#CAST_ENC= asm/cx86-elf.o # elf
90#CAST_ENC= asm/cx86-sol.o # solaris
91#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
92#CAST_ENC= asm/cx86bsdi.o # bsdi
93
94# Set RC4_ENC to rc4_enc.o if you want to use the C version
95#There are 4 x86 assember options.
8d7ed6ff 96RC4_ENC= asm/rx86-out.o
58964a49
RE
97#RC4_ENC= rc4_enc.o
98#RC4_ENC= asm/rx86-elf.o # elf
99#RC4_ENC= asm/rx86-sol.o # solaris
100#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
101#RC4_ENC= asm/rx86bsdi.o # bsdi
102
103# Set RC5_ENC to rc5_enc.o if you want to use the C version
104#There are 4 x86 assember options.
8d7ed6ff 105RC5_ENC= asm/r586-out.o
58964a49
RE
106#RC5_ENC= rc5_enc.o
107#RC5_ENC= asm/r586-elf.o # elf
108#RC5_ENC= asm/r586-sol.o # solaris
109#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
110#RC5_ENC= asm/r586bsdi.o # bsdi
111
112# Also need MD5_ASM defined
8d7ed6ff 113MD5_ASM_OBJ= asm/mx86-out.o
58964a49
RE
114#MD5_ASM_OBJ= asm/mx86-elf.o # elf
115#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
116#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
117#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
118
119# Also need SHA1_ASM defined
8d7ed6ff 120SHA1_ASM_OBJ= asm/sx86-out.o
58964a49
RE
121#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
122#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
123#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
124#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
125
126# Also need RMD160_ASM defined
8d7ed6ff 127RMD160_ASM_OBJ= asm/rm86-out.o
58964a49
RE
128#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
129#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
130#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
131#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
132
133DIRS= crypto ssl rsaref apps test tools
d02b48c6
RE
134# dirs in crypto to build
135SDIRS= \
58964a49
RE
136 md2 md5 sha mdc2 hmac ripemd \
137 des rc2 rc4 rc5 idea bf cast \
138 bn rsa dsa dh \
f317aa4c 139 buffer bio stack lhash rand err objects \
8d8c7266 140 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
d02b48c6 141
f4f2fe40 142# Do not edit this manually. Use util/ssldir.pl do change this!
d02b48c6
RE
143INSTALLTOP=/usr/local/ssl
144
145MAKEFILE= Makefile.ssl
58964a49 146MAKE= make -f Makefile.ssl
d02b48c6
RE
147
148MAN1=1
149MAN3=3
150SHELL=/bin/sh
151
58964a49 152TOP= .
d02b48c6 153ONEDIRS=out tmp
dfeab068 154EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep
58964a49
RE
155WDIRS= windows
156LIBS= libcrypto.a libssl.a
157
158GENERAL= Makefile
9ce5db45 159BASENAME= openssl
58964a49
RE
160NAME= $(BASENAME)-$(VERSION)
161TARFILE= $(NAME).tar
162WTARFILE= $(NAME)-win.tar
163EXHEADER= e_os.h
164HEADER= e_os.h
d02b48c6 165
9535d202 166all: Makefile.ssl
d02b48c6
RE
167 @for i in $(DIRS) ;\
168 do \
bb8f3c58 169 (cd $$i && echo "making all in $$i..." && \
99aab161 170 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
d02b48c6
RE
171 done;
172
173sub_all:
174 @for i in $(DIRS) ;\
175 do \
bb8f3c58 176 (cd $$i && echo "making all in $$i..." && \
99aab161 177 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
d02b48c6
RE
178 done;
179
9535d202 180Makefile.ssl: Makefile.org
5ea177cf
RE
181 @echo "Makefile.ssl is older than Makefile.org."
182 @echo "Reconfigure the source tree (via 'perl Configure' or 'sh config')"
183 @echo "and update the error lists (via 'make errors'), please."
9535d202
BL
184 @false
185
dfeab068 186libclean:
bb8f3c58 187 rm -f *.a */lib */*/lib
dfeab068 188
d02b48c6 189clean:
bb8f3c58 190 rm -f shlib/*.o *.o core a.out fluff *.map
d02b48c6
RE
191 @for i in $(DIRS) ;\
192 do \
bb8f3c58 193 (cd $$i && echo "making clean in $$i..." && \
56ee3117 194 $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
bb8f3c58 195 rm -f $(LIBS); \
d02b48c6 196 done;
bb8f3c58
RE
197 rm -f *.a *.o speed.* *.map *.so .pure core
198 rm -f $(TARFILE)
d02b48c6
RE
199 @for i in $(ONEDIRS) ;\
200 do \
bb8f3c58 201 rm -fr $$i/*; \
d02b48c6
RE
202 done
203
204makefile.one: files
99aab161 205 $(PERL) util/mk1mf.pl >makefile.one; \
d02b48c6
RE
206 sh util/do_ms.sh
207
bacad008 208files:
99aab161 209 $(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
d02b48c6
RE
210 @for i in $(DIRS) ;\
211 do \
56ee3117
PS
212 (cd $$i && echo "making 'files' in $$i..." && \
213 $(MAKE) SDIRS='${SDIRS}' files ) || exit 1; \
d02b48c6
RE
214 done;
215
216links:
bb8f3c58 217 @$(TOP)/util/point.sh Makefile.ssl Makefile
ec577822
BM
218 @-mkdir -p include/openssl 2>/dev/null
219 @$(TOP)/util/mklink.sh include/openssl $(EXHEADER)
bb8f3c58 220 @for i in $(DIRS); do \
56ee3117 221 (cd $$i && echo "making links in $$i..." && \
83ec54b4 222 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' links ) || exit 1; \
d02b48c6 223 done;
724e095e 224 @(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
d02b48c6
RE
225
226dclean:
bb8f3c58 227 rm -f *.bak
d02b48c6
RE
228 @for i in $(DIRS) ;\
229 do \
bb8f3c58 230 (cd $$i && echo "making dclean in $$i..." && \
56ee3117 231 $(MAKE) SDIRS='${SDIRS}' dclean ) || exit 1; \
d02b48c6
RE
232 done;
233
234rehash:
b621d772 235 @(OPENSSL="`pwd`/apps/openssl"; export OPENSSL; sh tools/c_rehash certs)
d02b48c6 236
58964a49 237test: tests
d02b48c6
RE
238
239tests:
bb8f3c58 240 @(cd test && echo "testing..." && \
dfeab068 241 $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
794b9c8f 242 @apps/openssl version -a
d02b48c6
RE
243
244depend:
245 @for i in $(DIRS) ;\
246 do \
56ee3117
PS
247 (cd $$i && echo "making dependancies $$i..." && \
248 $(MAKE) SDIRS='${SDIRS}' depend ) || exit 1; \
d02b48c6
RE
249 done;
250
251lint:
252 @for i in $(DIRS) ;\
253 do \
56ee3117
PS
254 (cd $$i && echo "making lint $$i..." && \
255 $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
d02b48c6
RE
256 done;
257
258tags:
259 @for i in $(DIRS) ;\
260 do \
56ee3117
PS
261 (cd $$i && echo "making tags $$i..." && \
262 $(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
d02b48c6
RE
263 done;
264
265errors:
6d311938 266 perl util/mkerr.pl -static -recurse
d02b48c6
RE
267
268tar:
651d0aff 269 @gtar --no-recursion -cvf - \
0f423567 270 `find * -depth -print | grep -v CVS | grep -v .cvsignore | grep -v STATUS | sort` |\
5a061129 271 tardy --user_number=0 --user_name=openssl \
9ce5db45
RE
272 --group_number=0 --group_name=openssl \
273 --prefix=openssl-$(VERSION) - |\
651d0aff
RE
274 gzip --best >../$(TARFILE).gz; \
275 ls -l ../$(TARFILE).gz
d02b48c6 276
58964a49 277dist:
99aab161 278 $(PERL) Configure dist
d02b48c6
RE
279 @$(MAKE) dist_pem_h
280 @$(MAKE) SDIRS='${SDIRS}' clean
d02b48c6
RE
281 @$(MAKE) tar
282
283dist_pem_h:
284 (cd crypto/pem; $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
285
286install: all
287 @-mkdir -p $(INSTALLTOP)/bin 2>/dev/null
288 @-mkdir -p $(INSTALLTOP)/lib 2>/dev/null
289 @-mkdir -p $(INSTALLTOP)/include 2>/dev/null
ec577822 290 @-mkdir -p $(INSTALLTOP)/include/openssl 2>/dev/null
d02b48c6
RE
291 @-mkdir -p $(INSTALLTOP)/certs 2>/dev/null
292 @-mkdir -p $(INSTALLTOP)/private 2>/dev/null
293 @for i in $(DIRS) ;\
294 do \
295 (cd $$i; echo "installing $$i..."; \
296 $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' install ); \
297 done
298 @for i in $(LIBS) ;\
299 do \
58964a49 300 ( echo installing $$i; \
d02b48c6 301 cp $$i $(INSTALLTOP)/lib; \
99aab161 302 $(RANLIB) $(INSTALLTOP)/lib/$$i; \
d02b48c6
RE
303 chmod 644 $(INSTALLTOP)/lib/$$i ); \
304 done
305
306# DO NOT DELETE THIS LINE -- make depend depends on it.