You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ag...@apache.org on 2020/02/24 21:37:38 UTC

[incubator-nuttx] branch master updated (75be4c5 -> 90eed5c)

This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git.


    from 75be4c5  ZDS-II Object file relocations
     new d1a8a80  Build system:  Get rid of the MOVEOBJ definition
     new e6f545b  Extend revised ZDS-II support to z8 and z16f
     new 90eed5c  tools/zds/zdsar.c:  Use shorter, relative paths

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 arch/z16/src/z16f/Toolchain.defs                   | 118 ++++++++
 arch/z80/src/z8/Toolchain.defs                     | 118 +++++++-
 boards/z16/z16f/z16f2800100zcog/scripts/Make.defs  | 162 +----------
 boards/z80/ez80/ez80f910200kitg/scripts/Make.defs  |   2 +-
 boards/z80/ez80/ez80f910200zco/scripts/Make.defs   |   2 +-
 boards/z80/ez80/makerlisp/scripts/Make.defs        |   2 +-
 boards/z80/ez80/z20x/scripts/Make.defs             |   2 +-
 .../z80/z8/z8encore000zco/configs/ostest/Make.defs | 299 ---------------------
 .../z8encore000zco}/scripts/Make.defs              |  31 ++-
 .../z80/z8/z8f64200100kit/configs/ostest/Make.defs | 299 ---------------------
 .../z8f64200100kit}/scripts/Make.defs              |  32 ++-
 libs/libc/Makefile                                 |   2 -
 libs/libnx/Makefile                                |   2 -
 mm/Makefile                                        |   2 -
 tools/Config.mk                                    |  11 -
 tools/zds/README.txt                               |   5 +
 .../eZ80_Config.mk => tools/zds/zds_Config.mk      |  19 +-
 tools/zds/zdsar.c                                  |  89 ++++--
 18 files changed, 351 insertions(+), 846 deletions(-)
 create mode 100644 arch/z16/src/z16f/Toolchain.defs
 delete mode 100644 boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
 copy boards/z80/{ez80/ez80f910200zco => z8/z8encore000zco}/scripts/Make.defs (78%)
 delete mode 100644 boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
 copy boards/z80/{ez80/ez80f910200zco => z8/z8f64200100kit}/scripts/Make.defs (78%)
 rename boards/z80/ez80/scripts/eZ80_Config.mk => tools/zds/zds_Config.mk (91%)


[incubator-nuttx] 03/03: tools/zds/zdsar.c: Use shorter, relative paths

Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 90eed5c8f8f3ff925bc6c4de8cb4190e3935e635
Author: Gregory Nutt <gn...@nuttx.org>
AuthorDate: Mon Feb 24 15:24:35 2020 -0600

    tools/zds/zdsar.c:  Use shorter, relative paths
    
    This tools needs to CD to directory holding the library because it requires that the library be in the current working directory when objects are inserted.  Previously, the tool did this by creating an absolute path to the object file itself.  So instead of the object file being in the current directory and the library in a directory at an absolute path, this tool used an abolte path to the object file with the library in the current directory.
    
    For the most part, that worked fine.  However, in the apps directory the object file names are greatly extended in length.  In the object file name was extended to a full absolute path and these huge file names were were exceeding some internal limit within the ZDS-II librarian.  But useing shorter, relative paths, we were able to avoid hitting this limit and the entire build completed correctly.
---
 tools/zds/zdsar.c | 85 +++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 63 insertions(+), 22 deletions(-)

diff --git a/tools/zds/zdsar.c b/tools/zds/zdsar.c
index 2f3891a..1de25d9 100644
--- a/tools/zds/zdsar.c
+++ b/tools/zds/zdsar.c
@@ -114,8 +114,8 @@ static int   g_debug      = 0;       /* Debug output enabled if >0 */
 
 static char  g_command[MAX_BUFFER];  /* Full librarian command */
 static char  g_initial_wd[MAX_PATH]; /* Initial working directory */
-static char  g_path[MAX_PATH];       /* Buffer for expanding paths */
-static char  g_objpath[MAX_PATH];    /* Temporary for path generation */
+static char  g_path[MAX_PATH];       /* Temporary for path generation */
+static char  g_objpath[MAX_PATH];    /* Holds the relative path to the objects */
 #ifdef HOST_CYGWIN
 static char  g_expand[MAX_EXPAND];   /* Temporary for quoted path */
 static char  g_dequoted[MAX_PATH];   /* Temporary for de-quoted path */
@@ -398,7 +398,8 @@ static const char *convert_path_windows(const char *path)
 #ifdef HOST_CYGWIN
   return convert_path(path, CCP_POSIX_TO_WIN_A);
 #else
-  return path;
+  strcpy(g_path, path);
+  return g_path;
 #endif
 }
 
@@ -407,7 +408,8 @@ static const char *convert_path_posix(const char *path)
 #ifdef HOST_CYGWIN
   return convert_path(path, CCP_WIN_A_TO_POSIX);
 #else
-  return path;
+  strcpy(g_path, path);
+  return g_path;
 #endif
 }
 
@@ -442,8 +444,8 @@ static void show_usage(const char *progname, const char *msg, int exitcode)
   fprintf(stderr, "    Optional librarian flags\n");
   fprintf(stderr, "  --obj-path <path>\n");
   fprintf(stderr, "    Do not look in the current directory for the object "
-                  "files.  Instead, look in <path> to\n");
-  fprintf(stderr, "    for the object files.  --obj-path may be used once "
+                  "files.  Instead, look in <path> for\n");
+  fprintf(stderr, "    the object files.  --obj-path may be used only once "
                   "on the command line\n");
   fprintf(stderr, "  --debug\n");
   fprintf(stderr, "    Enable %s debug output\n", progname);
@@ -454,8 +456,10 @@ static void show_usage(const char *progname, const char *msg, int exitcode)
 
 static void parse_args(int argc, char **argv)
 {
-  char *library = NULL;
-  char *objpath = NULL;
+  const char *tmp = NULL;
+  char *library   = NULL;
+  char *objpath   = NULL;
+  int pathlen;
   int argidx;
 
   /* Parse arguments */
@@ -616,9 +620,6 @@ static void parse_args(int argc, char **argv)
   g_objpath[0] = '\0';
   if (objpath != NULL)
     {
-      const char *hostpath;
-      int pathlen;
-
       /* If the object path relative to the current working directory? */
 
       /* It is a relative path if the path does not begin with the path
@@ -652,7 +653,7 @@ static void parse_args(int argc, char **argv)
 
           /* Append a separator is one is not already present */
 
-          if (g_path[pathlen - 1] != WINSEPARATOR)
+          if (g_path[pathlen - 1] != SEPARATOR)
             {
               int newlen = pathlen + 1;
               if (newlen >= MAX_PATH)
@@ -663,7 +664,7 @@ static void parse_args(int argc, char **argv)
                   exit(EXIT_FAILURE);
                 }
 
-              g_path[pathlen]     = WINSEPARATOR;
+              g_path[pathlen]     = SEPARATOR;
               g_path[pathlen + 1] = '\0';
               pathlen             = newlen;
             }
@@ -680,13 +681,6 @@ static void parse_args(int argc, char **argv)
         }
 
       strcat(g_path, objpath);
