# Don't edit Makefile!  Use conf-* for configuration.
#
# Generated by spac see http://untroubled.org/spac/

SHELL=/bin/sh

DEFAULT: all

adt/adt_sp.o: compile adt/adt_sp.c adt/common.h
	./compile adt/adt_sp.c

adt/ghash_add.o: compile adt/ghash_add.c adt/ghash.h adt/common.h
	./compile adt/ghash_add.c

adt/ghash_foreach.o: compile adt/ghash_foreach.c adt/ghash.h adt/common.h
	./compile adt/ghash_foreach.c

adt/ghash_free.o: compile adt/ghash_free.c adt/ghash.h adt/common.h
	./compile adt/ghash_free.c

adt/ghash_get.o: compile adt/ghash_get.c adt/ghash.h adt/common.h
	./compile adt/ghash_get.c

adt/ghash_init.o: compile adt/ghash_init.c adt/ghash.h adt/common.h
	./compile adt/ghash_init.c

adt/ghash_insert.o: compile adt/ghash_insert.c adt/ghash.h adt/common.h
	./compile adt/ghash_insert.c

adt/ghash_iter.o: compile adt/ghash_iter.c adt/ghash.h adt/common.h
	./compile adt/ghash_iter.c

adt/ghash_rebuild.o: compile adt/ghash_rebuild.c adt/ghash.h adt/common.h
	./compile adt/ghash_rebuild.c

adt/ghash_rehash.o: compile adt/ghash_rehash.c adt/ghash.h adt/common.h
	./compile adt/ghash_rehash.c

adt/ghash_remove.o: compile adt/ghash_remove.c adt/ghash.h adt/common.h
	./compile adt/ghash_remove.c

adt/ghash_search.o: compile adt/ghash_search.c adt/ghash.h adt/common.h
	./compile adt/ghash_search.c

adt/gqueue_pop.o: compile adt/gqueue_pop.c adt/gqueue.h adt/common.h
	./compile adt/gqueue_pop.c

adt/gqueue_push.o: compile adt/gqueue_push.c adt/gqueue.h adt/common.h
	./compile adt/gqueue_push.c

adt/gqueue_top.o: compile adt/gqueue_top.c adt/gqueue.h adt/common.h
	./compile adt/gqueue_top.c

adt/gstack_pop.o: compile adt/gstack_pop.c adt/gstack.h adt/common.h
	./compile adt/gstack_pop.c

adt/gstack_push.o: compile adt/gstack_push.c adt/gstack.h adt/common.h
	./compile adt/gstack_push.c

adt/gstack_top.o: compile adt/gstack_top.c adt/gstack.h adt/common.h
	./compile adt/gstack_top.c

adt/hashb.o: compile adt/hashb.c adt/common.h
	./compile adt/hashb.c

adt/hashs.o: compile adt/hashs.c adt/common.h
	./compile adt/hashs.c

adt/lib.a: makelib adt/adt_sp.o adt/ghash_add.o adt/ghash_foreach.o adt/ghash_free.o adt/ghash_get.o adt/ghash_init.o adt/ghash_insert.o adt/ghash_iter.o adt/ghash_rebuild.o adt/ghash_rehash.o adt/ghash_remove.o adt/ghash_search.o adt/gqueue_pop.o adt/gqueue_push.o adt/gqueue_top.o adt/gstack_pop.o adt/gstack_push.o adt/gstack_top.o adt/hashb.o adt/hashs.o
	./makelib adt/lib.a adt/adt_sp.o adt/ghash_add.o adt/ghash_foreach.o adt/ghash_free.o adt/ghash_get.o adt/ghash_init.o adt/ghash_insert.o adt/ghash_iter.o adt/ghash_rebuild.o adt/ghash_rehash.o adt/ghash_remove.o adt/ghash_search.o adt/gqueue_pop.o adt/gqueue_push.o adt/gqueue_top.o adt/gstack_pop.o adt/gstack_push.o adt/gstack_top.o adt/hashb.o adt/hashs.o

all: sysdeps.h libraries selftests installer instcheck instshow

base64/asc2bin.o: compile base64/asc2bin.c base64/base64.h str/str.h
	./compile base64/asc2bin.c

base64/bin2asc.o: compile base64/bin2asc.c base64/base64.h str/str.h
	./compile base64/bin2asc.c

base64/decode_line.o: compile base64/decode_line.c base64/base64.h str/str.h
	./compile base64/decode_line.c

base64/decode_part.o: compile base64/decode_part.c base64/base64.h str/str.h
	./compile base64/decode_part.c

base64/encode_line.o: compile base64/encode_line.c base64/base64.h str/str.h
	./compile base64/encode_line.c

base64/encode_part.o: compile base64/encode_part.c base64/base64.h str/str.h
	./compile base64/encode_part.c

base64/lib.a: makelib base64/asc2bin.o base64/bin2asc.o base64/decode_line.o base64/decode_part.o base64/encode_line.o base64/encode_part.o
	./makelib base64/lib.a base64/asc2bin.o base64/bin2asc.o base64/decode_line.o base64/decode_part.o base64/encode_line.o base64/encode_part.o

cdb/cdb.o: compile cdb/cdb.c cdb/cdb.h sysdeps.h
	./compile cdb/cdb.c

cdb/find.o: compile cdb/find.c cdb/cdb.h sysdeps.h uint32.h sysdeps.h uintnn.h
	./compile cdb/find.c

cdb/get.o: compile cdb/get.c cdb/cdb.h sysdeps.h cdb/str.h cdb/cdb.h sysdeps.h str/str.h
	./compile cdb/get.c

cdb/getnext.o: compile cdb/getnext.c cdb/cdb.h sysdeps.h cdb/str.h cdb/cdb.h sysdeps.h str/str.h
	./compile cdb/getnext.c

cdb/hash.o: compile cdb/hash.c cdb/cdb.h sysdeps.h
	./compile cdb/hash.c

cdb/lib.a: makelib cdb/cdb.o cdb/find.o cdb/getnext.o cdb/get.o cdb/hash.o cdb/hash.o cdb/make.o cdb/read.o
	./makelib cdb/lib.a cdb/cdb.o cdb/find.o cdb/getnext.o cdb/get.o cdb/hash.o cdb/hash.o cdb/make.o cdb/read.o

cdb/make.o: compile cdb/make.c cdb/cdb.h sysdeps.h cdb/make.h iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h sysdeps.h uint32.h sysdeps.h uintnn.h
	./compile cdb/make.c

cdb/read.o: compile cdb/read.c cdb/cdb.h sysdeps.h
	./compile cdb/read.c

choose: warn-auto.sh choose.sh
	cat warn-auto.sh choose.sh >choose
	chmod 755 choose

clean: TARGETS
	rm -f `cat TARGETS`

clean-spac: clean AUTOFILES
	rm -f `cat AUTOFILES`

cli/lib.a: makelib cli/main.o
	./makelib cli/lib.a cli/main.o

cli/main.o: compile cli/main.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h systime.h cli/cli.h
	./compile cli/main.c

compile: conf-cc
	(  \
	  echo '#!/bin/sh'; \
	  echo 'source=$$1; shift'; \
	  echo 'base=`echo "$$source" | sed -e s:\\\\.c$$::`'; \
	  echo exec `head -n 1 conf-cc` -I.  '-o $${base}.o -c $$source $${1+"$$@"}'; \
	) >compile
	chmod 755 compile

conf_home.c: conf-home
	head -n 1 conf-home | \
	  sed -e 's/"/\\"/g' \
	      -e 's/^/const char conf_home[] = "/' \
	      -e 's/$$/";/' >conf_home.c

crc-gentab: load crc-gentab.o msg/lib.a iobuf/lib.a libbg-sysdeps.a
	./load crc-gentab msg/lib.a iobuf/lib.a libbg-sysdeps.a  

crc-gentab.o: compile crc-gentab.c sysdeps.h iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h
	./compile crc-gentab.c

crc/crc16_arc_table.c: crc-gentab
	./crc-gentab crc16_arc 16 0x8005 reflected >$@

crc/crc16_arc_table.o: compile crc/crc16_arc_table.c crc/crc16_arc.h crc/gcrc.h sysdeps.h
	./compile crc/crc16_arc_table.c

crc/crc16_ccitt_table.c: crc-gentab
	./crc-gentab crc16_ccitt 16 0x1021 normal >$@

crc/crc16_ccitt_table.o: compile crc/crc16_ccitt_table.c crc/crc16_ccitt.h crc/gcrc.h sysdeps.h
	./compile crc/crc16_ccitt_table.c

crc/crc16_xmodem_table.c: crc-gentab
	./crc-gentab crc16_xmodem 16 0x8408 reflected >$@

crc/crc16_xmodem_table.o: compile crc/crc16_xmodem_table.c crc/crc16_xmodem.h uint16.h sysdeps.h uintnn.h
	./compile crc/crc16_xmodem_table.c

crc/crc32_table.c: crc-gentab
	./crc-gentab crc32 32 0x04C11DB7 reflected >$@

crc/crc32_table.o: compile crc/crc32_table.c crc/crc32.h crc/gcrc.h sysdeps.h uint32.h sysdeps.h uintnn.h
	./compile crc/crc32_table.c

crc/crc32c_table.c: crc-gentab
	./crc-gentab crc32c 32 0x1EDC6F41 reflected >$@

crc/crc32c_table.o: compile crc/crc32c_table.c crc/crc32c.h crc/gcrc.h sysdeps.h
	./compile crc/crc32c_table.c

crc/crc64_table.c: crc-gentab
	./crc-gentab crc64 64 0x42F0E1EBA9EA3693 normal >$@

crc/crc64_table.o: compile crc/crc64_table.c crc/crc64.h crc/gcrc.h sysdeps.h
	./compile crc/crc64_table.c

crc/gcrc16fwd.o: compile crc/gcrc16fwd.c crc/gcrc.h sysdeps.h crc/crc16_ccitt.h crc/gcrc.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crc/gcrc16fwd.c

crc/gcrc16rfl.o: compile crc/gcrc16rfl.c crc/gcrc.h sysdeps.h crc/crc16_arc.h crc/gcrc.h sysdeps.h crc/crc16_xmodem.h uint16.h sysdeps.h uintnn.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crc/gcrc16rfl.c

crc/gcrc32fwd.o: compile crc/gcrc32fwd.c crc/gcrc.h sysdeps.h
	./compile crc/gcrc32fwd.c

crc/gcrc32rfl.o: compile crc/gcrc32rfl.c crc/gcrc.h sysdeps.h crc/crc32.h crc/gcrc.h sysdeps.h uint32.h sysdeps.h uintnn.h crc/crc32c.h crc/gcrc.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crc/gcrc32rfl.c

crc/gcrc64fwd.o: compile crc/gcrc64fwd.c crc/gcrc.h sysdeps.h crc/crc64.h crc/gcrc.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crc/gcrc64fwd.c

crc/gcrc64rfl.o: compile crc/gcrc64rfl.c crc/gcrc.h sysdeps.h
	./compile crc/gcrc64rfl.c

crc/lib.a: makelib crc/gcrc16fwd.o crc/gcrc16rfl.o crc/crc16_arc_table.o crc/crc16_ccitt_table.o crc/crc16_xmodem_table.o crc/gcrc32fwd.o crc/gcrc32rfl.o crc/crc32_table.o crc/crc32c_table.o crc/gcrc64fwd.o crc/gcrc64rfl.o crc/crc64_table.o
	./makelib crc/lib.a crc/gcrc16fwd.o crc/gcrc16rfl.o crc/crc16_arc_table.o crc/crc16_ccitt_table.o crc/crc16_xmodem_table.o crc/gcrc32fwd.o crc/gcrc32rfl.o crc/crc32_table.o crc/crc32c_table.o crc/gcrc64fwd.o crc/gcrc64rfl.o crc/crc64_table.o

crypto/lib.a: makelib crypto/md4.o crypto/md5-crypt.o crypto/md5.o crypto/sha1.o crypto/sha256.o crypto/sha384.o crypto/sha512.o crypto/surf.o
	./makelib crypto/lib.a crypto/md4.o crypto/md5-crypt.o crypto/md5.o crypto/sha1.o crypto/sha256.o crypto/sha384.o crypto/sha512.o crypto/surf.o

crypto/md4.o: compile crypto/md4.c sysdeps.h crypto/md4.h
	./compile crypto/md4.c

crypto/md5-crypt.o: compile crypto/md5-crypt.c crypto/md5.h
	./compile crypto/md5-crypt.c

crypto/md5.o: compile crypto/md5.c sysdeps.h crypto/md5.h
	./compile crypto/md5.c

crypto/sha1.o: compile crypto/sha1.c crypto/sha1.h sysdeps.h uint32.h sysdeps.h uintnn.h uint64.h sysdeps.h uintnn.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crypto/sha1.c

crypto/sha256.o: compile crypto/sha256.c crypto/sha256.h sysdeps.h uint32.h sysdeps.h uintnn.h uint64.h sysdeps.h uintnn.h
	./compile crypto/sha256.c

crypto/sha384.o: compile crypto/sha384.c sysdeps.h crypto/sha384.h sysdeps.h crypto/sha512.h sysdeps.h uint64.h sysdeps.h uintnn.h
	./compile crypto/sha384.c

crypto/sha512.o: compile crypto/sha512.c sysdeps.h crypto/sha512.h sysdeps.h uint64.h sysdeps.h uintnn.h
	./compile crypto/sha512.c

crypto/surf.o: compile crypto/surf.c crypto/surf.h uint32.h sysdeps.h uintnn.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile crypto/surf.c

dict/add.o: compile dict/add.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/add.c

dict/foreach.o: compile dict/foreach.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/foreach.c

dict/free.o: compile dict/free.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/free.c

dict/get.o: compile dict/get.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/get.c

dict/hash.o: compile dict/hash.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/hash.c

dict/init.o: compile dict/init.c dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/init.c

dict/lib.a: makelib dict/add.o dict/foreach.o dict/free.o dict/get.o dict/hash.o dict/init.o dict/load_list.o dict/load_map.o dict/str_free.o
	./makelib dict/lib.a dict/add.o dict/foreach.o dict/free.o dict/get.o dict/hash.o dict/init.o dict/load_list.o dict/load_map.o dict/str_free.o

dict/load_list.o: compile dict/load_list.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h str/str.h dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h dict/load.h dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/load_list.c

dict/load_map.o: compile dict/load_map.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h str/str.h dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h dict/load.h dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/load_map.c

dict/str_free.o: compile dict/str_free.c str/str.h dict/dict.h str/str.h uint32.h sysdeps.h uintnn.h
	./compile dict/str_free.c

dns/config.o: compile dns/config.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h net/ipv4.h sysdeps.h str/str.h dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/config.c

dns/header.o: compile dns/header.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h uint16.h sysdeps.h uintnn.h
	./compile dns/header.c

dns/ip.o: compile dns/ip.c misc/misc.h sysdeps.h dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/ip.c

dns/lib.a: makelib dns/config.o dns/header.o dns/ip.o dns/mx.o dns/name.o dns/name4.o dns/packet.o dns/query.o dns/transmit.o
	./makelib dns/lib.a dns/config.o dns/header.o dns/ip.o dns/mx.o dns/name.o dns/name4.o dns/packet.o dns/query.o dns/transmit.o

dns/mx.o: compile dns/mx.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/mx.c

dns/name.o: compile dns/name.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/name.c

dns/name4.o: compile dns/name4.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/name4.c

dns/packet.o: compile dns/packet.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/packet.c

dns/query.o: compile dns/query.c dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/query.c

dns/transmit.o: compile dns/transmit.c sysdeps.h misc/misc.h sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h dns/dns.h sysdeps.h str/str.h net/ipv4.h sysdeps.h uint16.h sysdeps.h uintnn.h
	./compile dns/transmit.c

fmt/lcase.o: compile fmt/lcase.c fmt/number.h
	./compile fmt/lcase.c

fmt/lib.a: makelib fmt/lcase.o fmt/pad.o fmt/sign_pad.o fmt/sdec.o fmt/slldec.o fmt/sllnum.o fmt/snum.o fmt/ucase.o fmt/udec.o fmt/ulldec.o fmt/uHex.o fmt/uhex.o fmt/ullHex.o fmt/ullhex.o fmt/ullnum.o fmt/unum.o
	./makelib fmt/lib.a fmt/lcase.o fmt/pad.o fmt/sign_pad.o fmt/sdec.o fmt/slldec.o fmt/sllnum.o fmt/snum.o fmt/ucase.o fmt/udec.o fmt/ulldec.o fmt/uHex.o fmt/uhex.o fmt/ullHex.o fmt/ullhex.o fmt/ullnum.o fmt/unum.o

fmt/pad.o: compile fmt/pad.c fmt/number.h
	./compile fmt/pad.c

fmt/sdec.o: compile fmt/sdec.c fmt/number.h
	./compile fmt/sdec.c

fmt/sign_pad.o: compile fmt/sign_pad.c fmt/number.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile fmt/sign_pad.c

fmt/slldec.o: compile fmt/slldec.c fmt/number.h
	./compile fmt/slldec.c

fmt/sllnum.o: compile fmt/sllnum.c fmt/number.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile fmt/sllnum.c

fmt/snum.o: compile fmt/snum.c fmt/number.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile fmt/snum.c

fmt/uHex.o: compile fmt/uHex.c fmt/number.h
	./compile fmt/uHex.c

fmt/ucase.o: compile fmt/ucase.c fmt/number.h
	./compile fmt/ucase.c

fmt/udec.o: compile fmt/udec.c fmt/number.h
	./compile fmt/udec.c

fmt/uhex.o: compile fmt/uhex.c fmt/number.h
	./compile fmt/uhex.c

fmt/ullHex.o: compile fmt/ullHex.c fmt/number.h
	./compile fmt/ullHex.c

fmt/ulldec.o: compile fmt/ulldec.c fmt/number.h
	./compile fmt/ulldec.c

fmt/ullhex.o: compile fmt/ullhex.c fmt/number.h
	./compile fmt/ullhex.c

fmt/ullnum.o: compile fmt/ullnum.c fmt/number.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile fmt/ullnum.c

fmt/unum.o: compile fmt/unum.c fmt/number.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile fmt/unum.c

install/installer.a: makelib install/installer.o
	./makelib install/installer.a install/installer.o

install/installer.o: compile install/installer.c install/installer.h
	./compile install/installer.c

install/instcheck.a: makelib install/instcheck.o
	./makelib install/instcheck.a install/instcheck.o

install/instcheck.o: compile install/instcheck.c install/installer.h
	./compile install/instcheck.c

install/instshow.a: makelib install/instshow.o
	./makelib install/instshow.a install/instshow.o

install/instshow.o: compile install/instshow.c install/installer.h
	./compile install/instshow.c

installer: load insthier.o install/installer.a libbg-sysdeps.a
	./load insthier install/installer.a libbg-sysdeps.a
	mv insthier installer

instcheck: load insthier.o install/instcheck.a libbg-sysdeps.a
	./load insthier install/instcheck.a libbg-sysdeps.a
	mv insthier instcheck

insthier.o: compile insthier.c conf_home.c install/installer.h
	./compile insthier.c

instshow: load insthier.o install/instshow.a libbg-sysdeps.a
	./load insthier install/instshow.a libbg-sysdeps.a
	mv insthier instshow

iobuf/ibuf_copytofd.o: compile iobuf/ibuf_copytofd.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_copytofd.c

iobuf/ibuf_getc.o: compile iobuf/ibuf_getc.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_getc.c

iobuf/ibuf_getnetstring.o: compile iobuf/ibuf_getnetstring.c iobuf/ibuf.h iobuf/common.h str/str.h
	./compile iobuf/ibuf_getnetstring.c

iobuf/ibuf_gets.o: compile iobuf/ibuf_gets.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_gets.c

iobuf/ibuf_getstr.o: compile iobuf/ibuf_getstr.c iobuf/ibuf.h iobuf/common.h str/str.h
	./compile iobuf/ibuf_getstr.c

iobuf/ibuf_getstr_crlf.o: compile iobuf/ibuf_getstr_crlf.c iobuf/ibuf.h iobuf/common.h str/str.h
	./compile iobuf/ibuf_getstr_crlf.c

iobuf/ibuf_getu.o: compile iobuf/ibuf_getu.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_getu.c

iobuf/ibuf_init.o: compile iobuf/ibuf_init.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_init.c

iobuf/ibuf_open.o: compile iobuf/ibuf_open.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_open.c

iobuf/ibuf_openreadclose.o: compile iobuf/ibuf_openreadclose.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h str/str.h
	./compile iobuf/ibuf_openreadclose.c

iobuf/ibuf_peek.o: compile iobuf/ibuf_peek.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_peek.c

iobuf/ibuf_read.o: compile iobuf/ibuf_read.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_read.c

iobuf/ibuf_readall.o: compile iobuf/ibuf_readall.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h str/str.h
	./compile iobuf/ibuf_readall.c

iobuf/ibuf_refill.o: compile iobuf/ibuf_refill.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_refill.c

iobuf/ibuf_seek.o: compile iobuf/ibuf_seek.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_seek.c

iobuf/ibuf_status.o: compile iobuf/ibuf_status.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_status.c

iobuf/ibuf_stdin.o: compile iobuf/ibuf_stdin.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_stdin.c

iobuf/ibuf_tell.o: compile iobuf/ibuf_tell.c iobuf/ibuf.h iobuf/common.h
	./compile iobuf/ibuf_tell.c

iobuf/iobuf_close.o: compile iobuf/iobuf_close.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h
	./compile iobuf/iobuf_close.c

iobuf/iobuf_copy.o: compile iobuf/iobuf_copy.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h
	./compile iobuf/iobuf_copy.c

iobuf/iobuf_init.o: compile iobuf/iobuf_init.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/iobuf_init.c

iobuf/iobuf_timeout.o: compile iobuf/iobuf_timeout.c sysdeps.h iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h
	./compile iobuf/iobuf_timeout.c

iobuf/lib.a: makelib iobuf/ibuf_copytofd.o iobuf/ibuf_getc.o iobuf/ibuf_getnetstring.o iobuf/ibuf_gets.o iobuf/ibuf_getstr_crlf.o iobuf/ibuf_getstr.o iobuf/ibuf_getu.o iobuf/ibuf_init.o iobuf/ibuf_open.o iobuf/ibuf_openreadclose.o iobuf/ibuf_peek.o iobuf/ibuf_read.o iobuf/ibuf_readall.o iobuf/ibuf_refill.o iobuf/ibuf_seek.o iobuf/ibuf_status.o iobuf/ibuf_stdin.o iobuf/ibuf_tell.o iobuf/iobuf_close.o iobuf/iobuf_copy.o iobuf/iobuf_init.o iobuf/iobuf_timeout.o iobuf/obuf_close.o iobuf/obuf_copyfromfd.o iobuf/obuf_digits.o iobuf/obuf_endl.o iobuf/obuf_flush.o iobuf/obuf_init.o iobuf/obuf_open.o iobuf/obuf_pad.o iobuf/obuf_put2s.o iobuf/obuf_put3s.o iobuf/obuf_put4s.o iobuf/obuf_put5s.o iobuf/obuf_put6s.o iobuf/obuf_put7s.o iobuf/obuf_putns.o iobuf/obuf_putc.o iobuf/obuf_putnetstring.o iobuf/obuf_putsflush.o iobuf/obuf_putsllnumw.o iobuf/obuf_putsnumw.o iobuf/obuf_putullnumw.o iobuf/obuf_putunumw.o iobuf/obuf_seek.o iobuf/obuf_sign_pad.o iobuf/obuf_stderr.o iobuf/obuf_stdout.o iobuf/obuf_sync.o iobuf/obuf_write.o
	./makelib iobuf/lib.a iobuf/ibuf_copytofd.o iobuf/ibuf_getc.o iobuf/ibuf_getnetstring.o iobuf/ibuf_gets.o iobuf/ibuf_getstr_crlf.o iobuf/ibuf_getstr.o iobuf/ibuf_getu.o iobuf/ibuf_init.o iobuf/ibuf_open.o iobuf/ibuf_openreadclose.o iobuf/ibuf_peek.o iobuf/ibuf_read.o iobuf/ibuf_readall.o iobuf/ibuf_refill.o iobuf/ibuf_seek.o iobuf/ibuf_status.o iobuf/ibuf_stdin.o iobuf/ibuf_tell.o iobuf/iobuf_close.o iobuf/iobuf_copy.o iobuf/iobuf_init.o iobuf/iobuf_timeout.o iobuf/obuf_close.o iobuf/obuf_copyfromfd.o iobuf/obuf_digits.o iobuf/obuf_endl.o iobuf/obuf_flush.o iobuf/obuf_init.o iobuf/obuf_open.o iobuf/obuf_pad.o iobuf/obuf_put2s.o iobuf/obuf_put3s.o iobuf/obuf_put4s.o iobuf/obuf_put5s.o iobuf/obuf_put6s.o iobuf/obuf_put7s.o iobuf/obuf_putns.o iobuf/obuf_putc.o iobuf/obuf_putnetstring.o iobuf/obuf_putsflush.o iobuf/obuf_putsllnumw.o iobuf/obuf_putsnumw.o iobuf/obuf_putullnumw.o iobuf/obuf_putunumw.o iobuf/obuf_seek.o iobuf/obuf_sign_pad.o iobuf/obuf_stderr.o iobuf/obuf_stdout.o iobuf/obuf_sync.o iobuf/obuf_write.o

iobuf/obuf_close.o: compile iobuf/obuf_close.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_close.c

iobuf/obuf_copyfromfd.o: compile iobuf/obuf_copyfromfd.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_copyfromfd.c

iobuf/obuf_digits.o: compile iobuf/obuf_digits.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_digits.c

iobuf/obuf_endl.o: compile iobuf/obuf_endl.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_endl.c

iobuf/obuf_flush.o: compile iobuf/obuf_flush.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_flush.c

iobuf/obuf_init.o: compile iobuf/obuf_init.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_init.c

iobuf/obuf_open.o: compile iobuf/obuf_open.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_open.c

iobuf/obuf_pad.o: compile iobuf/obuf_pad.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_pad.c

iobuf/obuf_put2s.o: compile iobuf/obuf_put2s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put2s.c

iobuf/obuf_put3s.o: compile iobuf/obuf_put3s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put3s.c

iobuf/obuf_put4s.o: compile iobuf/obuf_put4s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put4s.c

iobuf/obuf_put5s.o: compile iobuf/obuf_put5s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put5s.c

iobuf/obuf_put6s.o: compile iobuf/obuf_put6s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put6s.c

iobuf/obuf_put7s.o: compile iobuf/obuf_put7s.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_put7s.c

iobuf/obuf_putc.o: compile iobuf/obuf_putc.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_putc.c

iobuf/obuf_putnetstring.o: compile iobuf/obuf_putnetstring.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_putnetstring.c

iobuf/obuf_putns.o: compile iobuf/obuf_putns.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_putns.c

iobuf/obuf_putsflush.o: compile iobuf/obuf_putsflush.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_putsflush.c

iobuf/obuf_putsllnumw.o: compile iobuf/obuf_putsllnumw.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_putsllnumw.c

iobuf/obuf_putsnumw.o: compile iobuf/obuf_putsnumw.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_putsnumw.c

iobuf/obuf_putullnumw.o: compile iobuf/obuf_putullnumw.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_putullnumw.c

iobuf/obuf_putunumw.o: compile iobuf/obuf_putunumw.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_putunumw.c

iobuf/obuf_seek.o: compile iobuf/obuf_seek.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_seek.c

iobuf/obuf_sign_pad.o: compile iobuf/obuf_sign_pad.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_sign_pad.c

iobuf/obuf_stderr.o: compile iobuf/obuf_stderr.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_stderr.c

iobuf/obuf_stdout.o: compile iobuf/obuf_stdout.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_stdout.c

iobuf/obuf_sync.o: compile iobuf/obuf_sync.c iobuf/obuf.h iobuf/common.h
	./compile iobuf/obuf_sync.c

iobuf/obuf_write.o: compile iobuf/obuf_write.c iobuf/obuf.h iobuf/common.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile iobuf/obuf_write.c

libbg-sysdeps.a: makelib sys/getpeereid.o sys/iopoll.o sys/setenv.o uint16/get.o uint16/pack.o uint16/unpack.o uint32/get_lsb.o uint32/get_msb.o uint32/pack_lsb.o uint32/pack_msb.o uint32/unpack_lsb.o uint32/unpack_msb.o uint64/get_lsb.o uint64/get_msb.o uint64/pack_lsb.o uint64/pack_msb.o uint64/unpack_lsb.o uint64/unpack_msb.o sys/unsetenv.o
	./makelib libbg-sysdeps.a sys/getpeereid.o sys/iopoll.o sys/setenv.o uint16/get.o uint16/pack.o uint16/unpack.o uint32/get_lsb.o uint32/get_msb.o uint32/pack_lsb.o uint32/pack_msb.o uint32/unpack_lsb.o uint32/unpack_msb.o uint64/get_lsb.o uint64/get_msb.o uint64/pack_lsb.o uint64/pack_msb.o uint64/unpack_lsb.o uint64/unpack_msb.o sys/unsetenv.o

libbg.a: makelib adt/adt_sp.o adt/ghash_add.o adt/ghash_foreach.o adt/ghash_free.o adt/ghash_get.o adt/ghash_init.o adt/ghash_insert.o adt/ghash_iter.o adt/ghash_rebuild.o adt/ghash_rehash.o adt/ghash_remove.o adt/ghash_search.o adt/gqueue_pop.o adt/gqueue_push.o adt/gqueue_top.o adt/gstack_pop.o adt/gstack_push.o adt/gstack_top.o adt/hashb.o adt/hashs.o base64/asc2bin.o base64/bin2asc.o base64/decode_line.o base64/decode_part.o base64/encode_line.o base64/encode_part.o cdb/cdb.o cdb/find.o cdb/get.o cdb/getnext.o cdb/hash.o cdb/make.o cdb/read.o crc/crc16_arc_table.o crc/crc16_ccitt_table.o crc/crc16_xmodem_table.o crc/crc32_table.o crc/crc32c_table.o crc/crc64_table.o crc/gcrc16fwd.o crc/gcrc16rfl.o crc/gcrc32fwd.o crc/gcrc32rfl.o crc/gcrc64fwd.o crc/gcrc64rfl.o crypto/md4.o crypto/md5-crypt.o crypto/md5.o crypto/sha1.o crypto/sha256.o crypto/sha384.o crypto/sha512.o crypto/surf.o dict/add.o dict/foreach.o dict/free.o dict/get.o dict/hash.o dict/init.o dict/load_list.o dict/load_map.o dict/str_free.o fmt/lcase.o fmt/pad.o fmt/sdec.o fmt/sign_pad.o fmt/slldec.o fmt/sllnum.o fmt/snum.o fmt/uHex.o fmt/ucase.o fmt/udec.o fmt/uhex.o fmt/ullHex.o fmt/ulldec.o fmt/ullhex.o fmt/ullnum.o fmt/unum.o iobuf/ibuf_copytofd.o iobuf/ibuf_getc.o iobuf/ibuf_getnetstring.o iobuf/ibuf_gets.o iobuf/ibuf_getstr.o iobuf/ibuf_getstr_crlf.o iobuf/ibuf_getu.o iobuf/ibuf_init.o iobuf/ibuf_open.o iobuf/ibuf_openreadclose.o iobuf/ibuf_peek.o iobuf/ibuf_read.o iobuf/ibuf_readall.o iobuf/ibuf_refill.o iobuf/ibuf_seek.o iobuf/ibuf_status.o iobuf/ibuf_stdin.o iobuf/ibuf_tell.o iobuf/iobuf_close.o iobuf/iobuf_copy.o iobuf/iobuf_init.o iobuf/iobuf_timeout.o iobuf/obuf_close.o iobuf/obuf_copyfromfd.o iobuf/obuf_digits.o iobuf/obuf_endl.o iobuf/obuf_flush.o iobuf/obuf_init.o iobuf/obuf_open.o iobuf/obuf_pad.o iobuf/obuf_put2s.o iobuf/obuf_put3s.o iobuf/obuf_put4s.o iobuf/obuf_put5s.o iobuf/obuf_put6s.o iobuf/obuf_put7s.o iobuf/obuf_putc.o iobuf/obuf_putnetstring.o iobuf/obuf_putns.o iobuf/obuf_putsflush.o iobuf/obuf_putsllnumw.o iobuf/obuf_putsnumw.o iobuf/obuf_putullnumw.o iobuf/obuf_putunumw.o iobuf/obuf_seek.o iobuf/obuf_sign_pad.o iobuf/obuf_stderr.o iobuf/obuf_stdout.o iobuf/obuf_sync.o iobuf/obuf_write.o misc/random.o misc/strtou.o misc/ucspi.o misc/utoa.o misc/utoa2.o msg/common.o msg/debug.o msg/die.o msg/error.o msg/oom.o msg/warn.o msg/wrap_chdir.o msg/wrap_exit.o msg/wrap_str.o net/accept4.o net/accept6.o net/acceptu.o net/bind4.o net/bind6.o net/bindu.o net/broadcast.o net/connect4.o net/connect4_timeout.o net/connect6.o net/connect6_timeout.o net/connected.o net/connectu.o net/connectu_timeout.o net/cork.o net/getaddr4.o net/getaddr6.o net/ipv4_addr.o net/ipv4_format.o net/ipv4_scan.o net/ipv6_addr.o net/ipv6_format.o net/ipv6_scan.o net/linger.o net/listen.o net/notcpdelay.o net/pairdgm.o net/pairstr.o net/recv4.o net/recv6.o net/recvfd.o net/recvu.o net/resolve_error.o net/resolve_ipv4addr.o net/resolve_ipv4name.o net/reuse.o net/send4.o net/send6.o net/sendfd.o net/sendu.o net/shutdown.o net/tcp4.o net/tcp6.o net/udp4.o net/udp6.o net/uncork.o net/unixdgm.o net/unixstr.o path/contains.o path/fnmatch.o path/match.o path/merge.o path/mktemp.o str/alloc.o str/buildmap.o str/case_glob.o str/case_match.o str/case_start.o str/cat.o str/cat2s.o str/cat3s.o str/cat4s.o str/cat5s.o str/cat6s.o str/catiw.o str/catiwll.o str/catns.o str/catsllnum.o str/catsnum.o str/catullnum.o str/catunum.o str/catuw.o str/catuwll.o str/catxw.o str/catxwll.o str/cmp.o str/copy.o str/copy2s.o str/copy3s.o str/copy4s.o str/copy5s.o str/copy6s.o str/copyns.o str/count.o str/countof.o str/cut.o str/diff.o str/digits.o str/env_find.o str/env_from_array.o str/env_from_string.o str/env_get.o str/env_make_array.o str/env_put.o str/env_set.o str/env_unset.o str/findnext.o str/findnextof.o str/findprev.o str/findprevof.o str/free.o str/glob.o str/init.o str/iter_advance.o str/iter_start.o str/iter_valid.o str/join.o str/lower.o str/lstrip.o str/match.o str/rstrip.o str/sort.o str/splice.o str/start.o str/subst.o str/truncate.o str/upper.o str/xlate.o unix/cloexec_off.o unix/cloexec_on.o unix/fcntl_fd_off.o unix/fcntl_fd_on.o unix/fcntl_fl_off.o unix/fcntl_fl_on.o unix/nonblock_off.o unix/nonblock_on.o unix/selfpipe.o unix/sig_alarm.o unix/sig_all.o unix/sig_block.o unix/sig_bug.o unix/sig_catch.o unix/sig_child.o unix/sig_hup.o unix/sig_int.o unix/sig_misc.o unix/sig_pipe.o unix/sig_quit.o unix/sig_suspend.o unix/sig_term.o unix/trigger_pull.o unix/trigger_set.o vmailmgr/req_arg.o vmailmgr/req_init.o vmailmgr/req_write.o vmailmgr/resp_read.o vmailmgr/vpwentry_export.o vmailmgr/vpwentry_free.o vmailmgr/vpwentry_import.o
	rm -rf libbg.a.tmp
	mkdir libbg.a.tmp
	@echo ... linking objects into libbg.a.tmp ...
	@ln adt/adt_sp.o libbg.a.tmp/adt_adt_sp.o
	@ln adt/ghash_add.o libbg.a.tmp/adt_ghash_add.o
	@ln adt/ghash_foreach.o libbg.a.tmp/adt_ghash_foreach.o
	@ln adt/ghash_free.o libbg.a.tmp/adt_ghash_free.o
	@ln adt/ghash_get.o libbg.a.tmp/adt_ghash_get.o
	@ln adt/ghash_init.o libbg.a.tmp/adt_ghash_init.o
	@ln adt/ghash_insert.o libbg.a.tmp/adt_ghash_insert.o
	@ln adt/ghash_iter.o libbg.a.tmp/adt_ghash_iter.o
	@ln adt/ghash_rebuild.o libbg.a.tmp/adt_ghash_rebuild.o
	@ln adt/ghash_rehash.o libbg.a.tmp/adt_ghash_rehash.o
	@ln adt/ghash_remove.o libbg.a.tmp/adt_ghash_remove.o
	@ln adt/ghash_search.o libbg.a.tmp/adt_ghash_search.o
	@ln adt/gqueue_pop.o libbg.a.tmp/adt_gqueue_pop.o
	@ln adt/gqueue_push.o libbg.a.tmp/adt_gqueue_push.o
	@ln adt/gqueue_top.o libbg.a.tmp/adt_gqueue_top.o
	@ln adt/gstack_pop.o libbg.a.tmp/adt_gstack_pop.o
	@ln adt/gstack_push.o libbg.a.tmp/adt_gstack_push.o
	@ln adt/gstack_top.o libbg.a.tmp/adt_gstack_top.o
	@ln adt/hashb.o libbg.a.tmp/adt_hashb.o
	@ln adt/hashs.o libbg.a.tmp/adt_hashs.o
	@ln base64/asc2bin.o libbg.a.tmp/base64_asc2bin.o
	@ln base64/bin2asc.o libbg.a.tmp/base64_bin2asc.o
	@ln base64/decode_line.o libbg.a.tmp/base64_decode_line.o
	@ln base64/decode_part.o libbg.a.tmp/base64_decode_part.o
	@ln base64/encode_line.o libbg.a.tmp/base64_encode_line.o
	@ln base64/encode_part.o libbg.a.tmp/base64_encode_part.o
	@ln cdb/cdb.o libbg.a.tmp/cdb_cdb.o
	@ln cdb/find.o libbg.a.tmp/cdb_find.o
	@ln cdb/get.o libbg.a.tmp/cdb_get.o
	@ln cdb/getnext.o libbg.a.tmp/cdb_getnext.o
	@ln cdb/hash.o libbg.a.tmp/cdb_hash.o
	@ln cdb/make.o libbg.a.tmp/cdb_make.o
	@ln cdb/read.o libbg.a.tmp/cdb_read.o
	@ln crc/crc16_arc_table.o libbg.a.tmp/crc_crc16_arc_table.o
	@ln crc/crc16_ccitt_table.o libbg.a.tmp/crc_crc16_ccitt_table.o
	@ln crc/crc16_xmodem_table.o libbg.a.tmp/crc_crc16_xmodem_table.o
	@ln crc/crc32_table.o libbg.a.tmp/crc_crc32_table.o
	@ln crc/crc32c_table.o libbg.a.tmp/crc_crc32c_table.o
	@ln crc/crc64_table.o libbg.a.tmp/crc_crc64_table.o
	@ln crc/gcrc16fwd.o libbg.a.tmp/crc_gcrc16fwd.o
	@ln crc/gcrc16rfl.o libbg.a.tmp/crc_gcrc16rfl.o
	@ln crc/gcrc32fwd.o libbg.a.tmp/crc_gcrc32fwd.o
	@ln crc/gcrc32rfl.o libbg.a.tmp/crc_gcrc32rfl.o
	@ln crc/gcrc64fwd.o libbg.a.tmp/crc_gcrc64fwd.o
	@ln crc/gcrc64rfl.o libbg.a.tmp/crc_gcrc64rfl.o
	@ln crypto/md4.o libbg.a.tmp/crypto_md4.o
	@ln crypto/md5-crypt.o libbg.a.tmp/crypto_md5-crypt.o
	@ln crypto/md5.o libbg.a.tmp/crypto_md5.o
	@ln crypto/sha1.o libbg.a.tmp/crypto_sha1.o
	@ln crypto/sha256.o libbg.a.tmp/crypto_sha256.o
	@ln crypto/sha384.o libbg.a.tmp/crypto_sha384.o
	@ln crypto/sha512.o libbg.a.tmp/crypto_sha512.o
	@ln crypto/surf.o libbg.a.tmp/crypto_surf.o
	@ln dict/add.o libbg.a.tmp/dict_add.o
	@ln dict/foreach.o libbg.a.tmp/dict_foreach.o
	@ln dict/free.o libbg.a.tmp/dict_free.o
	@ln dict/get.o libbg.a.tmp/dict_get.o
	@ln dict/hash.o libbg.a.tmp/dict_hash.o
	@ln dict/init.o libbg.a.tmp/dict_init.o
	@ln dict/load_list.o libbg.a.tmp/dict_load_list.o
	@ln dict/load_map.o libbg.a.tmp/dict_load_map.o
	@ln dict/str_free.o libbg.a.tmp/dict_str_free.o
	@ln fmt/lcase.o libbg.a.tmp/fmt_lcase.o
	@ln fmt/pad.o libbg.a.tmp/fmt_pad.o
	@ln fmt/sdec.o libbg.a.tmp/fmt_sdec.o
	@ln fmt/sign_pad.o libbg.a.tmp/fmt_sign_pad.o
	@ln fmt/slldec.o libbg.a.tmp/fmt_slldec.o
	@ln fmt/sllnum.o libbg.a.tmp/fmt_sllnum.o
	@ln fmt/snum.o libbg.a.tmp/fmt_snum.o
	@ln fmt/uHex.o libbg.a.tmp/fmt_uHex.o
	@ln fmt/ucase.o libbg.a.tmp/fmt_ucase.o
	@ln fmt/udec.o libbg.a.tmp/fmt_udec.o
	@ln fmt/uhex.o libbg.a.tmp/fmt_uhex.o
	@ln fmt/ullHex.o libbg.a.tmp/fmt_ullHex.o
	@ln fmt/ulldec.o libbg.a.tmp/fmt_ulldec.o
	@ln fmt/ullhex.o libbg.a.tmp/fmt_ullhex.o
	@ln fmt/ullnum.o libbg.a.tmp/fmt_ullnum.o
	@ln fmt/unum.o libbg.a.tmp/fmt_unum.o
	@ln iobuf/ibuf_copytofd.o libbg.a.tmp/iobuf_ibuf_copytofd.o
	@ln iobuf/ibuf_getc.o libbg.a.tmp/iobuf_ibuf_getc.o
	@ln iobuf/ibuf_getnetstring.o libbg.a.tmp/iobuf_ibuf_getnetstring.o
	@ln iobuf/ibuf_gets.o libbg.a.tmp/iobuf_ibuf_gets.o
	@ln iobuf/ibuf_getstr.o libbg.a.tmp/iobuf_ibuf_getstr.o
	@ln iobuf/ibuf_getstr_crlf.o libbg.a.tmp/iobuf_ibuf_getstr_crlf.o
	@ln iobuf/ibuf_getu.o libbg.a.tmp/iobuf_ibuf_getu.o
	@ln iobuf/ibuf_init.o libbg.a.tmp/iobuf_ibuf_init.o
	@ln iobuf/ibuf_open.o libbg.a.tmp/iobuf_ibuf_open.o
	@ln iobuf/ibuf_openreadclose.o libbg.a.tmp/iobuf_ibuf_openreadclose.o
	@ln iobuf/ibuf_peek.o libbg.a.tmp/iobuf_ibuf_peek.o
	@ln iobuf/ibuf_read.o libbg.a.tmp/iobuf_ibuf_read.o
	@ln iobuf/ibuf_readall.o libbg.a.tmp/iobuf_ibuf_readall.o
	@ln iobuf/ibuf_refill.o libbg.a.tmp/iobuf_ibuf_refill.o
	@ln iobuf/ibuf_seek.o libbg.a.tmp/iobuf_ibuf_seek.o
	@ln iobuf/ibuf_status.o libbg.a.tmp/iobuf_ibuf_status.o
	@ln iobuf/ibuf_stdin.o libbg.a.tmp/iobuf_ibuf_stdin.o
	@ln iobuf/ibuf_tell.o libbg.a.tmp/iobuf_ibuf_tell.o
	@ln iobuf/iobuf_close.o libbg.a.tmp/iobuf_iobuf_close.o
	@ln iobuf/iobuf_copy.o libbg.a.tmp/iobuf_iobuf_copy.o
	@ln iobuf/iobuf_init.o libbg.a.tmp/iobuf_iobuf_init.o
	@ln iobuf/iobuf_timeout.o libbg.a.tmp/iobuf_iobuf_timeout.o
	@ln iobuf/obuf_close.o libbg.a.tmp/iobuf_obuf_close.o
	@ln iobuf/obuf_copyfromfd.o libbg.a.tmp/iobuf_obuf_copyfromfd.o
	@ln iobuf/obuf_digits.o libbg.a.tmp/iobuf_obuf_digits.o
	@ln iobuf/obuf_endl.o libbg.a.tmp/iobuf_obuf_endl.o
	@ln iobuf/obuf_flush.o libbg.a.tmp/iobuf_obuf_flush.o
	@ln iobuf/obuf_init.o libbg.a.tmp/iobuf_obuf_init.o
	@ln iobuf/obuf_open.o libbg.a.tmp/iobuf_obuf_open.o
	@ln iobuf/obuf_pad.o libbg.a.tmp/iobuf_obuf_pad.o
	@ln iobuf/obuf_put2s.o libbg.a.tmp/iobuf_obuf_put2s.o
	@ln iobuf/obuf_put3s.o libbg.a.tmp/iobuf_obuf_put3s.o
	@ln iobuf/obuf_put4s.o libbg.a.tmp/iobuf_obuf_put4s.o
	@ln iobuf/obuf_put5s.o libbg.a.tmp/iobuf_obuf_put5s.o
	@ln iobuf/obuf_put6s.o libbg.a.tmp/iobuf_obuf_put6s.o
	@ln iobuf/obuf_put7s.o libbg.a.tmp/iobuf_obuf_put7s.o
	@ln iobuf/obuf_putc.o libbg.a.tmp/iobuf_obuf_putc.o
	@ln iobuf/obuf_putnetstring.o libbg.a.tmp/iobuf_obuf_putnetstring.o
	@ln iobuf/obuf_putns.o libbg.a.tmp/iobuf_obuf_putns.o
	@ln iobuf/obuf_putsflush.o libbg.a.tmp/iobuf_obuf_putsflush.o
	@ln iobuf/obuf_putsllnumw.o libbg.a.tmp/iobuf_obuf_putsllnumw.o
	@ln iobuf/obuf_putsnumw.o libbg.a.tmp/iobuf_obuf_putsnumw.o
	@ln iobuf/obuf_putullnumw.o libbg.a.tmp/iobuf_obuf_putullnumw.o
	@ln iobuf/obuf_putunumw.o libbg.a.tmp/iobuf_obuf_putunumw.o
	@ln iobuf/obuf_seek.o libbg.a.tmp/iobuf_obuf_seek.o
	@ln iobuf/obuf_sign_pad.o libbg.a.tmp/iobuf_obuf_sign_pad.o
	@ln iobuf/obuf_stderr.o libbg.a.tmp/iobuf_obuf_stderr.o
	@ln iobuf/obuf_stdout.o libbg.a.tmp/iobuf_obuf_stdout.o
	@ln iobuf/obuf_sync.o libbg.a.tmp/iobuf_obuf_sync.o
	@ln iobuf/obuf_write.o libbg.a.tmp/iobuf_obuf_write.o
	@ln misc/random.o libbg.a.tmp/misc_random.o
	@ln misc/strtou.o libbg.a.tmp/misc_strtou.o
	@ln misc/ucspi.o libbg.a.tmp/misc_ucspi.o
	@ln misc/utoa.o libbg.a.tmp/misc_utoa.o
	@ln misc/utoa2.o libbg.a.tmp/misc_utoa2.o
	@ln msg/common.o libbg.a.tmp/msg_common.o
	@ln msg/debug.o libbg.a.tmp/msg_debug.o
	@ln msg/die.o libbg.a.tmp/msg_die.o
	@ln msg/error.o libbg.a.tmp/msg_error.o
	@ln msg/oom.o libbg.a.tmp/msg_oom.o
	@ln msg/warn.o libbg.a.tmp/msg_warn.o
	@ln msg/wrap_chdir.o libbg.a.tmp/msg_wrap_chdir.o
	@ln msg/wrap_exit.o libbg.a.tmp/msg_wrap_exit.o
	@ln msg/wrap_str.o libbg.a.tmp/msg_wrap_str.o
	@ln net/accept4.o libbg.a.tmp/net_accept4.o
	@ln net/accept6.o libbg.a.tmp/net_accept6.o
	@ln net/acceptu.o libbg.a.tmp/net_acceptu.o
	@ln net/bind4.o libbg.a.tmp/net_bind4.o
	@ln net/bind6.o libbg.a.tmp/net_bind6.o
	@ln net/bindu.o libbg.a.tmp/net_bindu.o
	@ln net/broadcast.o libbg.a.tmp/net_broadcast.o
	@ln net/connect4.o libbg.a.tmp/net_connect4.o
	@ln net/connect4_timeout.o libbg.a.tmp/net_connect4_timeout.o
	@ln net/connect6.o libbg.a.tmp/net_connect6.o
	@ln net/connect6_timeout.o libbg.a.tmp/net_connect6_timeout.o
	@ln net/connected.o libbg.a.tmp/net_connected.o
	@ln net/connectu.o libbg.a.tmp/net_connectu.o
	@ln net/connectu_timeout.o libbg.a.tmp/net_connectu_timeout.o
	@ln net/cork.o libbg.a.tmp/net_cork.o
	@ln net/getaddr4.o libbg.a.tmp/net_getaddr4.o
	@ln net/getaddr6.o libbg.a.tmp/net_getaddr6.o
	@ln net/ipv4_addr.o libbg.a.tmp/net_ipv4_addr.o
	@ln net/ipv4_format.o libbg.a.tmp/net_ipv4_format.o
	@ln net/ipv4_scan.o libbg.a.tmp/net_ipv4_scan.o
	@ln net/ipv6_addr.o libbg.a.tmp/net_ipv6_addr.o
	@ln net/ipv6_format.o libbg.a.tmp/net_ipv6_format.o
	@ln net/ipv6_scan.o libbg.a.tmp/net_ipv6_scan.o
	@ln net/linger.o libbg.a.tmp/net_linger.o
	@ln net/listen.o libbg.a.tmp/net_listen.o
	@ln net/notcpdelay.o libbg.a.tmp/net_notcpdelay.o
	@ln net/pairdgm.o libbg.a.tmp/net_pairdgm.o
	@ln net/pairstr.o libbg.a.tmp/net_pairstr.o
	@ln net/recv4.o libbg.a.tmp/net_recv4.o
	@ln net/recv6.o libbg.a.tmp/net_recv6.o
	@ln net/recvfd.o libbg.a.tmp/net_recvfd.o
	@ln net/recvu.o libbg.a.tmp/net_recvu.o
	@ln net/resolve_error.o libbg.a.tmp/net_resolve_error.o
	@ln net/resolve_ipv4addr.o libbg.a.tmp/net_resolve_ipv4addr.o
	@ln net/resolve_ipv4name.o libbg.a.tmp/net_resolve_ipv4name.o
	@ln net/reuse.o libbg.a.tmp/net_reuse.o
	@ln net/send4.o libbg.a.tmp/net_send4.o
	@ln net/send6.o libbg.a.tmp/net_send6.o
	@ln net/sendfd.o libbg.a.tmp/net_sendfd.o
	@ln net/sendu.o libbg.a.tmp/net_sendu.o
	@ln net/shutdown.o libbg.a.tmp/net_shutdown.o
	@ln net/tcp4.o libbg.a.tmp/net_tcp4.o
	@ln net/tcp6.o libbg.a.tmp/net_tcp6.o
	@ln net/udp4.o libbg.a.tmp/net_udp4.o
	@ln net/udp6.o libbg.a.tmp/net_udp6.o
	@ln net/uncork.o libbg.a.tmp/net_uncork.o
	@ln net/unixdgm.o libbg.a.tmp/net_unixdgm.o
	@ln net/unixstr.o libbg.a.tmp/net_unixstr.o
	@ln path/contains.o libbg.a.tmp/path_contains.o
	@ln path/fnmatch.o libbg.a.tmp/path_fnmatch.o
	@ln path/match.o libbg.a.tmp/path_match.o
	@ln path/merge.o libbg.a.tmp/path_merge.o
	@ln path/mktemp.o libbg.a.tmp/path_mktemp.o
	@ln str/alloc.o libbg.a.tmp/str_alloc.o
	@ln str/buildmap.o libbg.a.tmp/str_buildmap.o
	@ln str/case_glob.o libbg.a.tmp/str_case_glob.o
	@ln str/case_match.o libbg.a.tmp/str_case_match.o
	@ln str/case_start.o libbg.a.tmp/str_case_start.o
	@ln str/cat.o libbg.a.tmp/str_cat.o
	@ln str/cat2s.o libbg.a.tmp/str_cat2s.o
	@ln str/cat3s.o libbg.a.tmp/str_cat3s.o
	@ln str/cat4s.o libbg.a.tmp/str_cat4s.o
	@ln str/cat5s.o libbg.a.tmp/str_cat5s.o
	@ln str/cat6s.o libbg.a.tmp/str_cat6s.o
	@ln str/catiw.o libbg.a.tmp/str_catiw.o
	@ln str/catiwll.o libbg.a.tmp/str_catiwll.o
	@ln str/catns.o libbg.a.tmp/str_catns.o
	@ln str/catsllnum.o libbg.a.tmp/str_catsllnum.o
	@ln str/catsnum.o libbg.a.tmp/str_catsnum.o
	@ln str/catullnum.o libbg.a.tmp/str_catullnum.o
	@ln str/catunum.o libbg.a.tmp/str_catunum.o
	@ln str/catuw.o libbg.a.tmp/str_catuw.o
	@ln str/catuwll.o libbg.a.tmp/str_catuwll.o
	@ln str/catxw.o libbg.a.tmp/str_catxw.o
	@ln str/catxwll.o libbg.a.tmp/str_catxwll.o
	@ln str/cmp.o libbg.a.tmp/str_cmp.o
	@ln str/copy.o libbg.a.tmp/str_copy.o
	@ln str/copy2s.o libbg.a.tmp/str_copy2s.o
	@ln str/copy3s.o libbg.a.tmp/str_copy3s.o
	@ln str/copy4s.o libbg.a.tmp/str_copy4s.o
	@ln str/copy5s.o libbg.a.tmp/str_copy5s.o
	@ln str/copy6s.o libbg.a.tmp/str_copy6s.o
	@ln str/copyns.o libbg.a.tmp/str_copyns.o
	@ln str/count.o libbg.a.tmp/str_count.o
	@ln str/countof.o libbg.a.tmp/str_countof.o
	@ln str/cut.o libbg.a.tmp/str_cut.o
	@ln str/diff.o libbg.a.tmp/str_diff.o
	@ln str/digits.o libbg.a.tmp/str_digits.o
	@ln str/env_find.o libbg.a.tmp/str_env_find.o
	@ln str/env_from_array.o libbg.a.tmp/str_env_from_array.o
	@ln str/env_from_string.o libbg.a.tmp/str_env_from_string.o
	@ln str/env_get.o libbg.a.tmp/str_env_get.o
	@ln str/env_make_array.o libbg.a.tmp/str_env_make_array.o
	@ln str/env_put.o libbg.a.tmp/str_env_put.o
	@ln str/env_set.o libbg.a.tmp/str_env_set.o
	@ln str/env_unset.o libbg.a.tmp/str_env_unset.o
	@ln str/findnext.o libbg.a.tmp/str_findnext.o
	@ln str/findnextof.o libbg.a.tmp/str_findnextof.o
	@ln str/findprev.o libbg.a.tmp/str_findprev.o
	@ln str/findprevof.o libbg.a.tmp/str_findprevof.o
	@ln str/free.o libbg.a.tmp/str_free.o
	@ln str/glob.o libbg.a.tmp/str_glob.o
	@ln str/init.o libbg.a.tmp/str_init.o
	@ln str/iter_advance.o libbg.a.tmp/str_iter_advance.o
	@ln str/iter_start.o libbg.a.tmp/str_iter_start.o
	@ln str/iter_valid.o libbg.a.tmp/str_iter_valid.o
	@ln str/join.o libbg.a.tmp/str_join.o
	@ln str/lower.o libbg.a.tmp/str_lower.o
	@ln str/lstrip.o libbg.a.tmp/str_lstrip.o
	@ln str/match.o libbg.a.tmp/str_match.o
	@ln str/rstrip.o libbg.a.tmp/str_rstrip.o
	@ln str/sort.o libbg.a.tmp/str_sort.o
	@ln str/splice.o libbg.a.tmp/str_splice.o
	@ln str/start.o libbg.a.tmp/str_start.o
	@ln str/subst.o libbg.a.tmp/str_subst.o
	@ln str/truncate.o libbg.a.tmp/str_truncate.o
	@ln str/upper.o libbg.a.tmp/str_upper.o
	@ln str/xlate.o libbg.a.tmp/str_xlate.o
	@ln unix/cloexec_off.o libbg.a.tmp/unix_cloexec_off.o
	@ln unix/cloexec_on.o libbg.a.tmp/unix_cloexec_on.o
	@ln unix/fcntl_fd_off.o libbg.a.tmp/unix_fcntl_fd_off.o
	@ln unix/fcntl_fd_on.o libbg.a.tmp/unix_fcntl_fd_on.o
	@ln unix/fcntl_fl_off.o libbg.a.tmp/unix_fcntl_fl_off.o
	@ln unix/fcntl_fl_on.o libbg.a.tmp/unix_fcntl_fl_on.o
	@ln unix/nonblock_off.o libbg.a.tmp/unix_nonblock_off.o
	@ln unix/nonblock_on.o libbg.a.tmp/unix_nonblock_on.o
	@ln unix/selfpipe.o libbg.a.tmp/unix_selfpipe.o
	@ln unix/sig_alarm.o libbg.a.tmp/unix_sig_alarm.o
	@ln unix/sig_all.o libbg.a.tmp/unix_sig_all.o
	@ln unix/sig_block.o libbg.a.tmp/unix_sig_block.o
	@ln unix/sig_bug.o libbg.a.tmp/unix_sig_bug.o
	@ln unix/sig_catch.o libbg.a.tmp/unix_sig_catch.o
	@ln unix/sig_child.o libbg.a.tmp/unix_sig_child.o
	@ln unix/sig_hup.o libbg.a.tmp/unix_sig_hup.o
	@ln unix/sig_int.o libbg.a.tmp/unix_sig_int.o
	@ln unix/sig_misc.o libbg.a.tmp/unix_sig_misc.o
	@ln unix/sig_pipe.o libbg.a.tmp/unix_sig_pipe.o
	@ln unix/sig_quit.o libbg.a.tmp/unix_sig_quit.o
	@ln unix/sig_suspend.o libbg.a.tmp/unix_sig_suspend.o
	@ln unix/sig_term.o libbg.a.tmp/unix_sig_term.o
	@ln unix/trigger_pull.o libbg.a.tmp/unix_trigger_pull.o
	@ln unix/trigger_set.o libbg.a.tmp/unix_trigger_set.o
	@ln vmailmgr/req_arg.o libbg.a.tmp/vmailmgr_req_arg.o
	@ln vmailmgr/req_init.o libbg.a.tmp/vmailmgr_req_init.o
	@ln vmailmgr/req_write.o libbg.a.tmp/vmailmgr_req_write.o
	@ln vmailmgr/resp_read.o libbg.a.tmp/vmailmgr_resp_read.o
	@ln vmailmgr/vpwentry_export.o libbg.a.tmp/vmailmgr_vpwentry_export.o
	@ln vmailmgr/vpwentry_free.o libbg.a.tmp/vmailmgr_vpwentry_free.o
	@ln vmailmgr/vpwentry_import.o libbg.a.tmp/vmailmgr_vpwentry_import.o
	./makelib libbg.a libbg.a.tmp/*
	rm -rf libbg.a.tmp

libraries: libbg.a adt/lib.a cdb/lib.a cli/lib.a crc/lib.a dns/lib.a fmt/lib.a net/lib.a msg/lib.a str/lib.a dict/lib.a misc/lib.a path/lib.a unix/lib.a iobuf/lib.a pwcmp/hex.a pwcmp/module.a pwcmp/client.a base64/lib.a vmailmgr/lib.a crypto/lib.a libbg-sysdeps.a install/installer.a install/instcheck.a install/instshow.a

load: conf-ld
	(  \
	  echo '#!/bin/sh';\
	  echo 'main="$$1"; shift';\
	  echo exec `head -n 1 conf-ld` -L.  '-o "$$main" "$$main.o" $${1+"$$@"}' ; \
	) >load
	chmod 755 load

makelib: 
	( echo '#!/bin/sh'; \
	  echo 'main="$$1"; shift';\
	  echo 'rm -f "$$main"';\
	  echo 'ar cr "$$main" $${1+"$$@"}';\
	  echo 'ranlib "$$main"';\
	) >makelib
	chmod 755 makelib

misc/lib.a: makelib misc/random.o misc/strtou.o misc/ucspi.o misc/utoa2.o misc/utoa.o
	./makelib misc/lib.a misc/random.o misc/strtou.o misc/ucspi.o misc/utoa2.o misc/utoa.o

misc/random.o: compile misc/random.c systime.h misc/misc.h sysdeps.h
	./compile misc/random.c

misc/strtou.o: compile misc/strtou.c misc/misc.h sysdeps.h
	./compile misc/strtou.c

misc/ucspi.o: compile misc/ucspi.c misc/ucspi.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile misc/ucspi.c

misc/utoa.o: compile misc/utoa.c misc/misc.h sysdeps.h
	./compile misc/utoa.c

misc/utoa2.o: compile misc/utoa2.c misc/misc.h sysdeps.h
	./compile misc/utoa2.c

msg/common.o: compile msg/common.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile msg/common.c

msg/debug.o: compile msg/debug.c msg/msg.h
	./compile msg/debug.c

msg/die.o: compile msg/die.c msg/msg.h
	./compile msg/die.c

msg/error.o: compile msg/error.c msg/msg.h
	./compile msg/error.c

msg/lib.a: makelib msg/common.o msg/debug.o msg/die.o msg/error.o msg/wrap_chdir.o msg/wrap_exit.o msg/wrap_str.o msg/warn.o msg/oom.o
	./makelib msg/lib.a msg/common.o msg/debug.o msg/die.o msg/error.o msg/wrap_chdir.o msg/wrap_exit.o msg/wrap_str.o msg/warn.o msg/oom.o

msg/oom.o: compile msg/oom.c msg/msg.h
	./compile msg/oom.c

msg/warn.o: compile msg/warn.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h
	./compile msg/warn.c

msg/wrap_chdir.o: compile msg/wrap_chdir.c msg/msg.h msg/wrap.h
	./compile msg/wrap_chdir.c

msg/wrap_exit.o: compile msg/wrap_exit.c msg/msg.h msg/wrap.h
	./compile msg/wrap_exit.c

msg/wrap_str.o: compile msg/wrap_str.c msg/msg.h msg/wrap.h
	./compile msg/wrap_str.c

net/accept4.o: compile net/accept4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/accept4.c

net/accept6.o: compile net/accept6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/accept6.c

net/acceptu.o: compile net/acceptu.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/acceptu.c

net/bind4.o: compile net/bind4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/bind4.c

net/bind6.o: compile net/bind6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/bind6.c

net/bindu.o: compile net/bindu.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/bindu.c

net/broadcast.o: compile net/broadcast.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/broadcast.c

net/connect4.o: compile net/connect4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/connect4.c

net/connect4_timeout.o: compile net/connect4_timeout.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h unix/nonblock.h
	./compile net/connect4_timeout.c

net/connect6.o: compile net/connect6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/connect6.c

net/connect6_timeout.o: compile net/connect6_timeout.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h unix/nonblock.h
	./compile net/connect6_timeout.c

net/connected.o: compile net/connected.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/connected.c

net/connectu.o: compile net/connectu.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/connectu.c

net/connectu_timeout.o: compile net/connectu_timeout.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h unix/nonblock.h
	./compile net/connectu_timeout.c

net/cork.o: compile net/cork.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/cork.c

net/getaddr4.o: compile net/getaddr4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/getaddr4.c

net/getaddr6.o: compile net/getaddr6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/getaddr6.c

net/ipv4_addr.o: compile net/ipv4_addr.c net/ipv4.h sysdeps.h
	./compile net/ipv4_addr.c

net/ipv4_format.o: compile net/ipv4_format.c net/ipv4.h sysdeps.h
	./compile net/ipv4_format.c

net/ipv4_scan.o: compile net/ipv4_scan.c net/ipv4.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile net/ipv4_scan.c

net/ipv6_addr.o: compile net/ipv6_addr.c net/ipv6.h sysdeps.h
	./compile net/ipv6_addr.c

net/ipv6_format.o: compile net/ipv6_format.c net/ipv6.h sysdeps.h net/ipv4.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile net/ipv6_format.c

net/ipv6_scan.o: compile net/ipv6_scan.c net/ipv6.h sysdeps.h net/ipv4.h sysdeps.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile net/ipv6_scan.c

net/lib.a: makelib net/accept4.o net/accept6.o net/acceptu.o net/bind4.o net/bind6.o net/bindu.o net/broadcast.o net/connect4.o net/connect4_timeout.o net/connect6.o net/connect6_timeout.o net/connected.o net/connectu.o net/connectu_timeout.o net/cork.o net/getaddr4.o net/getaddr6.o net/ipv4_addr.o net/ipv4_format.o net/ipv4_scan.o net/ipv6_addr.o net/ipv6_format.o net/ipv6_scan.o net/linger.o net/listen.o net/notcpdelay.o net/pairdgm.o net/pairstr.o net/recv4.o net/recv6.o net/recvfd.o net/recvu.o net/resolve_error.o net/resolve_ipv4addr.o net/resolve_ipv4name.o net/reuse.o net/send4.o net/send6.o net/sendfd.o net/sendu.o net/shutdown.o net/tcp4.o net/tcp6.o net/udp4.o net/udp6.o net/uncork.o net/unixdgm.o net/unixstr.o
	./makelib net/lib.a net/accept4.o net/accept6.o net/acceptu.o net/bind4.o net/bind6.o net/bindu.o net/broadcast.o net/connect4.o net/connect4_timeout.o net/connect6.o net/connect6_timeout.o net/connected.o net/connectu.o net/connectu_timeout.o net/cork.o net/getaddr4.o net/getaddr6.o net/ipv4_addr.o net/ipv4_format.o net/ipv4_scan.o net/ipv6_addr.o net/ipv6_format.o net/ipv6_scan.o net/linger.o net/listen.o net/notcpdelay.o net/pairdgm.o net/pairstr.o net/recv4.o net/recv6.o net/recvfd.o net/recvu.o net/resolve_error.o net/resolve_ipv4addr.o net/resolve_ipv4name.o net/reuse.o net/send4.o net/send6.o net/sendfd.o net/sendu.o net/shutdown.o net/tcp4.o net/tcp6.o net/udp4.o net/udp6.o net/uncork.o net/unixdgm.o net/unixstr.o

net/linger.o: compile net/linger.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/linger.c

net/listen.o: compile net/listen.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/listen.c

net/notcpdelay.o: compile net/notcpdelay.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/notcpdelay.c

net/pairdgm.o: compile net/pairdgm.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/pairdgm.c

net/pairstr.o: compile net/pairstr.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/pairstr.c

net/recv4.o: compile net/recv4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/recv4.c

net/recv6.o: compile net/recv6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/recv6.c

net/recvfd.o: compile net/recvfd.c net/cmsg.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/recvfd.c

net/recvu.o: compile net/recvu.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/recvu.c

net/resolve_error.o: compile net/resolve_error.c net/resolve.h net/ipv4.h sysdeps.h
	./compile net/resolve_error.c

net/resolve_ipv4addr.o: compile net/resolve_ipv4addr.c net/resolve.h net/ipv4.h sysdeps.h
	./compile net/resolve_ipv4addr.c

net/resolve_ipv4name.o: compile net/resolve_ipv4name.c net/resolve.h net/ipv4.h sysdeps.h
	./compile net/resolve_ipv4name.c

net/reuse.o: compile net/reuse.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/reuse.c

net/send4.o: compile net/send4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/send4.c

net/send6.o: compile net/send6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/send6.c

net/sendfd.o: compile net/sendfd.c net/cmsg.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/sendfd.c

net/sendu.o: compile net/sendu.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/sendu.c

net/shutdown.o: compile net/shutdown.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/shutdown.c

net/tcp4.o: compile net/tcp4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/tcp4.c

net/tcp6.o: compile net/tcp6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/tcp6.c

net/udp4.o: compile net/udp4.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/udp4.c

net/udp6.o: compile net/udp6.c sysdeps.h net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/udp6.c

net/uncork.o: compile net/uncork.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/uncork.c

net/unixdgm.o: compile net/unixdgm.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/unixdgm.c

net/unixstr.o: compile net/unixstr.c net/socket.h net/ipv4.h sysdeps.h net/ipv6.h sysdeps.h
	./compile net/unixstr.c

path/contains.o: compile path/contains.c path/path.h str/str.h
	./compile path/contains.c

path/fnmatch.o: compile path/fnmatch.c path/path.h str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile path/fnmatch.c

path/lib.a: makelib path/contains.o path/fnmatch.o path/match.o path/merge.o path/mktemp.o
	./makelib path/lib.a path/contains.o path/fnmatch.o path/match.o path/merge.o path/mktemp.o

path/match.o: compile path/match.c sysdeps.h str/str.h str/iter.h path/path.h str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile path/match.c

path/merge.o: compile path/merge.c path/path.h str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h path/path.h str/str.h
	./compile path/merge.c

path/mktemp.o: compile path/mktemp.c systime.h path/path.h str/str.h
	./compile path/mktemp.c

pwcmp/client.a: makelib pwcmp/client.o pwcmp/hex_encode.o
	./makelib pwcmp/client.a pwcmp/client.o pwcmp/hex_encode.o

pwcmp/client.o: compile pwcmp/client.c sysdeps.h pwcmp/client.h
	./compile pwcmp/client.c

pwcmp/hex.a: makelib pwcmp/hex_encode.o
	./makelib pwcmp/hex.a pwcmp/hex_encode.o

pwcmp/hex_encode.o: compile pwcmp/hex_encode.c pwcmp/hex.h
	./compile pwcmp/hex_encode.c

pwcmp/module.a: makelib pwcmp/module.o
	./makelib pwcmp/module.a pwcmp/module.o

pwcmp/module.o: compile pwcmp/module.c pwcmp/module.h
	./compile pwcmp/module.c

selftests: selftests.sh
	sh selftests.sh

str/alloc.o: compile str/alloc.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/alloc.c

str/buildmap.o: compile str/buildmap.c str/str.h
	./compile str/buildmap.c

str/case_glob.o: compile str/case_glob.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/case_glob.c

str/case_match.o: compile str/case_match.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/case_match.c

str/case_start.o: compile str/case_start.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/case_start.c

str/cat.o: compile str/cat.c str/str.h
	./compile str/cat.c

str/cat2s.o: compile str/cat2s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/cat2s.c

str/cat3s.o: compile str/cat3s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/cat3s.c

str/cat4s.o: compile str/cat4s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/cat4s.c

str/cat5s.o: compile str/cat5s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/cat5s.c

str/cat6s.o: compile str/cat6s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/cat6s.c

str/catiw.o: compile str/catiw.c str/str.h
	./compile str/catiw.c

str/catiwll.o: compile str/catiwll.c str/str.h
	./compile str/catiwll.c

str/catns.o: compile str/catns.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/catns.c

str/catsllnum.o: compile str/catsllnum.c str/str.h
	./compile str/catsllnum.c

str/catsnum.o: compile str/catsnum.c str/str.h
	./compile str/catsnum.c

str/catullnum.o: compile str/catullnum.c str/str.h
	./compile str/catullnum.c

str/catunum.o: compile str/catunum.c str/str.h
	./compile str/catunum.c

str/catuw.o: compile str/catuw.c str/str.h
	./compile str/catuw.c

str/catuwll.o: compile str/catuwll.c str/str.h
	./compile str/catuwll.c

str/catxw.o: compile str/catxw.c str/str.h
	./compile str/catxw.c

str/catxwll.o: compile str/catxwll.c str/str.h
	./compile str/catxwll.c

str/cmp.o: compile str/cmp.c str/str.h
	./compile str/cmp.c

str/copy.o: compile str/copy.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy.c

str/copy2s.o: compile str/copy2s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy2s.c

str/copy3s.o: compile str/copy3s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy3s.c

str/copy4s.o: compile str/copy4s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy4s.c

str/copy5s.o: compile str/copy5s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy5s.c

str/copy6s.o: compile str/copy6s.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copy6s.c

str/copyns.o: compile str/copyns.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/copyns.c

str/count.o: compile str/count.c str/str.h
	./compile str/count.c

str/countof.o: compile str/countof.c str/str.h
	./compile str/countof.c

str/cut.o: compile str/cut.c str/str.h
	./compile str/cut.c

str/diff.o: compile str/diff.c str/str.h
	./compile str/diff.c

str/digits.o: compile str/digits.c str/str.h
	./compile str/digits.c

str/env_find.o: compile str/env_find.c str/str.h str/iter.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_find.c

str/env_from_array.o: compile str/env_from_array.c str/str.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_from_array.c

str/env_from_string.o: compile str/env_from_string.c str/str.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_from_string.c

str/env_get.o: compile str/env_get.c str/str.h str/iter.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_get.c

str/env_make_array.o: compile str/env_make_array.c str/str.h str/iter.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_make_array.c

str/env_put.o: compile str/env_put.c str/str.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_put.c

str/env_set.o: compile str/env_set.c str/str.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_set.c

str/env_unset.o: compile str/env_unset.c str/str.h str/env.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/env_unset.c

str/findnext.o: compile str/findnext.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/findnext.c

str/findnextof.o: compile str/findnextof.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/findnextof.c

str/findprev.o: compile str/findprev.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/findprev.c

str/findprevof.o: compile str/findprevof.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/findprevof.c

str/free.o: compile str/free.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/free.c

str/glob.o: compile str/glob.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/glob.c

str/init.o: compile str/init.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/init.c

str/iter_advance.o: compile str/iter_advance.c str/iter.h str/str.h
	./compile str/iter_advance.c

str/iter_start.o: compile str/iter_start.c str/iter.h str/str.h
	./compile str/iter_start.c

str/iter_valid.o: compile str/iter_valid.c str/iter.h str/str.h
	./compile str/iter_valid.c

str/join.o: compile str/join.c str/str.h
	./compile str/join.c

str/lib.a: makelib str/alloc.o str/buildmap.o str/case_glob.o str/case_match.o str/case_start.o str/cat2s.o str/cat3s.o str/cat4s.o str/cat5s.o str/cat6s.o str/catns.o str/catiwll.o str/catiw.o str/cat.o str/catsllnum.o str/catsnum.o str/catullnum.o str/catunum.o str/catuwll.o str/catuw.o str/catxw.o str/catxwll.o str/cmp.o str/copy2s.o str/copy3s.o str/copy4s.o str/copy5s.o str/copy6s.o str/copyns.o str/copy.o str/count.o str/countof.o str/cut.o str/diff.o str/digits.o str/env_find.o str/env_from_array.o str/env_from_string.o str/env_get.o str/env_make_array.o str/env_put.o str/env_set.o str/env_unset.o str/findnext.o str/findnextof.o str/findprev.o str/findprevof.o str/free.o str/glob.o str/init.o str/iter_advance.o str/iter_start.o str/iter_valid.o str/join.o str/lower.o str/lstrip.o str/match.o str/rstrip.o str/sort.o str/splice.o str/start.o str/subst.o str/truncate.o str/upper.o str/xlate.o
	./makelib str/lib.a str/alloc.o str/buildmap.o str/case_glob.o str/case_match.o str/case_start.o str/cat2s.o str/cat3s.o str/cat4s.o str/cat5s.o str/cat6s.o str/catns.o str/catiwll.o str/catiw.o str/cat.o str/catsllnum.o str/catsnum.o str/catullnum.o str/catunum.o str/catuwll.o str/catuw.o str/catxw.o str/catxwll.o str/cmp.o str/copy2s.o str/copy3s.o str/copy4s.o str/copy5s.o str/copy6s.o str/copyns.o str/copy.o str/count.o str/countof.o str/cut.o str/diff.o str/digits.o str/env_find.o str/env_from_array.o str/env_from_string.o str/env_get.o str/env_make_array.o str/env_put.o str/env_set.o str/env_unset.o str/findnext.o str/findnextof.o str/findprev.o str/findprevof.o str/free.o str/glob.o str/init.o str/iter_advance.o str/iter_start.o str/iter_valid.o str/join.o str/lower.o str/lstrip.o str/match.o str/rstrip.o str/sort.o str/splice.o str/start.o str/subst.o str/truncate.o str/upper.o str/xlate.o

str/lower.o: compile str/lower.c str/str.h
	./compile str/lower.c

str/lstrip.o: compile str/lstrip.c str/str.h
	./compile str/lstrip.c

str/match.o: compile str/match.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/match.c

str/rstrip.o: compile str/rstrip.c str/str.h
	./compile str/rstrip.c

str/sort.o: compile str/sort.c str/str.h
	./compile str/sort.c

str/splice.o: compile str/splice.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/splice.c

str/start.o: compile str/start.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/start.c

str/subst.o: compile str/subst.c str/str.h
	./compile str/subst.c

str/truncate.o: compile str/truncate.c str/str.h
	./compile str/truncate.c

str/upper.o: compile str/upper.c str/str.h
	./compile str/upper.c

str/xlate.o: compile str/xlate.c str/str.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile str/xlate.c

sys/getpeereid.o: compile sys/getpeereid.c sysdeps.h
	./compile sys/getpeereid.c

sys/iopoll.o: compile sys/iopoll.c sysdeps.h
	./compile sys/iopoll.c

sys/setenv.o: compile sys/setenv.c sysdeps.h
	./compile sys/setenv.c

sys/unsetenv.o: compile sys/unsetenv.c sysdeps.h
	./compile sys/unsetenv.c

sysdeps.h: choose compile load sysdeps-head.h sysdeps-tail.h sys/tryflock.c sys/hasflock.h1 sys/hasflock.h2 sys/trygetpeereid.c sys/hasgetpeereid.h1 sys/hasgetpeereid.h2 sys/tryinline.c sys/hasinline.h1 sys/hasinline.h2 sys/tryipv6.c sys/hasipv6.h1 sys/hasipv6.h2 sys/trymkfifo.c sys/hasmkfifo.h1 sys/hasmkfifo.h2 sys/trynamedpipebug.c sys/hasnamedpipebug.h1 sys/hasnamedpipebug.h2 sys/trypeercred.c sys/haspeercred.h1 sys/haspeercred.h2 sys/trysendfile.c sys/hassendfile.h1 sys/hassendfile.h2 sys/trysetenv.c sys/hassetenv.h1 sys/hassetenv.h2 sys/trysigaction.c sys/hassigaction.h1 sys/hassigaction.h2 sys/trysigprocmask.c sys/hassigprocmask.h1 sys/hassigprocmask.h2 sys/tryspnam.c sys/hasspnam.h1 sys/hasspnam.h2 sys/trysysselect.c sys/hassysselect.h1 sys/hassysselect.h2 sys/tryuserpw.c sys/hasuserpw.h1 sys/hasuserpw.h2 sys/tryvfork.c sys/hasvfork.h1 sys/hasvfork.h2 sys/trywaitp.c sys/haswaitp.h1 sys/haswaitp.h2 sys/tryzlib.c sys/haszlib.h1 sys/haszlib.h2 sys/tryulong32.c sys/uint32.h1 sys/uint32.h2 sys/tryulong64.c sys/uint64.h1 sys/uint64.h2 sys/tryendian.c sys/endian.h1 sys/endian.h2 sys/trydirent.c sys/direntry.h1 sys/direntry.h2 sys/trypoll.c sys/iopoll.h1 sys/iopoll.h2 sys/tryunsetenv.c sys/unsetenv.h1 sys/unsetenv.h2 sys/tryunaligned.c sys/unaligned.h1 sys/unaligned.h2
	( set -e; \
	  cat sysdeps-head.h; \
	  ./choose clr ulong32 uint32; \
	  ./choose clr ulong64 uint64; \
	  ./choose clr endian endian; \
	  ./choose c   dirent direntry; \
	  ./choose c   ipv6; \
	  ./choose cl  vfork; \
	  ./choose cl  getpeereid; \
	  ./choose cl  flock; \
	  ./choose cl  peercred; \
	  ./choose cl  sendfile; \
	  ./choose cl  sigaction; \
	  ./choose cl  sigprocmask; \
	  ./choose cl  spnam; \
	  ./choose cl  userpw; \
	  ./choose cl  waitp; \
	  ./choose c   zlib; \
	  ./choose clr poll iopoll; \
	  ./choose c   sysselect; \
	  ./choose cl  setenv; \
	  ./choose cl  unsetenv unsetenv; \
	  ./choose clr unaligned unaligned; \
	  ./choose cl  mkfifo; \
	  ./choose clr namedpipebug; \
	  ./choose c   inline; \
	  cat sysdeps-tail.h; \
	) >sysdeps.h

systime.h: compile sys/trysystime.c sys/trytime.c
	( ( ./compile sys/trysystime.c >/dev/null 2>&1 && \
	    echo '#include <sys/time.h>' ); \
	  ( ./compile sys/trytime.c >/dev/null 2>&1 && \
	    echo '#include <time.h>' ) ) >systime.h
	rm -f trysystime.o trytime.o

uint16/get.o: compile uint16/get.c uint16.h sysdeps.h uintnn.h
	./compile uint16/get.c

uint16/pack.o: compile uint16/pack.c uint16.h sysdeps.h uintnn.h
	./compile uint16/pack.c

uint16/unpack.o: compile uint16/unpack.c uint16.h sysdeps.h uintnn.h
	./compile uint16/unpack.c

uint32/get_lsb.o: compile uint32/get_lsb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/get_lsb.c

uint32/get_msb.o: compile uint32/get_msb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/get_msb.c

uint32/pack_lsb.o: compile uint32/pack_lsb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/pack_lsb.c

uint32/pack_msb.o: compile uint32/pack_msb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/pack_msb.c

uint32/unpack_lsb.o: compile uint32/unpack_lsb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/unpack_lsb.c

uint32/unpack_msb.o: compile uint32/unpack_msb.c uint32.h sysdeps.h uintnn.h
	./compile uint32/unpack_msb.c

uint64/get_lsb.o: compile uint64/get_lsb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/get_lsb.c

uint64/get_msb.o: compile uint64/get_msb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/get_msb.c

uint64/pack_lsb.o: compile uint64/pack_lsb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/pack_lsb.c

uint64/pack_msb.o: compile uint64/pack_msb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/pack_msb.c

uint64/unpack_lsb.o: compile uint64/unpack_lsb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/unpack_lsb.c

uint64/unpack_msb.o: compile uint64/unpack_msb.c uint64.h sysdeps.h uintnn.h uint32.h sysdeps.h uintnn.h
	./compile uint64/unpack_msb.c

unix/cloexec_off.o: compile unix/cloexec_off.c unix/fcntl.h unix/fcntl.h unix/cloexec.h
	./compile unix/cloexec_off.c

unix/cloexec_on.o: compile unix/cloexec_on.c unix/fcntl.h unix/fcntl.h unix/cloexec.h
	./compile unix/cloexec_on.c

unix/fcntl_fd_off.o: compile unix/fcntl_fd_off.c unix/fcntl.h unix/fcntl.h
	./compile unix/fcntl_fd_off.c

unix/fcntl_fd_on.o: compile unix/fcntl_fd_on.c unix/fcntl.h unix/fcntl.h
	./compile unix/fcntl_fd_on.c

unix/fcntl_fl_off.o: compile unix/fcntl_fl_off.c unix/fcntl.h unix/fcntl.h
	./compile unix/fcntl_fl_off.c

unix/fcntl_fl_on.o: compile unix/fcntl_fl_on.c unix/fcntl.h unix/fcntl.h
	./compile unix/fcntl_fl_on.c

unix/lib.a: makelib unix/cloexec_off.o unix/cloexec_on.o unix/fcntl_fd_off.o unix/fcntl_fd_on.o unix/fcntl_fl_off.o unix/fcntl_fl_on.o unix/nonblock_off.o unix/nonblock_on.o unix/selfpipe.o unix/sig_alarm.o unix/sig_all.o unix/sig_block.o unix/sig_bug.o unix/sig_catch.o unix/sig_child.o unix/sig_hup.o unix/sig_int.o unix/sig_misc.o unix/sig_pipe.o unix/sig_quit.o unix/sig_suspend.o unix/sig_term.o unix/trigger_set.o unix/trigger_pull.o
	./makelib unix/lib.a unix/cloexec_off.o unix/cloexec_on.o unix/fcntl_fd_off.o unix/fcntl_fd_on.o unix/fcntl_fl_off.o unix/fcntl_fl_on.o unix/nonblock_off.o unix/nonblock_on.o unix/selfpipe.o unix/sig_alarm.o unix/sig_all.o unix/sig_block.o unix/sig_bug.o unix/sig_catch.o unix/sig_child.o unix/sig_hup.o unix/sig_int.o unix/sig_misc.o unix/sig_pipe.o unix/sig_quit.o unix/sig_suspend.o unix/sig_term.o unix/trigger_set.o unix/trigger_pull.o

unix/nonblock_off.o: compile unix/nonblock_off.c unix/fcntl.h unix/fcntl.h unix/nonblock.h
	./compile unix/nonblock_off.c

unix/nonblock_on.o: compile unix/nonblock_on.c unix/fcntl.h unix/fcntl.h unix/nonblock.h
	./compile unix/nonblock_on.c

unix/selfpipe.o: compile unix/selfpipe.c sysdeps.h unix/cloexec.h unix/nonblock.h unix/sig.h unix/selfpipe.h selftest.c iobuf/iobuf.h iobuf/common.h iobuf/ibuf.h iobuf/common.h iobuf/obuf.h iobuf/common.h msg/msg.h str/str.h
	./compile unix/selfpipe.c

unix/sig_alarm.o: compile unix/sig_alarm.c unix/sig.h
	./compile unix/sig_alarm.c

unix/sig_all.o: compile unix/sig_all.c unix/sig.h sysdeps.h
	./compile unix/sig_all.c

unix/sig_block.o: compile unix/sig_block.c unix/sig.h sysdeps.h
	./compile unix/sig_block.c

unix/sig_bug.o: compile unix/sig_bug.c unix/sig.h
	./compile unix/sig_bug.c

unix/sig_catch.o: compile unix/sig_catch.c unix/sig.h sysdeps.h
	./compile unix/sig_catch.c

unix/sig_child.o: compile unix/sig_child.c unix/sig.h
	./compile unix/sig_child.c

unix/sig_hup.o: compile unix/sig_hup.c unix/sig.h
	./compile unix/sig_hup.c

unix/sig_int.o: compile unix/sig_int.c unix/sig.h
	./compile unix/sig_int.c

unix/sig_misc.o: compile unix/sig_misc.c unix/sig.h
	./compile unix/sig_misc.c

unix/sig_pipe.o: compile unix/sig_pipe.c unix/sig.h
	./compile unix/sig_pipe.c

unix/sig_quit.o: compile unix/sig_quit.c unix/sig.h
	./compile unix/sig_quit.c

unix/sig_suspend.o: compile unix/sig_suspend.c unix/sig.h sysdeps.h
	./compile unix/sig_suspend.c

unix/sig_term.o: compile unix/sig_term.c unix/sig.h
	./compile unix/sig_term.c

unix/trigger_pull.o: compile unix/trigger_pull.c sysdeps.h unix/fcntl.h unix/trigger.h sysdeps.h
	./compile unix/trigger_pull.c

unix/trigger_set.o: compile unix/trigger_set.c sysdeps.h unix/fcntl.h unix/trigger.h sysdeps.h
	./compile unix/trigger_set.c

vmailmgr/lib.a: makelib vmailmgr/req_arg.o vmailmgr/req_init.o vmailmgr/req_write.o vmailmgr/resp_read.o vmailmgr/vpwentry_export.o vmailmgr/vpwentry_free.o vmailmgr/vpwentry_import.o
	./makelib vmailmgr/lib.a vmailmgr/req_arg.o vmailmgr/req_init.o vmailmgr/req_write.o vmailmgr/resp_read.o vmailmgr/vpwentry_export.o vmailmgr/vpwentry_free.o vmailmgr/vpwentry_import.o

vmailmgr/req_arg.o: compile vmailmgr/req_arg.c vmailmgr/client.h str/str.h
	./compile vmailmgr/req_arg.c

vmailmgr/req_init.o: compile vmailmgr/req_init.c vmailmgr/client.h str/str.h
	./compile vmailmgr/req_init.c

vmailmgr/req_write.o: compile vmailmgr/req_write.c vmailmgr/client.h str/str.h
	./compile vmailmgr/req_write.c

vmailmgr/resp_read.o: compile vmailmgr/resp_read.c vmailmgr/client.h str/str.h
	./compile vmailmgr/resp_read.c

vmailmgr/vpwentry_export.o: compile vmailmgr/vpwentry_export.c vmailmgr/vpwentry.h str/str.h str/str.h
	./compile vmailmgr/vpwentry_export.c

vmailmgr/vpwentry_free.o: compile vmailmgr/vpwentry_free.c vmailmgr/vpwentry.h str/str.h
	./compile vmailmgr/vpwentry_free.c

vmailmgr/vpwentry_import.o: compile vmailmgr/vpwentry_import.c systime.h misc/misc.h sysdeps.h vmailmgr/vpwentry.h str/str.h
	./compile vmailmgr/vpwentry_import.c

