summaryrefslogtreecommitdiff
path: root/nuttx/tools
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-17 23:21:28 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-17 23:21:28 +0000
commite3940eb2080711edac189cca3f642ee89dc215f2 (patch)
tree1c390958fae49e34dce698b175487e6d4681e540 /nuttx/tools
parent2223612deb2cc6322992f8595b6d6f86fcb53ae1 (diff)
downloadnuttx-e3940eb2080711edac189cca3f642ee89dc215f2.tar.gz
nuttx-e3940eb2080711edac189cca3f642ee89dc215f2.tar.bz2
nuttx-e3940eb2080711edac189cca3f642ee89dc215f2.zip
NuttX RTOS
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/tools')
-rw-r--r--nuttx/tools/Makefile.mkconfig43
-rwxr-xr-xnuttx/tools/configure.sh78
-rw-r--r--nuttx/tools/mkconfig.c239
-rwxr-xr-xnuttx/tools/mkdeps.sh77
-rwxr-xr-xnuttx/tools/zipme.sh105
5 files changed, 542 insertions, 0 deletions
diff --git a/nuttx/tools/Makefile.mkconfig b/nuttx/tools/Makefile.mkconfig
new file mode 100644
index 000000000..768ebccf4
--- /dev/null
+++ b/nuttx/tools/Makefile.mkconfig
@@ -0,0 +1,43 @@
+############################################################
+# Makefile.mkconfig
+#
+# Copyright (C) 2007 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name Gregory Nutt nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################
+
+all: mkconfig
+default: mkconfig
+
+mkconfig: mkconfig.c
+ gcc -O2 -Wall -o mkconfig mkconfig.c
+
+clean:
+ rm -f mkconfig *~
diff --git a/nuttx/tools/configure.sh b/nuttx/tools/configure.sh
new file mode 100755
index 000000000..7275e8f18
--- /dev/null
+++ b/nuttx/tools/configure.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+# configure.sh
+#
+# Copyright (C) 2007 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name Gregory Nutt nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+#set -x
+
+ARCH=$1
+WD=`pwd`
+TOPDIR=${WD}/..
+
+function show_usage ()
+{
+ echo "${0} <arch>"
+ exit 1
+}
+
+if [ "${ARCH}X" = "X" ]; then
+ echo "Missing argument"
+ show_usage
+fi
+
+ARCHDIR=${TOPDIR}/arch/${ARCH}
+if [ ! -d ${ARCHDIR} ]; then
+ echo "Directory ${ARCHDIR} does not exist"
+ show_usage
+fi
+
+if [ ! -r ${ARCHDIR}/Make.defs ]; then
+ echo "File ${ARCHDIR}/Make.defs does not exist"
+ exit 1
+fi
+
+if [ ! -r ${ARCHDIR}/setenv.sh ]; then
+ echo "File ${ARCHDIR}/setenv.sh does not exist"
+ exit 1
+fi
+
+if [ ! -r ${ARCHDIR}/defconfig ]; then
+ echo "File ${ARCHDIR}/defconfig does not exist"
+ exit 1
+fi
+
+cp -f ${ARCHDIR}/Make.defs ${TOPDIR}/. || \
+ { echo "Failed to copy ${ARCHDIR}/Make.defs" ; exit 1 ; }
+cp -f ${ARCHDIR}/setenv.sh ${TOPDIR}/. || \
+ { echo "Failed to copy ${ARCHDIR}/setenv.sh" ; exit 1 ; }
+cp -f ${ARCHDIR}/defconfig ${TOPDIR}/.config || \
+ { echo "Failed to copy ${ARCHDIR}/defconfig" ; exit 1 ; }
+
diff --git a/nuttx/tools/mkconfig.c b/nuttx/tools/mkconfig.c
new file mode 100644
index 000000000..6de8ddd93
--- /dev/null
+++ b/nuttx/tools/mkconfig.c
@@ -0,0 +1,239 @@
+/************************************************************
+ * mkconfig.c
+ *
+ * Copyright (C) 2007 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name Gregory Nutt nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ************************************************************/
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
+#include <errno.h>
+
+#define DEFCONFIG "defconfig"
+#define LINESIZE 256
+
+static char line[LINESIZE+1];
+
+static char *skip_space(char *ptr)
+{
+ while (*ptr && isspace(*ptr)) ptr++;
+ return ptr;
+}
+
+static char *find_end(char *ptr)
+{
+ while (*ptr && (isalnum(*ptr) || *ptr == '_')) ptr++;
+ return ptr;
+}
+
+static char *find_comment(char *ptr)
+{
+ while (*ptr && *ptr != '"' && *ptr != '\n') ptr++;
+ if (*ptr == '"') ptr++;
+ return ptr;
+}
+
+static char *read_line(FILE *stream)
+{
+ char *ptr;
+
+ for (;;)
+ {
+ line[LINESIZE] = '\0';
+ if (!fgets(line, LINESIZE, stream))
+ {
+ return NULL;
+ }
+ else
+ {
+ ptr = skip_space(line);
+ if (*ptr && *ptr != '#' && *ptr != '\n')
+ {
+ return ptr;
+ }
+ }
+ }
+}
+
+static void parse_line(char *ptr, char **varname, char **varval)
+{
+ *varname = ptr;
+ *varval = NULL;
+
+ ptr = find_end(ptr);
+ if (*ptr && *ptr != '=')
+ {
+ *ptr = '\0';
+ ptr = skip_space(ptr + 1);
+ }
+
+ if (*ptr == '=')
+ {
+ *ptr = '\0';
+ ptr = skip_space(ptr + 1);
+ if (*ptr)
+ {
+ *varval = ptr;
+ if (*ptr == '"')
+ {
+ ptr = find_comment(ptr);
+ }
+ else
+ {
+ ptr = find_end(ptr);
+ }
+ *ptr = '\0';
+ }
+ }
+}
+
+static void parse_file(FILE *stream)
+{
+ char *varname;
+ char *varval;
+ char *ptr;
+
+ do
+ {
+ ptr = read_line(stream);
+ if (ptr)
+ {
+ parse_line(ptr, &varname, &varval);
+ if (varname)
+ {
+ if (!varval || strcmp(varval, "n") == 0)
+ {
+ printf("#undef %s\n", varname);
+ }
+ else if (strcmp(varval, "y") == 0)
+ {
+ printf("#define %s 1\n", varname);
+ }
+ else
+ {
+ printf("#define %s %s\n", varname, varval);
+ }
+ }
+ }
+ }
+ while (ptr);
+}
+
+static void show_usage(const char *progname)
+{
+ fprintf(stderr, "USAGE: %s <abs path to defconfig>\n", progname);
+ exit(1);
+}
+
+int main(int argc, char **argv, char **envp)
+{
+ char *filepath;
+ FILE *stream;
+ int status;
+
+ if (argc != 2)
+ {
+ fprintf(stderr, "Unexpected number of arguments\n");
+ show_usage(argv[0]);
+ }
+
+ status = asprintf(&filepath, "%s/" DEFCONFIG, argv[1]);
+ if (status < 0)
+ {
+ fprintf(stderr, "asprintf failed\n");
+ exit(2);
+ }
+
+ stream= fopen(filepath, "r");
+ if (!stream)
+ {
+ fprintf(stderr, "open %s failed: %s\n", filepath, strerror(errno));
+ exit(3);
+ }
+
+ printf("/* config.h -- Autogenerated! Do not edit. */\n\n");
+ printf("#ifndef __ARCH_CONFIG_H\n");
+ printf("#define __ARCH_CONFIG_H\n\n");
+ printf("/* Architecture-specific options *************************/\n\n");
+ parse_file(stream);
+ printf("\n/* Sanity Checks *****************************************/\n\n");
+ printf("/* The correct way to disable RR scheduling is to set the\n");
+ printf(" * timeslice to zero.\n");
+ printf(" */\n\n");
+ printf("#ifndef CONFIG_RR_INTERVAL\n");
+ printf("# define CONFIG_RR_INTERVAL 0\n");
+ printf("#endif\n\n");
+ printf("/* The correct way to disable filesystem supuport is to set the\n");
+ printf(" * number of file descriptors to zero.\n");
+ printf(" */\n\n");
+ printf("#ifndef CONFIG_NFILE_DESCRIPTORS\n");
+ printf("# define CONFIG_NFILE_DESCRIPTORS 0\n");
+ printf("#endif\n\n");
+ printf("/* If a console is selected, then make sure that there are\n");
+ printf(" * resources for 3 file descriptors and, if any streams are\n");
+ printf(" * selected, also for 3 file streams.\n");
+ printf(" */\n\n");
+ printf("#ifdef CONFIG_DEV_CONSOLE\n");
+ printf("# if CONFIG_NFILE_DESCRIPTORS < 3\n");
+ printf("# undef CONFIG_NFILE_DESCRIPTORS\n");
+ printf("# define CONFIG_NFILE_DESCRIPTORS 3\n");
+ printf("# endif\n\n");
+ printf("# if CONFIG_NFILE_STREAMS > 0 && CONFIG_NFILE_STREAMS < 3\n");
+ printf("# undef CONFIG_NFILE_STREAMS\n");
+ printf("# define CONFIG_NFILE_STREAMS 3\n");
+ printf("# endif\n");
+ printf("#endif\n\n");
+ printf("/* If no file descriptors are configured, then make certain no\n");
+ printf(" * streams are configured either.\n");
+ printf(" */\n\n");
+ printf("#if CONFIG_NFILE_DESCRIPTORS == 0\n");
+ printf("# undef CONFIG_NFILE_STREAMS\n");
+ printf("# define CONFIG_NFILE_STREAMS 0\n");
+ printf("#endif\n\n");
+ printf("/* If no file streams are configured, then make certain that\n");
+ printf(" * buffered I/O support is disabled.\n");
+ printf(" */\n\n");
+ printf("#if CONFIG_NFILE_STREAMS == 0\n");
+ printf("# undef CONFIG_STDIO_BUFFER_SIZE\n");
+ printf("# define CONFIG_STDIO_BUFFER_SIZE 0\n");
+ printf("#endif\n\n");
+ printf("/* Verbose debug only makes sense if debug is enabled */\n\n");
+ printf("#ifndef CONFIG_DEBUG\n");
+ printf("# undef CONFIG_DEBUG_VERBOSE\n");
+ printf("#endif\n\n");
+ printf("#endif /* __ARCH_CONFIG_H */\n");
+ fclose(stream);
+ return 0;
+}
diff --git a/nuttx/tools/mkdeps.sh b/nuttx/tools/mkdeps.sh
new file mode 100755
index 000000000..086778fbe
--- /dev/null
+++ b/nuttx/tools/mkdeps.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+# mkdeps.sh
+#
+# Copyright (C) 2007 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name Gregory Nutt nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# Usage:
+
+function show_usage ()
+{
+ echo "$0 CC -- CFLAGS -- files"
+ exit 1
+}
+
+cc=
+cflags=
+files=
+args=
+
+# Accumulate CFLAGS up to "--"
+for i in $* ; do
+ case $i in
+ --*)
+ cc=$cflags
+ cflags=$args
+ args=
+ ;;
+ *)
+ args="$args $i"
+ ;;
+ esac
+done
+files=$args
+
+if [ -z "$cc" ]; then
+ echo "No compiler specified"
+ exit 1
+fi
+
+if [ -z "$files" ]; then
+ echo "No files specified"
+ exit 2
+fi
+
+for file in $files ; do
+ $cc -M $cflags $file || \
+ { echo "$cc -M $cflags $file FAILED" ; exit 3 ; }
+done
+
diff --git a/nuttx/tools/zipme.sh b/nuttx/tools/zipme.sh
new file mode 100755
index 000000000..7203a8213
--- /dev/null
+++ b/nuttx/tools/zipme.sh
@@ -0,0 +1,105 @@
+#!/bin/sh
+# zipme.sh
+#
+# Copyright (C) 2007 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name Gregory Nutt nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+set -x
+
+WD=`pwd`
+DATECODE=$1
+
+TAR="tar cvf"
+ZIP=bzip2
+
+# Make sure we know what is going on
+
+if [ -z ${DATECODE} ] ; then
+ echo "You must supply a date code like MMDDYY as a parameter"
+ exit 1;
+fi
+
+MYNAME=`basename $0`
+
+if [ -x ${WD}/${MYNAME} ] ; then
+ NUTTX=${WD}/..
+else
+ if [ -x ${WD}/tools/${MYNAME} ] ; then
+ NUTTX=${WD}
+ else
+ echo "You must cd NUTTX directory to execute this script."
+ exit 1
+ fi
+fi
+PROJECTS=${NUTTX}/..
+
+cd ${PROJECTS} || \
+ { echo "Failed to cd to ${PROJECTS}" ; exit 1 ; }
+
+if [ ! -d nuttx ] ; then
+ echo "${PROJECTS}/nuttx does not exist!"
+ exit 1;
+fi
+
+TAR_NAME=nuttx-${DATECODE}.tar
+ZIP_NAME=${TAR_NAME}.bz2
+
+# Prepare the nuttx directory
+
+find nuttx -name '*~' -exec rm -f '{}' ';' || \
+ { echo "Removal of emacs garbage failed!" ; exit 1 ; }
+find nuttx -name '*.swp' -exec rm -f '{}' ';' || \
+ { echo "Removal of VI garbage failed!" ; exit 1 ; }
+
+make -C ${NUTTX} distclean
+
+# Remove any previous tarballs
+
+if [ -f ${TAR_NAME} ] ; then
+ echo "Removing ${PROJECTS}/${TAR_NAME}"
+ rm -f ${TAR_NAME} || \
+ { echo "rm ${TAR_NAME} failed!" ; exit 1 ; }
+fi
+
+if [ -f ${ZIP_NAME} ] ; then
+ echo "Removing ${PROJECTS}/${ZIP_NAME}"
+ rm -f ${ZIP_NAME} || \
+ { echo "rm ${ZIP_NAME} failed!" ; exit 1 ; }
+fi
+
+# Then zip it
+
+${TAR} ${TAR_NAME} nuttx || \
+ { echo "tar of ${TAR_NAME} failed!" ; exit 1 ; }
+${ZIP} ${TAR_NAME} || \
+ { echo "zip of ${TAR_NAME} failed!" ; exit 1 ; }
+
+cd ${NUTTX}