Hi everyone,

I had some problems rebuilding tinyos.jar using the SHIMMER VMWare image,
even using sudo and having proper permissions. I was getting errors related
to java files generated based on c-headers, such as Serial.h, etc. I wrote a
custom script that does everything in a different order from the tinyos
make, which fixes any compilation issues.

Use *sudo ant build-all* to build everything, then create the jar with *find
. | grep -E "class|jpg|gif" | xargs jar cf tinyos.jar *(Copied from
support/sdk/java/Makefile). Change sdk.home property according to your
installation. The first bit before     <!-- BEGIN CUSTOMIZED SCRIPT -->  is
the original support/sdk/java/build.xml.

<project name="tinyos-2.x support sdk java" default="all">

<property name="sdk.home" value="~/tinyos-2.x/support/sdk/java"/>

    <target name="all" >
        <echo message = "Building support sdk java" />
        <exec executable="make" failonerror="true">
            <arg line="all" />
        </exec>
    </target>

    <target name="tinyos.jar">
        <echo message="Building tinyos.jar"></echo>
        <exec failonerror="true" executable="make">
            <arg line="tinyos.jar"></arg></exec>
    </target>

    <target name="javadoc" >
        <echo message = "Building javadoc" />
        <exec executable="make" failonerror="true">
            <arg line="javadoc" />
        </exec>
    </target>

    <!-- BEGIN CUSTOMIZED SCRIPT -->

    <target name="Serial.java">
         <exec executable="ncg" failonerror="true">
            <arg line="-o net/tinyos/message/Serial.java
-java-classname=net.tinyos.packet.Serial java
/home/tiny2/tinyos-2.x/tos/lib/serial/Serial.h Serial.h" />
                </exec>

    </target>

    <target name="SerialPacket.java">
         <exec executable="mig" failonerror="true">
            <arg line="-o net/tinyos/message/SerialPacket.java
-java-classname=net.tinyos.message.SerialPacket java
/home/tiny2/tinyos-2.x/tos/lib/serial/Serial.h serial_packet -I/types"/>
                </exec>

    </target>

    <target name="PrintfMsg.java">
         <exec executable="mig" failonerror="true">
            <arg line="java -java-classname=net.tinyos.tools.PrintfMsg
/home/tiny2/tinyos-2.x/tos/lib/printf/printf.h printf_msg -o
net/tinyos/tools/PrintfMsg.java"/>
                </exec>

    </target>

    <target name="build-all" depends="Serial.java, SerialPacket.java,
PrintfMsg.java, build-all-packages">
    </target>

    <target name="build-all-packages"
        depends="package-comm,
            package-packet,
            package-message,
            package-tools,
            package-util,
            package-sf,
            package-sim,
            package-mviz">
    </target>

    <target name="package-comm">
         <javac srcdir="net/tinyos/comm/"
                 destdir="."
                 classpath="."
                    debug="on"
                    source="1.5"
                />
    </target>


  <target name="package-message">
                 <javac srcdir="net/tinyos/message/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>

  <target name="package-packet">
                 <javac srcdir="net/tinyos/packet/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>

  <target name="package-sf">
                 <javac srcdir="net/tinyos/sf/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>



  <target name="package-util">
                 <javac srcdir="net/tinyos/util/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>

  <target name="package-tools">
                 <javac srcdir="net/tinyos/tools/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>


  <target name="package-mviz">
                 <javac srcdir="net/tinyos/mviz/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>

        <target name="package-sim">
                 <javac srcdir="net/tinyos/sim/"
                     destdir="."
                    classpath="."
                    debug="on"
                    source="1.5"
                />
        </target>

</project>


Hope this is of help to someone :)

Best regards,
Martin
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to