# $Id: Portfile 85539 2011-10-14 07:58:24Z mww@macports.org $

PortSystem 1.0
PortGroup		muniversal 1.0

name			xercesc
conflicts		xercesc3
version			2.8.0
revision		2
categories		textproc
maintainers		isode.com:chris.ridd
license			Apache-2
description		an XML parser
long_description	Xerces-C++ is a validating XML parser written in \
			a portable subset of C++.  Xerces-C++ makes it \
			easy to give your application the ability to read \
			and write XML data.  A shared library is provided \
			for parsing, generating, manipulating, and \
			validating XML documents.
homepage		http://xerces.apache.org/xerces-c/
master_sites		apache:xerces/c/2/sources/
distname		xerces-c-src_[strsed ${version} {g/\./_/}]
checksums		md5 5daf514b73f3e0de9e3fce704387c0d2
platforms		darwin

patchfiles		64-bit-no-carbon.diff

configure.dir		${worksrcpath}/src/xercesc
configure.pre_args	-P "${prefix}"
configure.args		-c ${configure.cc} \
			-x ${configure.cxx}
configure.cmd		./runConfigure
configure.universal_args-delete --disable-dependency-tracking

proc bits_arg_for_arch {arch} {
	switch ${arch} {
		x86_64  -
		ppc64   { return {-b 64} }
		i386    -
		ppc     { return {-b 32} }
	}
}

if {[variant_isset universal]} {
	foreach arch ${configure.universal_archs} {
		set merger_configure_args(${arch}) "-z -I${worksrcpath}-${arch}/src [bits_arg_for_arch ${arch}]"
		set merger_configure_env(${arch}) XERCESCROOT=${worksrcpath}-${arch}
		set merger_build_env(${arch}) $merger_configure_env(${arch})
		set merger_destroot_env(${arch}) $merger_configure_env(${arch})
	}
} else {
	configure.args-append -z -I${worksrcpath}/src \
	                      [bits_arg_for_arch ${configure.build_arch}]
	configure.env	XERCESCROOT=${worksrcpath}
	build.env		${configure.env}
	destroot.env	${configure.env}
}

use_parallel_build	no
build.dir		${worksrcpath}/src/xercesc
build.type		gnu

platform darwin	{
	configure.args-append	-p macosx -n native
}

post-build {
    if {![variant_isset universal]} {
        xinstall -m 755 -W ${filespath} makestatic.sh.in ${build.dir}/makestatic.sh
        reinplace s|@CXX@|${configure.cxx}| ${build.dir}/makestatic.sh
        system "cd ${build.dir} && ${build.env} ./makestatic.sh"
	} else {
	    foreach arch ${configure.universal_archs} {
	        set arch_build_dir [string map "${worksrcpath} ${worksrcpath}-${arch}" ${build.dir}]
            xinstall -m 755 -W ${filespath} makestatic.sh.in ${arch_build_dir}/makestatic.sh
            reinplace s|@CXX@|${configure.cxx}| ${arch_build_dir}/makestatic.sh
            system "cd ${arch_build_dir} && $merger_build_env(${arch}) ./makestatic.sh"
        }
	}
}

pre-destroot	{
    if {![variant_isset universal]} {
        xinstall -d -m 755 ${destroot}${prefix}/lib
	    xinstall ${worksrcpath}/lib/libxerces-c.a ${destroot}${prefix}/lib
	} else {
	    foreach arch ${configure.universal_archs} {
	        xinstall -d -m 755 ${destroot}-${arch}${prefix}/lib
	        xinstall ${worksrcpath}-${arch}/lib/libxerces-c.a ${destroot}-${arch}${prefix}/lib
	    }
	}
	
	xinstall -d -m 755 ${destroot}${prefix}/share/doc
	file copy ${worksrcpath}/doc/html ${destroot}${prefix}/share/doc/${name}
	xinstall -m 644 -W ${worksrcpath} version.incl LICENSE.txt Readme.html \
		credits.txt ${destroot}${prefix}/share/doc/${name}
}

post-destroot {
    system "ranlib ${destroot}${prefix}/lib/libxerces-c.a"
}
