Test for new CVS repository
[openssl.git] / Makefile.ssl
index 676ece0aa82123dbdf006f18b5aaee9c2cef485f..f6cb64329a9c299d7251d03be41fdfb9b13156a8 100644 (file)
@@ -1,6 +1,7 @@
 #
 # Makefile for all the SSL related library routines and utilities
-VERSION        = 0.8.1a
+VERSION = 0.9.1c
+PLATFORM=dist
 #
 # make install will install:
 #   libraries into $INSTALLTOP/lib
@@ -21,9 +22,9 @@ VERSION       = 0.8.1a
 #
 # 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>
+#       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
@@ -35,119 +36,173 @@ VERSION   = 0.8.1a
 # 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]
+#           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.
+#           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.
+#           SSLv3 anon-DH ciphers.
 # SSL_ALLOW_ENULL - define if you want the server to be able to use the
-#          NULL encryption ciphers.
+#           NULL encryption ciphers.
 #
 # LOCK_DEBUG - turns on lots of lock debug output :-)
 # REF_CHECK - turn on some xyz_free() assertions.
+# REF_PRINT - prints some stuff on structure free.
 # 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()
-
+#       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
+# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8.  It must
+# equal 4.
+# PKCS1_CHECK - pkcs1 tests.
 
 CC= cc
+#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
 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 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
 
 # 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
+#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
 
 # 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= bf_enc.o
 #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
+#BF_ENC= asm/bx86-sol.o # solaris
+#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
+#BF_ENC= asm/bx86bsdi.o # bsdi
+
+# Set CAST_ENC to c_enc.o if you want to use the C version
+#There are 4 x86 assember options.
+CAST_ENC= c_enc.o
+#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.
+RC4_ENC= rc4_enc.o
+#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.
+RC5_ENC= rc5_enc.o
+#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
 
-DIRS=  crypto ssl rsaref apps test tools
+# Also need MD5_ASM defined
+MD5_ASM_OBJ= 
+#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
+SHA1_ASM_OBJ= 
+#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
+RMD160_ASM_OBJ= 
+#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
 # dirs in crypto to build
 SDIRS=  \
-       md sha mdc2 des rc4 rc2 idea bf bn rsa dsa dh \
+       md2 md5 sha mdc2 hmac ripemd \
+       des rc2 rc4 rc5 idea bf cast \
+       bn rsa dsa dh \
        buffer bio stack lhash rand err objects \
-       evp pem asn1 x509 conf txt_db pkcs7
+       evp pem asn1 x509 conf txt_db pkcs7 comp
 
 # 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
+MAKE=     make -f Makefile.ssl
 
 MAN1=1
 MAN3=3
 SHELL=/bin/sh
 
-TOP=   .
+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
+EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep
+WDIRS=  windows
+LIBS=   libcrypto.a libssl.a 
+
+GENERAL=        Makefile
+BASENAME=       openssl
+NAME=           $(BASENAME)-$(VERSION)
+TARFILE=        $(NAME).tar
+WTARFILE=       $(NAME)-win.tar
+EXHEADER=       e_os.h
+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 ); \
+       $(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 ); \
        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 ); \
+       $(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 ); \
        done;
 
+libclean:
+       /bin/rm *.a */lib */*/lib
+
 clean:
-       /bin/rm -f *.o core a.out fluff *.map
+       /bin/rm -f shlib/*.o *.o core a.out fluff *.map
        @for i in $(DIRS) ;\
        do \
        (cd $$i; echo "cleaning $$i..."; \
@@ -158,14 +213,14 @@ clean:
        /bin/rm -f $(TARFILE)
        @for i in $(ONEDIRS) ;\
        do \
-       /bin/rm -f $$i/*; \
+       /bin/rm -fr $$i/*; \
        done
 
 makefile.one: files
        perl util/mk1mf.pl >makefile.one; \
        sh util/do_ms.sh
 
-files: MINFO
+files:  MINFO
        perl $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
        @for i in $(DIRS) ;\
        do \
@@ -174,15 +229,15 @@ files:    MINFO
        done;
 
 links:
-       /bin/rm -f Makefile;
-       ./util/point.sh Makefile.ssl Makefile;
+       /bin/rm -f Makefile
+       ./util/point.sh Makefile.ssl Makefile
+       $(TOP)/util/mklink.sh include $(EXHEADER)
        @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
+       @(SSLEAY="`pwd`/apps/ssleay"; export SSLEAY; sh tools/c_rehash certs)
 
 dclean:
        /bin/rm -f *.bak
@@ -195,11 +250,11 @@ dclean:
 rehash:
        @(PATH="`pwd`/apps:${PATH}"; sh tools/c_rehash certs)
 
-test:  tests
+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 );
+       $(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 );
        @apps/ssleay version -a
 
 depend:
@@ -231,19 +286,17 @@ 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)
+       @gtar --no-recursion -cvf - \
+               `find * -depth -print | grep -v CVS | grep -v .cvsignore | sort` |\
+       tardy --user_number=0  --user_name=rse      \
+             --group_number=0 --group_name=openssl \
+             --prefix=openssl-$(VERSION) - |\
+       gzip --best >../$(TARFILE).gz; \
+       ls -l ../$(TARFILE).gz
 
-dist:  
+dist:   
        perl Configure dist
+       perl util/up_ver.pl ${VERSION}
        @$(MAKE) dist_pem_h
        @$(MAKE) SDIRS='${SDIRS}' clean
        @$(MAKE) SDIRS='${SDIRS}' dclean
@@ -267,7 +320,7 @@ install: all
        done
        @for i in $(LIBS) ;\
        do \
-       (       echo installing $$i; \
+       (       echo installing $$i; \
                cp $$i $(INSTALLTOP)/lib; \
                sh util/ranlib.sh $(INSTALLTOP)/lib/$$i; \
                chmod 644 $(INSTALLTOP)/lib/$$i ); \