⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nesdoc.in

📁 tinyos2.0版本驱动
💻 IN
字号:
#!@pathperl@# -*- perl -*-# Copyright (c) 2002-2005 Intel Corporation# All rights reserved.## This file is distributed under the terms in the attached INTEL-LICENSE     # file. If you do not find these files, copies can be found by writing to# Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA, # 94704.  Attention:  Intel License Inquiry.# The new nesdoc implementation. When run with a TinyOS 1.x setup, just runs# the old nesdoc except if the -new option is given.## The new nesdoc implementation is based on the XML dump facilities in nesC# 1.2 (version 1.2.1 of the nesC compiler is required). Documenation# generation is broken into two phases:# - nesdoc data collection: nesdoc information for all interfaces and #   components is saved to a nesdoc repository, which is just a collection#   of XML files. See archive.py for more details.# - HTML generation from the XML files: once a repository is complete,#   you run nesdoc with the -html option to generate HTML files for#   each interface and component, along with an index. See genhtml.py#   for details.## Differences between the old and new nesdocs (summary):# - the new nesdoc is currently only targeted at generating API documentation;#   it doesn't generate HTML files describing applications# - the old nesdoc does not support generic components or interfaces# - the per-component HTML files, the index and wiring graphs are hopefully#   more readable# - information on module implementations is not included (it should not#   be part of an API documentation)$prefix = "@prefix@";$exec_prefix = "@exec_prefix@";$libprogs = "@libdir@/tinyos";$python = "@pathpython@";$tosdir = `ncc -print-tosdir`;chomp($tosdir);# If using a TinyOS 1.x tree, assume old-style nesdoc except if there is a# -new argument somewhere.if (-d "$tosdir/platform" && !grep /^-new$/, @ARGV) {    # nesdoc for TinyOS 1.x, support old style docs    if ($#ARGV < 1) {	&fail("Usage: nesdoc <documentation directory> <options and nesC files>");    }    $docdir = shift @ARGV;    unshift @ARGV, "-docdir=$docdir";    unshift @ARGV, "-fsyntax-only";    unshift @ARGV, "$exec_prefix/bin/ncc";    exec @ARGV;    fail("Couldn't execute $ARGV[0]");}# nesdoc for TinyOS 2.x # parse arguments$target = `ncc -print-target`;chomp $target;for ($i = 0; $i <= $#ARGV; $i++) {    $strip = 0;    $_ = $ARGV[$i];    if (/^-/) {	if (/^-topdir=(.*)/) {            push @archive_args, $1;	    $strip = 1;	}	elsif (/^--version$/) {	    $print_version = 1;	    $strip = 1;	}	elsif (/^-v$/) {	    $verbose = 1;	}	elsif (/^-target=(.*)/) {	    $target = $1;	}	elsif (/^-o/) {	    ($i, $docdir) = extractarg($i);	    $strip = 1;	}	elsif (/^-html$/) {	    $genhtml = 1;	    $strip = 1;	}	elsif (/^-preserve$/) {	    $preserve = 1;	    $strip = 1;	}	elsif (/^-app$/) {	    $app = 1;	    $strip = 1;	}	elsif (/^-quiet$/) {	    $quiet = 1;	    $strip = 1;	}    }    push @ncc_args, $_ if !$strip;}if ($print_version) {    print "nesdoc: @PACKAGE_VERSION@\n";    exit 0;}fail("No documentation directory specified") if !defined $docdir;$docdir = "$docdir/$target";if (defined $ENV{PYTHONPATH}) {    $ENV{PYTHONPATH} = "$libprogs:$PYTHONPATH";}else {    $ENV{PYTHONPATH} = "$libprogs";}if ($genhtml) {    push @html_args, $python;    push @html_args, "$libprogs/nesdoc/genhtml.py";    push @html_args, "--quiet" if $quiet;    push @html_args, $docdir;    execorfail(@html_args);}# Collecting nesdoc data. Run ncc, then process the results with# nesdoc-archiveunshift @ncc_args, "-fsyntax-only";unshift @ncc_args, "-fnesc-dump=wiring" if $app;unshift @ncc_args, "-fnesc-dump=interfacedefs";unshift @ncc_args, "-fnesc-dump=components(wiring)";unshift @ncc_args, "-fnesc-dump=interfaces";unshift @ncc_args, "-fnesc-dump=functions(!global())";unshift @ncc_args, "-fnesc-dump=referenced(interfaces,components)";unshift @ncc_args, "$exec_prefix/bin/ncc";print STDERR join(' ', @ncc_args), "\n" if $verbose;pipe FORARCHIVE, FORNCC;if (!($pid = fork())) {    close STDOUT;    open STDOUT, ">&FORNCC";    execorfail(@ncc_args);}fail("fork failed") if $pid < 0;close STDIN;open STDIN, "<&FORARCHIVE";# Top of TinyOS tree is a default "topdir" (for package emulation)$toscontainer = `dirname $tosdir`;chomp $toscontainer;push @archive_args, "--topdir=$toscontainer";push @archive_args, "--preserve" if $preserve;push @archive_args, "--app" if $app;push @archive_args, "--quiet" if $quiet;push @archive_args, "$docdir";unshift @archive_args, "$libprogs/nesdoc/archive.py";unshift @archive_args, $python;print STDERR join(' ', @archive_args), "\n" if $verbose;fail("Couldn't create directory $docdir") if system("mkdir -p \"$docdir\"");execorfail(@archive_args);sub fail {    print STDERR "$_[0]\n";    exit 2;}sub execorfail {    exec @_;    fail("Couldn't execute $_[0]");}sub usage {    fail(<<EOMUsage: nesdoc -o <documentation directory> <ncc options and nesC files>         Compile specified files and archive the resulting nesdoc	 information in <documentation directory>         Note: This does not generate the nesdoc html pages.       nesdoc -o <documentation directory> -html	 Generate nesdoc html pages from archived nesdoc information.       nesdoc -o <documentation directory> -app <ncc options and nesC file>         Compile specified nesC application and generate a wiring graph	 for the whole program in the current directory.EOM)}sub extractarg {    local ($i) = @_;    if (length($ARGV[$i]) == 2) {	$arg = $ARGV[++$i];    }    else {	$arg = substr($ARGV[$i], 2);    }    return ($i, $arg);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -