summaryrefslogtreecommitdiff
path: root/Makefile.ssl
blob: 676ece0aa82123dbdf006f18b5aaee9c2cef485f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
#
# Makefile for all the SSL related library routines and utilities
VERSION	= 0.8.1a
#
# make install will install:
#   libraries into $INSTALLTOP/lib
#   headers   into $INSTALLTOP/include
#   utilities into $INSTALLTOP/bin
#
# By default INSTALLTOP is set to /usr/local/ssl
# If you want things install elsewere, consider running
# perl util/ssldir.pl /new/path
#
# Interesting Mailing Lists:
#     ssl-bugs@mincom.oz.au
#     ssl-users@mincom.oz.au
#
# To join the Mailing Lists:
#     ssl-bugs-request@mincom.oz.au
#     ssl-users-request@mincom.oz.au
#
# If you must get hold of people directly (we much prefer the above
# lists to be used if the question is of general interest!):
#	Eric Young <eay@cryptsoft.com>
#	Tim Hudson <tjh@cryptsoft.com>
#	or both    <ssleay@cryptsoft.com>
#
# The primary distribution of SSLeay is from
# ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL
#
# NOCONST - Define for C compilers that don't like the const key word.
# NOPROTO - Define in if your compiler does not support prototypes.
# RSAref  - Define if we are to link with RSAref.
# NO_IDEA - Define to build without the IDEA algorithm
# NO_RC4  - Define to build without the RC4 algorithm
# NO_RC2  - Define to build without the RC2 algorithm
# THREADS - Define when building with threads, you will probably also need any
#	    system defines as well, i.e. _REENTERANT for Solaris 2.[34]
# TERMIO  - Define the termio terminal subsystem, needed if sgtty is missing.
# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
# DEVRANDOM - Give this the value of the 'random device' if your OS supports
#	    one.  32 bytes will be read from this when the random
#	    number generator is initalised.
# SSL_ALLOW_ADH - define if you want the server to be able to use the
#	    SSLv3 anon-DH ciphers.
# SSL_ALLOW_ENULL - define if you want the server to be able to use the
#	    NULL encryption ciphers.
#
# LOCK_DEBUG - turns on lots of lock debug output :-)
# REF_CHECK - turn on some xyz_free() assertions.
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
# MFUNC - Make all Malloc/Free/Realloc calls call
#	CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
#	call application defined callbacks via CRYPTO_set_mem_functions()


CC= cc
CFLAG= -O -DNOPROTO
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized
PEX_LIBS= -L. -L.. -L../.. -L../../..
EX_LIBS= 
#EX_LIBS= #-lRSAglue -lrsaref -lnsl -lsocket
AR=ar r

# Set BN_MULW to bn_mulw.o if you want to use the C version
#BN_MULW= asm/x86-lnx.o
BN_MULW= bn_mulw.o
#BN_MULW= asm/x86-lnx.o		# elf
#BN_MULW= asm/x86-sol.o		# solaris
#BN_MULW= asm/x86-lnxa.o	# a.out, FreeBSD
#BN_MULW= asm/x86-bsdi.o	# bsdi
#BN_MULW= asm/alpha.o		# DEC Alpha
#BN_MULW= asm/pa-risc2.o	# HP-UX PA-RISC
#BN_MULW= asm/r3000.o		# SGI MIPS cpu
#BN_MULW= asm/sparc.o		# Sun solaris/SunOS
#BN_MULW= asm/x86nt32.o		# Windows 95/NT
#BN_MULW= asm/x86w16.o		# 16 bit code for Windows 3.1/DOS
#BN_MULW= asm/x86w32.o		# 32 bit code for Windows 3.1

# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
DES_ENC= des_enc.o fcrypt_b.o
#DES_ENC= des_enc.o fcrypt_b.o		# C
#DES_ENC= asm/dx86-elf.o asm/cx86-elf.o # elf
#DES_ENC= asm/dx86-sol.o asm/cx86-sol.o	# solaris
#DES_ENC= asm/dx86-out.o asm/cx86-out.o	# a.out, FreeBSD
#DES_ENC= asm/dx86bsdi.o asm/cx86bsdi.o	# bsdi

# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
BF_ENC= bf_enc.o
#BF_ENC= bf_enc.o	# C
#BF_ENC= asm/bx86-elf.o # elf
#BF_ENC= asm/bx86-sol.o	# solaris
#BF_ENC= asm/bx86-out.o	# a.out, FreeBSD
#BF_ENC= asm/bx86bsdi.o	# bsdi

