<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../img/favicon.ico">

        <title>newt target - Apache Mynewt</title>

        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../css/highlight.css">
        <link href="../../../css/base.css" rel="stylesheet">
        <link href="../../../css/custom.css" rel="stylesheet">
        <link href="../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <script>
            (function(i, s, o, g, r, a, m) {
    i["GoogleAnalyticsObject"] = r;
    (i[r] =
        i[r] ||
        function() {
            (i[r].q = i[r].q || []).push(arguments);
        }),
        (i[r].l = 1 * new Date());
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
        
    </head>


    <body class="newt target">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
    <div class="container">
        <!-- Collapsed navigation -->
        <div class="navbar-header">
            <!-- Expander button -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        <!-- Expanded navigation -->
        <div class="navbar-collapse collapse">
            <!-- Main navigation -->
            <ul class="nav navbar-nav navbar-right">
                <li 
  class=""
>
                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                </li>
                <li 
  class="important"
>
                    <a href="/quick-start/">Quick Start</a>
                </li>
                <li 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </option>
  <option value="/v1_12_0/" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0/" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0/" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0/" >
    Version: 1.9.0
  </option>
    <option value="/v1_8_0/" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0/" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0/" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0/" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" selected="selected" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../newt_intro/">Newt Tool Guide</a>
  
  
    <ul>
          
              
          
              
                
  <li >
    <a href="../../newt_operation/">Newt Theory of Ops</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../newt_ops/">Command Guide</a>
  
  
    <ul>
          
              
          
              
                
  <li >
    <a href="../newt_build/">newt build</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_clean/">newt clean</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_create_image/">newt create-image</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_debug/">newt debug</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_help/">newt help</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_info/">newt info</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_install/">newt install</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_load/">newt load</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_mfg/">newt mfg</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_new/">newt new</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_pkg/">newt pkg</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_resign_image/">newt resign-image</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_run/">newt run</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_size/">newt size</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_sync/">newt sync</a>
  </li>

              
          
              
                
  <li class="active">
    <a href="./">newt target</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_test/">newt test</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_upgrade/">newt upgrade</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_vals/">newt vals</a>
  </li>

              
          
              
                
  <li >
    <a href="../newt_version/">newt version</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../newtmgr/overview/">Newt Manager Guide</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../install/prev_releases/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="newt/newt_ops/">Command Guide</a></li>
        
      
        
          <li>&raquo; <a href="newt/newt_intro/">Newt Tool Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; newt target</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newt/command_list/newt_target.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.3.0 is not the most recent version of the Apache Mynewt
                                    documentation. Click <a href="/latest">here</a> to read the latest
                                    version.
                                </p>
                            </div>
                          
                        
                        
                            <h2 id="newt-target"><font color="#F2853F" style="font-size:24pt">newt target </font></h2>
<p>Commands to create, delete, configure and query targets. </p>
<h4 id="usage">Usage:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    newt target [command] [flags]
</code></pre></div>

<h4 id="available-commands">Available Commands:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    amend       Add, change, or delete values for multi-value target variables
    config      View or populate a target&#39;s system configuration settings
    copy        Copy target
    create      Create a target
    delete      Delete target
    dep         View target&#39;s dependency graph
    revdep      View target&#39;s reverse-dependency graph
    set         Set target configuration variable
    show        View target configuration variables
</code></pre></div>

<h4 id="global-flags">Global Flags:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>  -h, --help              Help for newt commands
  -j, --jobs int          Number of concurrent build jobs (default 8)
  -l, --loglevel string   Log level (default &quot;WARN&quot;)
  -o, --outfile string    Filename to tee output to
  -q, --quiet             Be quiet; only display error output
  -s, --silent            Be silent; don&#39;t output anything
  -v, --verbose           Enable verbose output when executing commands
</code></pre></div>

<h4 id="description">Description</h4>
<p>The target command provides subcommands to create, build, delete, and query targets. The subcommands take one or two <code>target-name</code> arguments. </p>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>amend</td>
<td>The amend command allows you to add, change, or delete values for multi-value target variables that you have set with the <code>newt target set</code> command. The format of the amend command is: <br>newt target amend &lt;target-name&gt; &lt;var-name=var-value&gt; [var-name=var-value...] <br>Specify the <code>-d</code> flag to delete values.<br><br>The following multi-value variables can be amended: <code>aflags</code>, <code>cflags</code>, <code>lflags</code>, <code>syscfg</code>. <br>The <code>var-value</code> format depends on the <code>var-name</code> as follows: <ul><li><code>aflags</code>, <code>cflags</code>, <code>lflags</code>: A string of flags, with each flag separated by a space. These variables are saved in the target's <code>pkg.yml</code> file.</li><li><code>syscfg</code>: The <code>syscfg</code> variable allows you to assign values to configuration settings in your target's <code>syscfg.yml</code> file. <br><br>The format is <code>syscfg=setting-name1=setting-value1[:setting-name2=setting-value2...]</code>,  where <code>setting-name1</code> is a configuration setting name and <code>setting-value1</code> is the value to assign to <code>setting-name1</code>. If <code>setting-value1</code> is not specified, the setting is set to value <code>1</code>.  You use a <code>:</code> to delimit each setting when you amend multiple settings.<br><br>To delete a system configuration setting, you only need to specify the setting name. For example, <code>syscfg=setting-name1:setting-name2</code> deletes configuration settings named <code>setting-name1</code> and <code>setting-name2</code>. </li></ul></td>
</tr>
<tr>
<td>config</td>
<td>The config command allows you to  view or populate a target's system configuration settings.  A target's system configuration settings include the settings of all the packages it includes. The settings for a package are listed in the package's <code>syscfg.yml</code> file. The <code>config</code> command has two subcommands: <code>show</code> and <code>init</code>.  <br><br> The config show &lt;target-name&gt; command displays the system configuration setting definitions and values for all the packages that the <code>target-name</code> target includes.  <br><br>The config init &lt;target-name&gt; command populates the target's <code>syscfg.yml</code> file with the system configuration values for all the packages that the <code>target-name</code> target includes.</td>
</tr>
<tr>
<td>copy</td>
<td>The copy  &lt;src-target&gt; &lt;dst-target&gt; command creates a new target named <code>dst-target</code> by cloning the <code>src-target</code> target.</td>
</tr>
<tr>
<td>create</td>
<td>The create &lt;target-name&gt; command creates an empty target named <code>target-name</code>. It creates the <code>targets/target-name</code> directory and the skeleton <code>pkg.yml</code> and <code>target.yml</code> files in the directory.</td>
</tr>
<tr>
<td>delete</td>
<td>The delete &lt;target-name&gt; command deletes the description for the <code>target-name</code> target. It deletes the 'targets/target-name' directory.  It does not delete the 'bin/targets/target-name' directory where the build artifacts are stored. If you want to delete the build artifacts, run the <code>newt clean &lt;target-name&gt;</code> command  <strong>before</strong> deleting the target.</td>
</tr>
<tr>
<td>dep</td>
<td>The dep &lt;target-name&gt; command displays a dependency tree for the packages that the <code>target-name</code> target includes. It shows each package followed by the list of libraries or packages that it depends on.</td>
</tr>
<tr>
<td>revdep</td>
<td>The revdep &lt;target-name&gt; command displays the reverse dependency tree for the packages that the <code>target-name</code> target includes. It shows each package followed by the list of libraries or packages that depend on it.</td>
</tr>
<tr>
<td>set</td>
<td>The set &lt;target-name&gt; &lt;var-name=var-value&gt; [var-name=var-value...] command sets variables (attributes) for the &lt;target-name&gt;  target. The set command overwrites your current variable values. <br><br>The valid <code>var-name</code> values are: <code>app</code>, <code>bsp</code>, <code>loader</code>, <code>build_profile</code>, <code>cflags</code>, <code>lflags</code>, <code>aflags</code>, <code>syscfg</code>.  <br><br>The <code>var-value</code> format depends on the <code>var-name</code> as follows: <ul><li><code>app</code>, <code>bsp</code>, <code>loader</code>: @&lt;source-path&gt;, where <code>source-path</code> is the directory containing the application or bsp source. These variables are stored in the target's target.yml file. For a simulated target, e.g. for software testing purposes, set <code>bsp</code> to <code>@apache-mynewt-core/hw/bsp/native</code>.</li> <li><code>build_profile</code>: <code>optimized</code> or <code>debug</code></li><li><code>aflags</code>, <code>cflags</code>, <code>lflags</code>: A string of flags, with each flag separated by a space. These variables are saved in the target's <code>pkg.yml</code> file.</li><li><code>syscfg</code>: The <code>syscfg</code> variable allows you to assign values to configuration settings in your target's <code>syscfg.yml</code> file. <br>The format is <code>syscfg=setting-name1=setting-value1[:setting-name2=setting-value2...]</code>,  where <code>setting-name1</code> is a configuration setting name and <code>setting-value1</code> is the value to assign to <code>setting-name1</code>. If <code>setting-value1</code> is not specified, the setting is set to value <code>1</code>.  You use a <code>:</code> to delimit each setting when you set multiple settings. </li></ul>You can specify <code>var-name=</code> or <code>var-name=""</code> to unset a variable value.<br><br> <strong>Warning</strong>: For multi-value variables, the command overrides all existing values. Use the <code>newt target amend</code> command to change or add new values for a multi-value variable after you have set the variable value. The multi-value variables are: <code>aflags</code>, <code>cflags</code>, <code>lflags</code>, and <code>syscfg</code>.<br><br>To display all the existing values for a target variable (attribute), you can run the <code>newt vals &lt;variable-name&gt;</code> command. For example, <code>newt vals app</code> displays the valid values available for the variable <code>app</code> for any target.</td>
</tr>
<tr>
<td>show</td>
<td>The show [target-name] command shows the values of the variables (attributes) for the <code>target-name</code> target. When <code>target-name</code> is not specified, the command shows the variables for all the targets that are defined for your project.</td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Usage</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>amend</td>
<td>newt target amend myble syscfg=CONFIG_NEWTMGR=0 cflags="-DTEST"</td>
<td>Changes (or adds) the <code>CONFIG_NEWTMGR</code> variable to value 0 in the <code>syscfg.yml</code> file and adds the -DTEST flag to <code>pkg.cflags</code> in the <code>pkg.yml</code> file for the <code>myble</code> target. Other syscfg setting values and cflags values are not changed.</td>
</tr>
<tr>
<td>amend</td>
<td>newt target amend myble -d syscfg=LOG_LEVEL:CONFIG_NEWTMGR cflags="-DTEST"</td>
<td>Deletes the <code>LOG_LEVEL</code> and <code>CONFIG_NEWTMGR</code> settings from the <code>syscfg.yml</code> file  and the -DTEST flag from <code>pkg.cflags</code> for the <code>myble</code> target. Other syscfg setting values and cflags values are not changed.</td>
</tr>
<tr>
<td>config show</td>
<td>newt target config show rb_blinky</td>
<td>Shows the system configuration settings for all the packages that the <code>rb_blinky</code> target includes.</td>
</tr>
<tr>
<td>config init</td>
<td>newt target config init my_blinky</td>
<td>Creates and populates the <code>my_blinky</code> target's <code>syscfg.yml</code> file with the system configuration setting values from all the packages that the <code>my_blinky</code> target includes.</td>
</tr>
<tr>
<td>copy</td>
<td>newt target copy <br>rb_blinky rb_btshell</td>
<td>Creates the <code>rb_btshell</code> target by cloning the <code>rb_blinky</code> target.</td>
</tr>
<tr>
<td>create</td>
<td>newt target create <br>my_new_target</td>
<td>Creates the <code>my_newt_target</code> target. It creates the <code>targets/my_new_target</code> directory and creates the skeleton <code>pkg.yml</code> and <code>target.yml</code> files in the directory.</td>
</tr>
<tr>
<td>delete</td>
<td>newt target delete rb_btshell</td>
<td>Deletes the <code>rb_btshell</code> target. It deletes the <code>targets/rb_btshell</code> directory.</td>
</tr>
<tr>
<td>dep</td>
<td>newt target dep myble</td>
<td>Displays the dependency tree of all the package dependencies for the <code>myble</code> target. It lists each package followed by a list of packages it depends on.</td>
</tr>
<tr>
<td>revdep</td>
<td>newt target revdep myble</td>
<td>Displays the reverse dependency tree of all the package dependencies for the <code>myble</code> target. It lists each package followed by a list of packages that depend on it.</td>
</tr>
<tr>
<td>set</td>
<td>newt target set myble <br>app=@apache-mynewt-core/apps/btshell</td>
<td>Use <code>btshell</code> as the application to build for the <code>myble</code> target.</td>
</tr>
<tr>
<td>set</td>
<td>newt target set myble <br>cflags="-DNDEBUG -Werror"</td>
<td>Set <code>pkg.cflags</code> variable with <code>-DNDEBUG -Werror</code> in the <code>myble</code> target's <code>pkg.yml</code> file..</td>
</tr>
<tr>
<td>set</td>
<td>newt target set myble syscfg=LOG_NEWTMGR=0:CONFIG_NEWTMGR</td>
<td>Sets the <code>syscfg.vals</code> variable in the <code>myble</code> target's <code>syscfg.yml</code> file with the setting values: LOG_NEWTMGR: 0 and CONFIG_NEWTMGR: 1. CONFIG_NEWTMGR is set to 1 because a value is not specified.</td>
</tr>
<tr>
<td>set</td>
<td>newt target set myble cflags=</td>
<td>Unsets the <code>pkg.cflags</code> variable in the <code>myble</code> target's <code>pkg.yml</code> file.</td>
</tr>
<tr>
<td>show</td>
<td>newt target show myble</td>
<td>Shows all variable settings for the <code>myble</code> target, i.e. the values that app, bsp, build_profile, cflags, aflags, ldflags, syscfg variables are set to. Note that not all variables have to be set for a target.</td>
</tr>
<tr>
<td>show</td>
<td>newt target show</td>
<td>Shows all the variable settings for all the targets defined for the project.</td>
</tr>
</tbody>
</table>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer class="row">
    <div class="col-xs-12">
        
            <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
        
    </div>
    <div class="col-xs-12">
        <div class="logos">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <small class="footnote">
                    Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
                    project logo are either registered trademarks or trademarks of the Apache
                    Software Foundation in the United States and other countries.
                </small>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../js/highlight.pack.js"></script>
        <script src="../../../js/base.js"></script>
        <script src="../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>