<?xml version="1.0" encoding="UTF-8"?>
<!--
  Ant Buildfile
 
  Copyright 2016-2017 IS2T. All rights reserved.
  IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
<project name="partialLinkWatchdogInit">

	<!-- 
		Generate link file for Watchdogs
	-->

	<import file="${scripts.dir}/extension-init.xml" />
	<import file="${scripts.dir}/microejAntlib.xml" />
	
		
	<target name="init/partialLink/watchdog" extensionOf="init/execution" if="onBoard">
		<!-- Default options if not set -->
		<property name="enable.watchdog.support" value="true"/>
		<property name="maximum.active.watchdogs" value="4"/>
	
		<script language="javascript">
			<![CDATA[
				var maxWatchdogsInVMAsString = project.getProperty("maximum.active.watchdogs");
				var maxActiveWatchdogs = maxWatchdogsInVMAsString != null ? parseInt(maxWatchdogsInVMAsString) : 0;
				if (maxActiveWatchdogs > 0) {
					project.setProperty("has.active.watchdogs", "true");
				}
			]]>
		</script>
	
		<condition property="jvm.watchdog.enabled" value="1" else="0">
			<and>
				<equals arg1="${enable.watchdog.support}" arg2="true" />
				<isset property="has.active.watchdogs" />
			</and>
		</condition>
	</target>
	
	<target name="create/partialLink/watchdog" extensionOf="init/execution" depends="init/partialLink/watchdog" if="onBoard">
		<!-- temporary link files -->
		<local name="link.files.dir"/>
		<microejtempfile deleteonexit="true" prefix="linkWatchdog" property="link.files.dir"/>
		<mkdir dir="${link.files.dir}"/>
		
		<local name="link.sizes"/>
		<property name="link.sizes" value="${link.files.dir}/sizes.lscf" />
		
		<property name="watchdog.context.stack.size" value="${maximum.active.watchdogs}"/>
		
		<!-- create the size file -->
		<echoxml file="${link.sizes}" append="false">
			<lscFragment>
				<defSymbol name="${arch.symbol.prefix}_java_vmwatchdog_enabled" value="${jvm.watchdog.enabled}" rootSymbol="true"/>
				<defSymbol name="${arch.symbol.prefix}_java_vmwatchdog_nb_watchdogs" value="${maximum.active.watchdogs}" rootSymbol="true"/>
				<defSymbol name="${arch.symbol.prefix}_java_vmwatchdog_context_stack_size" value="${watchdog.context.stack.size}" rootSymbol="true"/>
			</lscFragment>
		</echoxml>
		
		<augment id="partialLink.lscf.path">
			<path location="${link.files.dir}"/>
		</augment>
	</target>
		
</project>