-
-      /* Convert the POSIX working directory to a Windows native path.  NOTE
-       * that convert_path_windows() is a no-op in Windows native mode.
-       */
-
-      hostpath = convert_path_windows(g_path);
-      strcpy(g_objpath, hostpath);
     }
 
   /* The object was in the current working directory.  If a library path
@@ -697,10 +691,57 @@ static void parse_args(int argc, char **argv)
 
   else if (g_libpath != NULL && strcmp(g_libpath, ".") != 0)
     {
-      const char *converted = convert_path_windows(g_initial_wd);
-      strcpy(g_objpath, converted);
+      strcpy(g_path, g_initial_wd);
     }
 
+  /* Convert the absolute objection file path to the native host path form
+   * NOTE that convert_path_posix() is a no-op in Windows native mode.
+   */
+
+  tmp = convert_path_posix(g_path);
+  strcpy(g_path, tmp);
+
+  /* Check for a relative path.  We will CD to g_libpath because the
+   * library must be in the current working directory.
+   */
+
+  pathlen = strlen(g_libpath);
+  if (strncmp(g_path, g_libpath, pathlen) ==  0)
+    {
+      const char *relpath = &g_path[pathlen];
+
+      /* Skip over leading path segment delimiters.. that should be as
+       * least one.
+       */
+
+      while (*relpath == SEPARATOR)
+        {
+          relpath++;
+        }
+
+      /* Convert the relative object file path to the Windows path form
+       * for the ZDS-II tool tool.  NOTE that convert_path_windows() is
+       * a no-op in Windows native mode.
+       */
+
+      tmp = convert_path_windows(relpath);
+    }
+  else
+    {
+      /* Convert the absolute object file path to the Windows path form
+       * for the ZDS-II tool tool.  NOTE that convert_path_windows() is
+       * a no-op in Windows native mode.
+       */
+
+      tmp = convert_path_windows(g_path);
+    }
+
+  /* And save the path in as a native Windows path */
+
+  strcpy(g_objpath, tmp);
+
+  /* Dump some intermediate results */
+
   if (g_debug)
     {
       fprintf(stderr, "Derived:\n");


[incubator-nuttx] 02/03: Extend revised ZDS-II support to z8 and z16f

Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit e6f545beab4e6cfcbe12e1e8bf26c1fcf5b1977d
Author: Gregory Nutt <gn...@nuttx.org>
AuthorDate: Mon Feb 24 13:54:37 2020 -0600

    Extend revised ZDS-II support to z8 and z16f
    
    * tools/zds/zds_Config.mk: Move  boards/z80/ez80/scripts/eZ80_Config.mk to tools/zds/zds_Config.mk where it can be shared by other ZDS-II platforms.
    * boards/z16/z16f:  Duplicate changes for new ZDS-II support from ez80
    * boards/z80/z8:  Duplicate changes for new ZDS-II support from ez80
    * arch/z16/src/z16f/Toolchain.defs:  Create required Toolchain.defs file for Z16f
---
 arch/z16/src/z16f/Toolchain.defs                   | 118 +++++++++
 arch/z80/src/z8/Toolchain.defs                     | 118 ++++++++-
 boards/z16/z16f/z16f2800100zcog/scripts/Make.defs  | 152 +----------
 boards/z80/ez80/ez80f910200kitg/scripts/Make.defs  |   2 +-
 boards/z80/ez80/ez80f910200zco/scripts/Make.defs   |   2 +-
 boards/z80/ez80/makerlisp/scripts/Make.defs        |   2 +-
 boards/z80/ez80/z20x/scripts/Make.defs             |   2 +-
 .../z80/z8/z8encore000zco/configs/ostest/Make.defs | 287 ---------------------
 .../z8encore000zco}/scripts/Make.defs              |  31 ++-
 .../{configs/ostest => scripts}/Make.defs          | 181 +------------
 tools/zds/README.txt                               |   5 +
 .../eZ80_Config.mk => tools/zds/zds_Config.mk      |   6 +-
 tools/zds/zdsar.c                                  |   4 +-
 13 files changed, 273 insertions(+), 637 deletions(-)

diff --git a/arch/z16/src/z16f/Toolchain.defs b/arch/z16/src/z16f/Toolchain.defs
new file mode 100644
index 0000000..3e517a5
--- /dev/null
+++ b/arch/z16/src/z16f/Toolchain.defs
@@ -0,0 +1,118 @@
+############################################################################
+# arch/z16/src/z16f/Toolchain.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+# Setup for the selected toolchain
+
+#
+# The ZiLOG ZDS-II Windows toolchain is the only toolchain available for
+# the ez80.
+#
+
+CONFIG_Z16F_TOOLCHAIN ?= ZDSII
+
+ifeq ($(CONFIG_WINDOWS_CYGWIN),y)
+  WINTOOL = y
+endif
+
+# These are the default directories where the ZDS-II toolchain is installed.
+# NOTE that short 8.3 path names are used in order to avoid spaces.  On my
+# machine I have:
+#
+# Versions 5.0.1
+#   C:\PROGRA~1\ = C:\Program Files\
+#   C:\PROGRA~2\ = C:\Program Files (x86)\
+#
+# Your PC may be configured differently.
+#
+# Version 5.2.1, the default install location is C:\ZiLOG
+
+ifeq ($(CONFIG_Z16F_ZDSII_V511),y)
+INSTALLROOT = C:/PROGRA~2/ZiLOG
+ZDSVERSION := 5.0.1
+else ifeq ($(CONFIG_Z16F_ZDSII_V521),y)
+INSTALLROOT = C:/ZiLOG
+ZDSVERSION := 5.2.1
+endif
+
+ifeq ($(CONFIG_WINDOWS_NATIVE),y)
+  ZDSINSTALLDIR = $(INSTALLROOT)/ZDSII_ZNEO_$(ZDSVERSION)
+  INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
+  ZDSBINDIR = $(INSTALLDIR)\bin
+  ZDSSTDINCDIR = $(INSTALLDIR)\include\std
+  ZDSZILOGINCDIR = $(INSTALLDIR)\include\zilog
+  ZDSSTDLIBDIR = $(INSTALLDIR)\lib\std
+  ZDSZILOGLIBDIR = $(INSTALLDIR)\lib\zilog
+else
+  WINTOOL = y
+  ZDSINSTALLDIR = $(INSTALLROOT)/ZDSII_ZNEO_$(ZDSVERSION)
+  INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
+  ZDSBINDIR = $(INSTALLDIR)/bin
+  ZDSSTDINCDIR = $(INSTALLDIR)/include/std
+  ZDSZILOGINCDIR = $(INSTALLDIR)/include/zilog
+  ZDSSTDLIBDIR = $(INSTALLDIR)/lib/std
+  ZDSZILOGLIBDIR = $(INSTALLDIR)/lib/zilog
+
+  # These are the same directories but with the directory separator
+  # character swapped as needed by the ZDS-II compiler
+
+  WTOPDIR = ${shell cygpath -w "$(TOPDIR)"}
+  WZDSSTDINCDIR = ${shell cygpath -w "$(ZDSSTDINCDIR)"}
+  WZDSZILOGINCDIR = ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
+  WZDSSTDLIBDIR = ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
+  WZDSZILOGLIBDIR = ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
+
+  # Escaped versions
+
+  ETOPDIR = ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
+  EZDSSTDINCDIR = ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
+  EZDSZILOGINCDIR = ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
+endif
+
+# CPU Identification
+
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+  ARCHOPTIMIZATION = -debug
+  ARCHASMOPTIMIZATION = -debug
+else
+  ARCHOPTIMIZATION = -nodebug
+  ARCHASMOPTIMIZATION = -nodebug
+endif
+
+ifeq ($(CONFIG_DEBUG_NOOPT),y)
+  ARCHOPTIMIZATION += -NOregvar -reduceopt
+else
+  ARCHOPTIMIZATION += -regvar
+endif
+
+# Tool names/paths
+
+CROSSDEV =
+CC = $(ZDSBINDIR)$(DELIM)zneocc.exe
+CPP = gcc -E
+LD = $(ZDSBINDIR)$(DELIM)zneolink.exe
+AS = $(ZDSBINDIR)$(DELIM)zneoasm.exe
+AR = $(ZDSBINDIR)$(DELIM)zneolib.exe
+
+# File extensions
+
+ASMEXT = .asm
+OBJEXT = .obj
+LIBEXT = .lib
+EXEEXT = .hex
diff --git a/arch/z80/src/z8/Toolchain.defs b/arch/z80/src/z8/Toolchain.defs
index 9aaf1b8..21acba1 100644
--- a/arch/z80/src/z8/Toolchain.defs
+++ b/arch/z80/src/z8/Toolchain.defs
@@ -1,7 +1,7 @@
 ############################################################################
 # arch/z80/src/z8/Toolchain.defs
 #
-#   Copyright (C) 2012 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2012, 2020 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gn...@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -45,3 +45,119 @@ CONFIG_Z8_TOOLCHAIN ?= ZDSII
 ifeq ($(CONFIG_WINDOWS_CYGWIN),y)
   WINTOOL = y
 endif
+
+# These are the directories where the ZDS-II toolchain is installed.  NOTE
+# that short 8.3 path names are used in order to avoid spaces.  On my machine
+# I have:
+#
+# C:\PROGRA~1\ = C:\Profram Files\
+# C:\PROGRA~2\ = C:\Program Files (x86)\
+#
+# Your PC may be configured differently.
+
+ifeq ($(CONFIG_Z8_ZDSII_V522),y)
+ZDSVERSION = 5.2.2
+else # ifeq ($(CONFIG_Z8_ZDSII_V500),y)
+ZDSVERSION = 5.0.0
+endif
+
+ifeq ($(CONFIG_WINDOWS_NATIVE),y)
+  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
+  INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
+  ZDSBINDIR = $(INSTALLDIR)\bin
+  ZDSSTDINCDIR = $(INSTALLDIR)\include\std
+  ZDSZILOGINCDIR = $(INSTALLDIR)\include\zilog
+ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
+  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F642X
+endif
+ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
+  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F640X
+endif
+  ZDSSTDLIBDIR = $(INSTALLDIR)\lib\std
+  ZDSZILOGLIBDIR = $(INSTALLDIR)\lib\zilog
+else
+  WINTOOL = y
+  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
+  INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
+  ZDSBINDIR = $(INSTALLDIR)/bin
+  ZDSSTDINCDIR = $(INSTALLDIR)/include/std
+  ZDSZILOGINCDIR = $(INSTALLDIR)/include/zilog
+ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
+  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F642X
+endif
+ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
+  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F640X
+endif
+  ZDSSTDLIBDIR = $(INSTALLDIR)/lib/std
+  ZDSZILOGLIBDIR = $(INSTALLDIR)/lib/zilog
+
+  # These are the same directories but with the directory separator
+  # character swapped as needed by the ZDS-II compiler
+
+  WTOPDIR = ${shell cygpath -w "$(TOPDIR)"}
+  WZDSSTDINCDIR = ${shell cygpath -w "$(ZDSSTDINCDIR)"}
+  WZDSZILOGINCDIR = ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
+  WZDSDEVINCDIR = ${shell cygpath -w "$(ZDSDEVINCDIR)"}
+  WZDSSTDLIBDIR = ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
+  WZDSZILOGLIBDIR = ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
+
+  # Escaped versions
+
+  ETOPDIR = ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
+  EZDSSTDINCDIR = ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
+  EZDSZILOGINCDIR = ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
+endif
+
+# CPU Identification
+
+ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
+  ARCHFAMILYDEF = _Z8ENCORE_F642X
+  ARCHSERIESDEF = _Z8ENCORE_64K_SERIES
+  ARCHREVAA = -NOrevaa
+ifeq ($(CONFIG_ARCH_CHIP_Z8F6423),y)
+  ARCHCPU = Z8F6423
+  ARCHCPUDEF = _Z8F6423
+endif
+endif
+
+ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
+  ARCHFAMILYDEF = _Z8ENCORE_F640X
+  ARCHSERIESDEF = _Z8ENCORE_640_FAMILY
+  ARCHREVAA = -revaa
+ifeq ($(CONFIG_ARCH_CHIP_Z8F6403),y)
+  ARCHCPU = Z8F6403
+  ARCHCPUDEF = _Z8F6403
+endif
+endif
+
+# Optimization level
+
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+  ARCHOPTIMIZATION += -NOregvar -reduceopt
+  ARCHASMOPTIMIZATION = -debug -sdiopt
+else
+  ARCHOPTIMIZATION += -regvar
+  ARCHASMOPTIMIZATION = -nodebug -sdiopt
+endif
+
+ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
+  ARCHOPTIMIZATION = -debug
+else
+  ARCHOPTIMIZATION = -nodebug
+endif
+
+# Tool names/paths
+
+CROSSDEV =
+CC = ez8cc.exe
+CPP = gcc -E
+LD = ez8link.exe
+AS = ez8asm.exe
+AR = ez8lib.exe
+
+# File extensions
+
+ASMEXT = .asm
+OBJEXT = .obj
+LIBEXT = .lib
+EXEEXT = .hex
diff --git a/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs b/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
index 456f417..92eae9b 100644
--- a/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
+++ b/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
@@ -1,7 +1,7 @@
 ############################################################################
 # boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
 #
-#   Copyright (C) 2014, 2017 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2014, 2017, 2020 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gn...@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -35,69 +35,17 @@
 
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
+include ${TOPDIR}/arch/z16/src/z16f/Toolchain.defs
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
-# These are the default directories where the ZDS-II toolchain is installed.
-# NOTE that short 8.3 path names are used in order to avoid spaces.  On my
-# machine I have:
-#
-# Versions 5.0.1
-#   C:\PROGRA~1\ = C:\Program Files\
-#   C:\PROGRA~2\ = C:\Program Files (x86)\
-#
-# Your PC may be configured differently.
-#
-# Version 5.2.1, the default install location is C:\ZiLOG
-
-ifeq ($(CONFIG_Z16F_ZDSII_V511),y)
-INSTALLROOT = C:/PROGRA~2/ZiLOG
-ZDSVERSION := 5.0.1
-else ifeq ($(CONFIG_Z16F_ZDSII_V521),y)
-INSTALLROOT = C:/ZiLOG
-ZDSVERSION := 5.2.1
-endif
+# CFLAGS
 
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-  ZDSINSTALLDIR = $(INSTALLROOT)/ZDSII_ZNEO_$(ZDSVERSION)
-  INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
-  ZDSBINDIR = $(INSTALLDIR)\bin
-  ZDSSTDINCDIR = $(INSTALLDIR)\include\std
-  ZDSZILOGINCDIR = $(INSTALLDIR)\include\zilog
-  ZDSSTDLIBDIR = $(INSTALLDIR)\lib\std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)\lib\zilog
-
-  # CFLAGs
-
   ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   ARCHUSRINCLUDES = -usrinc:.
 else
