]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tools/tinyos/ncc/ncc.in
Allow custom platform families
[tinyos-2.x.git] / tools / tinyos / ncc / ncc.in
index a70759d540cb7cc22a0d13a07548ff4887e556c5..2f61d921400ce5f896b6b7aeb4f5d6b2b6e3db80 100644 (file)
@@ -82,10 +82,6 @@ for ($i = 0; $i <= $#ARGV; $i++) {
            $strip = 1;
            push @includes, $file;
        }
-        elsif (/^-safe$/) {
-            $safe = 1;
-            $strip = 1;
-        }
        elsif (/^-fnesc-cfile=(.*)/){
            $appfilename=$1;
        }
@@ -139,70 +135,6 @@ if (!defined $target) {
     }
 }
 
-my $cpp;
-my $deputyasmexe;
-my $gcc;
-
-my $safe_home = $ENV{'TOSDIR'}."/lib/safe";
-push @new_args, "-fnesc-include=${safe_home}/include/annots_stage1";
-push @new_args, "-fnesc-genprefix=#include \"${safe_home}/include/annots_stage2.h\"";
-
-if ($safe) {
-
-    if (($target eq "mica2") or ($target eq "micaz")) {
-       $mcu = "avr";
-    } elsif ($target eq "telosb") {
-       $mcu = "msp430";
-    } else {
-       print STDERR "Safe TinyOS does not (yet) support the ${target} target.\n";
-       print STDERR "Supported targets: ";
-       print STDERR "mica2, micaz, telosb\n";
-       exit 2;
-    }
-
-    my $deputy_include = $ENV{'DEPUTY_HOME'}."/include";
-
-    push @new_args, "-DSAFE_TINYOS";
-    push @new_args, "-conly";
-    push @new_args, "-fnesc-deputy";
-
-    if (!defined $appfilename) {
-       $appfilename="build/${target}/app.c";
-    }
-    if (!defined $exefilename) {
-       $exefilename="build/${target}/main.exe";
-    }
-
-    $appfilename =~ m/^((.*\/)?)[^\/]+$/;
-    my $directory = $1;
-
-    # Might be useful to keep this app.c somewhere...
-    # This could probably be avoided by using the deputy script 
-    # instead of the executable directly...
-    $cpp = "${mcu}-gcc -E -DSAFE_TINYOS $appfilename -o ${directory}deputy-in.c -I${safe_home}/include"; 
-    
-    # Not worrying about racing protection, for now...
-    # --checksnescatomic racing.txt 
-    $deputyasmexe = "deputy-${mcu} --FLIDs --out ${directory}deputy-out.c ${directory}deputy-in.c";
-    
-    $failfile = "${TOSDIR}/lib/safe/${mcu}/fail.c";
-
-    my $gccflags;
-    if (($target eq "mica2") or ($target eq "micaz")) {
-       $gccflags = ("-mmcu=atmega128 -Os -fdollars-in-identifiers " .
-                   "-finline-limit=1000000 -Winline " .
-                   "--param inline-unit-growth=1000000 " .
-                   "--param large-function-growth=1000000");
-    }
-    elsif($target eq "telosb"){
-       $gccflags = "-Os -mdisable-hwmul -mmcu=msp430x1611";
-    }
-    
-    $gcc = ("${mcu}-gcc $gccflags -I${deputy_include} ${directory}deputy-out.c " .
-           "$failfile -o $exefilename $libs");
-
-}
-
 if (!defined $scheduler && !$is_tos_1) {
        $scheduler = "TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask";
 }
@@ -216,6 +148,15 @@ if ($print_target) {
 foreach $dir (@includes) {
     if ($dir =~ m!/$target/?$! && -f "$dir/.platform") {
        $platform_def = "$dir/.platform";
+       # Check to see if the platform is a member of a family
+       if (-f "$dir/.family") {
+           $family_def = "$dir/.family";
+       }
+       else {
+           if (-f "$dir/../.family") {
+               $family_def = "$dir/../.family";
+           }
+       }
        last;
     }
 }
@@ -332,27 +273,9 @@ foreach $idir (@includes) {
 
 
 print STDERR join(' ', @new_args), "\n" if $verbose;
-
-if ($safe) {
-    # nescc runs and puts in annotations like COUNT etc... 
-    system(@new_args)==0 or die "Couldn't execute nescc\n";
-
-    # cpp changes annotations into attributes for deputy
-    print STDERR "${cpp}\n" if $verbose;
-    system($cpp)==0 or die "gcc preprocess error!\n";
-
-    # deputy inserts the checks
-    print STDERR "${deputyasmexe}\n" if $verbose;
-    system($deputyasmexe)==0 or die "deputy error!\n";
-
-    print STDERR "${gcc}\n" if $verbose;
-    system($gcc)==0 or die "cil error!\n";
-
-} else {
-    exec @new_args;
-    print STDERR "Couldn't execute nescc\n";
-    exit 2;
-}
+exec @new_args;
+print STDERR "Couldn't execute nescc\n";
+exit 2;
 
 sub extractarg {
     local ($i) = @_;