[Tinyos-devel] application Makefiles

Vlado Handziski handzisk at tkn.tu-berlin.de
Fri Dec 3 15:36:31 PST 2004

On Friday 03 December 2004 21:59, Kristin Wright wrote:
> I'd like to add a line to some application makefiles to not compile
> platforms which don't compile. The alternative is that a 'make all' from
> apps/ dies which isn't very reassuring for the user. 
> Are any of these new lines for the given application's Makefile wrong?
> apps/Ident:
> PLATFORMS=mica mica2 mica2dot micaz pc
> apps/SenseLightToLog:
> PLATFORMS=mica mica2 mica2dot micaz pc
> PLATFORMS=mica mica2 mica2dot micaz
> apps/Surge:
> # Use SurgeTelos for telos (currently in contrib/ucb/apps/SurgeTelos)
> PLATFORMS=mica mica2 mica2dot micaz pc 
> apps/SimpleCmd:
> PLATFORMS=mica mica2 mica2dot micaz pc
> apps/TestTinySec:
> PLATFORMS=mica2 mica2dot

I fully agree that we have to find a way to make the installation more user 
friendly.  My comments below are more general in nature and not directly 
connected with the above changes.

I want to point out that this trend of explicitly naming the platforms in the 
Makefiles, and in #ifdef in the components makes our job of maintaingin the 
eyesIFX platforms from /contrib harder from day to day.  

This brakes the concept of reconfiguration using only include path overrides. 
I understand that #ifdefs are the convenient approach when there are only 
slight code differences between the platforms in a component, but this forces 
us to maintain a duplicate of the component in /contrib/eyes only for the 
purpose of overriding some #define.

If we want to keep the possibility of offering platforms from /contrib, then 
we need some better solution. Splitting the components in platform 
independent and platform dependent parts might be an option. Or we can 
continue with the #ifdef approach, but then allow the platform maintainers 
in /contrib to add the necessary modifications to the #defines in the "main 
tree" components.


More information about the Tinyos-devel mailing list