diff options
author | Ron Yorston <rmy@pobox.com> | 2024-05-27 14:05:45 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2024-05-27 14:05:45 +0100 |
commit | 0224cfd5e5c8157e5bc74a81027fa508687abfbf (patch) | |
tree | 7be9b074a979a67f03e69e3c9d69ed0bde4df8e1 | |
parent | bb999afb2f049f1168526142a1b0f5168b864f5d (diff) | |
download | busybox-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_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64a_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64u_defconfig | 4 | ||||
-rw-r--r-- | miscutils/make.c | 26 |
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 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_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 | |||
852 | CONFIG_MAKE=y | 852 | CONFIG_MAKE=y |
853 | CONFIG_PDPMAKE=y | 853 | CONFIG_PDPMAKE=y |
854 | CONFIG_FEATURE_MAKE_POSIX=y | 854 | CONFIG_FEATURE_MAKE_POSIX=y |
855 | CONFIG_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 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_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 | |||
852 | CONFIG_MAKE=y | 852 | CONFIG_MAKE=y |
853 | CONFIG_PDPMAKE=y | 853 | CONFIG_PDPMAKE=y |
854 | CONFIG_FEATURE_MAKE_POSIX=y | 854 | CONFIG_FEATURE_MAKE_POSIX=y |
855 | CONFIG_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 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_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 | |||
852 | CONFIG_MAKE=y | 852 | CONFIG_MAKE=y |
853 | CONFIG_PDPMAKE=y | 853 | CONFIG_PDPMAKE=y |
854 | CONFIG_FEATURE_MAKE_POSIX=y | 854 | CONFIG_FEATURE_MAKE_POSIX=y |
855 | CONFIG_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 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_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 | |||
852 | CONFIG_MAKE=y | 852 | CONFIG_MAKE=y |
853 | CONFIG_PDPMAKE=y | 853 | CONFIG_PDPMAKE=y |
854 | CONFIG_FEATURE_MAKE_POSIX=y | 854 | CONFIG_FEATURE_MAKE_POSIX=y |
855 | CONFIG_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" |