You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2021/10/25 19:39:22 UTC

[incubator-nuttx] branch master updated: configure/sethost: Add BSD host (-B switch) + MAKECMD (make vs gmake).

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2abe1e9  configure/sethost: Add BSD host (-B switch) + MAKECMD (make vs gmake).
2abe1e9 is described below

commit 2abe1e9282684f742b355247851e1419c98754d3
Author: Tomasz 'CeDeROM' CEDRO <to...@cedro.info>
AuthorDate: Sat Oct 16 18:30:54 2021 +0200

    configure/sethost: Add BSD host (-B switch) + MAKECMD (make vs gmake).
    
    This patch adds -B switch to select BSD host platforms.
    
    Linux uses GNU Make as default, command is `make`.
    BSD uses BSD Make as default, command is also `make`.
    BSD can also use GNU Make, but the command is `gmake`.
    This patch uses `make` on GNU platforms and `gmake` on BSD platforms.
    
    Signed-off-by: Tomasz 'CeDeROM' CEDRO <to...@cedro.info>
    
    tools/sethost.sh: Add BSD host (-B switch) + MAKECMD (make vs gmake).
    
    Signed-off-by: Tomasz 'CeDeROM' CEDRO <to...@cedro.info>
    
    tools/configure.c: Add BSD host (-B switch).
    
    Signed-off-by: Tomasz 'CeDeROM' CEDRO <to...@cedro.info>
---
 tools/configure.c  | 32 ++++++++++++++++++++++++++++++--
 tools/configure.sh | 13 ++++++++++---
 tools/sethost.sh   | 32 +++++++++++++++++++++++++-------
 3 files changed, 65 insertions(+), 12 deletions(-)

diff --git a/tools/configure.c b/tools/configure.c
index 28dd4f7..aa6d523 100644
--- a/tools/configure.c
+++ b/tools/configure.c
@@ -52,6 +52,7 @@
 #define HOST_LINUX     1
 #define HOST_MACOS     2
 #define HOST_WINDOWS   3
+#define HOST_BSD       4
 
 #define WINDOWS_NATIVE 1
 #define WINDOWS_CYGWIN 2
@@ -166,7 +167,7 @@ static const char *g_optfiles[] =
 
 static void show_usage(const char *progname, int exitcode)
 {
-  fprintf(stderr, "\nUSAGE: %s  [-d] [-E] [-e] [-b|f] [-L] [-l|m|c|g|n] "
+  fprintf(stderr, "\nUSAGE: %s  [-d] [-E] [-e] [-b|f] [-L] [-l|m|c|g|n|B] "
           "[-a <app-dir>] <board-name>:<config-name> [make-opts]\n",
           progname);
   fprintf(stderr, "\nUSAGE: %s  [-h]\n", progname);
@@ -203,6 +204,7 @@ static void show_usage(const char *progname, int exitcode)
   fprintf(stderr, "    Selects the host environment.\n");
   fprintf(stderr, "    -l Selects the Linux (l) host environment.\n");
   fprintf(stderr, "    -m Selects the macOS (m) host environment.\n");
+  fprintf(stderr, "    -B Selects the *BSD (B) host environment.\n");
   fprintf(stderr, "    -c Selects the Windows Cygwin (c) environment.\n");
   fprintf(stderr, "    -g Selects the Windows MinGW/MSYS environment.\n");
   fprintf(stderr, "    -n Selects the Windows native (n) environment.\n");
@@ -266,7 +268,7 @@ static void parse_args(int argc, char **argv)
 
   /* Parse command line options */
 
-  while ((ch = getopt(argc, argv, "a:bcdEefghLlmnu")) > 0)
+  while ((ch = getopt(argc, argv, "a:bcdEefghLlmBnu")) > 0)
     {
       switch (ch)
         {
@@ -320,6 +322,10 @@ static void parse_args(int argc, char **argv)
             g_host = HOST_MACOS;
             break;
 
+          case 'B' :
+            g_host = HOST_BSD;
+            break;
+
           case 'n' :
             g_host    = HOST_WINDOWS;
             g_windows = WINDOWS_NATIVE;
@@ -1352,6 +1358,7 @@ static void set_host(const char *destconfig)
           enable_feature(destconfig, "CONFIG_HOST_LINUX");
           disable_feature(destconfig, "CONFIG_HOST_WINDOWS");
           disable_feature(destconfig, "CONFIG_HOST_MACOS");
+          disable_feature(destconfig, "CONFIG_HOST_BSD");
 
           disable_feature(destconfig, "CONFIG_WINDOWS_NATIVE");
           disable_feature(destconfig, "CONFIG_WINDOWS_CYGWIN");
@@ -1369,6 +1376,7 @@ static void set_host(const char *destconfig)
 
           disable_feature(destconfig, "CONFIG_HOST_LINUX");
           disable_feature(destconfig, "CONFIG_HOST_WINDOWS");
+          disable_feature(destconfig, "CONFIG_HOST_BSD");
           enable_feature(destconfig, "CONFIG_HOST_MACOS");
 
           disable_feature(destconfig, "CONFIG_WINDOWS_NATIVE");
@@ -1381,11 +1389,31 @@ static void set_host(const char *destconfig)
         }
         break;
 
+      case HOST_BSD:
+        {
+          printf("  Select the BSD host\n");
+
+          disable_feature(destconfig, "CONFIG_HOST_LINUX");
+          disable_feature(destconfig, "CONFIG_HOST_WINDOWS");
+          disable_feature(destconfig, "CONFIG_HOST_MACOS");
+          enable_feature(destconfig, "CONFIG_HOST_BSD");
+
+          disable_feature(destconfig, "CONFIG_WINDOWS_NATIVE");
+          disable_feature(destconfig, "CONFIG_WINDOWS_CYGWIN");
+          disable_feature(destconfig, "CONFIG_WINDOWS_MSYS");
+          disable_feature(destconfig, "CONFIG_WINDOWS_OTHER");
+
+          enable_feature(destconfig, "CONFIG_SIM_X8664_SYSTEMV");
+          disable_feature(destconfig, "CONFIG_SIM_X8664_MICROSOFT");
+        }
+        break;
+
       case HOST_WINDOWS:
         {
           enable_feature(destconfig, "CONFIG_HOST_WINDOWS");
           disable_feature(destconfig, "CONFIG_HOST_LINUX");
           disable_feature(destconfig, "CONFIG_HOST_MACOS");
+          disable_feature(destconfig, "CONFIG_HOST_BSD");
 
           disable_feature(destconfig, "CONFIG_WINDOWS_OTHER");
 
diff --git a/tools/configure.sh b/tools/configure.sh
index 4b1e37d..e32ecf2 100755
--- a/tools/configure.sh
+++ b/tools/configure.sh
@@ -21,9 +21,10 @@ set -e
 
 WD=`test -d ${0%/*} && cd ${0%/*}; pwd`
 TOPDIR="${WD}/.."
+MAKECMD="make"
 USAGE="
 
-USAGE: ${0} [-E] [-e] [-l|m|c|g|n] [L] [-a <app-dir>] <board-name>:<config-name> [make-opts]
+USAGE: ${0} [-E] [-e] [-l|m|c|g|n|B] [L] [-a <app-dir>] <board-name>:<config-name> [make-opts]
 
 Where:
   -E enforces distclean if already configured.
@@ -33,6 +34,7 @@ Where:
   -c selects the Windows host and Cygwin (c) environment.
   -g selects the Windows host and MinGW/MSYS environment.
   -n selects the Windows host and Windows native (n) environment.
+  -B selects the *BSD (B) host environment.
   Default: Use host setup in the defconfig file
   Default Windows: Cygwin
   -L  Lists all available configurations.
@@ -86,6 +88,11 @@ while [ ! -z "$1" ]; do
     winnative=y
     host+=" $1"
     ;;
+  -B )
+    winnative=n
+    host+=" $1"
+    MAKECMD="gmake"
+    ;;
   -E )
     enforce_distclean=y
     ;;
@@ -173,7 +180,7 @@ fi
 
 if [ -r ${dest_config} ]; then
   if [ "X${enforce_distclean}" = "Xy" ]; then
-    make -C ${TOPDIR} distclean
+    ${MAKECMD} -C ${TOPDIR} distclean
   else
     if cmp -s ${src_config} ${backup_config}; then
       echo "No configuration change."
@@ -181,7 +188,7 @@ if [ -r ${dest_config} ]; then
     fi
 
     if [ "X${distclean}" = "Xy" ]; then
-      make -C ${TOPDIR} distclean
+      ${MAKECMD} -C ${TOPDIR} distclean
     else
       echo "Already configured!"
       echo "Please 'make distclean' and try again."
diff --git a/tools/sethost.sh b/tools/sethost.sh
index 16ff6d5..6be7e92 100755
--- a/tools/sethost.sh
+++ b/tools/sethost.sh
@@ -22,14 +22,15 @@ set -e
 progname=$0
 host=
 wenv=
+MAKECMD="make"
 
 function showusage {
   echo ""
-  echo "USAGE: $progname [-l|m|c|g|n] [make-opts]"
+  echo "USAGE: $progname [-l|m|c|g|n|B] [make-opts]"
   echo "       $progname -h"
   echo ""
   echo "Where:"
-  echo "  -l|m|c|g|n selects Linux (l), macOS (m), Cygwin (c),"
+  echo "  -l|m|c|g|n|B selects Linux (l), macOS (m), Cygwin (c), BSD (B),"
   echo "     MSYS/MSYS2 (g) or Windows native (n). Default Linux"
   echo "  make-opts directly pass to make"
   echo "  -h will show this help test and terminate"
@@ -58,6 +59,10 @@ while [ ! -z "$1" ]; do
     host=windows
     wenv=native
     ;;
+  -B )
+    host=bsd
+    MAKECMD="gmake"
+    ;;
   -h )
     showusage
     ;;
@@ -74,12 +79,17 @@ done
 #   Cygwin: CYGWIN_NT-10.0-WOW
 #   Linux: Linux
 #   MSYS: MINGW32_NT-6.2
+#   BSD: FreeBSD, OpenBSD, NetBSD, *BSD
 
 if [ -z "$host" ]; then
   case $(uname -s) in
     Darwin)
       host=macos
       ;;
+    *BSD)
+      host=bsd
+      MAKECMD="gmake"
+      ;;
     CYGWIN*)
       host=windows
       wenv=cygwin
@@ -122,23 +132,30 @@ fi
 
 # Modify the configuration
 
-if [ "X$host" == "Xlinux" -o "X$host" == "Xmacos" ]; then
+if [ "X$host" == "Xlinux" -o "X$host" == "Xmacos" -o "X$host" == "Xbsd" ]; then
 
   # Disable Windows (to suppress warnings from Window Environment selections)
 
   kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_WINDOWS
 
-  # Enable Linux or macOS
+  # Enable Linux or macOS or BSD
 
   if [ "X$host" == "Xlinux" ]; then
     echo "  Select CONFIG_HOST_LINUX=y"
-
     kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_MACOS
+    kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_BSD
     kconfig-tweak --file $nuttx/.config --enable CONFIG_HOST_LINUX
+
+  elif [ "X$host" == "Xbsd" ]; then
+    echo "  Select CONFIG_HOST_BSD=y"
+    kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_MACOS
+    kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_LINUX
+    kconfig-tweak --file $nuttx/.config --enable CONFIG_HOST_BSD
+
   else
     echo "  Select CONFIG_HOST_MACOS=y"
-
     kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_LINUX
+    kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_BSD
     kconfig-tweak --file $nuttx/.config --enable CONFIG_HOST_MACOS
   fi
 
@@ -150,6 +167,7 @@ else
 
   kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_LINUX
   kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_MACOS
+  kconfig-tweak --file $nuttx/.config --disable CONFIG_HOST_BSD
 
   # Enable Windows and the Microsoft ABI
 
@@ -174,4 +192,4 @@ fi
 
 echo "  Refreshing..."
 
-make olddefconfig $* || { echo "ERROR: failed to refresh"; exit 1; }
+${MAKECMD} olddefconfig $* || { echo "ERROR: failed to refresh"; exit 1; }