SHELL	= /bin/sh
MAKE	= make
MAKEOLD	= ${MAKE} -f old
RPCGEN	= rpcgen
#LIBS	= -lsocket -lnsl

what:
	@echo "Usage: make -f old system-type. Known types are:"
	@echo "aix osf freebsd openbsd bsdi dgux irix4 irix"
	@echo "hpux9 hpux10 hpux11 linux-old linux-new"
	@echo "solaris sunos4 sunos5 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:
	@$(MAKEOLD) all LIBS= XFLAGS="-DGETGROUPS_T=int -DSTDC_HEADERS"

sunos4:
	@$(MAKEOLD) all LIBS= XFLAGS="-DGETGROUPS_T=int"

ultrix4:
	@$(MAKEOLD) rpcgen all LIBS= XFLAGS="-DGETGROUPS_T=int -DSTDC_HEADERS" \
		RPCGEN="../../bin/rpcgen"

hpux10:
	@$(MAKEOLD) all LIBS= XFLAGS="+DAportable -DGETGROUPS_T=int -DSTDC_HEADERS"

hpux11:
	@$(MAKEOLD) all LIBS="-lrpcsvc" XFLAGS="+DAportable -DGETGROUPS_T=int -DSTDC_HEADERS"

bsdi:
	@$(MAKEOLD) all LIBS="-lrpc" XFLAGS="-DGETGROUPS_T=int -DSTDC_HEADERS"

freebsd openbsd:
	@$(MAKEOLD) all LIBS= XFLAGS="-DGETGROUPS_T=int -DSTDC_HEADERS -DSYS_ERRLIST_DECLARED -DFDSETSIZE=2048"

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

linux-new linux-glibc21:
	@$(MAKEOLD) all LIBS= XFLAGS="-I/usr/src/linux/include -I`pwd`/include/glibc21 \
                -I`pwd`/include -D_BSD_SOURCE -DSYS_ERRLIST_DECLARED \
		-DGETGROUPS_T=int -DSTDC_HEADERS -g";
	@$(MAKEOLD) showmount LIBS= XFLAGS="-I/usr/src/linux/include";

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

irix:
	@$(MAKEOLD) all LIBS= XFLAGS="-DGETGROUPS_T=gid_t -DSTDC_HEADERS"

dgux:
	@$(MAKEOLD) all LIBS="-lnsl" XFLAGS="-DGETGROUPS_T=gid_t -DSTDC_HEADERS -DTIRPC"

sunos5 solaris:
	@$(MAKEOLD) all LIBS="-L/usr/ucblib -R/usr/ucblib -lrpcsoc -lrpcsvc -lresolv -lsocket -lnsl" \
		XFLAGS="-DGETGROUPS_T=gid_t -DSTDC_HEADERS"

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

unixware7-udk:
	@$(MAKEOLD) rpcgen all LIBS="-lsocket -lnsl" \
		XFLAGS="-DGETGROUPS_T=gid_t -DSTDC_HEADERS -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