-  WINTOOL = y
-  ZDSINSTALLDIR = $(INSTALLROOT)/ZDSII_ZNEO_$(ZDSVERSION)
-  INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
-  ZDSBINDIR = $(INSTALLDIR)/bin
-  ZDSSTDINCDIR = $(INSTALLDIR)/include/std
-  ZDSZILOGINCDIR = $(INSTALLDIR)/include/zilog
-  ZDSSTDLIBDIR = $(INSTALLDIR)/lib/std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)/lib/zilog
-
-  # These are the same directories but with the directory separator
-  # character swapped as needed by the ZDS-II compiler
-
-  WTOPDIR = ${shell cygpath -w "$(TOPDIR)"}
-  WZDSSTDINCDIR = ${shell cygpath -w "$(ZDSSTDINCDIR)"}
-  WZDSZILOGINCDIR = ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
-  WZDSSTDLIBDIR = ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
-  WZDSZILOGLIBDIR = ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
-
-  # Escaped versions
-
-  ETOPDIR = ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
-  EZDSSTDINCDIR = ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
-  EZDSZILOGINCDIR = ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
-
-  # CFLAGs
-
   ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
   EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
   ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
@@ -106,12 +54,6 @@ endif
 
 # Assembler definitions
 
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHASMOPTIMIZATION = -debug
-else
-  ARCHASMOPTIMIZATION = -nodebug
-endif
-
 ARCHASMCPUFLAGS = -cpu:Z16F2811AL -NOigcase
 ARCHASMLIST = -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet
 ARCHASMWARNINGS = -warn
@@ -120,18 +62,6 @@ AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS)
 
 # Compiler definitions
 
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION = -debug
-else
-  ARCHOPTIMIZATION = -nodebug
-endif
-
-ifeq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -NOregvar -reduceopt
-else
-  ARCHOPTIMIZATION += -regvar
-endif
-
 ARCHCPUFLAGS = -chartype:S -model:L -NOmodsect -cpu:Z16F2811AL -NOgenprint \
                -asmsw:" $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)"
 ARCHLIST = -keeplst -NOlist -NOlistinc -NOkeepasm
@@ -153,80 +83,6 @@ ARFLAGS = -quiet -warn
 
 LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)z16f2800100zcog$(DELIM)scripts$(DELIM)z16f2800100zcog.linkcmd
 
-# Tool names/paths
-
-CROSSDEV =
-CC = $(ZDSBINDIR)$(DELIM)zneocc.exe
-CPP = gcc -E
-LD = $(ZDSBINDIR)$(DELIM)zneolink.exe
-AS = $(ZDSBINDIR)$(DELIM)zneoasm.exe
-AR = $(ZDSBINDIR)$(DELIM)zneolib.exe
-
-# File extensions
-
-ASMEXT = .asm
-OBJEXT = .obj
-LIBEXT = .lib
-EXEEXT = .hex
-
-# These are the macros that will be used in the NuttX make system
-# to compile and assembly source files and to insert the resulting
-# object files into an archive
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-
-define PREPROCESS
-	@echo CPP: $1->$2
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ASSEMBLE
-	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ARCHIVE
-	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
-endef
-
-define CLEAN
-	$(Q) if exist *.obj (del /f /q *.obj)
-	$(Q) if exist *.src (del /f /q *.src)
-	$(Q) if exist *.lib (del /f /q *.lib)
-	$(Q) if exist *.hex (del /f /q *.hex)
-	$(Q) if exist *.lod (del /f /q *.lod)
-	$(Q) if exist *.lst (del /f /q *.lst)
-endef
-
-else
-
-define PREPROCESS
-	@echo "CPP: $1->$2"
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) `cygpath -w "$1"`
-endef
-
-define ASSEMBLE
-	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) `cygpath -w "$1"`
-endef
-
-define ARCHIVE
-	for __obj in $(2) ; do \
-		"$(AR)" $(ARFLAGS) $1=-+$$__obj \
-	done
-endef
-
-define CLEAN
-	$(Q) rm -f *.obj *.src *.lib *.hex *.lod *.lst
-endef
-endif
-
 # Windows native host tool definitions
 
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
diff --git a/boards/z80/ez80/ez80f910200kitg/scripts/Make.defs b/boards/z80/ez80/ez80f910200kitg/scripts/Make.defs
index 452f5dd..5673ca8 100644
--- a/boards/z80/ez80/ez80f910200kitg/scripts/Make.defs
+++ b/boards/z80/ez80/ez80f910200kitg/scripts/Make.defs
@@ -36,7 +36,7 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
-include $(TOPDIR)/boards/z80/ez80/scripts/ez80_Config.mk
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
 # CFLAGS
 
diff --git a/boards/z80/ez80/ez80f910200zco/scripts/Make.defs b/boards/z80/ez80/ez80f910200zco/scripts/Make.defs
index 65bbffe..f2f587b 100644
--- a/boards/z80/ez80/ez80f910200zco/scripts/Make.defs
+++ b/boards/z80/ez80/ez80f910200zco/scripts/Make.defs
@@ -36,7 +36,7 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
-include $(TOPDIR)/boards/z80/ez80/scripts/ez80_Config.mk
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
 # CFLAGS
 
diff --git a/boards/z80/ez80/makerlisp/scripts/Make.defs b/boards/z80/ez80/makerlisp/scripts/Make.defs
index be7c09a..4af5ba0 100644
--- a/boards/z80/ez80/makerlisp/scripts/Make.defs
+++ b/boards/z80/ez80/makerlisp/scripts/Make.defs
@@ -36,7 +36,7 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
-include $(TOPDIR)/boards/z80/ez80/scripts/ez80_Config.mk
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
 # CFLAGS
 
diff --git a/boards/z80/ez80/z20x/scripts/Make.defs b/boards/z80/ez80/z20x/scripts/Make.defs
index 264f962..6ef267d 100644
--- a/boards/z80/ez80/z20x/scripts/Make.defs
+++ b/boards/z80/ez80/z20x/scripts/Make.defs
@@ -21,7 +21,7 @@
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
 include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
-include $(TOPDIR)/boards/z80/ez80/scripts/ez80_Config.mk
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
 # CFLAGS
 
diff --git a/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs b/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
deleted file mode 100644
index 92c7a6c..0000000
--- a/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
+++ /dev/null
@@ -1,287 +0,0 @@
-############################################################################
-# boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
-#
-#   Copyright (C) 2008, 2012-2013 Gregory Nutt. All rights reserved.
-#   Author: Gregory Nutt <gn...@nuttx.org>
-#
-# 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 NuttX 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.
-#
-############################################################################
-
-include $(TOPDIR)/.config
-include $(TOPDIR)/tools/Config.mk
-
-# These are the directories where the ZDS-II toolchain is installed.  NOTE
-# that short 8.3 path names are used in order to avoid spaces.  On my machine
-# I have:
-#
-# C:\PROGRA~1\ = C:\Profram Files\
-# C:\PROGRA~2\ = C:\Program Files (x86)\
-#
-# Your PC may be configured differently.
-
-ifeq ($(CONFIG_Z8_ZDSII_V522),y)
-ZDSVERSION = 5.2.2
-else # ifeq ($(CONFIG_Z8_ZDSII_V500),y)
-ZDSVERSION = 5.0.0
-endif
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
-  INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
-  ZDSBINDIR = $(INSTALLDIR)\bin
-  ZDSSTDINCDIR = $(INSTALLDIR)\include\std
-  ZDSZILOGINCDIR = $(INSTALLDIR)\include\zilog
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F642X
-endif
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F640X
-endif
-  ZDSSTDLIBDIR = $(INSTALLDIR)\lib\std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)\lib\zilog
-
-  # CFLAGs
-
-  ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
-  EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
-  ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR);$(ZDSDEVINCDIR)
-  ARCHUSRINCLUDES = -usrinc:.
-else
-  WINTOOL = y
-  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
-  INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
-  ZDSBINDIR = $(INSTALLDIR)/bin
-  ZDSSTDINCDIR = $(INSTALLDIR)/include/std
-  ZDSZILOGINCDIR = $(INSTALLDIR)/include/zilog
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F642X
-endif
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F640X
-endif
-  ZDSSTDLIBDIR = $(INSTALLDIR)/lib/std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)/lib/zilog
-
-  # These are the same directories but with the directory separator
-  # character swapped as needed by the ZDS-II compiler
-
-  WTOPDIR = ${shell cygpath -w "$(TOPDIR)"}
-  WZDSSTDINCDIR = ${shell cygpath -w "$(ZDSSTDINCDIR)"}
-  WZDSZILOGINCDIR = ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
-  WZDSDEVINCDIR = ${shell cygpath -w "$(ZDSDEVINCDIR)"}
-  WZDSSTDLIBDIR = ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
-  WZDSZILOGLIBDIR = ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
-
-  # Escaped versions
-
-  ETOPDIR = ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
-  EZDSSTDINCDIR = ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
-  EZDSZILOGINCDIR = ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
-
-  # CFLAGs
-
-  ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
-  EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
-  ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR);$(WZDSDEVINCDIR)'
-  ARCHUSRINCLUDES = -usrinc:'.'
-endif
-
-# Assembler definitions
-
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ARCHFAMILYDEF = _Z8ENCORE_F642X
-  ARCHSERIESDEF = _Z8ENCORE_64K_SERIES
-  ARCHREVAA = -NOrevaa
-ifeq ($(CONFIG_ARCH_CHIP_Z8F6423),y)
-  ARCHCPU = Z8F6423
-  ARCHCPUDEF = _Z8F6423
-endif
-endif
-
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ARCHFAMILYDEF = _Z8ENCORE_F640X
-  ARCHSERIESDEF = _Z8ENCORE_640_FAMILY
-  ARCHREVAA = -revaa
-ifeq ($(CONFIG_ARCH_CHIP_Z8F6403),y)
-  ARCHCPU = Z8F6403
-  ARCHCPUDEF = _Z8F6403
-endif
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHASMOPTIMIZATION = -debug -sdiopt
-else
-  ARCHASMOPTIMIZATION = -nodebug -sdiopt
-endif
-
-ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase $(ARCHREVAA)
-ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet
-ARCHASMWARNINGS = -warn
-ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHSERIESDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__
-AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)
-
-# Compiler definitions
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION = -debug
-else
-  ARCHOPTIMIZATION = -nodebug
-endif
-
-ifeq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -NOregvar -reduceopt
-else
-  ARCHOPTIMIZATION += -regvar
-endif
-
-ARCHCPUFLAGS = -chartype:S -model:L -const:RAM -NOoptlink -promote -cpu:$(ARCHCPU) $(ARCHREVAA) -NOgenprintf \
-			   -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)"
-ARCHLIST = -keeplst -NOlist -NOlistinc -keepasm
-ARCHPICFLAGS =
-ARCHWARNINGS = -warn
-ARCHDEFINES = -define:$(ARCHFAMILYDEF) -define:$(ARCHCPUDEF) -define:$(ARCHSERIESDEF)
-ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES)
-CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-
-CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D$(ARCHSERIESDEF) -D__ASSEMBLY__
-CPPINCLUDES = -I$(TOPDIR)$(DELIM)include
-CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES)
-
-# Librarian definitions
-
-ARFLAGS = -quiet -warn
-
-# Linker definitions
-
-LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)configs$(DELIM)ostest$(DELIM)ostest.linkcmd
-
-# Tool names/paths
-
-CROSSDEV =
-CC = ez8cc.exe
-CPP = gcc -E
-LD = ez8link.exe
-AS = ez8asm.exe
-AR = ez8lib.exe
-
-# File extensions
-
-ASMEXT = .asm
-OBJEXT = .obj
-LIBEXT = .lib
-EXEEXT = .hex
-
-# These are the macros that will be used in the NuttX make system
-# to compile and assembly source files and to insert the resulting
-# object files into an archive
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-
-define PREPROCESS
-	@echo CPP: $1->$2
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ASSEMBLE
-	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ARCHIVE
-	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
-endef
-
-define CLEAN
-	$(Q) if exist *.obj (del /f /q *.obj)
-	$(Q) if exist *.src (del /f /q *.src)
-	$(Q) if exist *.lib (del /f /q *.lib)
-	$(Q) if exist *.hex (del /f /q *.hex)
-	$(Q) if exist *.lod (del /f /q *.lod)
-	$(Q) if exist *.lst (del /f /q *.lst)
-endef
-
-else
-
-define PREPROCESS
-	@echo "CPP: $1->$2"
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) (wfile=`cygpath -w "$1"`; "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) $$wfile)
-endef
-
-define ASSEMBLE
-	$(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) $$wfile)
-endef
-
-define ARCHIVE
-	for __obj in $(2) ; do \
-		"$(AR)" $(ARFLAGS) $1=-+$$__obj \
-	done
-endef
-
-define CLEAN
-	$(Q) rm -f *.obj *.src *.lib *.hex *.lod *.lst
-endef
-endif
-
-# Windows native host tool definitions
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-  HOSTCC = mingw32-gcc.exe
-  HOSTINCLUDES = -I.
-  HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
-  HOSTLDFLAGS =
-  HOSTEXEEXT = .exe
-
-  # Windows-native host tools
-
-  MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative
-else
-
-# Linux/Cygwin host tool definitions
-
-  HOSTCC = gcc
-  HOSTINCLUDES = -I.
-  HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
-  HOSTLDFLAGS =
-
-  # This is the tool to use for dependencies (i.e., none)
-
-  MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkwindeps.sh
-
-  # ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies
-
-  DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)copydir.sh
-  DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh
-endif
diff --git a/boards/z80/ez80/ez80f910200zco/scripts/Make.defs b/boards/z80/z8/z8encore000zco/scripts/Make.defs
similarity index 78%
copy from boards/z80/ez80/ez80f910200zco/scripts/Make.defs
copy to boards/z80/z8/z8encore000zco/scripts/Make.defs
index 65bbffe..72402ee 100644
--- a/boards/z80/ez80/ez80f910200zco/scripts/Make.defs
+++ b/boards/z80/z8/z8encore000zco/scripts/Make.defs
@@ -1,7 +1,7 @@
 ############################################################################
-# boards/z80/ez80/ez80f910200zco/scripts/Make.defs
+# boards/z80/z8/z8encore000zco/scripts/ostest/Make.defs
 #
-#   Copyright (C) 2009, 2012-2013, 2020 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2012-2013, 2020 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gn...@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -35,43 +35,43 @@
 
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
-include ${TOPDIR}/arch/z80/src/ez80/Toolchain.defs
-include $(TOPDIR)/boards/z80/ez80/scripts/ez80_Config.mk
+include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
 # CFLAGS
 
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
   ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
-  ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
+  ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR);$(ZDSDEVINCDIR)
   ARCHUSRINCLUDES = -usrinc:.
 else
   ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
   EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
-  ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
+  ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR);$(WZDSDEVINCDIR)'
   ARCHUSRINCLUDES = -usrinc:'.'
 endif
 
 # Assembler definitions
 
-ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase
+ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase $(ARCHREVAA)
 ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet
 ARCHASMWARNINGS = -warn
-ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__
+ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHSERIESDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__
 AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)
 
 # Compiler definitions
 
-ARCHCPUFLAGS = -chartype:S -promote -cpu:$(ARCHCPU) -NOgenprintf -NOmodsect \
-               -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHOPTIMIZATION)"
+ARCHCPUFLAGS = -chartype:S -model:L -const:RAM -NOoptlink -promote -cpu:$(ARCHCPU) $(ARCHREVAA) -NOgenprintf \
+			   -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)"
 ARCHLIST = -keeplst -NOlist -NOlistinc -keepasm
 ARCHPICFLAGS =
 ARCHWARNINGS = -warn
-ARCHDEFINES = -define:$(ARCHCPUDEF) -define:$(ARCHFAMILYDEF)
+ARCHDEFINES = -define:$(ARCHFAMILYDEF) -define:$(ARCHCPUDEF) -define:$(ARCHSERIESDEF)
 ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES)
 CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
 
-CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D__ASSEMBLY__
+CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D$(ARCHSERIESDEF) -D__ASSEMBLY__
 CPPINCLUDES = -I$(TOPDIR)$(DELIM)include
 CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES)
 
@@ -81,7 +81,7 @@ ARFLAGS = -quiet -warn
 
 # Linker definitions
 
-LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)ez80f910200zco.linkcmd
+LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)configs$(DELIM)ostest$(DELIM)ostest.linkcmd
 
 # Windows native host tool definitions
 
@@ -94,8 +94,7 @@ ifeq ($(CONFIG_WINDOWS_NATIVE),y)
 
   # Windows-native host tools
 
-  #MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative
-  MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh
+  MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative
 else
 
 # Linux/Cygwin host tool definitions
@@ -107,7 +106,7 @@ else
 
   # This is the tool to use for dependencies (i.e., none)
 
-  MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh
+  MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkwindeps.sh
 
   # ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies
 
diff --git a/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs b/boards/z80/z8/z8f64200100kit/scripts/Make.defs
similarity index 50%
rename from boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
rename to boards/z80/z8/z8f64200100kit/scripts/Make.defs
index ed9ba2a..ab663d0 100644
--- a/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
+++ b/boards/z80/z8/z8f64200100kit/scripts/Make.defs
@@ -1,7 +1,7 @@
 ############################################################################
 # boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
 #
-#   Copyright (C) 2008, 2012-2013 Gregory Nutt. All rights reserved.
+#   Copyright (C) 2008, 2012-2013, 2020 Gregory Nutt. All rights reserved.
 #   Author: Gregory Nutt <gn...@nuttx.org>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -35,77 +35,16 @@
 
 include $(TOPDIR)/.config
 include $(TOPDIR)/tools/Config.mk
+include ${TOPDIR}/arch/z80/src/z8/Toolchain.defs
+include $(TOPDIR)/tools/zds/zds_Config.mk
 
-# These are the directories where the ZDS-II toolchain is installed.  NOTE
-# that short 8.3 path names are used in order to avoid spaces.  On my machine
-# I have:
-#
-# C:\PROGRA~1\ = C:\Profram Files\
-# C:\PROGRA~2\ = C:\Program Files (x86)\
-#
-# Your PC may be configured differently.
-
-ifeq ($(CONFIG_Z8_ZDSII_V522),y)
-ZDSVERSION = 5.2.2
-else # ifeq ($(CONFIG_Z8_ZDSII_V500),y)
-ZDSVERSION = 5.0.0
-endif
-
+# CFLAGS
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
-  INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
-  ZDSBINDIR = $(INSTALLDIR)\bin
-  ZDSSTDINCDIR = $(INSTALLDIR)\include\std
-  ZDSZILOGINCDIR = $(INSTALLDIR)\include\zilog
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F642X
-endif
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ZDSDEVINCDIR = $(INSTALLDIR)\Z8Encore_F640X
-endif
-  ZDSSTDLIBDIR = $(INSTALLDIR)\lib\std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)\lib\zilog
-
-  # CFLAGs
-
   ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
   ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR);$(ZDSDEVINCDIR)
   ARCHUSRINCLUDES = -usrinc:.
 else
-  WINTOOL = y
-  ZDSINSTALLDIR = C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
-  INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
-  ZDSBINDIR = $(INSTALLDIR)/bin
-  ZDSSTDINCDIR = $(INSTALLDIR)/include/std
-  ZDSZILOGINCDIR = $(INSTALLDIR)/include/zilog
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F642X
-endif
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ZDSDEVINCDIR = $(ZDSZILOGINCDIR)/Z8Encore_F640X
-endif
-  ZDSSTDLIBDIR = $(INSTALLDIR)/lib/std
-  ZDSZILOGLIBDIR = $(INSTALLDIR)/lib/zilog
-
-  # These are the same directories but with the directory separator
-  # character swapped as needed by the ZDS-II compiler
-
-  WTOPDIR = ${shell cygpath -w "$(TOPDIR)"}
-  WZDSSTDINCDIR = ${shell cygpath -w "$(ZDSSTDINCDIR)"}
-  WZDSZILOGINCDIR = ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
-  WZDSDEVINCDIR = ${shell cygpath -w "$(ZDSDEVINCDIR)"}
-  WZDSSTDLIBDIR = ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
-  WZDSZILOGLIBDIR = ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
-
-  # Escaped versions
-
-  ETOPDIR = ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
-  EZDSSTDINCDIR = ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
-  EZDSZILOGINCDIR = ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
-
-  # CFLAGs
-
   ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
   EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
   ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR);$(WZDSDEVINCDIR)'
@@ -114,32 +53,6 @@ endif
 
 # Assembler definitions
 
-ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
-  ARCHFAMILYDEF = _Z8ENCORE_F642X
-  ARCHSERIESDEF = _Z8ENCORE_64K_SERIES
-  ARCHREVAA = -NOrevaa
-ifeq ($(CONFIG_ARCH_CHIP_Z8F6423),y)
-  ARCHCPU = Z8F6423
-  ARCHCPUDEF = _Z8F6423
-endif
-endif
-
-ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
-  ARCHFAMILYDEF = _Z8ENCORE_F640X
-  ARCHSERIESDEF = _Z8ENCORE_640_FAMILY
-  ARCHREVAA = -revaa
-ifeq ($(CONFIG_ARCH_CHIP_Z8F6403),y)
-  ARCHCPU = Z8F6403
-  ARCHCPUDEF = _Z8F6403
-endif
-endif
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHASMOPTIMIZATION = -debug -sdiopt
-else
-  ARCHASMOPTIMIZATION = -nodebug -sdiopt
-endif
-
 ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase $(ARCHREVAA)
 ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet
 ARCHASMWARNINGS = -warn
@@ -148,18 +61,6 @@ AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS)
 
 # Compiler definitions
 
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
-  ARCHOPTIMIZATION = -debug
-else
-  ARCHOPTIMIZATION = -nodebug
-endif
-
-ifeq ($(CONFIG_DEBUG_NOOPT),y)
-  ARCHOPTIMIZATION += -NOregvar -reduceopt
-else
-  ARCHOPTIMIZATION += -regvar
-endif
-
 ARCHCPUFLAGS = -chartype:S -model:L -const:RAM -NOoptlink -promote -cpu:$(ARCHCPU) $(ARCHREVAA) -NOgenprintf \
 			   -asmsw:" $(ARCHASMCPUFLAGS) $(EARCHASMINCLUDES) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)"
 ARCHLIST = -keeplst -NOlist -NOlistinc -keepasm
@@ -181,80 +82,6 @@ ARFLAGS = -quiet -warn
 
 LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)boards$(DELIM)$(CONFIG_ARCH)$(DELIM)$(CONFIG_ARCH_CHIP)$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)configs$(DELIM)ostest$(DELIM)ostest.linkcmd
 
-# Tool names/paths
-
-CROSSDEV =
-CC = ez8cc.exe
-CPP = gcc -E
-LD = ez8link.exe
-AS = ez8asm.exe
-AR = ez8lib.exe
-
-# File extensions
-
-ASMEXT = .asm
-OBJEXT = .obj
-LIBEXT = .lib
-EXEEXT = .hex
-
-# These are the macros that will be used in the NuttX make system
-# to compile and assembly source files and to insert the resulting
-# object files into an archive
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-
-define PREPROCESS
-	@echo CPP: $1->$2
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ASSEMBLE
-	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
-endef
-
-define ARCHIVE
-	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
-endef
-
-define CLEAN
-	$(Q) if exist *.obj (del /f /q *.obj)
-	$(Q) if exist *.src (del /f /q *.src)
-	$(Q) if exist *.lib (del /f /q *.lib)
-	$(Q) if exist *.hex (del /f /q *.hex)
-	$(Q) if exist *.lod (del /f /q *.lod)
-	$(Q) if exist *.lst (del /f /q *.lst)
-endef
-
-else
-
-define PREPROCESS
-	@echo "CPP: $1->$2"
-	$(Q) "$(CPP)" $(CPPFLAGS) $($(strip $1)_CPPFLAGS) $1 -o $2
-endef
-
-define COMPILE
-	$(Q) (wfile=`cygpath -w "$1"`; "$(CC)" $(CFLAGS) $($(strip $1)_CFLAGS) $$wfile)
-endef
-
-define ASSEMBLE
-	$(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) $$wfile)
-endef
-
-define ARCHIVE
-	for __obj in $(2) ; do \
-		"$(AR)" $(ARFLAGS) $1=-+$$__obj \
-	done
-endef
-
-define CLEAN
-	$(Q) rm -f *.obj *.src *.lib *.hex *.lod *.lst
-endef
-endif
-
 # Windows native host tool definitions
 
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
diff --git a/tools/zds/README.txt b/tools/zds/README.txt
index 4f1e16c..fbcf546 100644
--- a/tools/zds/README.txt
+++ b/tools/zds/README.txt
@@ -7,6 +7,11 @@ tools/zds/zdsar.c:  This is a wrapper around the ZDS_II librarian.  It
   the build files but it also improves performance and, more importantly,i
   provides a common solution for the Windows native build case.
 
+tools/zds/zds_Config.mk:  This makefile fragment is include by ZDS-II
+  Make.defs files after including tools/Config.mk.  The definitions in this
+  file override some of the the definitions in tools/Config.mk to customize
+  the build for use with the ZDS-II tools.
+
 These tools should work with all ZDS-II based platforms including z8, zNeo,
 and ez80.
 
diff --git a/boards/z80/ez80/scripts/eZ80_Config.mk b/tools/zds/zds_Config.mk
similarity index 96%
rename from boards/z80/ez80/scripts/eZ80_Config.mk
rename to tools/zds/zds_Config.mk
index 7a4f98a..a7192cf 100644
--- a/boards/z80/ez80/scripts/eZ80_Config.mk
+++ b/tools/zds/zds_Config.mk
@@ -1,5 +1,5 @@
 ############################################################################
-# boards/z80/ez80/scripts/eZ80_Config.defs
+# tools/zds/zds_Config.defs
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -78,7 +78,7 @@ endef
 else
 
 define CONDMOVE
-	$(Q) if [ ! -e $(1) && -e $(2) ]; then mv -f $(2) $(3) ; fi
+	$(Q) if [ ! -e $(1) -a -e $(2) ] ; then mv -f $(2) $(3) ; fi
 endef
 
 define MVOBJS
@@ -104,7 +104,7 @@ endif
 # ARCHIVE will move a list of object files into the library.  This is
 # complex because:
 #
-# 1. The ez80lib.exe archive expects the library to reside within the
+# 1. The ZDS-II librarian expects the library to reside within the
 #    current directory; it expects the library argument to a file name
 #    like foo.lib.
 # 2. Normally, the library file is in the current directory, but other
diff --git a/tools/zds/zdsar.c b/tools/zds/zdsar.c
index 8026d11..2f3891a 100644
--- a/tools/zds/zdsar.c
+++ b/tools/zds/zdsar.c
@@ -78,7 +78,9 @@
 /* Maximum objects per librarian call.
  *
  * REVISIT:  The librarian is supposed to handle multiple object insertions
- * per call, but my experience is that it is unreliable in that case.
+ * per call, but my experience was that it was unreliable in that case.  That
+ * may have improved, however, and perhaps we can increase MAX_OPBJEXT.. TRY
+ * IT!
  */
 
 #define MAX_OBJECTS 1 /* 64 */


[incubator-nuttx] 01/03: Build system: Get rid of the MOVEOBJ definition

Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit d1a8a803e4f52bc0348a8915eb0043dca08fd885
Author: Gregory Nutt <gn...@nuttx.org>
AuthorDate: Mon Feb 24 12:06:11 2020 -0600

    Build system:  Get rid of the MOVEOBJ definition
    
    Eliminate the MOVEOBJ definition from tools/Config.mk, Makefiles, and other locations.  The MOVEOBJ definition was used to work around the case where the object output of a compile or assemble is in a different directory than the source file.  The ZDS-II tools have no command line option to perform this move; MOVEOBJ handled the move as a post-compiler operation.
    
    MOVEOBJ is no longer needed because this the ez80 COMPILE and ASSEMBLE definitions now handle all of the object file movement cases.
---
 boards/z16/z16f/z16f2800100zcog/scripts/Make.defs     | 10 ----------
 boards/z80/ez80/scripts/eZ80_Config.mk                | 15 +++++----------
 boards/z80/z8/z8encore000zco/configs/ostest/Make.defs | 12 ------------
 boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs | 12 ------------
 libs/libc/Makefile                                    |  2 --
 libs/libnx/Makefile                                   |  2 --
 mm/Makefile                                           |  2 --
 tools/Config.mk                                       | 11 -----------
 8 files changed, 5 insertions(+), 61 deletions(-)

diff --git a/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs b/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
index 95fcef0..456f417 100644
--- a/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
+++ b/boards/z16/z16f/z16f2800100zcog/scripts/Make.defs
@@ -188,11 +188,6 @@ define ASSEMBLE
 	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
 endef
 
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-endef
-
 define ARCHIVE
 	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
 endef
@@ -221,11 +216,6 @@ define ASSEMBLE
 	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) `cygpath -w "$1"`
 endef
 
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-endef
-
 define ARCHIVE
 	for __obj in $(2) ; do \
 		"$(AR)" $(ARFLAGS) $1=-+$$__obj \
diff --git a/boards/z80/ez80/scripts/eZ80_Config.mk b/boards/z80/ez80/scripts/eZ80_Config.mk
index b2e9d14..7a4f98a 100644
--- a/boards/z80/ez80/scripts/eZ80_Config.mk
+++ b/boards/z80/ez80/scripts/eZ80_Config.mk
@@ -31,7 +31,7 @@ define PREPROCESS
 	$(Q) $(CPP) $(CPPFLAGS) $($(strip $(1))_CPPFLAGS) $(1) -o $(2)
 endef
 
-# COMPILE, ASSEMBLE, MOVEOBJ
+# COMPILE, ASSEMBLE, and helpers
 #
 # The ZDS-II compiler and assembler both generate object files in the
 # current directory with the same name as the source file, but with the .obj
@@ -40,12 +40,10 @@ endef
 #
 # 1. If the foo.obj object belongs in a lower level directory (such as bin/),
 #    then the relative path will be preface the object file name (such as
-#    bin/foo.obj)).  In this case, the build system will call MOVEOBJ to
-#    move the objects in place and nothing special need be done here.
+#    bin/foo.obj)).
 # 2. In other cases, the build system may decorate the object file name such
 #    as a.b.c.foo.obj.  This case is distinguished here by because does not
-#    lie in a lower directory, but lies in the current directory and is
-#    handled within COMPILE and ASSEMBLE.
+#    lie in a lower directory, but lies in the current directory.
 
 define RMOBJS
 	$(call DELFILE, $(1))
@@ -56,7 +54,7 @@ endef
 ifeq ($(CONFIG_WINDOWS_NATIVE),y)
 
 define CONDMOVE
-	$(Q) if not exist $1 (move /Y $2 $3)
+	$(Q) if not exist $1 if exist $2 (move /Y $2 $3)
 endef
 
 define MVOBJS
@@ -80,7 +78,7 @@ endef
 else
 
 define CONDMOVE
-	$(Q) if [ ! -e $(1) ]; then mv -f $(2) $(3) ; fi
+	$(Q) if [ ! -e $(1) && -e $(2) ]; then mv -f $(2) $(3) ; fi
 endef
 
 define MVOBJS
@@ -103,9 +101,6 @@ endef
 
 endif
 
-define MOVEOBJ
-endef
-
 # ARCHIVE will move a list of object files into the library.  This is
 # complex because:
 #
diff --git a/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs b/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
index 09a4d45..92c7a6c 100644
--- a/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
+++ b/boards/z80/z8/z8encore000zco/configs/ostest/Make.defs
@@ -216,12 +216,6 @@ define ASSEMBLE
 	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
 endef
 
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-	$(call MOVEFILE, "$1.src", "$2$(DELIM)$1.src")
-endef
-
 define ARCHIVE
 	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
 endef
@@ -250,12 +244,6 @@ define ASSEMBLE
 	$(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) $$wfile)
 endef
 
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-	$(call MOVEFILE, "$1.src", "$2$(DELIM)$1.src")
-endef
-
 define ARCHIVE
 	for __obj in $(2) ; do \
 		"$(AR)" $(ARFLAGS) $1=-+$$__obj \
diff --git a/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs b/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
index 3fae1b8..ed9ba2a 100644
--- a/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
+++ b/boards/z80/z8/z8f64200100kit/configs/ostest/Make.defs
@@ -216,18 +216,6 @@ define ASSEMBLE
 	$(Q) "$(AS)" $(AFLAGS) $($(strip $1)_AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
 endef
 
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-	$(call MOVEFILE, "$1.src", "$2$(DELIM)$1.src")
-endef
-
-define MOVEOBJ
-	$(call MOVEFILE, "$1.obj", "$2$(DELIM)$1.obj")
-	$(call MOVEFILE, "$1.lst", "$2$(DELIM)$1.lst")
-	$(call MOVEFILE, "$1.src", "$2$(DELIM)$1.src")
-endef
-
 define ARCHIVE
 	for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
 endef
diff --git a/libs/libc/Makefile b/libs/libc/Makefile
index de648dc..0bfce42 100644
--- a/libs/libc/Makefile
+++ b/libs/libc/Makefile
@@ -152,11 +152,9 @@ all: $(BIN)
 
 $(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S
 	$(call ASSEMBLE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 $(COBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.c
 	$(call COMPILE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 # C library for the flat build
 
diff --git a/libs/libnx/Makefile b/libs/libnx/Makefile
index cdf9b4f..92b2bb4 100644
--- a/libs/libnx/Makefile
+++ b/libs/libnx/Makefile
@@ -229,11 +229,9 @@ gensources: gen1bppsources gen2bppsource gen4bppsource gen8bppsource gen16bppsou
 
 $(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S
 	$(call ASSEMBLE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 $(COBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.c
 	$(call COMPILE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 # NX library for the flat build
 
diff --git a/mm/Makefile b/mm/Makefile
index 7f1dbcf..f200830 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -76,11 +76,9 @@ all: $(BIN)
 
 $(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S
 	$(call ASSEMBLE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 $(COBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.c
 	$(call COMPILE, $<, $@)
-	$(call MOVEOBJ,$(patsubst $(BINDIR)$(DELIM)%$(OBJEXT),%,$@),$(BINDIR))
 
 # Memory manager for the flat build
 
diff --git a/tools/Config.mk b/tools/Config.mk
index bb647cd..43870aa 100644
--- a/tools/Config.mk
+++ b/tools/Config.mk
@@ -186,17 +186,6 @@ define INSTALL_LIB
 	$(Q) install -m 0644 $1 $2
 endef
 
-# MOVEOBJ - Default macro to move an object file to the correct location
-# Example: $(call MOVEOBJ, prefix, directory)
-#
-# This is only used in directories that keep object files in sub-directories.
-# Certain compilers (ZDS-II) always place the resulting files in the
-# directory where the compiler was invoked with no option to generate objects
-# in a different location.
-
-define MOVEOBJ
-endef
-
 # ARCHIVE - Add a list of files to an archive
 # Example: $(call ARCHIVE, archive-file, "file1 file2 file3 ...")
 #