master
build.cfg
1# posix: POSIX 2024
2PRESET_FEATURES=all
3
4# subset of: posix linux net xsi pseudo dev
5PRESET_UTILS="posix linux net xsi pseudo"
6
7# installation paths
8VERSION=2026-06-08T05-53-UTC-03
9PREFIX=/usr/local
10MANPREFIX=/usr/local/share/man
11
12# toolchain
13CC=cc
14CFLAGS="-std=c99 -Wall -Wextra -pedantic"
15LDFLAGS=""
16LDLIBS="-lcrypt -lresolv"
17AR=ar
18ARFLAGS="rc"
19RANLIB=ranlib
20
21# --- preset expansion: do not edit below ---
22
23case "$PRESET_FEATURES" in
24posix)
25 FEATURE_FIND_DELETE=0; FEATURE_FIND_QUIT=0
26 FEATURE_FIND_EMPTY=0; FEATURE_FIND_INUM=0
27 FEATURE_FIND_SAMEFILE=0; FEATURE_FIND_MAXDEPTH=0
28 FEATURE_FIND_MINDEPTH=0; FEATURE_FIND_MMIN=0
29 FEATURE_FIND_AMIN=0; FEATURE_FIND_CMIN=0
30 FEATURE_FIND_INAME=0; FEATURE_FIND_IPATH=0
31 FEATURE_FIND_REGEX=0; FEATURE_FIND_PRINT0=0
32 FEATURE_SED_INPLACE=0; FEATURE_SED_PRESERVE_NEWLINE=0
33 FEATURE_GREP_CONTEXT=0; FEATURE_GREP_MAX_COUNT=0
34 FEATURE_TAR_CREATE=0; FEATURE_TAR_EXCLUDE=0
35 FEATURE_STAT_FILESYSTEM=0; FEATURE_STAT_FORMAT=0
36 FEATURE_SORT_BIG=0; FEATURE_SORT_STABLE=0
37 FEATURE_OD_ENDIAN=0;
38 FEATURE_SH_HISTEDIT=0; FEATURE_SH_LOCAL=0
39 FEATURE_SH_LET=0; FEATURE_SH_ULIMIT=0
40 FEATURE_SH_SETVAR=0; FEATURE_SH_WORDEXP=0
41 FEATURE_CAL_EXT=0
42 FEATURE_LS_COLOR=0
43 FEATURE_MODPROBE_SHOW_DEPENDS=0; FEATURE_MODPROBE_BLACKLIST=0
44 FEATURE_MODPROBE_SYSLOG=0; FEATURE_MODPROBE_DIR_OVERRIDE=0
45 FEATURE_DEPMOD_ALIAS=0; FEATURE_DEPMOD_SYMBOLS=0
46 FEATURE_TAR_TTY_SAFE=0; FEATURE_TAR_NOFOLLOW=0
47 FEATURE_READLINK_REALPATH=0; FEATURE_UMOUNT_OPTIONS=0
48 FEATURE_TAR_TO_STDOUT=0; FEATURE_TAR_KEEP_OLD=0
49 FEATURE_TAR_STRIP_COMPONENTS=0; FEATURE_TAR_FILES_FROM=0
50 FEATURE_TAR_EXCLUDE_FROM=0; FEATURE_IP_ROUTE_ADD_DEL=0
51 FEATURE_IP_LINK_SET=0; FEATURE_IP_ADDR_FLUSH=0
52 ;;
53common)
54 FEATURE_FIND_DELETE=1; FEATURE_FIND_QUIT=1
55 FEATURE_FIND_EMPTY=1; FEATURE_FIND_INUM=1
56 FEATURE_FIND_SAMEFILE=1; FEATURE_FIND_MAXDEPTH=1
57 FEATURE_FIND_MINDEPTH=1; FEATURE_FIND_MMIN=1
58 FEATURE_FIND_AMIN=1; FEATURE_FIND_CMIN=1
59 FEATURE_FIND_INAME=1; FEATURE_FIND_IPATH=1
60 FEATURE_FIND_REGEX=1; FEATURE_FIND_PRINT0=1
61 FEATURE_SED_INPLACE=1; FEATURE_SED_PRESERVE_NEWLINE=1
62 FEATURE_GREP_CONTEXT=1; FEATURE_GREP_MAX_COUNT=1
63 FEATURE_TAR_CREATE=1; FEATURE_TAR_EXCLUDE=1
64 FEATURE_STAT_FILESYSTEM=1; FEATURE_STAT_FORMAT=1
65 FEATURE_SORT_BIG=0; FEATURE_SORT_STABLE=1
66 FEATURE_OD_ENDIAN=0;
67 FEATURE_SH_HISTEDIT=0; FEATURE_SH_LOCAL=1
68 FEATURE_SH_LET=1; FEATURE_SH_ULIMIT=1
69 FEATURE_SH_SETVAR=0; FEATURE_SH_WORDEXP=0
70 FEATURE_CAL_EXT=1
71 FEATURE_LS_COLOR=1
72 FEATURE_MODPROBE_SHOW_DEPENDS=1; FEATURE_MODPROBE_BLACKLIST=1
73 FEATURE_MODPROBE_SYSLOG=1; FEATURE_MODPROBE_DIR_OVERRIDE=1
74 FEATURE_DEPMOD_ALIAS=1; FEATURE_DEPMOD_SYMBOLS=1
75 FEATURE_TAR_TTY_SAFE=1; FEATURE_TAR_NOFOLLOW=1
76 FEATURE_READLINK_REALPATH=1; FEATURE_UMOUNT_OPTIONS=1
77 FEATURE_TAR_TO_STDOUT=1; FEATURE_TAR_KEEP_OLD=1
78 FEATURE_TAR_STRIP_COMPONENTS=1; FEATURE_TAR_FILES_FROM=1
79 FEATURE_TAR_EXCLUDE_FROM=1; FEATURE_IP_ROUTE_ADD_DEL=1
80 FEATURE_IP_LINK_SET=1; FEATURE_IP_ADDR_FLUSH=1
81 ;;
82all)
83 # histedit now included via redline
84 FEATURE_FIND_DELETE=1; FEATURE_FIND_QUIT=1
85 FEATURE_FIND_EMPTY=1; FEATURE_FIND_INUM=1
86 FEATURE_FIND_SAMEFILE=1; FEATURE_FIND_MAXDEPTH=1
87 FEATURE_FIND_MINDEPTH=1; FEATURE_FIND_MMIN=1
88 FEATURE_FIND_AMIN=1; FEATURE_FIND_CMIN=1
89 FEATURE_FIND_INAME=1; FEATURE_FIND_IPATH=1
90 FEATURE_FIND_REGEX=1; FEATURE_FIND_PRINT0=1
91 FEATURE_SED_INPLACE=1; FEATURE_SED_PRESERVE_NEWLINE=1
92 FEATURE_GREP_CONTEXT=1; FEATURE_GREP_MAX_COUNT=1
93 FEATURE_TAR_CREATE=1; FEATURE_TAR_EXCLUDE=1
94 FEATURE_STAT_FILESYSTEM=1; FEATURE_STAT_FORMAT=1
95 FEATURE_SORT_BIG=1; FEATURE_SORT_STABLE=1
96 FEATURE_OD_ENDIAN=1;
97 FEATURE_SH_HISTEDIT=1; FEATURE_SH_LOCAL=1
98 FEATURE_SH_LET=1; FEATURE_SH_ULIMIT=1
99 FEATURE_SH_SETVAR=1; FEATURE_SH_WORDEXP=1
100 FEATURE_CAL_EXT=1
101 FEATURE_LS_COLOR=1
102 FEATURE_MODPROBE_SHOW_DEPENDS=1; FEATURE_MODPROBE_BLACKLIST=1
103 FEATURE_MODPROBE_SYSLOG=1; FEATURE_MODPROBE_DIR_OVERRIDE=1
104 FEATURE_DEPMOD_ALIAS=1; FEATURE_DEPMOD_SYMBOLS=1
105 FEATURE_TAR_TTY_SAFE=1; FEATURE_TAR_NOFOLLOW=1
106 FEATURE_READLINK_REALPATH=1; FEATURE_UMOUNT_OPTIONS=1
107 FEATURE_TAR_TO_STDOUT=1; FEATURE_TAR_KEEP_OLD=1
108 FEATURE_TAR_STRIP_COMPONENTS=1; FEATURE_TAR_FILES_FROM=1
109 FEATURE_TAR_EXCLUDE_FROM=1; FEATURE_IP_ROUTE_ADD_DEL=1
110 FEATURE_IP_LINK_SET=1; FEATURE_IP_ADDR_FLUSH=1
111 ;;
112*)
113 printf 'build.cfg: unknown PRESET_FEATURES value: %s\n' "$PRESET_FEATURES" >&2
114 return 1 2>/dev/null || exit 1
115 ;;
116esac
117
118BUILD_POSIX=0; BUILD_LINUX=0; BUILD_NET=0; BUILD_XSI=0
119BUILD_PSEUDO=0; BUILD_DEV=0
120for _p in $PRESET_UTILS; do
121 case "$_p" in
122 posix) BUILD_POSIX=1 ;;
123 linux) BUILD_LINUX=1 ;;
124 net) BUILD_NET=1 ;;
125 xsi) BUILD_XSI=1 ;;
126 pseudo) BUILD_PSEUDO=1 ;;
127 dev) BUILD_DEV=1 ;;
128 *)
129 printf 'build.cfg: unknown util preset: %s\n' "$_p" >&2
130 return 1 2>/dev/null || exit 1
131 ;;
132 esac
133done
134unset _p
135
136# --- per-item overrides (after preset expansion) ---
137# BUILD_POSIX_SH=0 # disable a tool when its group is active
138# BUILD_DEV_AS=1 # enable a tool whose group isnt in PRESET_UTILS
139FEATURE_SH_HISTEDIT=1
140# tls backend: set exactly one to 1 to enable tls
141FEATURE_USE_BEARSSL=0
142FEATURE_USE_LIBRESSL=0
143FEATURE_USE_OPENSSL=0
144FEATURE_USE_SSL=1
145
146if [ "$FEATURE_USE_SSL" = 1 ]; then
147 if [ "$FEATURE_USE_BEARSSL" = 0 ] && [ "$FEATURE_USE_LIBRESSL" = 0 ] && [ "$FEATURE_USE_OPENSSL" = 0 ]; then
148 if pkg-config --exists libbearssl 2>/dev/null || pkg-config --exists bearssl 2>/dev/null; then
149 FEATURE_USE_BEARSSL=1
150 elif pkg-config --exists libtls 2>/dev/null; then
151 FEATURE_USE_LIBRESSL=1
152 elif pkg-config --exists openssl 2>/dev/null; then
153 FEATURE_USE_OPENSSL=1
154 fi
155 fi
156fi