Makefile.org 10.6 KB
Newer Older
1 2
#
# Makefile for all the SSL related library routines and utilities
3
VERSION = 0.9.1c
B
Ben Laurie 已提交
4
PLATFORM=FreeBSD
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#
# 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!):
25 26 27
#       Eric Young <eay@cryptsoft.com>
#       Tim Hudson <tjh@cryptsoft.com>
#       or both    <ssleay@cryptsoft.com>
28 29 30 31 32 33 34 35 36 37 38
#
# 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
39
#           system defines as well, i.e. _REENTERANT for Solaris 2.[34]
40 41 42 43
# 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
44 45
#           one.  32 bytes will be read from this when the random
#           number generator is initalised.
46
# SSL_ALLOW_ADH - define if you want the server to be able to use the
47
#           SSLv3 anon-DH ciphers.
48
# SSL_ALLOW_ENULL - define if you want the server to be able to use the
49
#           NULL encryption ciphers.
50 51 52
#
# LOCK_DEBUG - turns on lots of lock debug output :-)
# REF_CHECK - turn on some xyz_free() assertions.
53
# REF_PRINT - prints some stuff on structure free.
54 55
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
# MFUNC - Make all Malloc/Free/Realloc calls call
56 57 58 59 60
#       CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
#       call application defined callbacks via CRYPTO_set_mem_functions()
# MD5_ASM needs to be defined to use the x86 assembler for MD5
# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
61 62 63
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8.  It must
# equal 4.
# PKCS1_CHECK - pkcs1 tests.
64

B
Ben Laurie 已提交
65
CC= gcc
66
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
B
Ben Laurie 已提交
67
CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
68
PEX_LIBS= -L. -L.. -L../.. -L../../..
69
EX_LIBS= 
70 71
AR=ar r

72 73 74 75 76 77 78 79 80 81 82 83 84 85
# Set BN_ASM to bn_asm.o if you want to use the C version
BN_ASM= bn_asm.o
#BN_ASM= bn_asm.o
#BN_ASM= asm/bn86-elf.o	# elf, linux-elf
#BN_ASM= asm/bn86-sol.o # solaris
#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
#BN_ASM= asm/bn86bsdi.o # bsdi
#BN_ASM= asm/alpha.o    # DEC Alpha
#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
#BN_ASM= asm/r3000.o    # SGI MIPS cpu
#BN_ASM= asm/sparc.o    # Sun solaris/SunOS
#BN_ASM= asm/bn-win32.o # Windows 95/NT
#BN_ASM= asm/x86w16.o   # 16 bit code for Windows 3.1/DOS
#BN_ASM= asm/x86w32.o   # 32 bit code for Windows 3.1
86 87 88

# Set DES_ENC to des_enc.o if you want to use the C version
#There are 4 x86 assember options.
B
Ben Laurie 已提交
89
DES_ENC= asm/dx86-out.o asm/yx86-out.o
90 91 92 93 94
#DES_ENC= des_enc.o fcrypt_b.o          # C
#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
95 96 97

# Set BF_ENC to bf_enc.o if you want to use the C version
#There are 4 x86 assember options.
B
Ben Laurie 已提交
98
BF_ENC= asm/bx86-out.o
99
#BF_ENC= bf_enc.o
100
#BF_ENC= asm/bx86-elf.o # elf
101 102 103
#BF_ENC= asm/bx86-sol.o # solaris
#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
#BF_ENC= asm/bx86bsdi.o # bsdi
104

105 106
# Set CAST_ENC to c_enc.o if you want to use the C version
#There are 4 x86 assember options.
B
Ben Laurie 已提交
107
CAST_ENC= asm/cx86-out.o
108 109 110 111 112 113 114 115
#CAST_ENC= c_enc.o
#CAST_ENC= asm/cx86-elf.o # elf
#CAST_ENC= asm/cx86-sol.o # solaris
#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
#CAST_ENC= asm/cx86bsdi.o # bsdi

# Set RC4_ENC to rc4_enc.o if you want to use the C version
#There are 4 x86 assember options.
B
Ben Laurie 已提交
116
RC4_ENC= asm/rx86-out.o
117 118 119 120 121 122 123 124
#RC4_ENC= rc4_enc.o
#RC4_ENC= asm/rx86-elf.o # elf
#RC4_ENC= asm/rx86-sol.o # solaris
#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
#RC4_ENC= asm/rx86bsdi.o # bsdi

# Set RC5_ENC to rc5_enc.o if you want to use the C version
#There are 4 x86 assember options.
B
Ben Laurie 已提交
125
RC5_ENC= asm/r586-out.o
126 127 128 129 130 131 132
#RC5_ENC= rc5_enc.o
#RC5_ENC= asm/r586-elf.o # elf
#RC5_ENC= asm/r586-sol.o # solaris
#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
#RC5_ENC= asm/r586bsdi.o # bsdi

