# $Id: Portfile 55462 2009-08-11 12:48:17Z jmr@macports.org $

PortSystem 1.0
PortGroup  muniversal 1.0

name			openssl
version			0.9.8k
epoch			1
platforms		darwin freebsd
categories		devel security
maintainers		mww
homepage		http://www.openssl.org/
description		OpenSSL SSL/TLS cryptography library

long_description \
	The OpenSSL Project is a collaborative effort to develop a robust, \
	commercial-grade, full-featured, and Open Source toolkit implementing \
	the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security \
	(TLS v1) protocols as well as a full-strength general purpose \
	cryptography library.

master_sites	http://www.openssl.org/source/
checksums           md5     e555c6d58d276aec7fdc53363e338ab3 \
                    sha1    3ba079f91d3c1ec90a36dcd1d43857165035703f \
                    rmd160  496df7a5d33457b0d8e3b930a8e5cf068923182c

depends_lib		port:zlib

platform darwin {
	patchfiles	patch-Makefile.org.diff patch-crypto-Makefile.diff
}

configure.cmd	./config
configure.args	-L${prefix}/lib --openssldir=${prefix}/etc/openssl zlib no-asm no-krb5 shared
configure.ccache	no

variant rfc3779 description {enable RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers} {
	configure.args-append	enable-rfc3779
}

use_parallel_build	no

destroot.destdir	INSTALL_PREFIX=${destroot}
destroot.args		MANDIR=${prefix}/share/man

test.run		yes

livecheck.check	regex
livecheck.url	${master_sites}
livecheck.regex	${name}-(0.9.8\[a-z\])

post-patch {
	# Ensure that the correct compiler is used
	reinplace "s|cc:|${configure.cc}:|" ${worksrcpath}/Configure
}

array set merger_configure_args {
	ppc     darwin-ppc-cc
	i386    darwin-i386-cc
	ppc64   darwin64-ppc-cc
	x86_64  darwin64-x86_64-cc
}

if { [variant_isset universal] } {
	configure.cmd	./Configure

	post-patch {
		# For universal builds, add "-isysroot ${universal_sysroot}" to compiler options
		if {[info exists universal_sysroot]} {
			reinplace "s|\\(-arch \[_a-zA-Z0-9\]*\\)|\\1 -isysroot ${universal_sysroot}|" ${worksrcpath}/Configure
		}
	}

	set merger_arch_compiler "no"

	configure.universal_args-delete --disable-dependency-tracking
	configure.args-delete  --disable-dependency-tracking
	# workaround for #17865
	if {![info exists configure.universal_args]} {
	    configure.universal_args
	}
	if {![info exists configure.args]} {
	    configure.args
	}

	pre-destroot {
		global merger_dont_diff
		if { [llength ${universal_archs_to_use}] > 2 } {
			lappend merger_dont_diff ${prefix}/include/openssl/opensslconf.h
		}
	}

	# Do not set --host.
	array set merger_host {
		ppc     ""
		i386    ""
		ppc64   ""
		x86_64  ""
	}
} elseif {[info exists build_arch] && [info exists merger_configure_args($build_arch)]} {
    configure.cmd           ./Configure
    configure.args-append   $merger_configure_args($build_arch)
}

# the test suite can only be run *after* destrooting
#    test.run            yes
#    test.dir            ${worksrcpath}/test
#    test.target         alltests
