141f03cd9SDamjan Jovanovic<?xml version="1.0" encoding="UTF-8"?> 241f03cd9SDamjan Jovanovic<!--*********************************************************** 341f03cd9SDamjan Jovanovic * 441f03cd9SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 541f03cd9SDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 641f03cd9SDamjan Jovanovic * distributed with this work for additional information 741f03cd9SDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 841f03cd9SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 941f03cd9SDamjan Jovanovic * "License"); you may not use this file except in compliance 1041f03cd9SDamjan Jovanovic * with the License. You may obtain a copy of the License at 1141f03cd9SDamjan Jovanovic * 1241f03cd9SDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 1341f03cd9SDamjan Jovanovic * 1441f03cd9SDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 1541f03cd9SDamjan Jovanovic * software distributed under the License is distributed on an 1641f03cd9SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1741f03cd9SDamjan Jovanovic * KIND, either express or implied. See the License for the 1841f03cd9SDamjan Jovanovic * specific language governing permissions and limitations 1941f03cd9SDamjan Jovanovic * under the License. 2041f03cd9SDamjan Jovanovic * 2141f03cd9SDamjan Jovanovic ***********************************************************--> 2241f03cd9SDamjan Jovanovic 2341f03cd9SDamjan Jovanovic 2441f03cd9SDamjan Jovanovic<project name="idl" xmlns:if="ant:if" xmlns:unless="ant:unless"> 2541f03cd9SDamjan Jovanovic 2641f03cd9SDamjan Jovanovic <dirname property="idl.basedir" file="${ant.file.idl}"/> 2741f03cd9SDamjan Jovanovic 2841f03cd9SDamjan Jovanovic <!-- global properties --> 2941f03cd9SDamjan Jovanovic <property file="${idl.basedir}/../../ant.properties"/> 3041f03cd9SDamjan Jovanovic 3141f03cd9SDamjan Jovanovic 3241f03cd9SDamjan Jovanovic 3341f03cd9SDamjan Jovanovic <property name="idl.build.dir" location="${build.base.dir}/idl"/> 3441f03cd9SDamjan Jovanovic <property name="idl.urd.build.dir" location="${idl.build.dir}/urd"/> 3541f03cd9SDamjan Jovanovic <property name="idl.rdb.build.dir" location="${idl.build.dir}/rdb"/> 3641f03cd9SDamjan Jovanovic <property name="idl.classes.build.dir" location="${idl.build.dir}/classes"/> 3741f03cd9SDamjan Jovanovic <property name="idl.javamaker.flag" location="${idl.build.dir}/idl.javamaker.flag"/> 3841f03cd9SDamjan Jovanovic 39*a622bb93SDamjan Jovanovic <target name="idl"> 40*a622bb93SDamjan Jovanovic <check-idl/> 41*a622bb93SDamjan Jovanovic <build-idl unless:set="idl.uptodate"/> 42*a622bb93SDamjan Jovanovic </target> 4341f03cd9SDamjan Jovanovic 44*a622bb93SDamjan Jovanovic <macrodef name="check-idl"> 45*a622bb93SDamjan Jovanovic <sequential> 46*a622bb93SDamjan Jovanovic <local name="idl.files.exist"/> 47*a622bb93SDamjan Jovanovic <condition property="idl.files.exist"> 48*a622bb93SDamjan Jovanovic <resourcecount refid="idl.files" when="greater" count="0"/> 49*a622bb93SDamjan Jovanovic </condition> 50*a622bb93SDamjan Jovanovic 51*a622bb93SDamjan Jovanovic <local name="idl.files.union"/> 52*a622bb93SDamjan Jovanovic <union id="idl.files.union" if:set="idl.files.exist"> 53*a622bb93SDamjan Jovanovic <filelist refid="idl.files"/> 54*a622bb93SDamjan Jovanovic </union> 55*a622bb93SDamjan Jovanovic <uptodate property="idl.uptodate" targetfile="${idl.javamaker.flag}" if:set="idl.files.exist"> 56*a622bb93SDamjan Jovanovic <srcresources refid="idl.files.union"/> 57*a622bb93SDamjan Jovanovic </uptodate> 58*a622bb93SDamjan Jovanovic <property name="idl.uptodate" value="true" unless:set="idl.files.exist"/> 59*a622bb93SDamjan Jovanovic </sequential> 60*a622bb93SDamjan Jovanovic </macrodef> 6141f03cd9SDamjan Jovanovic 62*a622bb93SDamjan Jovanovic <macrodef name="build-idl"> 63*a622bb93SDamjan Jovanovic <sequential> 64*a622bb93SDamjan Jovanovic <idlc/> 65*a622bb93SDamjan Jovanovic <regmerge/> 66*a622bb93SDamjan Jovanovic <javamaker 67*a622bb93SDamjan Jovanovic inputRdb="${idl.rdb.build.dir}/registry.rdb" 68*a622bb93SDamjan Jovanovic outputDirectory="${idl.classes.build.dir}" 69*a622bb93SDamjan Jovanovic noDependentTypes="true" 70*a622bb93SDamjan Jovanovic excludes="${OUTDIR}/bin/types.rdb"/> 71*a622bb93SDamjan Jovanovic <touch file="${idl.javamaker.flag}"/> 72*a622bb93SDamjan Jovanovic </sequential> 73*a622bb93SDamjan Jovanovic </macrodef> 74*a622bb93SDamjan Jovanovic 75*a622bb93SDamjan Jovanovic <macrodef name="idlc"> 76*a622bb93SDamjan Jovanovic <sequential> 77*a622bb93SDamjan Jovanovic <mkdir dir="${idl.urd.build.dir}"/> 78*a622bb93SDamjan Jovanovic <apply executable="${OUTDIR}/bin/idlc" failonerror="true"> 79*a622bb93SDamjan Jovanovic <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 80*a622bb93SDamjan Jovanovic <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 81*a622bb93SDamjan Jovanovic <arg value="-I${OUTDIR}/idl"/> 82*a622bb93SDamjan Jovanovic <arg value="-O"/> 83*a622bb93SDamjan Jovanovic <arg value="${idl.urd.build.dir}"/> 84*a622bb93SDamjan Jovanovic <arg value="-verbose"/> 85*a622bb93SDamjan Jovanovic <arg value="-cid"/> 86*a622bb93SDamjan Jovanovic <arg value="-we"/> 87*a622bb93SDamjan Jovanovic <filelist refid="idl.files"/> 88*a622bb93SDamjan Jovanovic </apply> 89*a622bb93SDamjan Jovanovic </sequential> 90*a622bb93SDamjan Jovanovic </macrodef> 91*a622bb93SDamjan Jovanovic 92*a622bb93SDamjan Jovanovic <macrodef name="regmerge"> 93*a622bb93SDamjan Jovanovic <sequential> 94*a622bb93SDamjan Jovanovic <mkdir dir="${idl.rdb.build.dir}"/> 95*a622bb93SDamjan Jovanovic <delete file="${idl.rdb.build.dir}/registry.rdb"/> 96*a622bb93SDamjan Jovanovic <apply executable="${OUTDIR}/bin/regmerge" failonerror="true"> 97*a622bb93SDamjan Jovanovic <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 98*a622bb93SDamjan Jovanovic <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 99*a622bb93SDamjan Jovanovic <arg value="${idl.rdb.build.dir}/registry.rdb"/> 100*a622bb93SDamjan Jovanovic <arg value="/UCR"/> 101*a622bb93SDamjan Jovanovic <fileset dir="${idl.urd.build.dir}" includes="**/*.urd"/> 102*a622bb93SDamjan Jovanovic </apply> 103*a622bb93SDamjan Jovanovic </sequential> 104*a622bb93SDamjan Jovanovic </macrodef> 10541f03cd9SDamjan Jovanovic 106bee6bcb9SDamjan Jovanovic <macrodef name="javamaker"> 107*a622bb93SDamjan Jovanovic <attribute name="inputRdb"/> 108*a622bb93SDamjan Jovanovic <attribute name="outputDirectory"/> 109*a622bb93SDamjan Jovanovic <attribute name="noDependentTypes" default="false"/> 110bee6bcb9SDamjan Jovanovic <attribute name="excludes" default=""/> 111bee6bcb9SDamjan Jovanovic <sequential> 112*a622bb93SDamjan Jovanovic <mkdir dir="@{outputDirectory}"/> 113bee6bcb9SDamjan Jovanovic <exec executable="${OUTDIR}/bin/javamaker" failonerror="true"> 114bee6bcb9SDamjan Jovanovic <env key="LD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 115bee6bcb9SDamjan Jovanovic <env key="DYLD_LIBRARY_PATH" value="${OUTDIR}/lib"/> 116*a622bb93SDamjan Jovanovic <arg value="-O@{outputDirectory}"/> 117bee6bcb9SDamjan Jovanovic <arg value="-BUCR"/> 118bee6bcb9SDamjan Jovanovic <arg value="-nD" 119*a622bb93SDamjan Jovanovic if:true="@{noDependentTypes}"/> 120*a622bb93SDamjan Jovanovic <arg value="@{inputRdb}"/> 121bee6bcb9SDamjan Jovanovic <arg value="-X@{excludes}" 122bee6bcb9SDamjan Jovanovic unless:blank="@{excludes}"/> 123bee6bcb9SDamjan Jovanovic </exec> 124bee6bcb9SDamjan Jovanovic </sequential> 125bee6bcb9SDamjan Jovanovic </macrodef> 12641f03cd9SDamjan Jovanovic</project> 12741f03cd9SDamjan Jovanovic 128