it: command include library library.so

clean: EXPORT INTERNAL
	rm -f `cat EXPORT INTERNAL`

skadns_internal.h: skadns.h bufalloc.h buffer.h uint16.h
	touch skadns_internal.h

skadns.h: stupid skadns.h.stupid stralloc.h uint16.h gccattributes.h
	./stupid < skadns.h.stupid > skadns.h


skadns_ip4_send.o: compile skadns_ip4_send.c skadns.h dns_helper.h uint16.h
	./compile skadns_ip4_send.c

skadns_ip4_recv.o: compile skadns_ip4_recv.c skadns.h dns_helper.h stralloc.h uint16.h
	./compile skadns_ip4_recv.c

skadns_ip4_check.o: compile skadns_ip4_check.c skadns.h stralloc.h
	./compile skadns_ip4_check.c

skadns_mx_send.o: compile skadns_mx_send.c skadns.h dns_helper.h uint16.h
	./compile skadns_mx_send.c

skadns_mx_recv.o: compile skadns_mx_recv.c skadns.h dns_helper.h stralloc.h uint16.h
	./compile skadns_mx_recv.c

skadns_ptr_send.o: compile skadns_ptr_send.c skadns.h dns_helper.h uint16.h
	./compile skadns_ptr_send.c

skadns_ptr_recv.o: compile skadns_ptr_recv.c skadns.h dns_helper.h stralloc.h uint16.h
	./compile skadns_ptr_recv.c

skadns_txt_send.o: compile skadns_txt_send.c skadns.h dns_helper.h uint16.h
	./compile skadns_txt_send.c

skadns_txt_recv.o: compile skadns_txt_recv.c skadns.h dns_helper.h stralloc.h uint16.h
	./compile skadns_txt_recv.c

skadns_fd.o: compile skadns_fd.c skadns_internal.h skadns.h
	./compile skadns_fd.c

skadns_recvlist.o: compile skadns_recvlist.c skadns_internal.h skadns.h uint16.h
	./compile skadns_recvlist.c

skadns_start.o: compile skadns_start.c skadns_internal.h skadns.h webipc.h djbunix.h bufalloc.h buffer.h bytestr.h alloc.h allreadwrite.h
	./compile skadns_start.c

skadns_startf.o: compile skadns_startf.c skadns_internal.h skadns.h djbunix.h bufalloc.h buffer.h bytestr.h allreadwrite.h alloc.h
	./compile skadns_startf.c

skadns_end.o: compile skadns_end.c skadns_internal.h skadns.h djbunix.h stralloc.h bufalloc.h alloc.h
	./compile skadns_end.c

skadns_send.o: compile skadns_send.c skadns.h skamisc.h uint16.h
	./compile skadns_send.c

skadns_send_tmp.o: compile skadns_send_tmp.c skadns_internal.h skadns.h netstring.h stralloc.h bufalloc.h bytestr.h uint16.h
	./compile skadns_send_tmp.c

skadns_readanswers.o: compile skadns_readanswers.c skadns_internal.h skadns.h netstring.h djbunix.h stralloc.h gen_alloc.h allreadwrite.h uint16.h
	./compile skadns_readanswers.c

skadns_recv.o: compile skadns_recv.c skadns_internal.h skadns.h stralloc.h bytestr.h uint16.h
	./compile skadns_recv.c

skadns_type_recv.o: compile skadns_type_recv.c skadns.h stralloc.h gen_alloc.h uint16.h
	./compile skadns_type_recv.c


libskadns.a: makelib skadns_ip4_send.o skadns_ip4_recv.o skadns_ip4_check.o \
skadns_mx_send.o skadns_mx_recv.o skadns_ptr_send.o skadns_ptr_recv.o \
skadns_txt_send.o skadns_txt_recv.o skadns_type_recv.o \
skadns_fd.o skadns_recvlist.o skadns_start.o skadns_startf.o skadns_end.o \
skadns_send.o skadns_send_tmp.o skadns_readanswers.o skadns_recv.o
	./makelib libskadns.a skadns_ip4_send.o skadns_ip4_recv.o skadns_ip4_check.o \
	skadns_mx_send.o skadns_mx_recv.o skadns_ptr_send.o skadns_ptr_recv.o \
	skadns_txt_send.o skadns_txt_recv.o skadns_type_recv.o \
	skadns_fd.o skadns_recvlist.o skadns_start.o skadns_startf.o skadns_end.o \
	skadns_send.o skadns_send_tmp.o skadns_readanswers.o skadns_recv.o


skadnsd.o: compile skadnsd.c skadns.h dns_transmit.h skamisc.h djbunix.h iopause.h tai.h netstring.h bufalloc.h buffer.h stralloc.h gen_alloc.h bytestr.h strerr2.h error.h uint16.h allreadwrite.h
	./compile skadnsd.c

skadnsd: load skadnsd.o libdns.a librandom.a libstdcrypto.a libwebipc.a libstddjb.a socket.lib
	./load skadnsd libdns.a librandom.a libstdcrypto.a libwebipc.a libstddjb.a `cat socket.lib`

skadnsip.o: compile skadnsip.c skadns.h dns.h iopause.h stralloc.h gen_alloc.h strerr2.h buffer.h fmtscan.h uint16.h
	./compile skadnsip.c

skadnsip: load skadnsip.o libskadns.a libdns.a librandom.a libstdcrypto.a libwebipc.a libstddjb.a socket.lib
	./load skadnsip libskadns.a libdns.a librandom.a libstdcrypto.a libwebipc.a libstddjb.a `cat socket.lib`

skadnsmx.o: compile skadnsmx.c skadns.h dns.h iopause.h stralloc.h gen_alloc.h strerr2.h buffer.h fmtscan.h uint16.h
	./compile skadnsmx.c

skadnsmx: load skadnsmx.o libskadns.a libdns.a libwebipc.a libstddjb.a socket.lib
	./load skadnsmx libskadns.a libdns.a libwebipc.a libstddjb.a `cat socket.lib`

skadnsfilter.o: compile skadnsfilter.c skadns.h skamisc.h djbunix.h sgetopt.h iopause.h tai.h bufalloc.h stralloc.h gen_alloc.h strerr2.h buffer.h fmtscan.h error.h bytestr.h alloc.h uint16.h
	./compile skadnsfilter.c

skadnsfilter: load skadnsfilter.o libskadns.a libdns.a libwebipc.a libstddjb.a socket.lib
	./load skadnsfilter libskadns.a libdns.a libwebipc.a libstddjb.a `cat socket.lib`


command: skadnsd skadnsip skadnsmx skadnsfilter

include: skadns.h

library: libskadns.a

library.so:
