master Makefile
  1.POSIX:
  2include config.mk
  3
  4.SUFFIXES:
  5.SUFFIXES: .y .o .c
  6
  7HDR =\
  8	shared/arg.h\
  9	shared/compat.h\
 10	shared/config.h\
 11	shared/crypt.h\
 12	shared/fs.h\
 13	shared/md5.h\
 14	shared/queue.h\
 15	shared/sha1.h\
 16	shared/sha224.h\
 17	shared/sha256.h\
 18	shared/sha384.h\
 19	shared/sha512.h\
 20	shared/sha512-224.h\
 21	shared/sha512-256.h\
 22	shared/text.h\
 23	shared/utf.h\
 24	shared/util.h\
 25	shared/passwd.h\
 26	shared/reboot.h\
 27	shared/rtc.h\
 28	shared/proc.h\
 29	shared/tls.h
 30
 31LIBUTFOBJ =\
 32	shared/libutf/fgetrune.o\
 33	shared/libutf/fputrune.o\
 34	shared/libutf/isalnumrune.o\
 35	shared/libutf/isalpharune.o\
 36	shared/libutf/isblankrune.o\
 37	shared/libutf/iscntrlrune.o\
 38	shared/libutf/isdigitrune.o\
 39	shared/libutf/isgraphrune.o\
 40	shared/libutf/isprintrune.o\
 41	shared/libutf/ispunctrune.o\
 42	shared/libutf/isspacerune.o\
 43	shared/libutf/istitlerune.o\
 44	shared/libutf/isxdigitrune.o\
 45	shared/libutf/lowerrune.o\
 46	shared/libutf/rune.o\
 47	shared/libutf/runetype.o\
 48	shared/libutf/upperrune.o\
 49	shared/libutf/utf.o\
 50	shared/libutf/utftorunestr.o
 51
 52LIBUTILOBJ =\
 53	shared/libutil/concat.o\
 54	shared/libutil/cp.o\
 55	shared/libutil/crypt.o\
 56	shared/libutil/confirm.o\
 57	shared/libutil/ealloc.o\
 58	shared/libutil/enmasse.o\
 59	shared/libutil/eprintf.o\
 60	shared/libutil/eregcomp.o\
 61	shared/libutil/estrtod.o\
 62	shared/libutil/fnck.o\
 63	shared/libutil/fshut.o\
 64	shared/libutil/getlines.o\
 65	shared/libutil/human.o\
 66	shared/libutil/linecmp.o\
 67	shared/libutil/md5.o\
 68	shared/libutil/memmem.o\
 69	shared/libutil/mkdirp.o\
 70	shared/libutil/mode.o\
 71	shared/libutil/parseoffset.o\
 72	shared/libutil/putword.o\
 73	shared/libutil/reallocarray.o\
 74	shared/libutil/recurse.o\
 75	shared/libutil/rm.o\
 76	shared/libutil/sha1.o\
 77	shared/libutil/sha224.o\
 78	shared/libutil/sha256.o\
 79	shared/libutil/sha384.o\
 80	shared/libutil/sha512.o\
 81	shared/libutil/sha512-224.o\
 82	shared/libutil/sha512-256.o\
 83	shared/libutil/strcasestr.o\
 84	shared/libutil/strlcat.o\
 85	shared/libutil/strlcpy.o\
 86	shared/libutil/strsep.o\
 87	shared/libutil/strnsubst.o\
 88	shared/libutil/strtonum.o\
 89	shared/libutil/writeall.o\
 90	shared/libutil/unescape.o\
 91	shared/libutil/agetcwd.o\
 92	shared/libutil/agetline.o\
 93	shared/libutil/apathmax.o\
 94	shared/libutil/estrtol.o\
 95	shared/libutil/estrtoul.o\
 96	shared/libutil/explicit_bzero.o\
 97	shared/libutil/passwd.o\
 98	shared/libutil/proc.o\
 99	shared/libutil/tty.o\
