IT=libdjbdns.a libdjbdns.so.1 SYSDEPS=iopause.h select.h uint32.h uint64.h LIBDNS=dns_dfd.o dns_domain.o dns_dtda.o dns_ip.o dns_ipq.o dns_mx.o \ dns_name.o dns_nd.o dns_packet.o dns_random.o dns_rcip.o dns_rcrw.o \ dns_resolve.o dns_sortip.o dns_transmit.o dns_txt.o LIBALLOC=alloc.o alloc_re.o stralloc_catb.o stralloc_cats.o stralloc_copy.o \ stralloc_eady.o stralloc_opyb.o stralloc_opys.o stralloc_pend.o LIBBYTE=byte_chr.o byte_copy.o byte_diff.o byte_zero.o case_diffb.o \ fmt_ulong.o ip4_scan.o scan_ulong.o str_chr.o str_len.o str_start.o \ uint16_pack.o uint16_unpack.o uint32_unpack.o LIBUNIX=error.o ndelay_on.o open_read.o openreadclose.o readclose.o \ socket_bind.o socket_conn.o socket_tcp.o socket_udp.o LIBTAI=tai_pack.o taia_add.o taia_approx.o taia_frac.o taia_less.o \ taia_now.o taia_pack.o taia_sub.o taia_uint.o LIBENV=env.o LIBMISC=iopause.o LIBDNS_S=dns_dfd.os dns_domain.os dns_dtda.os dns_ip.os dns_ipq.os \ dns_mx.os dns_name.os dns_nd.os dns_packet.os dns_random.os dns_rcip.os \ dns_rcrw.os dns_resolve.os dns_sortip.os dns_transmit.os dns_txt.os LIBALLOC_S=alloc.os alloc_re.os stralloc_catb.os stralloc_cats.os \ stralloc_copy.os stralloc_eady.os stralloc_opyb.os stralloc_opys.os \ stralloc_pend.os LIBBYTE_S=byte_chr.os byte_copy.os byte_diff.os byte_zero.os case_diffb.os \ fmt_ulong.os ip4_scan.os scan_ulong.os str_chr.os str_len.os str_start.os \ uint16_pack.os uint16_unpack.os uint32_unpack.os LIBUNIX_S=error.os ndelay_on.os open_read.os openreadclose.os readclose.os \ socket_bind.os socket_conn.os socket_tcp.os socket_udp.os LIBTAI_S=tai_pack.os taia_add.os taia_approx.os taia_frac.os taia_less.os \ taia_now.os taia_pack.os taia_sub.os taia_uint.os LIBENV_S=env.os LIBMISC_S=iopause.os it: $(IT) sysdeps sysdeps: $(SYSDEPS) uname -srm >sysdeps grep sysdep iopause.h select.h uint32.h uint64.h >>sysdeps libdjbdns.a: $(LIBDNS) $(LIBALLOC) $(LIBBYTE) $(LIBUNIX) $(LIBENV) \ $(LIBTAI) $(LIBMISC) $(SYSDEPS) rm -f libdjbdns.a ar cr libdjbdns.a $(LIBDNS) $(LIBALLOC) $(LIBBYTE) $(LIBUNIX) \ $(LIBENV) $(LIBMISC) $(LIBTAI) # most systems use ranlib ranlib libdjbdns.a libdjbdns.so.1: $(LIBDNS_S) $(LIBALLOC_S) $(LIBBYTE_S) $(LIBUNIX_S) \ $(LIBENV_S) $(LIBTAI_S) $(LIBMISC_S) $(SYSDEPS) $(CC) -shared -Wl,-soname,libdjbdns.so.1 -o libdjbdns.so.1 \ $(LIBDNS_S) $(LIBALLOC_S) $(LIBBYTE_S) $(LIBUNIX_S) $(LIBENV_S) \ $(LIBMISC_S) $(LIBTAI_S) %.o: %.c $(SYSDEPS) $(CC) $(CFLAGS) -c $< -o $@ %.os: %.c $(SYSDEPS) $(CC) -fPIC $(CFLAGS) -c $< -o $@ iopause.h: iopause.h1 iopause.h2 ( ( $(CC) -o trypoll trypoll.c && ./trypoll ) >/dev/null 2>&1 \ && cat iopause.h2 || cat iopause.h1 ) >iopause.h rm -f trypoll select.h: ( $(CC) -c tryssysel.c >/dev/null 2>&1 \ && cat select.h1 || cat select.h2 ) >select.h rm -f trysysel.o uint32.h: ( ( $(CC) -o tryulong32 tryulong32.c && ./tryulong32 ) >/dev/null 2>&1 \ && cat uint32.h2 || cat uint32.h1 ) >uint32.h rm -f tryulong32 uint64.h: ( ( $(CC) -o tryulong64 tryulong64.c && ./tryulong64 ) >/dev/null 2>&1 \ && cat uint64.h2 || cat uint64.h1 ) >uint64.h rm -f tryulong64 clean: rm -f *.o *.os test.static test.shared libdjbdns.so sysdeps \ $(IT) $(SYSDEPS) test: test.static test.shared cat sysdeps ./test.static env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./test.shared test.static: test.o libdjbdns.a $(CC) -o test.static test.o libdjbdns.a libdjbdns.so: libdjbdns.so.1 ln -sf libdjbdns.so.1 libdjbdns.so test.shared: test.o libdjbdns.so $(CC) -o test.shared test.o -L. -ldjbdns