[Tinyos-help] Java Makefile

Muhammad Azhar leo_az_83 at hotmail.com
Mon Feb 26 01:11:02 PST 2007


Hi,
   Sorry for the late reply, but I didn't have a chance to use TinyOS for 
the past few days.  Anyway, the 2 structures are not nested structures - 
i.e. they are independent of each other.  Also, I did not add the dash "-" 
sign to the Makefile - in my previous email, the "-" was just to link the 
code to what I was going to say (my apologies for the confusion).
   Actually, I have tried putting a space instead of ";" - but it still 
doesn't work.  Let me just paste the whole Makefile:

COMPONENT=CountAppC
BUILD_EXTRA_DEPS = CountMsg.class BeaconMsg.class

CountMsg.class: CountMsg.java
	javac CountMsg.java

BeaconMsg.class: BeaconMsg.java
	javac BeaconMsg.java

CountMsg.java: C.h
	mig java -target=$(PLATFORM) $(CFLAGS) -java-classname=CountMsg C.h 
countmsg -o $@

BeaconMsg.java: C.h
	mig java -target=$(PLATFORM) $(CFLAGS) -java-classname=BeaconMsg C.h beacon 
-o $@

include $(MAKERULES)

   When I first compiled, it gave me this warning: "warning: Cannot 
determine AM type for beacon (Looking for definition of AM_BEACON)".  I had 
AM_COUNTMSG, but not AM_BEACON initially.  So when I tried running the java 
program for countmsg, the structure for countmsg worked, but when I tried 
running the java program for beacon, there wasn't any output.  Thus, I tried 
inserting AM_BEACON into my C.h file.  I gave it the same value as 
AM_COUNTMSG.  This time round, the warning disappeared, but the output was 
rubbish.  Let me paste some of it:

1172479975200: Message <BeaconMsg>
  [nodeid=0x700]
  [treeDepth=0xd500]

1172479976181: Message <BeaconMsg>
  [nodeid=0x700]
  [treeDepth=0xd600]

1172479977150: Message <BeaconMsg>
  [nodeid=0x700]
  [treeDepth=0xd400]

    The nodeid should be 0x7 and not 0x700.  Also, the treeDepth must always 
be a constant value - in fact it should be 0x1 in this case, as the number 
of hops to the root is only 1 (I have verified this with the countmsg 
structure).  Thus, I tried changing the value of AM_BEACON, but of course, 
as I expected it, running the java program did not generate anything.

    Thank you for your patience.

Regards,
Azhar

>From: Michael Schippling <schip at santafe.edu>
>Reply-To: schip at santafe.edu
>To: Muhammad Azhar <leo_az_83 at hotmail.com>
>CC: tinyos-help at Millennium.Berkeley.EDU
>Subject: Re: [Tinyos-help] Java Makefile
>Date: Wed, 21 Feb 2007 19:35:27 -0700

>
>I'm sorry but my knowledge of makefile construction stopped accreting
>around 1990 so the TOS inner make workings are pretty much opaque to me.
>try:  man make  in the bash shell to see some more modern instructions.
>
>However the general makefile structure is:
>
>tagname:	things it is dependent on
>	instructions for making tagname
>	more instruction...
><new tagname>
>
>where each of "things" "it" "is" "dependent" "on" should exist as
>other "tagname:" type definitions (or as some expansion of possibly
>headslappingly obscure internal rules, usually having to do with
>extensions like .c->.o, etal).
>
>I'm not sure what you mean with your first question on "main_struct
>and sub_struct". If they are nested structures, I don't know if MIG
>is smart enough to handle it. If what you want is to make two different
>TOS_Msg structures, they you should be able to do that with two separate
>struct header files and just copy and modify whatever lines work in the
>makefile.
>
>I also don't know where you're going with
>     BUILD_EXTRA_DEPS:  MainMsg.class;BeaconMsg.class -
>but a semi-colon ';' is probably no thing to use at the time, try
>a space instead ' '. And I'm not sure if the dash '-' is significant
>to something or not.
>
>As a wild guess after writing all this, perhaps you are trying to make
>two TOS_Msg structs and BUILD_EXTRA_DEPS is called someplace in your
>makefile to do one already, so maybe all you really wanted to do is:
>
>     BUILD_EXTRA_DEPS:  MainMsg.class BeaconMsg.class
>
>But (assuming that MainMsg.class was the thing that worked already) I think
>you may find some more instructions for it in the makefile which you will
>need to replicate for your BeaconMsg.class....
>
>If you still have trouble you should post the whole makefile and the 
>output.
>
>MS
>
>
>Muhammad Azhar wrote:
>>Hi Michael, thanks for showing me how to modify data received, it really 
>>helped.
>>
>>For now, I'm really wondering if it's possible to show more than one 
>>structure in the mig Java output.  'Coz in the tutorial, we were only 
>>taught how to show messages from one structure.  Supposing I have more 
>>than one structure, call them main_struct and sub_struct, instead of just 
>>outputting main_struct, is there a way for me to output sub_struct as well 
>>as main_struct in a single Makefile?  Which part of the Makefile command 
>>do I need to modify?
>>
>>Out of curiosity, I tried to modify my Makefile BUILD_EXTRA_DEPS: 
>>MainMsg.class;BeaconMsg.class - but this doesn't work (and did the same 
>>mig java for Beacon as how I did my Main, but well....) :(
>>error msg:
>>mkdir -p build/telosb
>>BeaconMsg.class FORCE
>>make: BeaconMsg.class: Command not found
>>make: *** [exe0] Error 127
>>
>>Thanks.
>>
>>Regards,
>>Azhar
>>




More information about the Tinyos-help mailing list