CC	= gcc
LD	= gcc
# set global C flags here
CFLAGS = -Wall -g
#LIBS	= -L. -lpcap
#OPTS	=
INCLUDE = -I.
OBJS	= common.o synscan.o tcpsock.o nsd.o synscand.o sslog.o nscan.o
DEFINE	=
TARGETS	= synscan synscand nscan sslog

all:menu

menu:
	@cat ascii
	@echo "Synscan v3.0-pre6 (C) 2000-2005 Max & psychoid"
	@echo "\"I didn\`t do it, you didn\`t see me do it, you can\`t prove anything!\""
	@echo "Choose a build option:"
	@echo "------------------------------------ --- --- -- -- - -"
	@echo "linux         - for linux systems"
	@echo "irix-gcc      - for SGI IRIX 6.5 and above, may work on 6.2 but untested"
	@echo "solaris       - for SUN Solaris 5.5.1 and above"
	@echo "solaris-gcc   - for SUN Solaris 5.5.1 and above using gcc"
	@echo "hpux          - for HP-UX 11.11, untested on older, doesnt work yet.. needs hpux pcap"
	@echo "clean         - removes binaries and object files"
	@echo "package       - make a binary tarfile ready for deployment"
	@echo "install       - installs to your local system"

synscan: synscan.o common.o
	$(CC) $(CFLAGS) $(OPTS) $< $(LDLIBS) -o $@	

synscand: synscand.c nsd.o tcpsock.o common.o
	$(CC) $(CFLAGS) $(OPTS) $< $(LDLIBS) -o $@

sslog: sslog.o common.o
	$(CC) $(CFLAGS) $(OPTS) $< $(LDLIBS) -o $@

nscan: nscan.o common.o
	$(CC) $(CFLAGS) $(OPTS) $< $(LDLIBS) -o $@

hpux:
	OPTS=-DHPUX
	PCAP=-lpcap-hpux
	gcc -O3 -o synscan synscan.c -DHPUX
	gcc -O3 -o synscand synscand.c tcpsock.c nsd.c -DHPUX -L./ -lpcap-hpux
	gcc -O3 -o sslog sslog.c -DHPUX -L./ -lpcap-hpux
	
irix-gcc:
	OPTS=-DIRIX
	PCAP=-lpcap-irix
	gcc -O3 -o synscan synscan.c -DIRIX
	gcc -O3 -o synscand synscand.c tcpsock.c nsd.c -DIRIX -L./ -lpcap-irix
	gcc -O3 -o sslog sslog.c -DIRIX -L./ -lpcap-irix

linux:
	$(MAKE) synscan CC="gcc" CFLAGS="-O3 $(CFLAGS) -DLINUX" LDLIBS="common.o"
	$(MAKE) synscand CC="gcc" CFLAGS="-O3 $(CFLAGS) -DLINUX" LDLIBS="common.o nsd.o tcpsock.o -lpcap"
	$(MAKE) sslog CC="gcc" CFLAGS="-O3 $(CFLAGS) -DLINUX" LDLIBS="common.o -lpcap"
#	$(MAKE) nscan CC="gcc" CFLAGS="-O3 $(CFLAGS) -DLINUX" LDLIBS="-lpcap"
#	gcc -O3 -o synscan synscan.c -DLINUX
#	gcc -O3 -o synscand synscand.c tcpsock.c nsd.c -DLINUX -lpcap
#	gcc -O3 -o sslog sslog.c -DLINUX -lpcap

solaris:
	$(MAKE) synscan CC="cc" CFLAGS="-fast -DSOLARIS"
# this is needed because cc doesnt like nsd.c
	gcc -O2 -c nsd.c
	$(MAKE) synscand CC="cc" CFLAGS="-fast -DSOLARIS" LDLIBS="nsd.o tcpsock.o -lpcap"
	$(MAKE) sslog CC="cc" CFLAGS="$-fast -DSOLARIS" LDLIBS="-L./ -lpcap-solaris"
#	cc -fast -o synscan synscan.c -DSOLARIS -lsocket -lnsl
#	cc -fast -c synscand.c -DSOLARIS
#	cc -fast -c tcpsock.c
#	gcc -O2 -c nsd.c
#	cc -fast -o synscand synscand.o tcpsock.o nsd.o -L./ -lpcap-solaris -lsocket -lnsl
#	cc -fast -o sslog sslog.c -DSOLARIS -L./ -lpcap-solaris -lsocket -lnsl

solaris-gcc:
	CC=gcc
	CFLAGS="-O3"
	$(MAKE) synscan CFLAGS="$(CFLAGS) -DSOLARIS"
	$(MAKE) synscand CFLAGS="$(CFLAGS) -DSOLARIS" LDLIBS="nsd.o tcpsock.o -lpcap"
	$(MAKE) sslog CFLAGS="$(CFLAGS) -DSOLARIS" LDLIBS="-L./ -lpcap-solaris"
#	gcc -O3 -o synscan synscan.c -DSOLARIS -lsocket -lnsl
#	gcc -O3 -o synscand synscand.c tcpsock.c nsd.c -DSOLARIS -L./ -lpcap-solaris -lsocket -lnsl
#	gcc -O3 -o sslog sslog.c -DSOLARIS -L./ -lpcap-solaris -lsocket -lnsl
	
clean:
	rm -f synscan synscand sslog *.o *.tar *.gz upscan

package:
	tar -cf synscan.tar synscan synscand *.txt utils
	gzip -9 synscan.tar
	ls -la synscan.tar.gz

install:
	cp synscan sslog synscand /usr/local/bin
	cp utils/portparse /usr/local/bin