100	shared/libutil/fconcat.o\
101	shared/libutil/recurse_dir.o\
102	shared/libutil/sig.o\
103	shared/libutil/net.o\
104	shared/libutil/sysinfo.o\
105	shared/libutil/tls.o\
106	shared/libutil/diskutil.o
107
108LIBREDLINEOBJ =\
109	shared/libredline/redline.o
110
111LIB = shared/libredline/libredline.a shared/libutil/libutil.a shared/libutf/libutf.a
112
113POSIX_BIN_ALL =\
114	cmd/posix/basename\
115	cmd/posix/cal\
116	cmd/posix/cat\
117	cmd/posix/chgrp\
118	cmd/posix/chmod\
119	cmd/posix/chown\
120	cmd/posix/cksum\
121	cmd/posix/cmp\
122	cmd/posix/comm\
123	cmd/posix/cp\
124	cmd/posix/cut\
125	cmd/posix/date\
126	cmd/posix/dd\
127	cmd/posix/df\
128	cmd/posix/dirname\
129	cmd/posix/du\
130	cmd/posix/echo\
131	cmd/posix/ed\
132	cmd/posix/env\
133	cmd/posix/expand\
134	cmd/posix/expr\
135	cmd/posix/false\
136	cmd/posix/find\
137	cmd/posix/fold\
138	cmd/posix/getconf\
139	cmd/posix/grep\
140	cmd/posix/head\
141	cmd/posix/id\
142	cmd/posix/join\
143	cmd/posix/kill\
144	cmd/posix/link\
145	cmd/posix/ln\
146	cmd/posix/logger\
147	cmd/posix/logname\
148	cmd/posix/ls\
149	cmd/posix/mesg\
150	cmd/posix/mkdir\
151	cmd/posix/mkfifo\
152	cmd/posix/mv\
153	cmd/posix/nice\
154	cmd/posix/nl\
155	cmd/posix/nohup\
156	cmd/posix/od\
157	cmd/posix/paste\
158	cmd/posix/pathchk\
159	cmd/posix/printf\
160	cmd/posix/ps\
161	cmd/posix/pwd\
162	cmd/posix/readlink\
163	cmd/posix/renice\
164	cmd/posix/rm\
165	cmd/posix/rmdir\
166	cmd/posix/sed\
167	cmd/posix/sleep\
168	cmd/posix/sort\
169	cmd/posix/split\
170	cmd/posix/tail\
171	cmd/posix/tee\
172	cmd/posix/test\
173	cmd/posix/time\
174	cmd/posix/touch\
175	cmd/posix/tr\
176	cmd/posix/true\
177	cmd/posix/tsort\
178	cmd/posix/tty\
179	cmd/posix/uname\
180	cmd/posix/unexpand\
181	cmd/posix/uniq\
182	cmd/posix/unlink\
183	cmd/posix/uudecode\
184	cmd/posix/uuencode\
185	cmd/posix/wc\
186	cmd/posix/who\
187	cmd/posix/xargs\
188	cmd/posix/awk/awk\
189	cmd/posix/sh/sh\
190	cmd/posix/pax\
191	cmd/posix/make/make
192
193LINUX_BIN_ALL =\
194	cmd/linux/blkdiscard\
195	cmd/linux/chvt\
196	cmd/linux/ctrlaltdel\
197	cmd/linux/eject\
198	cmd/linux/freeramdisk\
199	cmd/linux/fsfreeze\
200	cmd/linux/hwclock\
201	cmd/linux/insmod\
202	cmd/linux/lsmod\
203	cmd/linux/modprobe\
204	cmd/linux/depmod\
205	cmd/linux/mkswap\
206	cmd/linux/mount\
207	cmd/linux/mountpoint\
208	cmd/linux/pivot_root\
209	cmd/linux/readahead\
210	cmd/linux/rmmod\
211	cmd/linux/swaplabel\
212	cmd/linux/swapoff\
213	cmd/linux/swapon\
214	cmd/linux/switch_root\
215	cmd/linux/tunctl\
216	cmd/linux/umount\
217	cmd/linux/unshare\
218	cmd/linux/vtallow
219
220NET_BIN_ALL =\
221	cmd/net/netcat\
222	cmd/net/tftp\
223	cmd/net/wget\
224	cmd/net/ping\
225	cmd/net/sdhcp\
226	cmd/net/ifconfig\
227	cmd/net/host\
228	cmd/net/httpd\
229	cmd/net/ip
230
231XSI_BIN_ALL =\
232	cmd/xsi/mknod\
233	cmd/xsi/passwd\
234	cmd/xsi/su
235
236PSEUDO_BIN_ALL =\
237	cmd/pseudo/chroot\
238	cmd/pseudo/clear\
239	cmd/pseudo/cols\
240	cmd/pseudo/cron\
241	cmd/pseudo/flock\
242	cmd/pseudo/getty\
243	cmd/pseudo/halt\
244	cmd/pseudo/hostname\
245	cmd/pseudo/killall5\
246	cmd/pseudo/last\
247	cmd/pseudo/lastlog\
248	cmd/pseudo/login\
249	cmd/pseudo/md5sum\
250	cmd/pseudo/mktemp\
251	cmd/pseudo/nologin\
252	cmd/pseudo/pagesize\
253	cmd/pseudo/printenv\
254	cmd/pseudo/respawn\
255	cmd/pseudo/rev\
256	cmd/pseudo/seq\
257	cmd/pseudo/setsid\
258	cmd/pseudo/sha1sum\
259	cmd/pseudo/sha224sum\
260	cmd/pseudo/sha256sum\
261	cmd/pseudo/sha384sum\
262	cmd/pseudo/sha512sum\
263	cmd/pseudo/sha512-224sum\
264	cmd/pseudo/sha512-256sum\
265	cmd/pseudo/sponge\
266	cmd/pseudo/stat\
267	cmd/pseudo/tar\
268	cmd/pseudo/truncate\
269	cmd/pseudo/watch\
270	cmd/pseudo/which\
271	cmd/pseudo/whoami\
272	cmd/pseudo/xinstall\
273	cmd/pseudo/yes\
274	cmd/pseudo/base64\
275	cmd/extra/b3sum\
276	cmd/extra/blkid\
277	cmd/extra/lsblk\
278	cmd/extra/fdisk\
279	cmd/dev/ar/ar\
280	cmd/dev/as/as\
281	cmd/dev/ld/ld\
282	cmd/dev/cc/cc\
283	cmd/pseudo/dmesg\
284	cmd/pseudo/fallocate\
285	cmd/pseudo/free\
286	cmd/pseudo/pidof\
287	cmd/pseudo/pwdx\
288	cmd/pseudo/uptime
289
290MAKEOBJ =\
291	cmd/posix/make/defaults.o\
292	cmd/posix/make/main.o\
293	cmd/posix/make/parser.o\
294	cmd/posix/make/posix.o\
295	cmd/posix/make/rules.o
296
297BIN_basename_1 = cmd/posix/basename
298BIN_cal_1 = cmd/posix/cal
299BIN_cat_1 = cmd/posix/cat
300BIN_chgrp_1 = cmd/posix/chgrp
301BIN_chmod_1 = cmd/posix/chmod
302BIN_chown_1 = cmd/posix/chown
303BIN_cksum_1 = cmd/posix/cksum
304BIN_cmp_1 = cmd/posix/cmp
305BIN_comm_1 = cmd/posix/comm
306BIN_cp_1 = cmd/posix/cp
307BIN_cut_1 = cmd/posix/cut
308BIN_date_1 = cmd/posix/date
309BIN_dd_1 = cmd/posix/dd
310BIN_df_1 = cmd/posix/df
311BIN_dirname_1 = cmd/posix/dirname
312BIN_du_1 = cmd/posix/du
313BIN_echo_1 = cmd/posix/echo
314BIN_ed_1 = cmd/posix/ed
315BIN_env_1 = cmd/posix/env
316BIN_expand_1 = cmd/posix/expand
317BIN_expr_1 = cmd/posix/expr
318BIN_false_1 = cmd/posix/false
319BIN_find_1 = cmd/posix/find
320BIN_fold_1 = cmd/posix/fold
321BIN_getconf_1 = cmd/posix/getconf
322BIN_grep_1 = cmd/posix/grep
323BIN_head_1 = cmd/posix/head
324BIN_id_1 = cmd/posix/id
325BIN_join_1 = cmd/posix/join
326BIN_kill_1 = cmd/posix/kill
327BIN_link_1 = cmd/posix/link
328BIN_ln_1 = cmd/posix/ln
329BIN_logger_1 = cmd/posix/logger
330BIN_logname_1 = cmd/posix/logname
331BIN_ls_1 = cmd/posix/ls
332BIN_mesg_1 = cmd/posix/mesg
333BIN_mkdir_1 = cmd/posix/mkdir
334BIN_mkfifo_1 = cmd/posix/mkfifo
335BIN_mv_1 = cmd/posix/mv
336BIN_nice_1 = cmd/posix/nice
337BIN_nl_1 = cmd/posix/nl
338BIN_nohup_1 = cmd/posix/nohup
339BIN_od_1 = cmd/posix/od
340BIN_paste_1 = cmd/posix/paste
341BIN_pathchk_1 = cmd/posix/pathchk
342BIN_printf_1 = cmd/posix/printf
343BIN_ps_1 = cmd/posix/ps
344BIN_pwd_1 = cmd/posix/pwd
345BIN_readlink_1 = cmd/posix/readlink
346BIN_renice_1 = cmd/posix/renice
347BIN_rm_1 = cmd/posix/rm
348BIN_rmdir_1 = cmd/posix/rmdir
349BIN_sed_1 = cmd/posix/sed
350BIN_sleep_1 = cmd/posix/sleep
351BIN_sort_1 = cmd/posix/sort
352BIN_split_1 = cmd/posix/split
353BIN_tail_1 = cmd/posix/tail
354BIN_tee_1 = cmd/posix/tee
355BIN_test_1 = cmd/posix/test
356BIN_time_1 = cmd/posix/time
357BIN_touch_1 = cmd/posix/touch
358BIN_tr_1 = cmd/posix/tr
359BIN_true_1 = cmd/posix/true
360BIN_tsort_1 = cmd/posix/tsort
361BIN_tty_1 = cmd/posix/tty
362BIN_uname_1 = cmd/posix/uname
363BIN_unexpand_1 = cmd/posix/unexpand
364BIN_uniq_1 = cmd/posix/uniq
365BIN_unlink_1 = cmd/posix/unlink
366BIN_uudecode_1 = cmd/posix/uudecode
367BIN_uuencode_1 = cmd/posix/uuencode
368BIN_wc_1 = cmd/posix/wc
369BIN_who_1 = cmd/posix/who
370BIN_xargs_1 = cmd/posix/xargs
371BIN_awk_1 = cmd/posix/awk/awk
372BIN_sh_1 = cmd/posix/sh/sh
373BIN_pax_1 = cmd/posix/pax
374BIN_make_1 = cmd/posix/make/make
375
376BIN_blkdiscard_1 = cmd/linux/blkdiscard
377BIN_chvt_1 = cmd/linux/chvt
378BIN_ctrlaltdel_1 = cmd/linux/ctrlaltdel
379BIN_eject_1 = cmd/linux/eject
380BIN_freeramdisk_1 = cmd/linux/freeramdisk
381BIN_fsfreeze_1 = cmd/linux/fsfreeze
382BIN_hwclock_1 = cmd/linux/hwclock
383BIN_insmod_1 = cmd/linux/insmod
384BIN_lsmod_1 = cmd/linux/lsmod
385BIN_modprobe_1 = cmd/linux/modprobe
386BIN_depmod_1 = cmd/linux/depmod
387BIN_mkswap_1 = cmd/linux/mkswap
388BIN_mount_1 = cmd/linux/mount
389BIN_mountpoint_1 = cmd/linux/mountpoint
390BIN_pivot_root_1 = cmd/linux/pivot_root
391BIN_readahead_1 = cmd/linux/readahead
392BIN_rmmod_1 = cmd/linux/rmmod
393BIN_swaplabel_1 = cmd/linux/swaplabel
394BIN_swapoff_1 = cmd/linux/swapoff
395BIN_swapon_1 = cmd/linux/swapon
396BIN_switch_root_1 = cmd/linux/switch_root
397BIN_tunctl_1 = cmd/linux/tunctl
398BIN_umount_1 = cmd/linux/umount
399BIN_unshare_1 = cmd/linux/unshare
400BIN_vtallow_1 = cmd/linux/vtallow
401
402BIN_netcat_1 = cmd/net/netcat
403BIN_tftp_1 = cmd/net/tftp
404BIN_wget_1 = cmd/net/wget
405BIN_ping_1 = cmd/net/ping
406BIN_sdhcp_1 = cmd/net/sdhcp
407BIN_ifconfig_1 = cmd/net/ifconfig
408BIN_host_1 = cmd/net/host
409BIN_httpd_1 = cmd/net/httpd
410BIN_ip_1 = cmd/net/ip
411
412BIN_mknod_1 = cmd/xsi/mknod
413BIN_passwd_1 = cmd/xsi/passwd
414BIN_su_1 = cmd/xsi/su
415
416BIN_chroot_1 = cmd/pseudo/chroot
417BIN_clear_1 = cmd/pseudo/clear
418BIN_cols_1 = cmd/pseudo/cols
419BIN_cron_1 = cmd/pseudo/cron
420BIN_flock_1 = cmd/pseudo/flock
421BIN_getty_1 = cmd/pseudo/getty
422BIN_halt_1 = cmd/pseudo/halt
423BIN_hostname_1 = cmd/pseudo/hostname
424BIN_killall5_1 = cmd/pseudo/killall5
425BIN_last_1 = cmd/pseudo/last
426BIN_lastlog_1 = cmd/pseudo/lastlog
427BIN_login_1 = cmd/pseudo/login
428BIN_md5sum_1 = cmd/pseudo/md5sum
429BIN_mktemp_1 = cmd/pseudo/mktemp
430BIN_nologin_1 = cmd/pseudo/nologin
431BIN_pagesize_1 = cmd/pseudo/pagesize
432BIN_printenv_1 = cmd/pseudo/printenv
433BIN_respawn_1 = cmd/pseudo/respawn
434BIN_rev_1 = cmd/pseudo/rev
435BIN_seq_1 = cmd/pseudo/seq
436BIN_setsid_1 = cmd/pseudo/setsid
437BIN_sha1sum_1 = cmd/pseudo/sha1sum
438BIN_sha224sum_1 = cmd/pseudo/sha224sum
439BIN_sha256sum_1 = cmd/pseudo/sha256sum
440BIN_sha384sum_1 = cmd/pseudo/sha384sum
441BIN_sha512sum_1 = cmd/pseudo/sha512sum
442BIN_sha512_224sum_1 = cmd/pseudo/sha512-224sum
443BIN_sha512_256sum_1 = cmd/pseudo/sha512-256sum
444BIN_sponge_1 = cmd/pseudo/sponge
445BIN_stat_1 = cmd/pseudo/stat
446BIN_tar_1 = cmd/pseudo/tar
447BIN_truncate_1 = cmd/pseudo/truncate
448BIN_watch_1 = cmd/pseudo/watch
449BIN_which_1 = cmd/pseudo/which
450BIN_whoami_1 = cmd/pseudo/whoami
451BIN_xinstall_1 = cmd/pseudo/xinstall
452BIN_yes_1 = cmd/pseudo/yes
453BIN_base64_1 = cmd/pseudo/base64
454BIN_b3sum_1 = cmd/extra/b3sum
455BIN_blkid_1 = cmd/extra/blkid
456BIN_lsblk_1 = cmd/extra/lsblk
457BIN_fdisk_1 = cmd/extra/fdisk
458BIN_ar_1 = cmd/dev/ar/ar
459BIN_as_1 = cmd/dev/as/as
460BIN_ld_1 = cmd/dev/ld/ld
461BIN_cc_1 = cmd/dev/cc/cc
462BIN_dmesg_1 = cmd/pseudo/dmesg
463BIN_fallocate_1 = cmd/pseudo/fallocate
464BIN_free_1 = cmd/pseudo/free
465BIN_pidof_1 = cmd/pseudo/pidof
466BIN_pwdx_1 = cmd/pseudo/pwdx
467BIN_uptime_1 = cmd/pseudo/uptime
468
469POSIX_BIN = \
470	$(BIN_basename_$(BUILD_POSIX_BASENAME)) \
471	$(BIN_cal_$(BUILD_POSIX_CAL)) \
472	$(BIN_cat_$(BUILD_POSIX_CAT)) \
473	$(BIN_chgrp_$(BUILD_POSIX_CHGRP)) \
474	$(BIN_chmod_$(BUILD_POSIX_CHMOD)) \
475	$(BIN_chown_$(BUILD_POSIX_CHOWN)) \
476	$(BIN_cksum_$(BUILD_POSIX_CKSUM)) \
477	$(BIN_cmp_$(BUILD_POSIX_CMP)) \
478	$(BIN_comm_$(BUILD_POSIX_COMM)) \
479	$(BIN_cp_$(BUILD_POSIX_CP)) \
480	$(BIN_cut_$(BUILD_POSIX_CUT)) \
481	$(BIN_date_$(BUILD_POSIX_DATE)) \
482	$(BIN_dd_$(BUILD_POSIX_DD)) \
483	$(BIN_df_$(BUILD_POSIX_DF)) \
484	$(BIN_dirname_$(BUILD_POSIX_DIRNAME)) \
485	$(BIN_du_$(BUILD_POSIX_DU)) \
486	$(BIN_echo_$(BUILD_POSIX_ECHO)) \
487	$(BIN_ed_$(BUILD_POSIX_ED)) \
488	$(BIN_env_$(BUILD_POSIX_ENV)) \
489	$(BIN_expand_$(BUILD_POSIX_EXPAND)) \
490	$(BIN_expr_$(BUILD_POSIX_EXPR)) \
491	$(BIN_false_$(BUILD_POSIX_FALSE)) \
492	$(BIN_find_$(BUILD_POSIX_FIND)) \
493	$(BIN_fold_$(BUILD_POSIX_FOLD)) \
494	$(BIN_getconf_$(BUILD_POSIX_GETCONF)) \
495	$(BIN_grep_$(BUILD_POSIX_GREP)) \
496	$(BIN_head_$(BUILD_POSIX_HEAD)) \
497	$(BIN_id_$(BUILD_POSIX_ID)) \
498	$(BIN_join_$(BUILD_POSIX_JOIN)) \
499	$(BIN_kill_$(BUILD_POSIX_KILL)) \
500	$(BIN_link_$(BUILD_POSIX_LINK)) \
501	$(BIN_ln_$(BUILD_POSIX_LN)) \
502	$(BIN_logger_$(BUILD_POSIX_LOGGER)) \
503	$(BIN_logname_$(BUILD_POSIX_LOGNAME)) \
504	$(BIN_ls_$(BUILD_POSIX_LS)) \
505	$(BIN_mesg_$(BUILD_POSIX_MESG)) \
506	$(BIN_mkdir_$(BUILD_POSIX_MKDIR)) \
507	$(BIN_mkfifo_$(BUILD_POSIX_MKFIFO)) \
508	$(BIN_mv_$(BUILD_POSIX_MV)) \
509	$(BIN_nice_$(BUILD_POSIX_NICE)) \
510	$(BIN_nl_$(BUILD_POSIX_NL)) \
511	$(BIN_nohup_$(BUILD_POSIX_NOHUP)) \
512	$(BIN_od_$(BUILD_POSIX_OD)) \
513	$(BIN_paste_$(BUILD_POSIX_PASTE)) \
514	$(BIN_pathchk_$(BUILD_POSIX_PATHCHK)) \
515	$(BIN_printf_$(BUILD_POSIX_PRINTF)) \
516	$(BIN_ps_$(BUILD_POSIX_PS)) \
517	$(BIN_pwd_$(BUILD_POSIX_PWD)) \
518	$(BIN_readlink_$(BUILD_POSIX_READLINK)) \
519	$(BIN_renice_$(BUILD_POSIX_RENICE)) \
520	$(BIN_rm_$(BUILD_POSIX_RM)) \
521	$(BIN_rmdir_$(BUILD_POSIX_RMDIR)) \
522	$(BIN_sed_$(BUILD_POSIX_SED)) \
523	$(BIN_sleep_$(BUILD_POSIX_SLEEP)) \
524	$(BIN_sort_$(BUILD_POSIX_SORT)) \
525	$(BIN_split_$(BUILD_POSIX_SPLIT)) \
526	$(BIN_tail_$(BUILD_POSIX_TAIL)) \
527	$(BIN_tee_$(BUILD_POSIX_TEE)) \
528	$(BIN_test_$(BUILD_POSIX_TEST)) \
529	$(BIN_time_$(BUILD_POSIX_TIME)) \
530	$(BIN_touch_$(BUILD_POSIX_TOUCH)) \
531	$(BIN_tr_$(BUILD_POSIX_TR)) \
532	$(BIN_true_$(BUILD_POSIX_TRUE)) \
533	$(BIN_tsort_$(BUILD_POSIX_TSORT)) \
534	$(BIN_tty_$(BUILD_POSIX_TTY)) \
535	$(BIN_uname_$(BUILD_POSIX_UNAME)) \
536	$(BIN_unexpand_$(BUILD_POSIX_UNEXPAND)) \
537	$(BIN_uniq_$(BUILD_POSIX_UNIQ)) \
538	$(BIN_unlink_$(BUILD_POSIX_UNLINK)) \
539	$(BIN_uudecode_$(BUILD_POSIX_UUDECODE)) \
540	$(BIN_uuencode_$(BUILD_POSIX_UUENCODE)) \
541	$(BIN_wc_$(BUILD_POSIX_WC)) \
542	$(BIN_who_$(BUILD_POSIX_WHO)) \
543	$(BIN_xargs_$(BUILD_POSIX_XARGS)) \
544	$(BIN_awk_$(BUILD_POSIX_AWK)) \
545	$(BIN_sh_$(BUILD_POSIX_SH)) \
546	$(BIN_pax_$(BUILD_POSIX_PAX)) \
547	$(BIN_make_$(BUILD_POSIX_MAKE))
548
549LINUX_BIN = \
550	$(BIN_blkdiscard_$(BUILD_LINUX_BLKDISCARD)) \
551	$(BIN_chvt_$(BUILD_LINUX_CHVT)) \
552	$(BIN_ctrlaltdel_$(BUILD_LINUX_CTRLALTDEL)) \
553	$(BIN_eject_$(BUILD_LINUX_EJECT)) \
554	$(BIN_freeramdisk_$(BUILD_LINUX_FREERAMDISK)) \
555	$(BIN_fsfreeze_$(BUILD_LINUX_FSFREEZE)) \
556	$(BIN_hwclock_$(BUILD_LINUX_HWCLOCK)) \
557	$(BIN_insmod_$(BUILD_LINUX_INSMOD)) \
558	$(BIN_lsmod_$(BUILD_LINUX_LSMOD)) \
559	$(BIN_modprobe_$(BUILD_LINUX_MODPROBE)) \
560	$(BIN_depmod_$(BUILD_LINUX_DEPMOD)) \
561	$(BIN_mkswap_$(BUILD_LINUX_MKSWAP)) \
562	$(BIN_mount_$(BUILD_LINUX_MOUNT)) \
563	$(BIN_mountpoint_$(BUILD_LINUX_MOUNTPOINT)) \
564	$(BIN_pivot_root_$(BUILD_LINUX_PIVOT_ROOT)) \
565	$(BIN_readahead_$(BUILD_LINUX_READAHEAD)) \
566	$(BIN_rmmod_$(BUILD_LINUX_RMMOD)) \
567	$(BIN_swaplabel_$(BUILD_LINUX_SWAPLABEL)) \
568	$(BIN_swapoff_$(BUILD_LINUX_SWAPOFF)) \
569	$(BIN_swapon_$(BUILD_LINUX_SWAPON)) \
570	$(BIN_switch_root_$(BUILD_LINUX_SWITCH_ROOT)) \
571	$(BIN_tunctl_$(BUILD_LINUX_TUNCTL)) \
572	$(BIN_umount_$(BUILD_LINUX_UMOUNT)) \
573	$(BIN_unshare_$(BUILD_LINUX_UNSHARE)) \
574	$(BIN_vtallow_$(BUILD_LINUX_VTALLOW))
575
576NET_BIN = \
577	$(BIN_netcat_$(BUILD_NET_NETCAT)) \
578	$(BIN_tftp_$(BUILD_NET_TFTP)) \
579	$(BIN_wget_$(BUILD_NET_WGET)) \
580	$(BIN_ping_$(BUILD_NET_PING)) \
581	$(BIN_sdhcp_$(BUILD_NET_SDHCP)) \
582	$(BIN_ifconfig_$(BUILD_NET_IFCONFIG)) \
583	$(BIN_host_$(BUILD_NET_HOST)) \
584	$(BIN_httpd_$(BUILD_NET_HTTPD)) \
585	$(BIN_ip_$(BUILD_NET_IP))
586
587XSI_BIN = \
588	$(BIN_mknod_$(BUILD_XSI_MKNOD)) \
589	$(BIN_passwd_$(BUILD_XSI_PASSWD)) \
590	$(BIN_su_$(BUILD_XSI_SU))
591
592PSEUDO_BIN = \
593	$(BIN_chroot_$(BUILD_PSEUDO_CHROOT)) \
594	$(BIN_clear_$(BUILD_PSEUDO_CLEAR)) \
595	$(BIN_cols_$(BUILD_PSEUDO_COLS)) \
596	$(BIN_cron_$(BUILD_PSEUDO_CRON)) \
597	$(BIN_flock_$(BUILD_PSEUDO_FLOCK)) \
598	$(BIN_getty_$(BUILD_PSEUDO_GETTY)) \
599	$(BIN_halt_$(BUILD_PSEUDO_HALT)) \
600	$(BIN_hostname_$(BUILD_PSEUDO_HOSTNAME)) \
601	$(BIN_killall5_$(BUILD_PSEUDO_KILLALL5)) \
602	$(BIN_last_$(BUILD_PSEUDO_LAST)) \
603	$(BIN_lastlog_$(BUILD_PSEUDO_LASTLOG)) \
604	$(BIN_login_$(BUILD_PSEUDO_LOGIN)) \
605	$(BIN_md5sum_$(BUILD_PSEUDO_MD5SUM)) \
606	$(BIN_mktemp_$(BUILD_PSEUDO_MKTEMP)) \
607	$(BIN_nologin_$(BUILD_PSEUDO_NOLOGIN)) \
608	$(BIN_pagesize_$(BUILD_PSEUDO_PAGESIZE)) \
609	$(BIN_printenv_$(BUILD_PSEUDO_PRINTENV)) \
610	$(BIN_respawn_$(BUILD_PSEUDO_RESPAWN)) \
611	$(BIN_rev_$(BUILD_PSEUDO_REV)) \
612	$(BIN_seq_$(BUILD_PSEUDO_SEQ)) \
613	$(BIN_setsid_$(BUILD_PSEUDO_SETSID)) \
614	$(BIN_sha1sum_$(BUILD_PSEUDO_SHA1SUM)) \
615	$(BIN_sha224sum_$(BUILD_PSEUDO_SHA224SUM)) \
616	$(BIN_sha256sum_$(BUILD_PSEUDO_SHA256SUM)) \
617	$(BIN_sha384sum_$(BUILD_PSEUDO_SHA384SUM)) \
618	$(BIN_sha512sum_$(BUILD_PSEUDO_SHA512SUM)) \
619	$(BIN_sha512_224sum_$(BUILD_PSEUDO_SHA512_224SUM)) \
620	$(BIN_sha512_256sum_$(BUILD_PSEUDO_SHA512_256SUM)) \
621	$(BIN_sponge_$(BUILD_PSEUDO_SPONGE)) \
622	$(BIN_stat_$(BUILD_PSEUDO_STAT)) \
623	$(BIN_tar_$(BUILD_PSEUDO_TAR)) \
624	$(BIN_truncate_$(BUILD_PSEUDO_TRUNCATE)) \
625	$(BIN_watch_$(BUILD_PSEUDO_WATCH)) \
626	$(BIN_which_$(BUILD_PSEUDO_WHICH)) \
627	$(BIN_whoami_$(BUILD_PSEUDO_WHOAMI)) \
628	$(BIN_xinstall_$(BUILD_PSEUDO_XINSTALL)) \
629	$(BIN_yes_$(BUILD_PSEUDO_YES)) \
630	$(BIN_base64_$(BUILD_PSEUDO_BASE64)) \
631	$(BIN_b3sum_$(BUILD_PSEUDO_B3SUM)) \
632	$(BIN_blkid_$(BUILD_PSEUDO_BLKID)) \
633	$(BIN_lsblk_$(BUILD_PSEUDO_LSBLK)) \
634	$(BIN_fdisk_$(BUILD_PSEUDO_FDISK)) \
635	$(BIN_ar_$(BUILD_DEV_AR)) \
636	$(BIN_as_$(BUILD_DEV_CC)) \
637	$(BIN_ld_$(BUILD_DEV_LD)) \
638	$(BIN_cc_$(BUILD_DEV_CC)) \
639	$(BIN_dmesg_$(BUILD_PSEUDO_DMESG)) \
640	$(BIN_fallocate_$(BUILD_PSEUDO_FALLOCATE)) \
641	$(BIN_free_$(BUILD_PSEUDO_FREE)) \
642	$(BIN_pidof_$(BUILD_PSEUDO_PIDOF)) \
643	$(BIN_pwdx_$(BUILD_PSEUDO_PWDX)) \
644	$(BIN_uptime_$(BUILD_PSEUDO_UPTIME))
645
646OBJ = $(LIBUTFOBJ) $(LIBUTILOBJ) $(MAKEOBJ)
647
648all: $(LIB) $(POSIX_BIN) $(LINUX_BIN) $(NET_BIN) $(XSI_BIN) $(PSEUDO_BIN)
649
650$(POSIX_BIN_ALL) $(LINUX_BIN_ALL) $(NET_BIN_ALL) $(XSI_BIN_ALL) $(PSEUDO_BIN_ALL): $(LIB)
651
652$(OBJ) $(POSIX_BIN_ALL) $(LINUX_BIN_ALL) $(NET_BIN_ALL) $(XSI_BIN_ALL) $(PSEUDO_BIN_ALL): $(HDR)
653
654.o:
655	$(CC) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS)
656
657.c.o:
658	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
659
660.c:
661	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS)
662
663cmd/posix/bc.c: cmd/posix/bc.y
664	$(YACC) -d -o $@ $<
665
666cmd/posix/bc: cmd/posix/bc.c
667	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ cmd/posix/bc.c $(LIB) $(LDLIBS)
668
669$(MAKEOBJ): cmd/posix/make/make.h
670
671cmd/posix/make/make: $(MAKEOBJ) $(LIB)
672	$(CC) $(LDFLAGS) -o $@ $(MAKEOBJ) $(LIB) $(LDLIBS)
673
674shared/libutf/libutf.a: $(LIBUTFOBJ)
675	$(AR) $(ARFLAGS) $@ $?
676	$(RANLIB) $@
677
678shared/libredline/libredline.a: $(LIBREDLINEOBJ)
679	$(AR) $(ARFLAGS) $@ $?
680	$(RANLIB) $@
681
682shared/libutil/libutil.a: $(LIBUTILOBJ)
683	$(AR) $(ARFLAGS) $@ $?
684	$(RANLIB) $@
685
686cmd/posix/getconf: cmd/posix/getconf.h
687
688cmd/posix/getconf.h:
689	scripts/getconf.sh > $@ || { rm -f $@; exit 1; }
690
691box: $(LIB)
692	CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' \
693	LDFLAGS='$(LDFLAGS)' LDLIBS='$(LDLIBS)' OBJCOPY='$(OBJCOPY)' \
694	scripts/mkbox
695
696.PHONY: man clean
697
698scripts/mkman/mkman: scripts/mkman/main.go scripts/mkman/page.go scripts/mkman/parse.go scripts/mkman/mdoc.go
699	cd scripts/mkman && go build -o mkman .
700
701man: scripts/mkman/mkman
702	@for src in $(POSIX_BIN_ALL:=.c) $(PSEUDO_BIN_ALL:=.c); do \
703		if [ -f "$$src" ] && grep -qE '!man|\?man' "$$src"; then \
704			base=$$(basename $$src .c); \
705			mkdir -p man/man1; \
706			scripts/mkman/mkman -fmt mdoc -config config.mk -section 1 "$$src" > "man/man1/$$base.1"; \
707			scripts/mkman/mkman -fmt txt -config config.mk -section 1 "$$src" > "man/man1/$$base.1.txt"; \
708		fi; \
709	done
710	@for src in $(LINUX_BIN_ALL:=.c) $(NET_BIN_ALL:=.c) $(XSI_BIN_ALL:=.c); do \
711		if [ -f "$$src" ] && grep -qE '!man|\?man' "$$src"; then \
712			base=$$(basename $$src .c); \
713			mkdir -p man/man8; \
714			scripts/mkman/mkman -fmt mdoc -config config.mk -section 8 "$$src" > "man/man8/$$base.8"; \
715			scripts/mkman/mkman -fmt txt -config config.mk -section 8 "$$src" > "man/man8/$$base.8.txt"; \
716		fi; \
717	done
718
719clean:
720	rm -f shared/libutf/*.o shared/libutil/*.o shared/libredline/*.o
721	rm -f cmd/posix/*.o cmd/posix/make/*.o cmd/posix/awk/*.o cmd/posix/sh/*.o
722	rm -f cmd/linux/*.o cmd/net/*.o cmd/xsi/*.o cmd/pseudo/*.o
723	rm -f cmd/extra/*.o cmd/dev/ar/*.o cmd/dev/ld/*.o cmd/dev/cc/*.o cmd/dev/as/*.o cmd/dev/xcutil/*.o
724	rm -f $(POSIX_BIN_ALL) $(LINUX_BIN_ALL) $(NET_BIN_ALL) $(XSI_BIN_ALL) $(PSEUDO_BIN_ALL) $(LIB)
725	rm -f cmd/posix/make/make cmd/posix/getconf.h cmd/posix/bc.c
726	rm -f cmd/posix/awk/awk cmd/posix/awk/maketab cmd/posix/awk/awkgram.tab.c cmd/posix/awk/awkgram.tab.h cmd/posix/awk/proctab.c
727	rm -f cmd/posix/sh/sh cmd/posix/sh/mknodes cmd/posix/sh/mksyntax
728	rm -f cmd/posix/sh/syntax.c cmd/posix/sh/syntax.h cmd/posix/sh/nodes.c cmd/posix/sh/nodes.h cmd/posix/sh/builtins.c cmd/posix/sh/builtins.h cmd/posix/sh/token.h
729	rm -f cmd/dev/cc/cc1 cmd/dev/cc/cpp cmd/dev/as/as cmd/dev/ld/ld cmd/dev/ar/ar shared/libaruuelf.so
730	rm -f cmd/dev/config.h cmd/dev/cc/config.h cmd/dev/version.h
731	rm -rf aruu-box .box man/man1 man/man8 scripts/mkman/mkman
732
733AWKOBJ =\
734	cmd/posix/awk/b.o\
735	cmd/posix/awk/main.o\
736	cmd/posix/awk/parse.o\
737	cmd/posix/awk/proctab.o\
738	cmd/posix/awk/tran.o\
739	cmd/posix/awk/lib.o\
740	cmd/posix/awk/run.o\
741	cmd/posix/awk/lex.o\
742	cmd/posix/awk/math.o\
743	cmd/posix/awk/awkgram.tab.o
744
745SH_GENHDRS =\
746	cmd/posix/sh/syntax.h\
747	cmd/posix/sh/nodes.h\
748	cmd/posix/sh/builtins.h\
749	cmd/posix/sh/token.h
750
751SHOBJ =\
752	cmd/posix/sh/alias.o\
753	cmd/posix/sh/arith_yacc.o\
754	cmd/posix/sh/arith_yylex.o\
755	cmd/posix/sh/cd.o\
756	cmd/posix/sh/echo.o\
757	cmd/posix/sh/error.o\
758	cmd/posix/sh/eval.o\
759	cmd/posix/sh/exec.o\
760	cmd/posix/sh/expand.o\
761	cmd/posix/sh/lineedit.o\
762	cmd/posix/sh/input.o\
763	cmd/posix/sh/jobs.o\
764	cmd/posix/sh/kill.o\
765	cmd/posix/sh/mail.o\
766	cmd/posix/sh/main.o\
767	cmd/posix/sh/memalloc.o\
768	cmd/posix/sh/miscbltin.o\
769	cmd/posix/sh/mystring.o\
770	cmd/posix/sh/options.o\
771	cmd/posix/sh/output.o\
772	cmd/posix/sh/parser.o\
773	cmd/posix/sh/printf.o\
774	cmd/posix/sh/redir.o\
775	cmd/posix/sh/show.o\
776	cmd/posix/sh/test.o\
777	cmd/posix/sh/trap.o\
778	cmd/posix/sh/var.o\
779	cmd/posix/sh/builtins.o\
780	cmd/posix/sh/nodes.o\
781	cmd/posix/sh/syntax.o
782
783cmd/posix/awk/awkgram.tab.c cmd/posix/awk/awkgram.tab.h: cmd/posix/awk/awkgram.y
784	$(YACC) -d -o cmd/posix/awk/awkgram.tab.c cmd/posix/awk/awkgram.y
785	@if [ ! -f cmd/posix/awk/awkgram.tab.h ]; then \
786		if [ -f y.tab.h ]; then mv y.tab.h cmd/posix/awk/awkgram.tab.h; \
787		elif [ -f cmd/posix/awk/y.tab.h ]; then mv cmd/posix/awk/y.tab.h cmd/posix/awk/awkgram.tab.h; fi; \
788	fi
789
790cmd/posix/awk/maketab: cmd/posix/awk/maketab.c cmd/posix/awk/awkgram.tab.h
791	$(CC) $(CFLAGS) -o $@ cmd/posix/awk/maketab.c
792
793cmd/posix/awk/proctab.c: cmd/posix/awk/maketab
794	cmd/posix/awk/maketab cmd/posix/awk/awkgram.tab.h > $@
795
796$(AWKOBJ): cmd/posix/awk/awk.h cmd/posix/awk/awkgram.tab.h cmd/posix/awk/proto.h
797
798cmd/posix/awk/%.o: cmd/posix/awk/%.c
799	$(CC) $(CPPFLAGS) -Icmd/posix/awk $(CFLAGS) -o $@ -c $<
800
801cmd/posix/awk/awk: $(AWKOBJ) $(LIB)
802	$(CC) $(LDFLAGS) -o $@ $(AWKOBJ) $(LIB) $(LDLIBS) -lm
803
804cmd/posix/sh/mknodes: cmd/posix/sh/mknodes.c
805	$(CC) $(CFLAGS) -o $@ cmd/posix/sh/mknodes.c
806
807cmd/posix/sh/mksyntax: cmd/posix/sh/mksyntax.c
808	$(CC) $(CPPFLAGS) -Icmd/posix/sh $(CFLAGS) -o $@ cmd/posix/sh/mksyntax.c
809
810cmd/posix/sh/syntax.c cmd/posix/sh/syntax.h: cmd/posix/sh/mksyntax
811	cd cmd/posix/sh && ./mksyntax
812
813cmd/posix/sh/nodes.c cmd/posix/sh/nodes.h: cmd/posix/sh/mknodes cmd/posix/sh/nodetypes cmd/posix/sh/nodes.c.pat
814	cd cmd/posix/sh && ./mknodes nodetypes nodes.c.pat
815
816cmd/posix/sh/builtins.c cmd/posix/sh/builtins.h: cmd/posix/sh/mkbuiltins cmd/posix/sh/builtins.def cmd/posix/sh/shell.h
817	cd cmd/posix/sh && sh mkbuiltins .
818
819cmd/posix/sh/token.h: cmd/posix/sh/mktokens
820	cd cmd/posix/sh && sh mktokens
821
822$(SHOBJ): $(SH_GENHDRS)
823
824cmd/posix/sh/%.o: cmd/posix/sh/%.c
825	$(CC) $(CPPFLAGS) -DSHELL -Icmd/posix/sh $(CFLAGS) -o $@ -c $<
826
827cmd/posix/sh/sh: $(SHOBJ) $(LIB)
828	$(CC) $(LDFLAGS) -o $@ $(SHOBJ) $(LIB) $(LDLIBS)
829
830cmd/net/wget: cmd/net/wget.o $(LIB)
831	$(CC) $(LDFLAGS) -o $@ cmd/net/wget.o $(LIB) $(LDLIBS) $(LDLIBS_TLS)
832
833cmd/dev/ar/ar: cmd/dev/ar/ar.o $(LIB)
834	$(CC) $(LDFLAGS) -o $@ cmd/dev/ar/ar.o $(LIB) $(LDLIBS)
835
836cmd/dev/ar/%.o: cmd/dev/ar/%.c
837	$(CC) $(CPPFLAGS) -Icmd/dev/ar $(CFLAGS) -o $@ -c $<
838
839cmd/dev/xcutil/%.o: cmd/dev/xcutil/%.c
840	$(CC) -Icmd/dev/xcutil $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
841
842LD_OBJ =\
843	cmd/dev/xcutil/util.o\
844	cmd/dev/xcutil/table.o\
845	cmd/dev/xcutil/elfutil.o\
846	cmd/dev/xcutil/archive.o\
847	cmd/dev/ld/ld.o\
848	cmd/dev/ld/elfobj.o
849
850cmd/dev/ld/%.o: cmd/dev/ld/%.c
851	$(CC) -Icmd/dev/xcutil -Icmd/dev/ld $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
852
853cmd/dev/ld/ld: $(LD_OBJ) $(LIB)
854	$(CC) $(LDFLAGS) -o $@ $(LD_OBJ) $(LIB) $(LDLIBS)
855
856AS_OBJ =\
857	cmd/dev/xcutil/util.o\
858	cmd/dev/xcutil/table.o\
859	cmd/dev/xcutil/elfutil.o\
860	cmd/dev/xcutil/archive.o\
861	cmd/dev/as/as.o\
862	cmd/dev/as/as_util.o\
863	cmd/dev/as/emit_elf.o\
864	cmd/dev/as/emit_macho.o\
865	cmd/dev/as/ir_asm.o\
866	cmd/dev/as/parse_asm.o\
867	cmd/dev/as/arch/x64/asm_code.o\
868	cmd/dev/as/arch/x64/ir_asm_x64.o\
869	cmd/dev/as/arch/x64/parse_x64.o
870
871# headers shared across the assembler sources. listing them as prerequisites
872# of every .o stops stale objects when a header changes (inst.h, parse_asm.h),
873# which otherwise produced silently-wrong builds
874AS_HDRS =\
875	cmd/dev/as/parse_asm.h\
876	cmd/dev/as/ir_asm.h\
877	cmd/dev/as/as_util.h\
878	cmd/dev/as/asm_code.h\
879	cmd/dev/as/arch/x64/inst.h
880
881cmd/dev/as/%.o: cmd/dev/as/%.c $(AS_HDRS) cmd/dev/config.h
882	$(CC) -Icmd/dev/xcutil -Icmd/dev/as $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
883
884cmd/dev/as/arch/x64/%.o: cmd/dev/as/arch/x64/%.c $(AS_HDRS) cmd/dev/config.h
885	$(CC) -Icmd/dev/xcutil -Icmd/dev/as -Icmd/dev/as/arch/x64 $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
886
887cmd/dev/as/as: $(AS_OBJ) $(LIB)
888	$(CC) $(LDFLAGS) -o $@ $(AS_OBJ) $(LIB) $(LDLIBS)
889
890cmd/dev/cc/driver.o: cmd/dev/cc/driver.c cmd/dev/cc/config.h
891	$(CC) -Icmd/dev/cc $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
892
893cmd/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
894	$(CC) $(LDFLAGS) -o $@ cmd/dev/cc/driver.o cmd/dev/cc/util.o $(LIB) $(LDLIBS)
895
896CC1_OBJ =\
897	cmd/dev/cc/attr.o\
898	cmd/dev/cc/decl.o\
899	cmd/dev/cc/eval.o\
900	cmd/dev/cc/expr.o\
901	cmd/dev/cc/init.o\
902	cmd/dev/cc/cc1.o\
903	cmd/dev/cc/map.o\
904	cmd/dev/cc/pp.o\
905	cmd/dev/cc/qbe.o\
906	cmd/dev/cc/scan.o\
907	cmd/dev/cc/scope.o\
908	cmd/dev/cc/stmt.o\
909	cmd/dev/cc/targ.o\
910	cmd/dev/cc/token.o\
911	cmd/dev/cc/tree.o\
912	cmd/dev/cc/type.o\
913	cmd/dev/cc/utf.o\
914	cmd/dev/cc/util.o
915
916CPP_OBJ =\
917	cmd/dev/cc/attr.o\
918	cmd/dev/cc/decl.o\
919	cmd/dev/cc/eval.o\
920	cmd/dev/cc/expr.o\
921	cmd/dev/cc/init.o\
922	cmd/dev/cc/map.o\
923	cmd/dev/cc/pp.o\
924	cmd/dev/cc/qbe.o\
925	cmd/dev/cc/scan.o\
926	cmd/dev/cc/scope.o\
927	cmd/dev/cc/stmt.o\
928	cmd/dev/cc/targ.o\
929	cmd/dev/cc/token.o\
930	cmd/dev/cc/tree.o\
931	cmd/dev/cc/type.o\
932	cmd/dev/cc/utf.o\
933	cmd/dev/cc/util.o
934
935cmd/dev/cc/%.o: cmd/dev/cc/%.c
936	$(CC) -Icmd/dev/cc $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
937
938cmd/dev/cc/cc1: $(CC1_OBJ) $(LIB)
939	$(CC) $(LDFLAGS) -o $@ $(CC1_OBJ) $(LIB) $(LDLIBS)
940
941cmd/dev/cc/cpp: cmd/dev/cc/cpp.o $(CPP_OBJ) $(LIB)
942	$(CC) $(LDFLAGS) -o $@ cmd/dev/cc/cpp.o $(CPP_OBJ) $(LIB) $(LDLIBS)
943
944cmd/dev/config.h cmd/dev/cc/config.h cmd/dev/version.h: cmd/dev/configure
945	sh cmd/dev/configure
946
947$(AS_OBJ) $(LD_OBJ) $(CC1_OBJ) $(CPP_OBJ) cmd/dev/ar/ar.o cmd/dev/cc/cpp.o: cmd/dev/config.h