<?xml version="1.0"?>
<!--
 
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 
   http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 
-->

<project name="example-direct-Producer" default="build">
    <!--
		Properties that come from master build file
		- build.dir: root directory for build
		- build.debug: true if building debug release
		- build.defines: variables to define during build
    -->

    <target name="build">
        <csc target="exe" 
				define="${build.defines}" 
				debug="${build.debug}" 
				output="${build.dir}/${project::get-name()}.exe">
			
			<sources>
			   <include name="**/*.cs" />
         </sources>
         <references>
            <include name="${build.dir}/log4net.dll" />	
            <include name="${build.dir}/qpid.client.dll" />
	    <include name="System.Configuration.dll" />	    
         </references>
        </csc>
    </target>
</project>

