# Copyright (c) 2010 The Chromium OS Authors.  All rights reserved.
# Distributed under the terms of the GNU General Public License v2
# $Header$

EAPI="2"
CROS_WORKON_PROJECT="chromiumos/third_party/tpm-emulator"

inherit cmake-utils cros-workon toolchain-funcs

DESCRIPTION="TPM Emulator with small google-local changes"
LICENSE="GPL-2"
HOMEPAGE="//https://developer.berlios.de/projects/tpm-emulator"
SLOT="0"
IUSE="doc"
KEYWORDS="~*"

DEPEND="app-crypt/trousers
	dev-libs/gmp"

RDEPEND="${DEPEND}"

src_configure() {
	cros-workon_src_configure
	tc-export CC CXX LD AR RANLIB NM
	CHROMEOS=1 cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile
	# This would be normally done in kernel module build, but we have
	# copied the kernel module to the kernel tree.
	TPMD_DEV_SRC_DIR="${S}/tpmd_dev/linux"
	TPMD_DEV_BUILD_DIR="${CMAKE_BUILD_DIR}/tpmd_dev/linux"
	mkdir -p "${TPMD_DEV_BUILD_DIR}"
	sed -e "s/\$TPM_GROUP/tss/g" \
		< "${TPMD_DEV_SRC_DIR}/tpmd_dev.rules.in" \
		> "${TPMD_DEV_BUILD_DIR}/tpmd_dev.rules"
}

src_install() {
	# TODO(semenzato): need these for emerge on host, to run tpm_lite tests.
	# insinto /usr/lib
	# doins "${CMAKE_BUILD_DIR}/tpm/libtpm.a"
	# doins "${CMAKE_BUILD_DIR}/crypto/libcrypto.a"
	# doins "${CMAKE_BUILD_DIR}/tpmd/unix/libtpmemu.a"
	# insinto /usr/include
	# doins "${S}/tpmd/unix/tpmemu.h"
	exeinto /usr/sbin
	doexe "${CMAKE_BUILD_DIR}/tpmd/unix/tpmd"
	insinto /etc/udev/rules.d
	TPMD_DEV_BUILD_DIR="${CMAKE_BUILD_DIR}/tpmd_dev/linux"
	RULES_FILE="${TPMD_DEV_BUILD_DIR}/tpmd_dev.rules"
	newins "${RULES_FILE}" 80-tpmd_dev.rules
}
