SHELL	= /bin/sh
MAKE	= make
RPCGEN	= rpcgen
#LIBS	= -lsocket -lnsl

what:
	@echo "Usage: make system-type. Known types are:"
	@echo "aix osf freebsd openbsd bsdi dgux irix4 irix"
	@echo "hpux9 hpux10 hpux11 linux-old linux-new sunos4 sunos5"
	@echo "sysv4 tru64 unixware7-udk"
	@exit 1;

linux:
	@echo "\"linux\" target does not exist."
	@echo "Try \"make linux-old\" or \"make linux-new\"."
	@exit 1;

aix osf bsd hpux9 tru64:
	@$(MAKE) all LIBS= XFLAGS="-DAUTH_GID_T=int"

sunos4:
	@$(MAKE) all LIBS= XFLAGS="-DAUTH_GID_T=int -DNO_STDARG"

ultrix4:
	@$(MAKE) rpcgen all LIBS= XFLAGS="-DAUTH_GID_T=int" \
		RPCGEN="../../bin/rpcgen"

hpux10:
	@$(MAKE) all LIBS= XFLAGS="+DAportable -DAUTH_GID_T=int"

hpux11:
	@$(MAKE) all LIBS="-lrpcsvc" XFLAGS="+DAportable -DAUTH_GID_T=int"

bsdi:
	@$(MAKE) all LIBS="-lrpc" XFLAGS="-DAUTH_GID_T=int"

freebsd openbsd:
	@$(MAKE) all LIBS= XFLAGS="-DAUTH_GID_T=int -DSYS_ERRLIST_DECLARED -DFDSETSIZE=2048"

linux-old:
	@$(MAKE) all LIBS= XFLAGS="-I`pwd`/include \
		-D_BSD_SOURCE -DSYS_ERRLIST_DECLARED -DAUTH_GID_T=int -g";
	@$(MAKE) showmount LIBS= XFLAGS="-I`pwd`/include \
		-D_BSD_SOURCE -DSYS_ERRLIST_DECLARED -DAUTH_GID_T=int -g";

linux-new linux-glibc21:
	@$(MAKE) all LIBS= XFLAGS="-I`pwd`/include/glibc21 \
                -I`pwd`/include -D_BSD_SOURCE -DSYS_ERRLIST_DECLARED \
		-DAUTH_GID_T=int -g";
	@$(MAKE) showmount LIBS= XFLAGS="-I`pwd`/include/glibc21 \
                -I`pwd`/include -D_BSD_SOURCE -DSYS_ERRLIST_DECLARED \
		-DAUTH_GID_T=int -g";

irix4:
	@$(MAKE) all LIBS="-lXm_s -lXt_s -lX11_s -lPW -lc_s -lsun" \
		XFLAGS="-DAUTH_GID_T=int"

irix:
	@$(MAKE) all LIBS= XFLAGS="-DAUTH_GID_T=gid_t"

dgux:
	@$(MAKE) all LIBS="-lnsl" XFLAGS="-DAUTH_GID_T=gid_t -DTIRPC"

sunos5:
	@$(MAKE) all LIBS="-lresolv -lsocket -lnsl" \
		XFLAGS="-DAUTH_GID_T=gid_t -DTIRPC"

sysv4:
	@$(MAKE) rpcgen all LIBS="-lsocket -lnsl" \
		XFLAGS="-DAUTH_GID_T=gid_t -DTIRPC" \
		RPCGEN="../../bin/rpcgen"

unixware7-udk:
	@$(MAKE) rpcgen all LIBS="-lsocket -lnsl" \
		XFLAGS="-DAUTH_GID_T=gid_t -DTIRPC" \
		CXX=CC CC=cc

showmount:
	cd src/showmount; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)"

rpcgen:
	cd src/rpcgen; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)"

all:
	cd src/misc; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)" "RPCGEN=$(RPCGEN)"
	cd src/boot; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)" "RPCGEN=$(RPCGEN)"
	cd src/port_scan; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)"
	cd src/nfs-chk; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)" "RPCGEN=$(RPCGEN)"
	cd src/yp-chk; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)" "RPCGEN=$(RPCGEN)"
	cd src/fping; $(MAKE) "LIBS=$(LIBS)" "CFLAGS=$(XFLAGS)"
	cd src/ddos_scan; $(MAKE) "LIBS=$(LIBS)" "XFLAGS=$(XFLAGS)"

checksums:
	@find * -type f -print | sort | xargs md5

clean: 
	cd src/misc; $(MAKE) clean
	cd src/boot; $(MAKE) clean
	cd src/port_scan; $(MAKE) clean
	cd src/nfs-chk; $(MAKE) clean
	cd src/yp-chk; $(MAKE) clean
	cd src/fping; $(MAKE) clean
	cd src/rpcgen; $(MAKE) clean
	cd src/showmount; $(MAKE) clean
	cd src/ddos_scan; $(MAKE) clean
	rm -f html/saint.html html/saint_documentation.html status_file \
	bit_bucket

tidy:	clean
	rm -f *.old *.bak *.orig */*.old */*.bak */*.orig tmp_file* tmp.*
	rm -rf results
	chmod -x saint
