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