Listing 1:

GENERIC MAKE BUILD SCRIPT
# =================================
# Builds the application executable
# =================================
application: application.c lib_a.o lib_b.o lib_c.o
	@cc g -qcpluscmt -qidirfirst -I. -I/sys_apps/ref_dir/release/include -I/usr/include -o./exe/application $?
	 -bE:/sys_apps/ref_dir/release/include/application.imp

lib_a.o: lib_a.c
	@cc g -qcpluscmt -qidirfirst -I. -I/sys_apps/ref_dir/release/include -I/usr/include -o lib_a.o -c $?

lib_b.o: lib_b.c
	@cc g -qcpluscmt -qidirfirst -I. -I/sys_apps/ref_dir/release/include -I/usr/include -o lib_b.o -c $?

lib_c.o: lib_c.c
@cc g -qcpluscmt -qidirfirst -I. -I/sys_apps/ref_dir/release/include -I/usr/include -o lib_c.o -c $?


GENERIC ANT SCRIPT
 <!-- ========================================================= -->
 <!-- Compiles source code and packages application.jar -->
 <!--========================================================= -->
 <target name="compile" depends="prepare">
    <javac srcdir="./src"
           includes=**/*.java"
           destdir="./build"
           debug="off"
           deprecation="off"
           optimize="on"
  </target>

  <target name="application_jar" depends="compile">
    <jar jarfile="./build/application.jar"
         basedir="./build/classes"
         compress="false"
         includes="com/**"/>
  </target>
  
  Listing 2

  <!-- ================================================== -->
  <!-- Setup the properties. These values will be edited by developers -->
  <!-- in order to make the scripts run on their on workstations. -->
  <!-- ================================================== -->
  <property name="src.dir" value="./src"/>
  <property name="images.dir" value="./images"/>
  <property name="doc.dir" value="./doc"/>
  <property name="build.dir" value="./build"/>
  <property name="classes.dir" value="${build.dir}/classes"/>
  <property name="deploy.dir" value="./deploy"/>
  <property name="deploy.doc.dir" value="${deploy.dir}/doc"/>
  <property name="deploy.images.dir" value="${deploy.dir}/images"/>
  <property name="deploy.jars.dir" value="${deploy.dir}/jars"/>
  <property name="debug" value="off"/>
  <property name="optimize" value="on"/>
  <property name="deprecation" value="off"/>
  <property name="appjar.name" value="application.jar"/>
  <property name="commjar.name" value="common.jar"/>

  <!-- ================================================== -->
  <!-- Compiles source code -->
  <!-- ================================================== -->
  <target name="compile" depends="prepare">
    <javac srcdir="${src.dir}"
           includes=**/*.java"
           destdir="${classes.dir}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}"
  </target>

  <!-- ================================================== -->
  <!-- Packages application.jar -->
  <!-- ================================================== -->
  <target name="common_jar" depends="compile">
    <jar jarfile="${build.dir}/${appjar.name}"
         basedir="${classes.dir}"
         compress="false"
         includes="com/company/application/**"/>
  </target>

  <!-- ================================================== -->
  <!-- Packages common.jar -->
  <!-- ================================================== -->
  <target name="application_jar" depends="common_jar">
    <jar jarfile="${build.dir}/${commjar.name}"
         basedir="${classes.dir}"
         compress="false"
         includes="com/company/common/**"/>
  </target>
  
  
    <!-- ================================================== -->
    <!-- Prepares the objects for distribution. -->
    <!-- ================================================== -->
    <target name="prep-deploy" depends="application_jar">
      <mkdir dir="${deploy.dir}"/>
      <mkdir dir="${deploy.doc.dir}"/>
      <mkdir dir="${deploy.images.dir}"/>
      <mkdir dir="${deploy.jars.dir}"/>
    
      <copy todir="${deploy.doc.dir}" >
          <fileset
              dir="${doc.dir}"
              includes="**/*.html"
              excludes="**/dev/*,**/qa/*"
          />
      </copy>
  
  
      <copy todir="${deploy.images.dir}" >
          <fileset
              dir="${images.dir}"
              includes="**/*.jpg,**/*.gif"
              excludes="**/dev/*,**/qa/*"
          />
      </copy>

      <copy todir="${deploy.jars.dir" >
          <fileset
              dir="${build.dir}"
              includes="*.jar"
          />
      </copy>
  
      <zip zipfile="deployable.zip"
           basedir="${deploy.dir}"/>
  
      <tar tarfile="deployable.tar" 
           basedir="${deploy.dir}"
    </target>

Listing 3

  <!-- ================================================== -->
  <!-- Setup the properties. These values will be edited by developers -->
  <!-- in order to make the scripts run on their on workstations. -->
  <!-- ================================================== -->
  <property name="src.dir" value="./src"/>
  <property name="buildutility.dir" value="./scripts"/>
  <property name="build.dir" value="./build"/>
  <property name="classes.dir" value="${build.dir}/classes"/>
  <property name="debug" value="off"/>
  <property name="optimize" value="on"/>
  <property name="deprecation" value="off"/>
  <property name="appjar.name" value="application.jar"/>
  <property name="commjar.name" value="common.jar"/>

  <!-- ================================================== -->
  <!-- Compiles source code -->
  <!-- ================================================== -->
  <target name="compile" depends="prepare">
    <javac srcdir="${src.dir}"
           includes=**/*.java"
           destdir="${classes.dir}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}"
  </target>

  <!-- ================================================== -->
  <!-- Packages application.jar -->
  <!-- ================================================== -->
  <target name="common_jar" depends="compile">
    <jar jarfile="${build.dir}/${appjar.name}"
         basedir="${classes.dir}"
         compress="false"
         includes="com/company/application/**"/>
  </target>

  <!-- ================================================== -->
  <!-- Packages common.jar -->
  <!-- ================================================== -->
  <target name="application_jar" depends="common_jar">
    <jar jarfile="${build.dir}/${commjar.name}"
         basedir="${classes.dir}"
         compress="false"
         includes="com/company/common/**"/>
  </target>
  
  
    <!-- ================================================== -->
    <!-- Executes the deployment script that handles preparing the -->
    <!-- deployable objects and actually deploys them. -->
    <!-- ================================================== -->
    <target name="post-build" depends="application_jar">
     <exec executable="post-build.pl" dir="${ buildutility.dir }">
      <arg line="/package" />
      <arg line="/deploy" />
    </target>