DIRS=	crypto ssl rsaref apps test tools
# dirs in crypto to build
SDIRS=  \
	md sha mdc2 des rc4 rc2 idea bf bn rsa dsa dh \
	buffer bio stack lhash rand err objects \
	evp pem asn1 x509 conf txt_db pkcs7

# If you change the INSTALLTOP, make sure to also change the values
# in crypto/location.h
INSTALLTOP=/usr/local/ssl

MAKEFILE= Makefile.ssl
MAKE=	  make -f Makefile.ssl

MAN1=1
MAN3=3
SHELL=/bin/sh

TOP=	.
ONEDIRS=out tmp
EDIRS=	times doc bugs util include certs ms shlib mt demos
MISC=	COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile \
	README TODO HISTORY README.066 README.080 \
	VERSION PROBLEMS MINFO makefile.one e_os.h \
	MICROSOFT makevms.com
WDIRS=	windows
LIBS=	libcrypto.a libssl.a 

GENERAL=	Makefile
BASENAME=	SSLeay
NAME=		$(BASENAME)-$(VERSION)
TARFILE=	$(NAME).tar
WTARFILE=	$(NAME)-win.tar
EX_HEADER=
HEADER=		e_os.h

all:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making $$i..."; \
	$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' SDIRS='${SDIRS}' AR='${AR}' all ); \
	done;

sub_all:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making $$i..."; \
	$(MAKE) CC='${CC}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' AR='${AR}' all ); \
	done;

clean:
	/bin/rm -f *.o core a.out fluff *.map
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "cleaning $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' clean ); \
	/bin/rm -f $(LIBS); \
	done;
	/bin/rm -f *.a *.o speed.* *.map *.so .pure core
	/bin/rm -f $(TARFILE)
	@for i in $(ONEDIRS) ;\
	do \
	/bin/rm -f $$i/*; \
	done

makefile.one: files
	perl util/mk1mf.pl >makefile.one; \
	sh util/do_ms.sh

files:	MINFO
	perl $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making 'files' in $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' files ); \
	done;

links:
	/bin/rm -f Makefile;
	./util/point.sh Makefile.ssl Makefile;
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making links in $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' links ); \
	done;
	# @(cd apps; sh ./mklinks)
	sh tools/c_rehash certs

dclean:
	/bin/rm -f *.bak
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "undoing makedepend in $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' dclean ); \
	done;

rehash:
	@(PATH="`pwd`/apps:${PATH}"; sh tools/c_rehash certs)

test:	tests

tests:
	(cd test; echo "testing $$i..."; \
	$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' SDIRS='${SDIRS}' AR='${AR}' tests );
	@apps/ssleay version -a

depend:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making dependancies $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' depend ); \
	done;

lint:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making lint $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' lint ); \
	done;

tags:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making tags $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' tags ); \
	done;

errors:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making errors in $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' errors ); \
	done;

tar:
	@(cd ..;\
	mv $(BASENAME) $(NAME); \
	export STUFF; \
	for i in $(MISC) $(DIRS) $(EDIRS) $(ONEDIRS) ;\
	do \
		STUFF="$$STUFF $(NAME)/$$i"; \
	done; \
	tar cf $(NAME)/$(TARFILE) $$STUFF; \
	mv $(NAME) $(BASENAME) ) 
	gzip -f $(TARFILE)

dist:	
	perl Configure dist
	@$(MAKE) dist_pem_h
	@$(MAKE) SDIRS='${SDIRS}' clean
	@$(MAKE) SDIRS='${SDIRS}' dclean
	@(cd apps; sh ./rmlinks)
	@$(MAKE) makefile.one
	@$(MAKE) tar

dist_pem_h:
	(cd crypto/pem; $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)

install: all
	@-mkdir -p $(INSTALLTOP)/bin 2>/dev/null
	@-mkdir -p $(INSTALLTOP)/lib 2>/dev/null
	@-mkdir -p $(INSTALLTOP)/include 2>/dev/null
	@-mkdir -p $(INSTALLTOP)/certs 2>/dev/null
	@-mkdir -p $(INSTALLTOP)/private 2>/dev/null
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "installing $$i..."; \
	$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' install ); \
	done
	@for i in $(LIBS) ;\
	do \
	(	echo installing $$i; \
		cp $$i $(INSTALLTOP)/lib; \
		sh util/ranlib.sh $(INSTALLTOP)/lib/$$i; \
		chmod 644 $(INSTALLTOP)/lib/$$i ); \
	done

# DO NOT DELETE THIS LINE -- make depend depends on it.