# Includes that should take precedence come first.  Platforms come before
# chips because they may override files.  These must be specified as
# @includes instead of -I's to @opts, otherwise the %T won't be processed
# by ncc.

push( @includes, qw(

  %T/platforms/telosb
  %T/platforms/telosb/chips/stm25p
  %T/platforms/telosa
  %T/platforms/telosa/chips/cc2420
  %T/platforms/telosa/chips/s1087
  %T/platforms/telosa/chips/s10871
  %T/platforms/telosa/chips/sht11
  %T/chips/cc2420
  %T/chips/cc2420/alarm
  %T/chips/cc2420/control
  %T/chips/cc2420/csma
  %T/chips/cc2420/interfaces
  %T/chips/cc2420/link
  %T/chips/cc2420/lowpan
  %T/chips/cc2420/lpl
  %T/chips/cc2420/packet
  %T/chips/cc2420/receive
  %T/chips/cc2420/spi
  %T/chips/cc2420/transmit
  %T/chips/cc2420/unique
  %T/chips/cc2420/security
  %T/chips/msp430
  %T/chips/msp430/adc12
  %T/chips/msp430/dma
  %T/chips/msp430/pins
  %T/chips/msp430/timer
  %T/chips/msp430/usart
  %T/chips/msp430/sensors
  %T/chips/stm25p
  %T/chips/sht11
  %T/lib/timer
  %T/lib/serial
  %T/lib/adc
  %T/lib/power
) );

@opts = qw(

  -gcc=msp430-gcc
  -mmcu=msp430x1611
  -fnesc-target=msp430
  -fnesc-no-debug
);

push @opts, "-fnesc-scheduler=TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" if !$with_scheduler_flag;
push @opts, "-mingw-gcc" if $cygwin;

$ENV{'CIL_MACHINE'} =
    "version_major=3 " .
    "version_minor=2 " .
    "version=msp430-3.2.3 " .
    "short=2,2 " .
    "int=2,2 " .
    "long=4,2 " .
    "long_long=8,2 " .
    "pointer=2,2 " .
    "enum=2,2 " .
    "float=4,2 " .
    "double=4,2 " .
    "long_double=4,2 " .
    "void=1,1 " .
    "fun=1,2 " .
    "wchar_size_size=2,2 " .
    "alignof_string=1 " .
    "max_alignment=1 " .
    "char_wchar_signed=true,true " .
    "const_string_literals=true " .
    "big_endian=false " .
    "underscore_name=false " .
    "__builtin_va_list=true " .
    "__thread_is_keyword=true";

