commit c47e98d
xplshn
·
2026-07-02 08:29:57 +0000 UTC
parent a9a2328
fix build Signed-off-by: xplshn <anto@xplshn.com.ar>
6 files changed,
+112,
-858
+1,
-0
1@@ -32,4 +32,5 @@ cmd/dev/version.h
2 # build system generated files
3 scripts/mk/config.mk
4 scripts/mk/config.kv
5+scripts/mk/rules.mk
6 deps.mk
M
Makefile
+23,
-223
1@@ -1,5 +1,4 @@
2-.POSIX:
3-include scripts/mk/config.mk
4+-include scripts/mk/config.mk
5
6 .SUFFIXES: .y .o .c
7 HDR =\
8@@ -488,197 +487,23 @@ BIN_pidof_1 = cmd/pseudo/pidof
9 BIN_pwdx_1 = cmd/pseudo/pwdx
10 BIN_uptime_1 = cmd/pseudo/uptime
11
12-POSIX_BIN = \
13- $(BIN_basename_$(BUILD_POSIX_BASENAME)) \
14- $(BIN_cal_$(BUILD_POSIX_CAL)) \
15- $(BIN_cat_$(BUILD_POSIX_CAT)) \
16- $(BIN_chgrp_$(BUILD_POSIX_CHGRP)) \
17- $(BIN_chmod_$(BUILD_POSIX_CHMOD)) \
18- $(BIN_chown_$(BUILD_POSIX_CHOWN)) \
19- $(BIN_cksum_$(BUILD_POSIX_CKSUM)) \
20- $(BIN_cmp_$(BUILD_POSIX_CMP)) \
21- $(BIN_comm_$(BUILD_POSIX_COMM)) \
22- $(BIN_cp_$(BUILD_POSIX_CP)) \
23- $(BIN_cut_$(BUILD_POSIX_CUT)) \
24- $(BIN_date_$(BUILD_POSIX_DATE)) \
25- $(BIN_dd_$(BUILD_POSIX_DD)) \
26- $(BIN_df_$(BUILD_POSIX_DF)) \
27- $(BIN_diff_$(BUILD_POSIX_DIFF)) \
28- $(BIN_patch_$(BUILD_POSIX_PATCH)) \
29- $(BIN_dirname_$(BUILD_POSIX_DIRNAME)) \
30- $(BIN_du_$(BUILD_POSIX_DU)) \
31- $(BIN_echo_$(BUILD_POSIX_ECHO)) \
32- $(BIN_ed_$(BUILD_POSIX_ED)) \
33- $(BIN_env_$(BUILD_POSIX_ENV)) \
34- $(BIN_expand_$(BUILD_POSIX_EXPAND)) \
35- $(BIN_expr_$(BUILD_POSIX_EXPR)) \
36- $(BIN_false_$(BUILD_POSIX_FALSE)) \
37- $(BIN_find_$(BUILD_POSIX_FIND)) \
38- $(BIN_fold_$(BUILD_POSIX_FOLD)) \
39- $(BIN_getconf_$(BUILD_POSIX_GETCONF)) \
40- $(BIN_grep_$(BUILD_POSIX_GREP)) \
41- $(BIN_head_$(BUILD_POSIX_HEAD)) \
42- $(BIN_id_$(BUILD_POSIX_ID)) \
43- $(BIN_join_$(BUILD_POSIX_JOIN)) \
44- $(BIN_kill_$(BUILD_POSIX_KILL)) \
45- $(BIN_link_$(BUILD_POSIX_LINK)) \
46- $(BIN_ln_$(BUILD_POSIX_LN)) \
47- $(BIN_logger_$(BUILD_POSIX_LOGGER)) \
48- $(BIN_logname_$(BUILD_POSIX_LOGNAME)) \
49- $(BIN_ls_$(BUILD_POSIX_LS)) \
50- $(BIN_mesg_$(BUILD_POSIX_MESG)) \
51- $(BIN_mkdir_$(BUILD_POSIX_MKDIR)) \
52- $(BIN_mkfifo_$(BUILD_POSIX_MKFIFO)) \
53- $(BIN_mv_$(BUILD_POSIX_MV)) \
54- $(BIN_nice_$(BUILD_POSIX_NICE)) \
55- $(BIN_nl_$(BUILD_POSIX_NL)) \
56- $(BIN_nohup_$(BUILD_POSIX_NOHUP)) \
57- $(BIN_od_$(BUILD_POSIX_OD)) \
58- $(BIN_paste_$(BUILD_POSIX_PASTE)) \
59- $(BIN_pathchk_$(BUILD_POSIX_PATHCHK)) \
60- $(BIN_printf_$(BUILD_POSIX_PRINTF)) \
61- $(BIN_ps_$(BUILD_POSIX_PS)) \
62- $(BIN_pwd_$(BUILD_POSIX_PWD)) \
63- $(BIN_readlink_$(BUILD_POSIX_READLINK)) \
64- $(BIN_renice_$(BUILD_POSIX_RENICE)) \
65- $(BIN_rm_$(BUILD_POSIX_RM)) \
66- $(BIN_rmdir_$(BUILD_POSIX_RMDIR)) \
67- $(BIN_sed_$(BUILD_POSIX_SED)) \
68- $(BIN_sleep_$(BUILD_POSIX_SLEEP)) \
69- $(BIN_sort_$(BUILD_POSIX_SORT)) \
70- $(BIN_split_$(BUILD_POSIX_SPLIT)) \
71- $(BIN_tail_$(BUILD_POSIX_TAIL)) \
72- $(BIN_tee_$(BUILD_POSIX_TEE)) \
73- $(BIN_test_$(BUILD_POSIX_TEST)) \
74- $(BIN_time_$(BUILD_POSIX_TIME)) \
75- $(BIN_touch_$(BUILD_POSIX_TOUCH)) \
76- $(BIN_tr_$(BUILD_POSIX_TR)) \
77- $(BIN_true_$(BUILD_POSIX_TRUE)) \
78- $(BIN_tsort_$(BUILD_POSIX_TSORT)) \
79- $(BIN_tty_$(BUILD_POSIX_TTY)) \
80- $(BIN_uname_$(BUILD_POSIX_UNAME)) \
81- $(BIN_unexpand_$(BUILD_POSIX_UNEXPAND)) \
82- $(BIN_uniq_$(BUILD_POSIX_UNIQ)) \
83- $(BIN_unlink_$(BUILD_POSIX_UNLINK)) \
84- $(BIN_uudecode_$(BUILD_POSIX_UUDECODE)) \
85- $(BIN_uuencode_$(BUILD_POSIX_UUENCODE)) \
86- $(BIN_wc_$(BUILD_POSIX_WC)) \
87- $(BIN_who_$(BUILD_POSIX_WHO)) \
88- $(BIN_xargs_$(BUILD_POSIX_XARGS)) \
89- $(BIN_awk_$(BUILD_POSIX_AWK)) \
90- $(BIN_sh_$(BUILD_POSIX_SH)) \
91- $(BIN_pax_$(BUILD_POSIX_PAX)) \
92- $(BIN_make_$(BUILD_POSIX_MAKE)) \
93- $(BIN_bc_$(BUILD_POSIX_BC))
94-
95-LINUX_BIN = \
96- $(BIN_blkdiscard_$(BUILD_LINUX_BLKDISCARD)) \
97- $(BIN_chvt_$(BUILD_LINUX_CHVT)) \
98- $(BIN_ctrlaltdel_$(BUILD_LINUX_CTRLALTDEL)) \
99- $(BIN_eject_$(BUILD_LINUX_EJECT)) \
100- $(BIN_freeramdisk_$(BUILD_LINUX_FREERAMDISK)) \
101- $(BIN_fsfreeze_$(BUILD_LINUX_FSFREEZE)) \
102- $(BIN_hwclock_$(BUILD_LINUX_HWCLOCK)) \
103- $(BIN_insmod_$(BUILD_LINUX_INSMOD)) \
104- $(BIN_lsmod_$(BUILD_LINUX_LSMOD)) \
105- $(BIN_lsusb_$(BUILD_LINUX_LSUSB)) \
106- $(BIN_modprobe_$(BUILD_LINUX_MODPROBE)) \
107- $(BIN_depmod_$(BUILD_LINUX_DEPMOD)) \
108- $(BIN_mkswap_$(BUILD_LINUX_MKSWAP)) \
109- $(BIN_mount_$(BUILD_LINUX_MOUNT)) \
110- $(BIN_mountpoint_$(BUILD_LINUX_MOUNTPOINT)) \
111- $(BIN_pivot_root_$(BUILD_LINUX_PIVOT_ROOT)) \
112- $(BIN_readahead_$(BUILD_LINUX_READAHEAD)) \
113- $(BIN_rmmod_$(BUILD_LINUX_RMMOD)) \
114- $(BIN_swaplabel_$(BUILD_LINUX_SWAPLABEL)) \
115- $(BIN_swapoff_$(BUILD_LINUX_SWAPOFF)) \
116- $(BIN_swapon_$(BUILD_LINUX_SWAPON)) \
117- $(BIN_switch_root_$(BUILD_LINUX_SWITCH_ROOT)) \
118- $(BIN_sysctl_$(BUILD_LINUX_SYSCTL)) \
119- $(BIN_tunctl_$(BUILD_LINUX_TUNCTL)) \
120- $(BIN_umount_$(BUILD_LINUX_UMOUNT)) \
121- $(BIN_unshare_$(BUILD_LINUX_UNSHARE)) \
122- $(BIN_vtallow_$(BUILD_LINUX_VTALLOW))
123-
124-NET_BIN = \
125- $(BIN_netcat_$(BUILD_NET_NETCAT)) \
126- $(BIN_tftp_$(BUILD_NET_TFTP)) \
127- $(BIN_wget_$(BUILD_NET_WGET)) \
128- $(BIN_ping_$(BUILD_NET_PING)) \
129- $(BIN_sdhcp_$(BUILD_NET_SDHCP)) \
130- $(BIN_ifconfig_$(BUILD_NET_IFCONFIG)) \
131- $(BIN_host_$(BUILD_NET_HOST)) \
132- $(BIN_httpd_$(BUILD_NET_HTTPD)) \
133- $(BIN_ip_$(BUILD_NET_IP))
134-
135-XSI_BIN = \
136- $(BIN_mknod_$(BUILD_XSI_MKNOD)) \
137- $(BIN_passwd_$(BUILD_XSI_PASSWD)) \
138- $(BIN_su_$(BUILD_XSI_SU))
139-
140-PSEUDO_BIN = \
141- $(BIN_chroot_$(BUILD_PSEUDO_CHROOT)) \
142- $(BIN_clear_$(BUILD_PSEUDO_CLEAR)) \
143- $(BIN_cols_$(BUILD_PSEUDO_COLS)) \
144- $(BIN_cron_$(BUILD_PSEUDO_CRON)) \
145- $(BIN_flock_$(BUILD_PSEUDO_FLOCK)) \
146- $(BIN_getty_$(BUILD_PSEUDO_GETTY)) \
147- $(BIN_halt_$(BUILD_PSEUDO_HALT)) \
148- $(BIN_hostname_$(BUILD_PSEUDO_HOSTNAME)) \
149- $(BIN_killall5_$(BUILD_PSEUDO_KILLALL5)) \
150- $(BIN_last_$(BUILD_PSEUDO_LAST)) \
151- $(BIN_lastlog_$(BUILD_PSEUDO_LASTLOG)) \
152- $(BIN_login_$(BUILD_PSEUDO_LOGIN)) \
153- $(BIN_md5sum_$(BUILD_PSEUDO_MD5SUM)) \
154- $(BIN_mktemp_$(BUILD_PSEUDO_MKTEMP)) \
155- $(BIN_nologin_$(BUILD_PSEUDO_NOLOGIN)) \
156- $(BIN_pagesize_$(BUILD_PSEUDO_PAGESIZE)) \
157- $(BIN_printenv_$(BUILD_PSEUDO_PRINTENV)) \
158- $(BIN_respawn_$(BUILD_PSEUDO_RESPAWN)) \
159- $(BIN_rev_$(BUILD_PSEUDO_REV)) \
160- $(BIN_seq_$(BUILD_PSEUDO_SEQ)) \
161- $(BIN_setsid_$(BUILD_PSEUDO_SETSID)) \
162- $(BIN_sha1sum_$(BUILD_PSEUDO_SHA1SUM)) \
163- $(BIN_sha224sum_$(BUILD_PSEUDO_SHA224SUM)) \
164- $(BIN_sha256sum_$(BUILD_PSEUDO_SHA256SUM)) \
165- $(BIN_sha384sum_$(BUILD_PSEUDO_SHA384SUM)) \
166- $(BIN_sha512sum_$(BUILD_PSEUDO_SHA512SUM)) \
167- $(BIN_sha512_224sum_$(BUILD_PSEUDO_SHA512_224SUM)) \
168- $(BIN_sha512_256sum_$(BUILD_PSEUDO_SHA512_256SUM)) \
169- $(BIN_sponge_$(BUILD_PSEUDO_SPONGE)) \
170- $(BIN_stat_$(BUILD_PSEUDO_STAT)) \
171- $(BIN_tar_$(BUILD_PSEUDO_TAR)) \
172- $(BIN_truncate_$(BUILD_PSEUDO_TRUNCATE)) \
173- $(BIN_watch_$(BUILD_PSEUDO_WATCH)) \
174- $(BIN_which_$(BUILD_PSEUDO_WHICH)) \
175- $(BIN_whoami_$(BUILD_PSEUDO_WHOAMI)) \
176- $(BIN_xinstall_$(BUILD_PSEUDO_XINSTALL)) \
177- $(BIN_yes_$(BUILD_PSEUDO_YES)) \
178- $(BIN_base64_$(BUILD_PSEUDO_BASE64)) \
179- $(BIN_mkpasswd_$(BUILD_PSEUDO_MKPASSWD)) \
180- $(BIN_b3sum_$(BUILD_EXTRA_B3SUM)) \
181- $(BIN_blkid_$(BUILD_EXTRA_BLKID)) \
182- $(BIN_lsblk_$(BUILD_EXTRA_LSBLK)) \
183- $(BIN_fdisk_$(BUILD_EXTRA_FDISK)) \
184- $(BIN_sync_$(BUILD_EXTRA_SYNC)) \
185- $(BIN_yap_$(BUILD_EXTRA_YAP)) \
186- $(BIN_diff3_$(BUILD_PSEUDO_DIFF3)) \
187- $(BIN_ar_$(BUILD_DEV_AR)) \
188- $(BIN_as_$(BUILD_DEV_CC)) \
189- $(BIN_ld_$(BUILD_DEV_LD)) \
190- $(BIN_cc_$(BUILD_DEV_CC)) \
191- $(BIN_dmesg_$(BUILD_PSEUDO_DMESG)) \
192- $(BIN_fallocate_$(BUILD_PSEUDO_FALLOCATE)) \
193- $(BIN_free_$(BUILD_PSEUDO_FREE)) \
194- $(BIN_pidof_$(BUILD_PSEUDO_PIDOF)) \
195- $(BIN_pwdx_$(BUILD_PSEUDO_PWDX)) \
196- $(BIN_uptime_$(BUILD_PSEUDO_UPTIME))
197+POSIX_BIN = $(POSIX_BIN_CONFIG)
198+
199+LINUX_BIN = $(LINUX_BIN_CONFIG)
200+
201+NET_BIN = $(NET_BIN_CONFIG)
202+
203+XSI_BIN = $(XSI_BIN_CONFIG)
204+
205+PSEUDO_BIN = $(PSEUDO_BIN_CONFIG) $(EXTRA_BIN_CONFIG) $(DEV_BIN_CONFIG)
206+
207
208 OBJ = $(LIBUTFOBJ) $(LIBUTILOBJ) $(MAKEOBJ)
209
210 all: $(LIB) $(POSIX_BIN) $(LINUX_BIN) $(NET_BIN) $(XSI_BIN) $(PSEUDO_BIN)
211
212-include deps.mk
213+-include deps.mk
214+-include scripts/mk/rules.mk
215
216 $(POSIX_BIN_ALL) $(LINUX_BIN_ALL) $(NET_BIN_ALL) $(XSI_BIN_ALL) $(PSEUDO_BIN_ALL): $(LIB)
217
218@@ -694,7 +519,7 @@ $(OBJ) $(POSIX_BIN_ALL) $(LINUX_BIN_ALL) $(NET_BIN_ALL) $(XSI_BIN_ALL) $(PSEUDO_
219 $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS)
220
221 cmd/posix/bc.c: cmd/posix/bc.y
222- $(YACC) -d -o $@ $<
223+ $(YACC) -d -o $@ cmd/posix/bc.y
224
225 cmd/posix/bc: cmd/posix/bc.c
226 $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ cmd/posix/bc.c $(LIB) $(LDLIBS)
227@@ -899,9 +724,6 @@ cmd/posix/awk/proctab.c: cmd/posix/awk/maketab
228
229 $(AWKOBJ): cmd/posix/awk/awk.h cmd/posix/awk/awkgram.tab.h cmd/posix/awk/proto.h
230
231-cmd/posix/awk/%.o: cmd/posix/awk/%.c
232- $(CC) $(CPPFLAGS) -Icmd/posix/awk $(CFLAGS) -o $@ -c $<
233-
234 cmd/posix/awk/awk: $(AWKOBJ) $(LIB)
235 $(CC) $(LDFLAGS) -o $@ $(AWKOBJ) $(LIB) $(LDLIBS) -lm
236
237@@ -925,15 +747,9 @@ cmd/posix/sh/token.h: cmd/posix/sh/mktokens
238
239 $(SHOBJ): $(SH_GENHDRS)
240
241-cmd/posix/sh/%.o: cmd/posix/sh/%.c
242- $(CC) $(CPPFLAGS) -DSHELL -Icmd/posix/sh $(CFLAGS) -o $@ -c $<
243-
244 cmd/posix/sh/sh: $(SHOBJ) $(LIB)
245 $(CC) $(LDFLAGS) -o $@ $(SHOBJ) $(LIB) $(LDLIBS)
246
247-cmd/extra/yap/%.o: cmd/extra/yap/%.c
248- $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
249-
250 cmd/extra/yap/yap: $(YAPOBJ) $(LIB)
251 $(CC) $(LDFLAGS) -o $@ $(YAPOBJ) $(LIB) $(LDLIBS) -ltinfo
252
253@@ -946,12 +762,6 @@ cmd/net/wget: cmd/net/wget.o $(LIB)
254 cmd/dev/ar/ar: cmd/dev/ar/ar.o $(LIB)
255 $(CC) $(LDFLAGS) -o $@ cmd/dev/ar/ar.o $(LIB) $(LDLIBS)
256
257-cmd/dev/ar/%.o: cmd/dev/ar/%.c
258- $(CC) $(CPPFLAGS) -Icmd/dev/ar $(CFLAGS) -o $@ -c $<
259-
260-cmd/dev/xcutil/%.o: cmd/dev/xcutil/%.c
261- $(CC) -Icmd/dev/xcutil $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
262-
263 LD_OBJ =\
264 cmd/dev/xcutil/util.o\
265 cmd/dev/xcutil/table.o\
266@@ -960,9 +770,6 @@ LD_OBJ =\
267 cmd/dev/ld/ld.o\
268 cmd/dev/ld/elfobj.o
269
270-cmd/dev/ld/%.o: cmd/dev/ld/%.c
271- $(CC) -Icmd/dev/xcutil -Icmd/dev/ld $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
272-
273 cmd/dev/ld/ld: $(LD_OBJ) $(LIB)
274 $(CC) $(LDFLAGS) -o $@ $(LD_OBJ) $(LIB) $(LDLIBS)
275
276@@ -981,9 +788,6 @@ AS_OBJ =\
277 cmd/dev/as/arch/x64/ir_asm_x64.o\
278 cmd/dev/as/arch/x64/parse_x64.o
279
280-# headers shared across the assembler sources. listing them as prerequisites
281-# of every .o stops stale objects when a header changes (inst.h, parse_asm.h),
282-# which otherwise produced silently-wrong builds
283 AS_HDRS =\
284 cmd/dev/as/parse_asm.h\
285 cmd/dev/as/ir_asm.h\
286@@ -991,17 +795,10 @@ AS_HDRS =\
287 cmd/dev/as/asm_code.h\
288 cmd/dev/as/arch/x64/inst.h
289
290-cmd/dev/as/%.o: cmd/dev/as/%.c $(AS_HDRS) cmd/dev/config.h
291- $(CC) -Icmd/dev/xcutil -Icmd/dev/as $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
292-
293-cmd/dev/as/arch/x64/%.o: cmd/dev/as/arch/x64/%.c $(AS_HDRS) cmd/dev/config.h
294- $(CC) -Icmd/dev/xcutil -Icmd/dev/as -Icmd/dev/as/arch/x64 $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
295-
296 cmd/dev/as/as: $(AS_OBJ) $(LIB)
297 $(CC) $(LDFLAGS) -o $@ $(AS_OBJ) $(LIB) $(LDLIBS)
298
299-cmd/dev/cc/driver.o: cmd/dev/cc/driver.c cmd/dev/cc/config.h
300- $(CC) -Icmd/dev/cc $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
301+cmd/dev/cc/driver.o: cmd/dev/cc/config.h
302
303 cmd/dev/cc/cc: cmd/dev/cc/driver.o cmd/dev/cc/util.o $(LIB) cmd/dev/cc/cc1 cmd/dev/cc/cpp cmd/dev/as/as cmd/dev/ld/ld
304 $(CC) $(LDFLAGS) -o $@ cmd/dev/cc/driver.o cmd/dev/cc/util.o $(LIB) $(LDLIBS)
305@@ -1045,21 +842,24 @@ CPP_OBJ =\
306 cmd/dev/cc/utf.o\
307 cmd/dev/cc/util.o
308
309-cmd/dev/cc/%.o: cmd/dev/cc/%.c
310- $(CC) -Icmd/dev/cc $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
311-
312 cmd/dev/cc/cc1: $(CC1_OBJ) $(LIB)
313 $(CC) $(LDFLAGS) -o $@ $(CC1_OBJ) $(LIB) $(LDLIBS)
314
315 cmd/dev/cc/cpp: cmd/dev/cc/cpp.o $(CPP_OBJ) $(LIB)
316 $(CC) $(LDFLAGS) -o $@ cmd/dev/cc/cpp.o $(CPP_OBJ) $(LIB) $(LDLIBS)
317
318-cmd/dev/config.h cmd/dev/cc/config.h cmd/dev/version.h: cmd/dev/configure
319+cmd/dev/config.h: cmd/dev/configure
320 sh cmd/dev/configure
321
322+cmd/dev/cc/config.h: cmd/dev/config.h ;
323+cmd/dev/version.h: cmd/dev/config.h ;
324+
325 $(AS_OBJ) $(LD_OBJ) $(CC1_OBJ) $(CPP_OBJ) cmd/dev/ar/ar.o cmd/dev/cc/cpp.o: cmd/dev/config.h
326
327-scripts/mk/config.mk scripts/mk/config.kv: build.cfg scripts/genconfig.sh
328+scripts/mk/config.mk: build.cfg scripts/genconfig.sh
329 sh scripts/genconfig.sh
330
331+scripts/mk/config.kv: scripts/mk/config.mk ;
332+scripts/mk/rules.mk: scripts/mk/config.mk ;
333+
334 Makefile: ;
+4,
-3
1@@ -498,7 +498,7 @@ nextline(void)
2 {
3 int c;
4 FILE *fp;
5- char *s, *lim;
6+ char *s, *lim, d[BUFSIZ];
7
8 assert(input->type == FTFILE);
9
10@@ -530,9 +530,10 @@ repeat:
11
12 /* bmake style .include / .sinclude / .-include */
13 if (input->buf[0] == '.') {
14- char *d = input->buf + 1;
15 size_t dl;
16- /* strip trailing whitespace/newline so strcmp works */
17+ /* copy and strip trailing whitespace/newline so strcmp works */
18+ strncpy(d, input->buf + 1, sizeof(d) - 1);
19+ d[sizeof(d) - 1] = '\0';
20 dl = strlen(d);
21 while (dl > 0 && isspace((unsigned char)d[dl - 1]))
22 d[--dl] = '\0';
+84,
-6
1@@ -54,35 +54,36 @@ done
2 # dynamic tool discovery function
3 list_tools() {
4 local catg="$1" dirs="" files="" d f b
5- # Find all subdirectories
6+ # find all subdirectories
7 for d in "cmd/$catg"/*; do
8 if [ -d "$d" ]; then
9 dirs="$dirs ${d##*/}"
10 fi
11 done
12- # Find all .c and .y files
13+ # find all .c and .y files
14 for f in "cmd/$catg"/*.c "cmd/$catg"/*.y; do
15 [ -f "$f" ] || continue
16 b=${f##*/}
17 b=${b%.c}
18 b=${b%.y}
19 case "$b" in
20- # Exclude intermediate files or helper generators
21+ # exclude intermediate files or helper generators
22 maketab|mknodes|mksyntax|y.tab|*gram.tab) continue ;;
23 esac
24 files="$files $b"
25 done
26
27- # Output sorted unique list of uppercase names
28+ # output sorted unique list of tool names
29 # shellcheck disable=SC2086
30- printf '%s %s\n' $dirs $files | tr ' ' '\n' | sort -u | tr 'a-z-' 'A-Z_' | grep -v '^$'
31+ printf '%s %s\n' $dirs $files | tr ' ' '\n' | sort -u | grep -v '^$'
32 }
33
34 write_subtarget() {
35 group="$1"
36 tool="$2"
37 u_group=$(echo "$group" | tr '[:lower:]' '[:upper:]')
38- var_name="BUILD_${u_group}_${tool}"
39+ u_tool=$(echo "$tool" | tr 'a-z-' 'A-Z_')
40+ var_name="BUILD_${u_group}_${u_tool}"
41
42 eval "has_override=\${$var_name+yes}"
43 eval "val=\${$var_name:-}"
44@@ -106,6 +107,49 @@ for catg in posix xsi net pseudo extra linux dev; do
45 for t in $tools; do
46 write_subtarget "$catg" "$t"
47 done
48+
49+ # build the enabled list using lowercase tools
50+ enabled=""
51+ for t in $tools; do
52+ u_group=$(echo "$catg" | tr '[:lower:]' '[:upper:]')
53+ u_tool=$(echo "$t" | tr 'a-z-' 'A-Z_')
54+
55+ # special cases for dev tools mapping to different variables
56+ if [ "$catg" = "dev" ] && [ "$u_tool" = "AS" ]; then
57+ var_name="BUILD_DEV_CC"
58+ else
59+ var_name="BUILD_${u_group}_${u_tool}"
60+ fi
61+
62+ eval "has_override=\${$var_name+yes}"
63+ eval "val=\${$var_name:-}"
64+ if [ "$has_override" != "yes" ]; then
65+ if [ "$catg" = "dev" ] && [ "$u_tool" = "AS" ]; then
66+ eval "val=\$BUILD_DEV"
67+ else
68+ eval "val=\$BUILD_${u_group}"
69+ fi
70+ fi
71+
72+ if [ "$val" = "1" ]; then
73+ # map to the correct path
74+ case "$catg/$t" in
75+ posix/awk) path="cmd/posix/awk/awk" ;;
76+ posix/sh) path="cmd/posix/sh/sh" ;;
77+ posix/make) path="cmd/posix/make/make" ;;
78+ extra/yap) path="cmd/extra/yap/yap" ;;
79+ dev/ar) path="cmd/dev/ar/ar" ;;
80+ dev/as) path="cmd/dev/as/as" ;;
81+ dev/ld) path="cmd/dev/ld/ld" ;;
82+ dev/cc) path="cmd/dev/cc/cc" ;;
83+ *) path="cmd/$catg/$t" ;;
84+ esac
85+ enabled="$enabled $path"
86+ fi
87+ done
88+ u_catg=$(echo "$catg" | tr '[:lower:]' '[:upper:]')
89+ # write the list of enabled binaries
90+ echo "${u_catg}_BIN_CONFIG =${enabled}" >> "${mk_file}"
91 done
92
93 # write feature flags
94@@ -154,3 +198,37 @@ echo "CC = ${CC:-cc}" >> "${mk_file}"
95 echo "CFLAGS = ${CFLAGS:-}" >> "${mk_file}"
96 echo "LDFLAGS = ${LDFLAGS:-} \$(LDFLAGS_TLS)" >> "${mk_file}"
97 echo "LDLIBS = ${LDLIBS:-} \$(LDLIBS_TLS)" >> "${mk_file}"
98+
99+# write compilation rules for subdirectories that need special flags or nested structures
100+rules_file="scripts/mk/rules.mk"
101+echo "# autogenerated compilation rules" > "${rules_file}"
102+
103+gen_dir_rules() {
104+ local dir="$1" flags="$2" extra_files="$3" f obj files uniq_files
105+ files=""
106+ for f in "$dir"/*.c; do
107+ if [ -f "$f" ]; then
108+ files="$files $f"
109+ fi
110+ done
111+ for f in ${extra_files}; do
112+ files="$files $f"
113+ done
114+ uniq_files=$(echo "$files" | tr ' ' '\n' | sort -u | grep -v '^$')
115+ for f in $uniq_files; do
116+ obj="${f%.c}.o"
117+ echo "${obj}: ${f}" >> "${rules_file}"
118+ echo " \$(CC) \$(CPPFLAGS) ${flags} \$(CFLAGS) -o \$@ -c ${f}" >> "${rules_file}"
119+ done
120+}
121+
122+echo "" >> "${rules_file}"
123+gen_dir_rules "cmd/posix/awk" "-Icmd/posix/awk" "cmd/posix/awk/awkgram.tab.c cmd/posix/awk/proctab.c"
124+gen_dir_rules "cmd/posix/sh" "-DSHELL -Icmd/posix/sh" "cmd/posix/sh/syntax.c cmd/posix/sh/nodes.c cmd/posix/sh/builtins.c"
125+gen_dir_rules "cmd/extra/yap" "" ""
126+gen_dir_rules "cmd/dev/ar" "-Icmd/dev/ar" ""
127+gen_dir_rules "cmd/dev/xcutil" "-Icmd/dev/xcutil" ""
128+gen_dir_rules "cmd/dev/ld" "-Icmd/dev/xcutil -Icmd/dev/ld" ""
129+gen_dir_rules "cmd/dev/as" "-Icmd/dev/xcutil -Icmd/dev/as" ""
130+gen_dir_rules "cmd/dev/as/arch/x64" "-Icmd/dev/xcutil -Icmd/dev/as -Icmd/dev/as/arch/x64" ""
131+gen_dir_rules "cmd/dev/cc" "-Icmd/dev/cc" ""
+0,
-262
1@@ -1,262 +0,0 @@
2-VERSION="2026-06-08T05-53-UTC-03"
3-PREFIX="/usr/local"
4-MANPREFIX="/usr/local/share/man"
5-RANLIB="ranlib"
6-AR="ar"
7-ARFLAGS="rc"
8-BUILD_POSIX="1"
9-BUILD_XSI="1"
10-BUILD_NET="1"
11-BUILD_PSEUDO="1"
12-BUILD_EXTRA="1"
13-BUILD_LINUX="1"
14-BUILD_DEV="0"
15-BUILD_POSIX_AWK="1"
16-BUILD_POSIX_BASENAME="1"
17-BUILD_POSIX_BC="1"
18-BUILD_POSIX_CAL="1"
19-BUILD_POSIX_CAT="1"
20-BUILD_POSIX_CHGRP="1"
21-BUILD_POSIX_CHMOD="1"
22-BUILD_POSIX_CHOWN="1"
23-BUILD_POSIX_CKSUM="1"
24-BUILD_POSIX_CMP="1"
25-BUILD_POSIX_COMM="1"
26-BUILD_POSIX_CP="1"
27-BUILD_POSIX_CUT="1"
28-BUILD_POSIX_DATE="1"
29-BUILD_POSIX_DD="1"
30-BUILD_POSIX_DF="1"
31-BUILD_POSIX_DIFF="1"
32-BUILD_POSIX_DIRNAME="1"
33-BUILD_POSIX_DU="1"
34-BUILD_POSIX_ECHO="1"
35-BUILD_POSIX_ED="1"
36-BUILD_POSIX_ENV="1"
37-BUILD_POSIX_EXPAND="1"
38-BUILD_POSIX_EXPR="1"
39-BUILD_POSIX_FALSE="1"
40-BUILD_POSIX_FIND="1"
41-BUILD_POSIX_FOLD="1"
42-BUILD_POSIX_GETCONF="1"
43-BUILD_POSIX_GREP="1"
44-BUILD_POSIX_HEAD="1"
45-BUILD_POSIX_ID="1"
46-BUILD_POSIX_JOIN="1"
47-BUILD_POSIX_KILL="1"
48-BUILD_POSIX_LINK="1"
49-BUILD_POSIX_LN="1"
50-BUILD_POSIX_LOGGER="1"
51-BUILD_POSIX_LOGNAME="1"
52-BUILD_POSIX_LS="1"
53-BUILD_POSIX_MAKE="1"
54-BUILD_POSIX_MESG="1"
55-BUILD_POSIX_MKDIR="1"
56-BUILD_POSIX_MKFIFO="1"
57-BUILD_POSIX_MV="1"
58-BUILD_POSIX_NICE="1"
59-BUILD_POSIX_NL="1"
60-BUILD_POSIX_NOHUP="1"
61-BUILD_POSIX_OD="1"
62-BUILD_POSIX_PASTE="1"
63-BUILD_POSIX_PATCH="1"
64-BUILD_POSIX_PATHCHK="1"
65-BUILD_POSIX_PAX="1"
66-BUILD_POSIX_PRINTF="1"
67-BUILD_POSIX_PS="1"
68-BUILD_POSIX_PWD="1"
69-BUILD_POSIX_READLINK="1"
70-BUILD_POSIX_RENICE="1"
71-BUILD_POSIX_RM="1"
72-BUILD_POSIX_RMDIR="1"
73-BUILD_POSIX_SED="1"
74-BUILD_POSIX_SH="1"
75-BUILD_POSIX_SLEEP="1"
76-BUILD_POSIX_SORT="1"
77-BUILD_POSIX_SPLIT="1"
78-BUILD_POSIX_TAIL="1"
79-BUILD_POSIX_TEE="1"
80-BUILD_POSIX_TEST="1"
81-BUILD_POSIX_TIME="1"
82-BUILD_POSIX_TOUCH="1"
83-BUILD_POSIX_TR="1"
84-BUILD_POSIX_TRUE="1"
85-BUILD_POSIX_TSORT="1"
86-BUILD_POSIX_TTY="1"
87-BUILD_POSIX_UNAME="1"
88-BUILD_POSIX_UNEXPAND="1"
89-BUILD_POSIX_UNIQ="1"
90-BUILD_POSIX_UNLINK="1"
91-BUILD_POSIX_UUDECODE="1"
92-BUILD_POSIX_UUENCODE="1"
93-BUILD_POSIX_WC="1"
94-BUILD_POSIX_WHO="1"
95-BUILD_POSIX_XARGS="1"
96-BUILD_XSI_MKNOD="1"
97-BUILD_XSI_PASSWD="1"
98-BUILD_XSI_SU="1"
99-BUILD_NET_HOST="1"
100-BUILD_NET_HTTPD="1"
101-BUILD_NET_IFCONFIG="1"
102-BUILD_NET_IP="1"
103-BUILD_NET_NETCAT="1"
104-BUILD_NET_PING="1"
105-BUILD_NET_SDHCP="1"
106-BUILD_NET_TFTP="1"
107-BUILD_NET_WGET="1"
108-BUILD_PSEUDO_BASE64="1"
109-BUILD_PSEUDO_CHROOT="1"
110-BUILD_PSEUDO_CLEAR="1"
111-BUILD_PSEUDO_COLS="1"
112-BUILD_PSEUDO_CRON="1"
113-BUILD_PSEUDO_DIFF3="1"
114-BUILD_PSEUDO_DMESG="1"
115-BUILD_PSEUDO_FALLOCATE="1"
116-BUILD_PSEUDO_FLOCK="1"
117-BUILD_PSEUDO_FREE="1"
118-BUILD_PSEUDO_GETTY="1"
119-BUILD_PSEUDO_HALT="1"
120-BUILD_PSEUDO_HOSTNAME="1"
121-BUILD_PSEUDO_KILLALL5="1"
122-BUILD_PSEUDO_LAST="1"
123-BUILD_PSEUDO_LASTLOG="1"
124-BUILD_PSEUDO_LOGIN="1"
125-BUILD_PSEUDO_MD5SUM="1"
126-BUILD_PSEUDO_MKPASSWD="1"
127-BUILD_PSEUDO_MKTEMP="1"
128-BUILD_PSEUDO_NOLOGIN="1"
129-BUILD_PSEUDO_PAGESIZE="1"
130-BUILD_PSEUDO_PIDOF="1"
131-BUILD_PSEUDO_PRINTENV="1"
132-BUILD_PSEUDO_PWDX="1"
133-BUILD_PSEUDO_RESPAWN="1"
134-BUILD_PSEUDO_REV="1"
135-BUILD_PSEUDO_SEQ="1"
136-BUILD_PSEUDO_SETSID="1"
137-BUILD_PSEUDO_SHA1SUM="1"
138-BUILD_PSEUDO_SHA224SUM="1"
139-BUILD_PSEUDO_SHA256SUM="1"
140-BUILD_PSEUDO_SHA384SUM="1"
141-BUILD_PSEUDO_SHA512_224SUM="1"
142-BUILD_PSEUDO_SHA512_256SUM="1"
143-BUILD_PSEUDO_SHA512SUM="1"
144-BUILD_PSEUDO_SPONGE="1"
145-BUILD_PSEUDO_STAT="1"
146-BUILD_PSEUDO_TAR="1"
147-BUILD_PSEUDO_TRUNCATE="1"
148-BUILD_PSEUDO_UPTIME="1"
149-BUILD_PSEUDO_WATCH="1"
150-BUILD_PSEUDO_WHICH="1"
151-BUILD_PSEUDO_WHOAMI="1"
152-BUILD_PSEUDO_XINSTALL="1"
153-BUILD_PSEUDO_YES="1"
154-BUILD_EXTRA_B3SUM="1"
155-BUILD_EXTRA_BLKID="1"
156-BUILD_EXTRA_FDISK="1"
157-BUILD_EXTRA_LSBLK="1"
158-BUILD_EXTRA_SYNC="1"
159-BUILD_EXTRA_YAP="1"
160-BUILD_LINUX_BLKDISCARD="1"
161-BUILD_LINUX_CHVT="1"
162-BUILD_LINUX_CTRLALTDEL="1"
163-BUILD_LINUX_DEPMOD="1"
164-BUILD_LINUX_EJECT="1"
165-BUILD_LINUX_FREERAMDISK="1"
166-BUILD_LINUX_FSFREEZE="1"
167-BUILD_LINUX_HWCLOCK="1"
168-BUILD_LINUX_INSMOD="1"
169-BUILD_LINUX_LSMOD="1"
170-BUILD_LINUX_LSUSB="1"
171-BUILD_LINUX_MKSWAP="1"
172-BUILD_LINUX_MODPROBE="1"
173-BUILD_LINUX_MOUNT="1"
174-BUILD_LINUX_MOUNTPOINT="1"
175-BUILD_LINUX_PIVOT_ROOT="1"
176-BUILD_LINUX_READAHEAD="1"
177-BUILD_LINUX_RMMOD="1"
178-BUILD_LINUX_SWAPLABEL="1"
179-BUILD_LINUX_SWAPOFF="1"
180-BUILD_LINUX_SWAPON="1"
181-BUILD_LINUX_SWITCH_ROOT="1"
182-BUILD_LINUX_SYSCTL="1"
183-BUILD_LINUX_TUNCTL="1"
184-BUILD_LINUX_UMOUNT="1"
185-BUILD_LINUX_UNSHARE="1"
186-BUILD_LINUX_VTALLOW="1"
187-BUILD_DEV_AR="0"
188-BUILD_DEV_AS="0"
189-BUILD_DEV_CC="0"
190-BUILD_DEV_LD="0"
191-BUILD_DEV_SCRATCHPAD="0"
192-BUILD_DEV_XCUTIL="0"
193-FEATURE_CAL_EXT="1"
194-FEATURE_DEPMOD_ALIAS="1"
195-FEATURE_DEPMOD_SYMBOLS="1"
196-FEATURE_DIFF3_EDSCRIPT="1"
197-FEATURE_DIFF3_MERGE="1"
198-FEATURE_DIFF_BRIEF="1"
199-FEATURE_DIFF_CONTEXT="1"
200-FEATURE_DIFF_ED="1"
201-FEATURE_DIFF_SIDEBYSIDE="1"
202-FEATURE_DIFF_UNIFIED="1"
203-FEATURE_FIND_AMIN="1"
204-FEATURE_FIND_CMIN="1"
205-FEATURE_FIND_DELETE="1"
206-FEATURE_FIND_EMPTY="1"
207-FEATURE_FIND_INAME="1"
208-FEATURE_FIND_INUM="1"
209-FEATURE_FIND_IPATH="1"
210-FEATURE_FIND_MAXDEPTH="1"
211-FEATURE_FIND_MINDEPTH="1"
212-FEATURE_FIND_MMIN="1"
213-FEATURE_FIND_PRINT0="1"
214-FEATURE_FIND_QUIT="1"
215-FEATURE_FIND_REGEX="1"
216-FEATURE_FIND_SAMEFILE="1"
217-FEATURE_GREP_CONTEXT="1"
218-FEATURE_GREP_MAX_COUNT="1"
219-FEATURE_INPROC_EXEC="0"
220-FEATURE_INPROC_EXEC_OVERRIDE="0"
221-FEATURE_IP_ADDR_FLUSH="1"
222-FEATURE_IP_LINK_SET="1"
223-FEATURE_IP_ROUTE_ADD_DEL="1"
224-FEATURE_LS_COLOR="1"
225-FEATURE_MODPROBE_BLACKLIST="1"
226-FEATURE_MODPROBE_DIR_OVERRIDE="1"
227-FEATURE_MODPROBE_SHOW_DEPENDS="1"
228-FEATURE_MODPROBE_SYSLOG="1"
229-FEATURE_OD_ENDIAN="1"
230-FEATURE_PATCH_BACKUP="1"
231-FEATURE_PATCH_FUZZ="1"
232-FEATURE_PATCH_STRIP_CR="1"
233-FEATURE_READLINK_REALPATH="1"
234-FEATURE_SED_INPLACE="1"
235-FEATURE_SED_PRESERVE_NEWLINE="1"
236-FEATURE_SH_EASTER="0"
237-FEATURE_SH_HISTEDIT="1"
238-FEATURE_SH_LET="1"
239-FEATURE_SH_LOCAL="1"
240-FEATURE_SH_SETVAR="1"
241-FEATURE_SH_ULIMIT="1"
242-FEATURE_SH_WORDEXP="1"
243-FEATURE_SORT_BIG="1"
244-FEATURE_SORT_STABLE="1"
245-FEATURE_STAT_FILESYSTEM="1"
246-FEATURE_STAT_FORMAT="1"
247-FEATURE_TAR_CREATE="1"
248-FEATURE_TAR_EXCLUDE="1"
249-FEATURE_TAR_EXCLUDE_FROM="1"
250-FEATURE_TAR_FILES_FROM="1"
251-FEATURE_TAR_KEEP_OLD="1"
252-FEATURE_TAR_NOFOLLOW="1"
253-FEATURE_TAR_STRIP_COMPONENTS="1"
254-FEATURE_TAR_TO_STDOUT="1"
255-FEATURE_TAR_TTY_SAFE="1"
256-FEATURE_UMOUNT_OPTIONS="1"
257-FEATURE_USE_BEARSSL="0"
258-FEATURE_USE_LIBRESSL="0"
259-FEATURE_USE_OPENSSL="0"
260-FEATURE_USE_SSL="1"
261-CPPFLAGS_TLS=""
262-LDFLAGS_TLS=""
263-LDLIBS_TLS=""
+0,
-364
1@@ -1,364 +0,0 @@
2-VERSION = 2026-06-08T05-53-UTC-03
3-PREFIX = /usr/local
4-MANPREFIX = /usr/local/share/man
5-RANLIB = ranlib
6-AR = ar
7-ARFLAGS = rc
8-
9-# build toggles
10-BUILD_POSIX = 1
11-BUILD_XSI = 1
12-BUILD_NET = 1
13-BUILD_PSEUDO = 1
14-BUILD_EXTRA = 1
15-BUILD_LINUX = 1
16-BUILD_DEV = 0
17-
18-# posix subtargets
19-BUILD_POSIX_AWK = $(BUILD_POSIX)
20-BUILD_POSIX_BASENAME = $(BUILD_POSIX)
21-BUILD_POSIX_BC = $(BUILD_POSIX)
22-BUILD_POSIX_CAL = $(BUILD_POSIX)
23-BUILD_POSIX_CAT = $(BUILD_POSIX)
24-BUILD_POSIX_CHGRP = $(BUILD_POSIX)
25-BUILD_POSIX_CHMOD = $(BUILD_POSIX)
26-BUILD_POSIX_CHOWN = $(BUILD_POSIX)
27-BUILD_POSIX_CKSUM = $(BUILD_POSIX)
28-BUILD_POSIX_CMP = $(BUILD_POSIX)
29-BUILD_POSIX_COMM = $(BUILD_POSIX)
30-BUILD_POSIX_CP = $(BUILD_POSIX)
31-BUILD_POSIX_CUT = $(BUILD_POSIX)
32-BUILD_POSIX_DATE = $(BUILD_POSIX)
33-BUILD_POSIX_DD = $(BUILD_POSIX)
34-BUILD_POSIX_DF = $(BUILD_POSIX)
35-BUILD_POSIX_DIFF = $(BUILD_POSIX)
36-BUILD_POSIX_DIRNAME = $(BUILD_POSIX)
37-BUILD_POSIX_DU = $(BUILD_POSIX)
38-BUILD_POSIX_ECHO = $(BUILD_POSIX)
39-BUILD_POSIX_ED = $(BUILD_POSIX)
40-BUILD_POSIX_ENV = $(BUILD_POSIX)
41-BUILD_POSIX_EXPAND = $(BUILD_POSIX)
42-BUILD_POSIX_EXPR = $(BUILD_POSIX)
43-BUILD_POSIX_FALSE = $(BUILD_POSIX)
44-BUILD_POSIX_FIND = $(BUILD_POSIX)
45-BUILD_POSIX_FOLD = $(BUILD_POSIX)
46-BUILD_POSIX_GETCONF = $(BUILD_POSIX)
47-BUILD_POSIX_GREP = $(BUILD_POSIX)
48-BUILD_POSIX_HEAD = $(BUILD_POSIX)
49-BUILD_POSIX_ID = $(BUILD_POSIX)
50-BUILD_POSIX_JOIN = $(BUILD_POSIX)
51-BUILD_POSIX_KILL = $(BUILD_POSIX)
52-BUILD_POSIX_LINK = $(BUILD_POSIX)
53-BUILD_POSIX_LN = $(BUILD_POSIX)
54-BUILD_POSIX_LOGGER = $(BUILD_POSIX)
55-BUILD_POSIX_LOGNAME = $(BUILD_POSIX)
56-BUILD_POSIX_LS = $(BUILD_POSIX)
57-BUILD_POSIX_MAKE = $(BUILD_POSIX)
58-BUILD_POSIX_MESG = $(BUILD_POSIX)
59-BUILD_POSIX_MKDIR = $(BUILD_POSIX)
60-BUILD_POSIX_MKFIFO = $(BUILD_POSIX)
61-BUILD_POSIX_MV = $(BUILD_POSIX)
62-BUILD_POSIX_NICE = $(BUILD_POSIX)
63-BUILD_POSIX_NL = $(BUILD_POSIX)
64-BUILD_POSIX_NOHUP = $(BUILD_POSIX)
65-BUILD_POSIX_OD = $(BUILD_POSIX)
66-BUILD_POSIX_PASTE = $(BUILD_POSIX)
67-BUILD_POSIX_PATCH = $(BUILD_POSIX)
68-BUILD_POSIX_PATHCHK = $(BUILD_POSIX)
69-BUILD_POSIX_PAX = $(BUILD_POSIX)
70-BUILD_POSIX_PRINTF = $(BUILD_POSIX)
71-BUILD_POSIX_PS = $(BUILD_POSIX)
72-BUILD_POSIX_PWD = $(BUILD_POSIX)
73-BUILD_POSIX_READLINK = $(BUILD_POSIX)
74-BUILD_POSIX_RENICE = $(BUILD_POSIX)
75-BUILD_POSIX_RM = $(BUILD_POSIX)
76-BUILD_POSIX_RMDIR = $(BUILD_POSIX)
77-BUILD_POSIX_SED = $(BUILD_POSIX)
78-BUILD_POSIX_SH = $(BUILD_POSIX)
79-BUILD_POSIX_SLEEP = $(BUILD_POSIX)
80-BUILD_POSIX_SORT = $(BUILD_POSIX)
81-BUILD_POSIX_SPLIT = $(BUILD_POSIX)
82-BUILD_POSIX_TAIL = $(BUILD_POSIX)
83-BUILD_POSIX_TEE = $(BUILD_POSIX)
84-BUILD_POSIX_TEST = $(BUILD_POSIX)
85-BUILD_POSIX_TIME = $(BUILD_POSIX)
86-BUILD_POSIX_TOUCH = $(BUILD_POSIX)
87-BUILD_POSIX_TR = $(BUILD_POSIX)
88-BUILD_POSIX_TRUE = $(BUILD_POSIX)
89-BUILD_POSIX_TSORT = $(BUILD_POSIX)
90-BUILD_POSIX_TTY = $(BUILD_POSIX)
91-BUILD_POSIX_UNAME = $(BUILD_POSIX)
92-BUILD_POSIX_UNEXPAND = $(BUILD_POSIX)
93-BUILD_POSIX_UNIQ = $(BUILD_POSIX)
94-BUILD_POSIX_UNLINK = $(BUILD_POSIX)
95-BUILD_POSIX_UUDECODE = $(BUILD_POSIX)
96-BUILD_POSIX_UUENCODE = $(BUILD_POSIX)
97-BUILD_POSIX_WC = $(BUILD_POSIX)
98-BUILD_POSIX_WHO = $(BUILD_POSIX)
99-BUILD_POSIX_XARGS = $(BUILD_POSIX)
100-
101-# xsi subtargets
102-BUILD_XSI_MKNOD = $(BUILD_XSI)
103-BUILD_XSI_PASSWD = $(BUILD_XSI)
104-BUILD_XSI_SU = $(BUILD_XSI)
105-
106-# net subtargets
107-BUILD_NET_HOST = $(BUILD_NET)
108-BUILD_NET_HTTPD = $(BUILD_NET)
109-BUILD_NET_IFCONFIG = $(BUILD_NET)
110-BUILD_NET_IP = $(BUILD_NET)
111-BUILD_NET_NETCAT = $(BUILD_NET)
112-BUILD_NET_PING = $(BUILD_NET)
113-BUILD_NET_SDHCP = $(BUILD_NET)
114-BUILD_NET_TFTP = $(BUILD_NET)
115-BUILD_NET_WGET = $(BUILD_NET)
116-
117-# pseudo subtargets
118-BUILD_PSEUDO_BASE64 = $(BUILD_PSEUDO)
119-BUILD_PSEUDO_CHROOT = $(BUILD_PSEUDO)
120-BUILD_PSEUDO_CLEAR = $(BUILD_PSEUDO)
121-BUILD_PSEUDO_COLS = $(BUILD_PSEUDO)
122-BUILD_PSEUDO_CRON = $(BUILD_PSEUDO)
123-BUILD_PSEUDO_DIFF3 = $(BUILD_PSEUDO)
124-BUILD_PSEUDO_DMESG = $(BUILD_PSEUDO)
125-BUILD_PSEUDO_FALLOCATE = $(BUILD_PSEUDO)
126-BUILD_PSEUDO_FLOCK = $(BUILD_PSEUDO)
127-BUILD_PSEUDO_FREE = $(BUILD_PSEUDO)
128-BUILD_PSEUDO_GETTY = $(BUILD_PSEUDO)
129-BUILD_PSEUDO_HALT = $(BUILD_PSEUDO)
130-BUILD_PSEUDO_HOSTNAME = $(BUILD_PSEUDO)
131-BUILD_PSEUDO_KILLALL5 = $(BUILD_PSEUDO)
132-BUILD_PSEUDO_LAST = $(BUILD_PSEUDO)
133-BUILD_PSEUDO_LASTLOG = $(BUILD_PSEUDO)
134-BUILD_PSEUDO_LOGIN = $(BUILD_PSEUDO)
135-BUILD_PSEUDO_MD5SUM = $(BUILD_PSEUDO)
136-BUILD_PSEUDO_MKPASSWD = $(BUILD_PSEUDO)
137-BUILD_PSEUDO_MKTEMP = $(BUILD_PSEUDO)
138-BUILD_PSEUDO_NOLOGIN = $(BUILD_PSEUDO)
139-BUILD_PSEUDO_PAGESIZE = $(BUILD_PSEUDO)
140-BUILD_PSEUDO_PIDOF = $(BUILD_PSEUDO)
141-BUILD_PSEUDO_PRINTENV = $(BUILD_PSEUDO)
142-BUILD_PSEUDO_PWDX = $(BUILD_PSEUDO)
143-BUILD_PSEUDO_RESPAWN = $(BUILD_PSEUDO)
144-BUILD_PSEUDO_REV = $(BUILD_PSEUDO)
145-BUILD_PSEUDO_SEQ = $(BUILD_PSEUDO)
146-BUILD_PSEUDO_SETSID = $(BUILD_PSEUDO)
147-BUILD_PSEUDO_SHA1SUM = $(BUILD_PSEUDO)
148-BUILD_PSEUDO_SHA224SUM = $(BUILD_PSEUDO)
149-BUILD_PSEUDO_SHA256SUM = $(BUILD_PSEUDO)
150-BUILD_PSEUDO_SHA384SUM = $(BUILD_PSEUDO)
151-BUILD_PSEUDO_SHA512_224SUM = $(BUILD_PSEUDO)
152-BUILD_PSEUDO_SHA512_256SUM = $(BUILD_PSEUDO)
153-BUILD_PSEUDO_SHA512SUM = $(BUILD_PSEUDO)
154-BUILD_PSEUDO_SPONGE = $(BUILD_PSEUDO)
155-BUILD_PSEUDO_STAT = $(BUILD_PSEUDO)
156-BUILD_PSEUDO_TAR = $(BUILD_PSEUDO)
157-BUILD_PSEUDO_TRUNCATE = $(BUILD_PSEUDO)
158-BUILD_PSEUDO_UPTIME = $(BUILD_PSEUDO)
159-BUILD_PSEUDO_WATCH = $(BUILD_PSEUDO)
160-BUILD_PSEUDO_WHICH = $(BUILD_PSEUDO)
161-BUILD_PSEUDO_WHOAMI = $(BUILD_PSEUDO)
162-BUILD_PSEUDO_XINSTALL = $(BUILD_PSEUDO)
163-BUILD_PSEUDO_YES = $(BUILD_PSEUDO)
164-
165-# extra subtargets
166-BUILD_EXTRA_B3SUM = $(BUILD_EXTRA)
167-BUILD_EXTRA_BLKID = $(BUILD_EXTRA)
168-BUILD_EXTRA_FDISK = $(BUILD_EXTRA)
169-BUILD_EXTRA_LSBLK = $(BUILD_EXTRA)
170-BUILD_EXTRA_SYNC = $(BUILD_EXTRA)
171-BUILD_EXTRA_YAP = $(BUILD_EXTRA)
172-
173-# linux subtargets
174-BUILD_LINUX_BLKDISCARD = $(BUILD_LINUX)
175-BUILD_LINUX_CHVT = $(BUILD_LINUX)
176-BUILD_LINUX_CTRLALTDEL = $(BUILD_LINUX)
177-BUILD_LINUX_DEPMOD = $(BUILD_LINUX)
178-BUILD_LINUX_EJECT = $(BUILD_LINUX)
179-BUILD_LINUX_FREERAMDISK = $(BUILD_LINUX)
180-BUILD_LINUX_FSFREEZE = $(BUILD_LINUX)
181-BUILD_LINUX_HWCLOCK = $(BUILD_LINUX)
182-BUILD_LINUX_INSMOD = $(BUILD_LINUX)
183-BUILD_LINUX_LSMOD = $(BUILD_LINUX)
184-BUILD_LINUX_LSUSB = $(BUILD_LINUX)
185-BUILD_LINUX_MKSWAP = $(BUILD_LINUX)
186-BUILD_LINUX_MODPROBE = $(BUILD_LINUX)
187-BUILD_LINUX_MOUNT = $(BUILD_LINUX)
188-BUILD_LINUX_MOUNTPOINT = $(BUILD_LINUX)
189-BUILD_LINUX_PIVOT_ROOT = $(BUILD_LINUX)
190-BUILD_LINUX_READAHEAD = $(BUILD_LINUX)
191-BUILD_LINUX_RMMOD = $(BUILD_LINUX)
192-BUILD_LINUX_SWAPLABEL = $(BUILD_LINUX)
193-BUILD_LINUX_SWAPOFF = $(BUILD_LINUX)
194-BUILD_LINUX_SWAPON = $(BUILD_LINUX)
195-BUILD_LINUX_SWITCH_ROOT = $(BUILD_LINUX)
196-BUILD_LINUX_SYSCTL = $(BUILD_LINUX)
197-BUILD_LINUX_TUNCTL = $(BUILD_LINUX)
198-BUILD_LINUX_UMOUNT = $(BUILD_LINUX)
199-BUILD_LINUX_UNSHARE = $(BUILD_LINUX)
200-BUILD_LINUX_VTALLOW = $(BUILD_LINUX)
201-
202-# dev subtargets
203-BUILD_DEV_AR = $(BUILD_DEV)
204-BUILD_DEV_AS = $(BUILD_DEV)
205-BUILD_DEV_CC = $(BUILD_DEV)
206-BUILD_DEV_LD = $(BUILD_DEV)
207-BUILD_DEV_SCRATCHPAD = $(BUILD_DEV)
208-BUILD_DEV_XCUTIL = $(BUILD_DEV)
209-
210-# feature flags
211-FEATURE_CAL_EXT = 1
212-FEATURE_DEPMOD_ALIAS = 1
213-FEATURE_DEPMOD_SYMBOLS = 1
214-FEATURE_DIFF3_EDSCRIPT = 1
215-FEATURE_DIFF3_MERGE = 1
216-FEATURE_DIFF_BRIEF = 1
217-FEATURE_DIFF_CONTEXT = 1
218-FEATURE_DIFF_ED = 1
219-FEATURE_DIFF_SIDEBYSIDE = 1
220-FEATURE_DIFF_UNIFIED = 1
221-FEATURE_FIND_AMIN = 1
222-FEATURE_FIND_CMIN = 1
223-FEATURE_FIND_DELETE = 1
224-FEATURE_FIND_EMPTY = 1
225-FEATURE_FIND_INAME = 1
226-FEATURE_FIND_INUM = 1
227-FEATURE_FIND_IPATH = 1
228-FEATURE_FIND_MAXDEPTH = 1
229-FEATURE_FIND_MINDEPTH = 1
230-FEATURE_FIND_MMIN = 1
231-FEATURE_FIND_PRINT0 = 1
232-FEATURE_FIND_QUIT = 1
233-FEATURE_FIND_REGEX = 1
234-FEATURE_FIND_SAMEFILE = 1
235-FEATURE_GREP_CONTEXT = 1
236-FEATURE_GREP_MAX_COUNT = 1
237-FEATURE_INPROC_EXEC = 0
238-FEATURE_INPROC_EXEC_OVERRIDE = 0
239-FEATURE_IP_ADDR_FLUSH = 1
240-FEATURE_IP_LINK_SET = 1
241-FEATURE_IP_ROUTE_ADD_DEL = 1
242-FEATURE_LS_COLOR = 1
243-FEATURE_MODPROBE_BLACKLIST = 1
244-FEATURE_MODPROBE_DIR_OVERRIDE = 1
245-FEATURE_MODPROBE_SHOW_DEPENDS = 1
246-FEATURE_MODPROBE_SYSLOG = 1
247-FEATURE_OD_ENDIAN = 1
248-FEATURE_PATCH_BACKUP = 1
249-FEATURE_PATCH_FUZZ = 1
250-FEATURE_PATCH_STRIP_CR = 1
251-FEATURE_READLINK_REALPATH = 1
252-FEATURE_SED_INPLACE = 1
253-FEATURE_SED_PRESERVE_NEWLINE = 1
254-FEATURE_SH_EASTER = 0
255-FEATURE_SH_HISTEDIT = 1
256-FEATURE_SH_LET = 1
257-FEATURE_SH_LOCAL = 1
258-FEATURE_SH_SETVAR = 1
259-FEATURE_SH_ULIMIT = 1
260-FEATURE_SH_WORDEXP = 1
261-FEATURE_SORT_BIG = 1
262-FEATURE_SORT_STABLE = 1
263-FEATURE_STAT_FILESYSTEM = 1
264-FEATURE_STAT_FORMAT = 1
265-FEATURE_TAR_CREATE = 1
266-FEATURE_TAR_EXCLUDE = 1
267-FEATURE_TAR_EXCLUDE_FROM = 1
268-FEATURE_TAR_FILES_FROM = 1
269-FEATURE_TAR_KEEP_OLD = 1
270-FEATURE_TAR_NOFOLLOW = 1
271-FEATURE_TAR_STRIP_COMPONENTS = 1
272-FEATURE_TAR_TO_STDOUT = 1
273-FEATURE_TAR_TTY_SAFE = 1
274-FEATURE_UMOUNT_OPTIONS = 1
275-FEATURE_USE_BEARSSL = 0
276-FEATURE_USE_LIBRESSL = 0
277-FEATURE_USE_OPENSSL = 0
278-FEATURE_USE_SSL = 1
279-
280-CPPFLAGS_TLS =
281-LDFLAGS_TLS =
282-LDLIBS_TLS =
283-
284-CPPFLAGS =\
285- -Ishared\
286- -DPREFIX=\"\$(PREFIX)\"\
287- -D_DEFAULT_SOURCE\
288- -D_GNU_SOURCE\
289- -D_NETBSD_SOURCE\
290- -D_BSD_SOURCE\
291- -D_XOPEN_SOURCE=700\
292- -D_FILE_OFFSET_BITS=64\
293- -DFEATURE_CAL_EXT=$(FEATURE_CAL_EXT)\
294- -DFEATURE_DEPMOD_ALIAS=$(FEATURE_DEPMOD_ALIAS)\
295- -DFEATURE_DEPMOD_SYMBOLS=$(FEATURE_DEPMOD_SYMBOLS)\
296- -DFEATURE_DIFF3_EDSCRIPT=$(FEATURE_DIFF3_EDSCRIPT)\
297- -DFEATURE_DIFF3_MERGE=$(FEATURE_DIFF3_MERGE)\
298- -DFEATURE_DIFF_BRIEF=$(FEATURE_DIFF_BRIEF)\
299- -DFEATURE_DIFF_CONTEXT=$(FEATURE_DIFF_CONTEXT)\
300- -DFEATURE_DIFF_ED=$(FEATURE_DIFF_ED)\
301- -DFEATURE_DIFF_SIDEBYSIDE=$(FEATURE_DIFF_SIDEBYSIDE)\
302- -DFEATURE_DIFF_UNIFIED=$(FEATURE_DIFF_UNIFIED)\
303- -DFEATURE_FIND_AMIN=$(FEATURE_FIND_AMIN)\
304- -DFEATURE_FIND_CMIN=$(FEATURE_FIND_CMIN)\
305- -DFEATURE_FIND_DELETE=$(FEATURE_FIND_DELETE)\
306- -DFEATURE_FIND_EMPTY=$(FEATURE_FIND_EMPTY)\
307- -DFEATURE_FIND_INAME=$(FEATURE_FIND_INAME)\
308- -DFEATURE_FIND_INUM=$(FEATURE_FIND_INUM)\
309- -DFEATURE_FIND_IPATH=$(FEATURE_FIND_IPATH)\
310- -DFEATURE_FIND_MAXDEPTH=$(FEATURE_FIND_MAXDEPTH)\
311- -DFEATURE_FIND_MINDEPTH=$(FEATURE_FIND_MINDEPTH)\
312- -DFEATURE_FIND_MMIN=$(FEATURE_FIND_MMIN)\
313- -DFEATURE_FIND_PRINT0=$(FEATURE_FIND_PRINT0)\
314- -DFEATURE_FIND_QUIT=$(FEATURE_FIND_QUIT)\
315- -DFEATURE_FIND_REGEX=$(FEATURE_FIND_REGEX)\
316- -DFEATURE_FIND_SAMEFILE=$(FEATURE_FIND_SAMEFILE)\
317- -DFEATURE_GREP_CONTEXT=$(FEATURE_GREP_CONTEXT)\
318- -DFEATURE_GREP_MAX_COUNT=$(FEATURE_GREP_MAX_COUNT)\
319- -DFEATURE_INPROC_EXEC=$(FEATURE_INPROC_EXEC)\
320- -DFEATURE_INPROC_EXEC_OVERRIDE=$(FEATURE_INPROC_EXEC_OVERRIDE)\
321- -DFEATURE_IP_ADDR_FLUSH=$(FEATURE_IP_ADDR_FLUSH)\
322- -DFEATURE_IP_LINK_SET=$(FEATURE_IP_LINK_SET)\
323- -DFEATURE_IP_ROUTE_ADD_DEL=$(FEATURE_IP_ROUTE_ADD_DEL)\
324- -DFEATURE_LS_COLOR=$(FEATURE_LS_COLOR)\
325- -DFEATURE_MODPROBE_BLACKLIST=$(FEATURE_MODPROBE_BLACKLIST)\
326- -DFEATURE_MODPROBE_DIR_OVERRIDE=$(FEATURE_MODPROBE_DIR_OVERRIDE)\
327- -DFEATURE_MODPROBE_SHOW_DEPENDS=$(FEATURE_MODPROBE_SHOW_DEPENDS)\
328- -DFEATURE_MODPROBE_SYSLOG=$(FEATURE_MODPROBE_SYSLOG)\
329- -DFEATURE_OD_ENDIAN=$(FEATURE_OD_ENDIAN)\
330- -DFEATURE_PATCH_BACKUP=$(FEATURE_PATCH_BACKUP)\
331- -DFEATURE_PATCH_FUZZ=$(FEATURE_PATCH_FUZZ)\
332- -DFEATURE_PATCH_STRIP_CR=$(FEATURE_PATCH_STRIP_CR)\
333- -DFEATURE_READLINK_REALPATH=$(FEATURE_READLINK_REALPATH)\
334- -DFEATURE_SED_INPLACE=$(FEATURE_SED_INPLACE)\
335- -DFEATURE_SED_PRESERVE_NEWLINE=$(FEATURE_SED_PRESERVE_NEWLINE)\
336- -DFEATURE_SH_EASTER=$(FEATURE_SH_EASTER)\
337- -DFEATURE_SH_HISTEDIT=$(FEATURE_SH_HISTEDIT)\
338- -DFEATURE_SH_LET=$(FEATURE_SH_LET)\
339- -DFEATURE_SH_LOCAL=$(FEATURE_SH_LOCAL)\
340- -DFEATURE_SH_SETVAR=$(FEATURE_SH_SETVAR)\
341- -DFEATURE_SH_ULIMIT=$(FEATURE_SH_ULIMIT)\
342- -DFEATURE_SH_WORDEXP=$(FEATURE_SH_WORDEXP)\
343- -DFEATURE_SORT_BIG=$(FEATURE_SORT_BIG)\
344- -DFEATURE_SORT_STABLE=$(FEATURE_SORT_STABLE)\
345- -DFEATURE_STAT_FILESYSTEM=$(FEATURE_STAT_FILESYSTEM)\
346- -DFEATURE_STAT_FORMAT=$(FEATURE_STAT_FORMAT)\
347- -DFEATURE_TAR_CREATE=$(FEATURE_TAR_CREATE)\
348- -DFEATURE_TAR_EXCLUDE=$(FEATURE_TAR_EXCLUDE)\
349- -DFEATURE_TAR_EXCLUDE_FROM=$(FEATURE_TAR_EXCLUDE_FROM)\
350- -DFEATURE_TAR_FILES_FROM=$(FEATURE_TAR_FILES_FROM)\
351- -DFEATURE_TAR_KEEP_OLD=$(FEATURE_TAR_KEEP_OLD)\
352- -DFEATURE_TAR_NOFOLLOW=$(FEATURE_TAR_NOFOLLOW)\
353- -DFEATURE_TAR_STRIP_COMPONENTS=$(FEATURE_TAR_STRIP_COMPONENTS)\
354- -DFEATURE_TAR_TO_STDOUT=$(FEATURE_TAR_TO_STDOUT)\
355- -DFEATURE_TAR_TTY_SAFE=$(FEATURE_TAR_TTY_SAFE)\
356- -DFEATURE_UMOUNT_OPTIONS=$(FEATURE_UMOUNT_OPTIONS)\
357- -DFEATURE_USE_BEARSSL=$(FEATURE_USE_BEARSSL)\
358- -DFEATURE_USE_LIBRESSL=$(FEATURE_USE_LIBRESSL)\
359- -DFEATURE_USE_OPENSSL=$(FEATURE_USE_OPENSSL)\
360- $(CPPFLAGS_TLS)
361-
362-CC = cc
363-CFLAGS = -std=c99 -Wall -Wextra -pedantic
364-LDFLAGS = $(LDFLAGS_TLS)
365-LDLIBS = -lcrypt -lresolv $(LDLIBS_TLS)