# Also need MD5_ASM defined
B
Ben Laurie 已提交
133
MD5_ASM_OBJ= asm/mx86-out.o
134 135 136 137 138 139
#MD5_ASM_OBJ= asm/mx86-elf.o        # elf
#MD5_ASM_OBJ= asm/mx86-sol.o        # solaris
#MD5_ASM_OBJ= asm/mx86-out.o        # a.out, FreeBSD
#MD5_ASM_OBJ= asm/mx86bsdi.o        # bsdi

# Also need SHA1_ASM defined
B
Ben Laurie 已提交
140
SHA1_ASM_OBJ= asm/sx86-out.o
141 142 143 144 145 146
#SHA1_ASM_OBJ= asm/sx86-elf.o       # elf
#SHA1_ASM_OBJ= asm/sx86-sol.o       # solaris
#SHA1_ASM_OBJ= asm/sx86-out.o       # a.out, FreeBSD
#SHA1_ASM_OBJ= asm/sx86bsdi.o       # bsdi

# Also need RMD160_ASM defined
B
Ben Laurie 已提交
147
RMD160_ASM_OBJ= asm/rm86-out.o
148 149 150 151 152 153
#RMD160_ASM_OBJ= asm/rm86-elf.o       # elf
#RMD160_ASM_OBJ= asm/rm86-sol.o       # solaris
#RMD160_ASM_OBJ= asm/rm86-out.o       # a.out, FreeBSD
#RMD160_ASM_OBJ= asm/rm86bsdi.o       # bsdi

DIRS=   crypto ssl rsaref apps test tools
154 155
# dirs in crypto to build
SDIRS=  \
156 157 158
	md2 md5 sha mdc2 hmac ripemd \
	des rc2 rc4 rc5 idea bf cast \
	bn rsa dsa dh \
B
Ben Laurie 已提交
159 160
	buffer bio stack lhash rand pem err objects \
	evp asn1 x509 conf txt_db pkcs7 comp
161 162 163 164 165 166

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

MAKEFILE= Makefile.ssl
167
MAKE=     make -f Makefile.ssl
168 169 170 171 172

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

173
TOP=    .
174
ONEDIRS=out tmp
175
EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep
176 177 178 179
WDIRS=  windows
LIBS=   libcrypto.a libssl.a 

GENERAL=        Makefile
R
Ralf S. Engelschall 已提交
180
BASENAME=       openssl
181 182 183 184 185
NAME=           $(BASENAME)-$(VERSION)
TARFILE=        $(NAME).tar
WTARFILE=       $(NAME)-win.tar
EXHEADER=       e_os.h
HEADER=         e_os.h
186 187 188 189 190

all:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making $$i..."; \
191
	$(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}' all ); \
192 193 194 195 196 197
	done;

sub_all:
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making $$i..."; \
198
	$(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}' all ); \
199 200
	done;

201 202 203
libclean:
	/bin/rm *.a */lib */*/lib

204
clean:
205
	/bin/rm -f shlib/*.o *.o core a.out fluff *.map
206 207 208 209 210 211 212 213 214 215
	@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 \
216
	/bin/rm -fr $$i/*; \
217 218 219 220 221 222
	done

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

223
files:  MINFO
224 225 226 227 228 229 230 231
	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:
232 233 234
	/bin/rm -f Makefile
	./util/point.sh Makefile.ssl Makefile
	$(TOP)/util/mklink.sh include $(EXHEADER)
235 236 237 238 239
	@for i in $(DIRS) ;\
	do \
	(cd $$i; echo "making links in $$i..."; \
	$(MAKE) SDIRS='${SDIRS}' links ); \
	done;
240
	@(SSLEAY="`pwd`/apps/ssleay"; export SSLEAY; sh tools/c_rehash certs)
241 242 243 244 245 246 247 248 249 250 251 252

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)

253
test:   tests
254 255 256

tests:
	(cd test; echo "testing $$i..."; \
257
	$(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 );
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
	@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:
289 290 291
	@gtar --no-recursion -cvf - \
		`find * -depth -print | grep -v CVS | grep -v .cvsignore | sort` |\
	tardy --user_number=0  --user_name=rse      \
R
Ralf S. Engelschall 已提交
292 293
	      --group_number=0 --group_name=openssl \
	      --prefix=openssl-$(VERSION) - |\
294 295
	gzip --best >../$(TARFILE).gz; \
	ls -l ../$(TARFILE).gz
296

297
dist:   
298
	perl Configure dist
299
	perl util/up_ver.pl ${VERSION}
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322
	@$(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 \
323
	(       echo installing $$i; \
324 325 326 327 328 329
		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.