hinv may generate more than one line (1 line per CPU).
[oweals/openssl.git] / Makefile.org
index 72a8abfcf78d9525c6de100927786741c92b9361..b947fcbefb5ec0ce0349c18a466d653ba7c6ee2e 100644 (file)
@@ -72,6 +72,14 @@ TAR= tar
 TARFLAGS= --no-recursion
 MAKEDEPPROG=makedepend
 
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS=$(CC) -c
+ASFLAGS=$(CFLAG)
+
 # 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
@@ -217,7 +225,7 @@ sub_all:
        do \
        if [ -d "$$i" ]; then \
                (cd $$i && echo "making all in $$i..." && \
-               $(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}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
+               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAGS='${ASFLAGS}' 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}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
        else \
                $(MAKE) $$i; \
        fi; \
@@ -270,13 +278,16 @@ do_bsd-gcc-shared: do_gnu-shared
 do_linux-shared: do_gnu-shared
 do_gnu-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        ( set -x; ${CC} ${SHARED_LDFLAGS} \
                -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                -Wl,-Bsymbolic \
                -Wl,--whole-archive lib$$i.a \
                -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
-       libs="$$libs -l$$i"; \
+       libs="-l$$i $$libs"; \
        done
 
 DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
@@ -284,22 +295,28 @@ DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
 # For Darwin AKA Mac OS/X (dyld)
 do_darwin-shared: 
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
-       ( set -x ; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
+       ( set -x; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
                lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \
                -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \
                -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \
-       libs="$$libs -l`basename $$i${SHLIB_EXT} .dylib`"; \
+       libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \
        echo "" ; \
        done
 
 do_cygwin-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        ( set -x; ${CC}  -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \
                -Wl,-Bsymbolic \
                -Wl,--whole-archive lib$$i.a \
                -Wl,--out-implib,lib$$i.dll.a \
                -Wl,--no-whole-archive $$libs ) || exit 1; \
-       libs="$$libs -l$$i"; \
+       libs="-l$$i $$libs"; \
        done
 
 # This assumes that GNU utilities are *not* used
@@ -308,11 +325,14 @@ do_alpha-osf1-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( set -x; ${CC} ${SHARED_LDFLAGS} \
                        -shared -o lib$$i.so \
                        -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
                        -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -324,11 +344,14 @@ do_tru64-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( set -x; ${CC} ${SHARED_LDFLAGS} \
                        -shared -msym -o lib$$i.so \
                        -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
                        -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -340,12 +363,15 @@ do_tru64-shared-rpath:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( set -x; ${CC} ${SHARED_LDFLAGS} \
                        -shared -msym -o lib$$i.so \
                        -rpath  ${INSTALLTOP}/lib \
                        -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
                        -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -356,6 +382,9 @@ do_solaris-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
                  MINUSZ='-z '; \
                  (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
@@ -364,7 +393,7 @@ do_solaris-shared:
                        -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \
                        $$libs ${EX_LIBS} -lc ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -374,6 +403,9 @@ do_svr3-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
                  find . -name "*.o" -print > allobjs ; \
                  OBJS= ; export OBJS ; \
@@ -383,7 +415,7 @@ do_svr3-shared:
                  set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -393,6 +425,9 @@ do_svr5-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
                  find . -name "*.o" -print > allobjs ; \
                  OBJS= ; export OBJS ; \
@@ -403,7 +438,7 @@ do_svr5-shared:
                        -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -413,11 +448,14 @@ do_irix-shared:
                $(MAKE) do_gnu-shared; \
        else \
                libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+               if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+                       libs="$(LIBKRB5) $$libs"; \
+               fi; \
                ( set -x; ${CC} ${SHARED_LDFLAGS} \
                        -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        -all lib$$i.a $$libs ${EX_LIBS} -lc) || exit 1; \
-               libs="$$libs -l$$i"; \
+               libs="-l$$i $$libs"; \
                done; \
        fi
 
@@ -434,6 +472,9 @@ do_irix-shared:
 #
 do_hpux-shared:
        for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
                +vnocompatwarnings \
                -b -z +s \
@@ -454,6 +495,9 @@ do_hpux-shared:
 #
 do_hpux64-shared:
        for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
                -b -z \
                -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
@@ -496,17 +540,24 @@ SHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE
 SHAREDCMD=$(CC)
 do_aix-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        ( set -x; \
-         ld -r -o $$i.o $(ALLSYMSFLAG) lib$$i.a && \
+         ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
          ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
-           $(SHAREDCMD) $(SHAREDFLAG) -o lib$$i.so lib$$i.o \
+           $(SHAREDCMD) $(SHAREDFLAGS) \
+               -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \
                $$libs ${EX_LIBS} ) ) \
        || exit 1; \
-       libs="$$libs -l$$i"; \
+       libs="-l$$i $$libs"; \
        done
 
 do_reliantunix-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+       if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
+               libs="$(LIBKRB5) $$libs"; \
+       fi; \
        tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \
        ( set -x; \
          ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \
@@ -516,7 +567,7 @@ do_reliantunix-shared:
          cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \
        ) || exit 1; \
        rm -rf $$tmpdir ; \
-       libs="$$libs -l$$i"; \
+       libs="-l$$i $$libs"; \
        done
 
 openssl.pc: Makefile.ssl
@@ -529,8 +580,8 @@ openssl.pc: Makefile.ssl
            echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
            echo 'Version: '$(VERSION); \
            echo 'Requires: '; \
-           echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
-           echo 'Cflags: -I$${includedir}' ) > openssl.pc
+           echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \
+           echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
 
 Makefile.ssl: Makefile.org
        @echo "Makefile.ssl is older than Makefile.org."
@@ -538,10 +589,10 @@ Makefile.ssl: Makefile.org
        @false
 
 libclean:
-       rm -f *.a */lib */*/lib
+       rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
 
-clean:
-       rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
+clean: libclean
+       rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
        @for i in $(DIRS) ;\
        do \
        if [ -d "$$i" ]; then \
@@ -551,7 +602,7 @@ clean:
        fi; \
        done;
        rm -f openssl.pc
-       rm -f *.a *.o speed.* *.map *.so .pure core
+       rm -f speed.* .pure
        rm -f $(TARFILE)
        @for i in $(ONEDIRS) ;\
        do \
@@ -602,8 +653,7 @@ rehash.time: certs
        @(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \
                export OPENSSL OPENSSL_DEBUG_MEMORY; \
                LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
-               if [ "$(PLATFORM)" = "DJGPP" ]; then PATH="`pwd`\;$$PATH";  \
-               elif [ "$(PLATFORM)" != "Cygwin" ];  then PATH="`pwd`:$$PATH"; fi; \
+               if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
                export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
                $(PERL) tools/c_rehash certs)
        touch rehash.time
@@ -614,8 +664,7 @@ tests: rehash
        @(cd test && echo "testing..." && \
        $(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}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
        @LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
-               if [ "$(PLATFORM)" = "DJGPP" ]; then PATH="`pwd`\;$$PATH";  \
-               elif [ "$(PLATFORM)" != "Cygwin" ];  then PATH="`pwd`:$$PATH"; fi; \
+               if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
                export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
                apps/openssl version -a
 
@@ -750,7 +799,7 @@ install: all install_docs
                                        chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
                                        mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
                                else \
-                                       c=`echo $$i | sed 's/^lib\(.*\)/cyg\1-$(SHLIB_VERSION_NUMBER)/'`; \
+                                       c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
                                        cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
                                        chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
                                        mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
@@ -764,6 +813,12 @@ install: all install_docs
                        cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
                        set $(MAKE); \
                        $$1 -f $$here/Makefile link-shared ); \
+               if [ "$(INSTALLTOP)" != "/usr" ]; then \
+                       echo 'OpenSSL shared libraries have been installed in:'; \
+                       echo '  $(INSTALLTOP)'; \
+                       echo ''; \
+                       sed -e '1,/^$$/d' doc/openssl-shared.txt; \
+               fi; \
        fi
        cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig