aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2024-05-27 14:05:45 +0100
committerRon Yorston <rmy@pobox.com>2024-05-27 14:05:45 +0100
commit0224cfd5e5c8157e5bc74a81027fa508687abfbf (patch)
tree7be9b074a979a67f03e69e3c9d69ed0bde4df8e1
parentbb999afb2f049f1168526142a1b0f5168b864f5d (diff)
downloadbusybox-w32-0224cfd5e5c8157e5bc74a81027fa508687abfbf.tar.gz
busybox-w32-0224cfd5e5c8157e5bc74a81027fa508687abfbf.tar.bz2
busybox-w32-0224cfd5e5c8157e5bc74a81027fa508687abfbf.zip
make: improved support for POSIX levels
The default POSIX level to be enforced in strict mode is now a configuration option. Print details of supported POSIX levels in the usage message. Adds 56-64 bytes.
-rw-r--r--configs/mingw32_defconfig4
-rw-r--r--configs/mingw64_defconfig4
-rw-r--r--configs/mingw64a_defconfig4
-rw-r--r--configs/mingw64u_defconfig4
-rw-r--r--miscutils/make.c26
5 files changed, 37 insertions, 5 deletions
diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig
index eca0dc7fc..c9343d577 100644
--- a/configs/mingw32_defconfig
+++ b/configs/mingw32_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Busybox version: 1.37.0.git 3# Busybox version: 1.37.0.git
4# Sun Feb 11 11:01:45 2024 4# Mon May 27 13:59:40 2024
5# 5#
6CONFIG_HAVE_DOT_CONFIG=y 6CONFIG_HAVE_DOT_CONFIG=y
7# CONFIG_PLATFORM_POSIX is not set 7# CONFIG_PLATFORM_POSIX is not set
@@ -852,6 +852,8 @@ CONFIG_FEATURE_LESS_ENV=y
852CONFIG_MAKE=y 852CONFIG_MAKE=y
853CONFIG_PDPMAKE=y 853CONFIG_PDPMAKE=y
854CONFIG_FEATURE_MAKE_POSIX=y 854CONFIG_FEATURE_MAKE_POSIX=y
855CONFIG_FEATURE_MAKE_POSIX_2017=y
856# CONFIG_FEATURE_MAKE_POSIX_202X is not set
855# CONFIG_MAKEDEVS is not set 857# CONFIG_MAKEDEVS is not set
856# CONFIG_FEATURE_MAKEDEVS_LEAF is not set 858# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
857# CONFIG_FEATURE_MAKEDEVS_TABLE is not set 859# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig
index d71d2abf9..0bd7d7a81 100644
--- a/configs/mingw64_defconfig
+++ b/configs/mingw64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Busybox version: 1.37.0.git 3# Busybox version: 1.37.0.git
4# Sun Feb 11 11:01:45 2024 4# Mon May 27 13:59:40 2024
5# 5#
6CONFIG_HAVE_DOT_CONFIG=y 6CONFIG_HAVE_DOT_CONFIG=y
7# CONFIG_PLATFORM_POSIX is not set 7# CONFIG_PLATFORM_POSIX is not set
@@ -852,6 +852,8 @@ CONFIG_FEATURE_LESS_ENV=y
852CONFIG_MAKE=y 852CONFIG_MAKE=y
853CONFIG_PDPMAKE=y 853CONFIG_PDPMAKE=y
854CONFIG_FEATURE_MAKE_POSIX=y 854CONFIG_FEATURE_MAKE_POSIX=y
855CONFIG_FEATURE_MAKE_POSIX_2017=y
856# CONFIG_FEATURE_MAKE_POSIX_202X is not set
855# CONFIG_MAKEDEVS is not set 857# CONFIG_MAKEDEVS is not set
856# CONFIG_FEATURE_MAKEDEVS_LEAF is not set 858# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
857# CONFIG_FEATURE_MAKEDEVS_TABLE is not set 859# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
diff --git a/configs/mingw64a_defconfig b/configs/mingw64a_defconfig
index 4d554ec75..32f8a02b2 100644
--- a/configs/mingw64a_defconfig
+++ b/configs/mingw64a_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Busybox version: 1.37.0.git 3# Busybox version: 1.37.0.git
4# Sun Feb 11 11:01:45 2024 4# Mon May 27 13:59:40 2024
5# 5#
6CONFIG_HAVE_DOT_CONFIG=y 6CONFIG_HAVE_DOT_CONFIG=y
7# CONFIG_PLATFORM_POSIX is not set 7# CONFIG_PLATFORM_POSIX is not set
@@ -852,6 +852,8 @@ CONFIG_FEATURE_LESS_ENV=y
852CONFIG_MAKE=y 852CONFIG_MAKE=y
853CONFIG_PDPMAKE=y 853CONFIG_PDPMAKE=y
854CONFIG_FEATURE_MAKE_POSIX=y 854CONFIG_FEATURE_MAKE_POSIX=y
855CONFIG_FEATURE_MAKE_POSIX_2017=y
856# CONFIG_FEATURE_MAKE_POSIX_202X is not set
855# CONFIG_MAKEDEVS is not set 857# CONFIG_MAKEDEVS is not set
856# CONFIG_FEATURE_MAKEDEVS_LEAF is not set 858# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
857# CONFIG_FEATURE_MAKEDEVS_TABLE is not set 859# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
diff --git a/configs/mingw64u_defconfig b/configs/mingw64u_defconfig
index 977c6966d..f31e1e82f 100644
--- a/configs/mingw64u_defconfig
+++ b/configs/mingw64u_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Busybox version: 1.37.0.git 3# Busybox version: 1.37.0.git
4# Sun Feb 11 11:01:45 2024 4# Mon May 27 13:59:40 2024
5# 5#
6CONFIG_HAVE_DOT_CONFIG=y 6CONFIG_HAVE_DOT_CONFIG=y
7# CONFIG_PLATFORM_POSIX is not set 7# CONFIG_PLATFORM_POSIX is not set
@@ -852,6 +852,8 @@ CONFIG_FEATURE_LESS_ENV=y
852CONFIG_MAKE=y 852CONFIG_MAKE=y
853CONFIG_PDPMAKE=y 853CONFIG_PDPMAKE=y
854CONFIG_FEATURE_MAKE_POSIX=y 854CONFIG_FEATURE_MAKE_POSIX=y
855CONFIG_FEATURE_MAKE_POSIX_2017=y
856# CONFIG_FEATURE_MAKE_POSIX_202X is not set
855# CONFIG_MAKEDEVS is not set 857# CONFIG_MAKEDEVS is not set
856# CONFIG_FEATURE_MAKEDEVS_LEAF is not set 858# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
857# CONFIG_FEATURE_MAKEDEVS_TABLE is not set 859# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
diff --git a/miscutils/make.c b/miscutils/make.c
index 45cdac400..056cb2909 100644
--- a/miscutils/make.c
+++ b/miscutils/make.c
@@ -29,6 +29,19 @@
29//config: - PDPMAKE_POSIXLY_CORRECT environment variable 29//config: - PDPMAKE_POSIXLY_CORRECT environment variable
30//config: Enable this if you want to check whether your makefiles are 30//config: Enable this if you want to check whether your makefiles are
31//config: POSIX compliant. This adds about 1.7 kb. 31//config: POSIX compliant. This adds about 1.7 kb.
32//config:
33//config:choice
34//config: prompt "Default POSIX level to enforce"
35//config: depends on FEATURE_MAKE_POSIX
36//config: default FEATURE_MAKE_POSIX_2017
37//config:
38//config:config FEATURE_MAKE_POSIX_2017
39//config: bool "2017"
40//config:
41//config:config FEATURE_MAKE_POSIX_202X
42//config: bool "202X"
43//config:
44//config:endchoice
32 45
33//applet:IF_MAKE(APPLET(make, BB_DIR_USR_BIN, BB_SUID_DROP)) 46//applet:IF_MAKE(APPLET(make, BB_DIR_USR_BIN, BB_SUID_DROP))
34//applet:IF_PDPMAKE(APPLET_ODDNAME(pdpmake, make, BB_DIR_USR_BIN, BB_SUID_DROP, make)) 47//applet:IF_PDPMAKE(APPLET_ODDNAME(pdpmake, make, BB_DIR_USR_BIN, BB_SUID_DROP, make))
@@ -64,6 +77,15 @@
64//usage: "\n -s Make silently" 77//usage: "\n -s Make silently"
65//usage: "\n -S Stop on error" 78//usage: "\n -S Stop on error"
66//usage: "\n -t Touch files instead of making them" 79//usage: "\n -t Touch files instead of making them"
80//usage: IF_FEATURE_MAKE_POSIX(
81//usage: "\n\nThis build supports: non-POSIX extensions, POSIX 202X, POSIX 2017"
82//usage: )
83//usage: IF_FEATURE_MAKE_POSIX_2017(
84//usage: "\nIn strict POSIX mode the 2017 standard is enforced by default"
85//usage: )
86//usage: IF_FEATURE_MAKE_POSIX_202X(
87//usage: "\nIn strict POSIX mode the 202X standard is enforced by default"
88//usage: )
67 89
68#include "libbb.h" 90#include "libbb.h"
69#include "bb_archive.h" 91#include "bb_archive.h"
@@ -76,8 +98,10 @@
76 98
77#define POSIX_2017 (posix && posix_level == STD_POSIX_2017) 99#define POSIX_2017 (posix && posix_level == STD_POSIX_2017)
78 100
79#ifndef DEFAULT_POSIX_LEVEL 101#if ENABLE_FEATURE_MAKE_POSIX_2017
80# define DEFAULT_POSIX_LEVEL STD_POSIX_2017 102# define DEFAULT_POSIX_LEVEL STD_POSIX_2017
103#else
104# define DEFAULT_POSIX_LEVEL STD_POSIX_202X
81#endif 105#endif
82 106
83#define OPTSTR1 "eij:+knqrsSt" 107#define OPTSTR1 "eij:+knqrsSt"