#!/bin/sh
# configure
# Copyright (c) M. Ulikowski <elceef@itsec.pl>
# This file is part of the NATDet - NAT Detection tool

show() { # from PLD
  typeset text
  text="$@"
  echo -n "$text"
  awk "BEGIN { for (j=length(\"$text\"); j<60; j++) printf \".\" }"
}

makefile() {
cat << END > Makefile
# Makefile
# Copyright (c) Marcin Ulikowski <elceef@itsec.pl>
# This file is part of the NATDet - NAT Detection tool

VERSION = 1.0.5

PROGRAM = natdet
NATSTAT = natstat/natstat
BINPERM = 754

PREFIX  = /usr/local
BINDIR  = \$(PREFIX)/sbin
DOCDIR  = \$(PREFIX)/doc/\$(PROGRAM)
MANDIR  = \$(PREFIX)/man/man1
SHADIR  = \$(PREFIX)/share/\$(PROGRAM)

OBJECTS = natdet.c
CFLAGS  = -O2 -Wall -funroll-loops -fomit-frame-pointer -DUNIX
LIBS    = -I/usr/local/include -lpcap
STRIP   = strip
CC      = cc

all:
	\$(CC) \$(CFLAGS) -o \$(PROGRAM) \$(OBJECTS) \$(LIBS)
	\$(STRIP) \$(PROGRAM) 2>/dev/null
	@echo Done.

\$(PROGRAM):
	\$(CC) \$(CFLAGS) -o \$(PROGRAM) \$(OBJECTS) \$(LIBS)
	\$(STRIP) \$(PROGRAM) 2>/dev/null
	@echo Done.

natstat: \$(NATSTAT)
	@echo Done.

install:
	mkdir -p \$(BINDIR)
	mkdir -p \$(DOCDIR)
	mkdir -p \$(SHADIR)
	mkdir -p \$(MANDIR)
	cp -p signatures \$(SHADIR)
	cp -p doc/LICENSE \$(DOCDIR)
	cp -p doc/INSTALL \$(DOCDIR)
	cp -p doc/CREDITS \$(DOCDIR)
	cp -p doc/README \$(DOCDIR)
	cp -p doc/README-polish \$(DOCDIR)
	cp -p doc/Platforms \$(DOCDIR)
	cp -p doc/CHANGES \$(DOCDIR)
	cp -p doc/FAQ \$(DOCDIR)
	cp -p doc/debug-mode \$(DOCDIR)
	cp -p natdet \$(BINDIR)
	chmod \$(BINPERM) \$(BINDIR)/\$(PROGRAM)
	cp -p doc/natdet.1 doc/natdet.1.tmp
	rm -f doc/natdet.1.gz
	gzip -9 doc/natdet.1
	mv doc/natdet.1.gz \$(MANDIR)
	mv doc/natdet.1.tmp doc/natdet.1
	@echo Done.

uninstall:
	rm -f \$(BINDIR)/natdet
	rm -f \$(DOCDIR)/LICENSE
	rm -f \$(DOCDIR)/INSTALL
	rm -f \$(DOCDIR)/CREDITS
	rm -f \$(DOCDIR)/README
	rm -f \$(DOCDIR)/README-polish
	rm -f \$(DOCDIR)/Platforms
	rm -f \$(DOCDIR)/CHANGES
	rm -f \$(DOCDIR)/FAQ
	rm -f \$(DOCDIR)/debug-mode
	rmdir \$(DOCDIR)
	rm -f \$(MANDIR)/natdet.1.gz
	rm -f \$(SHADIR)/signatures
	rmdir \$(SHADIR)
	@echo Done.

help:
	@cat doc/INSTALL

clean:
	rm -f \$(PROGRAM) \$(NATSTAT) a.out core core.[123456789]* cmp*

END
}

files="natdet.c struct.h config.h signatures"

for i in $files; do
  show "Checking for '$i' "
  if [ ! -e $i ]; then
    echo " not found!"
    exit 1
  else
    echo " Ok"
  fi
done

show "Checking for pcap library headers "

if [ ! -f /usr/include/pcap.h ]; then
  if [ ! -f /usr/local/include/pcap.h ]; then
    echo " not found!"
    exit 1
  fi
fi

echo " Ok"

show "Checking for C compiler "
ccver=`cc -v 2>&1|grep version 2>/dev/null|awk '{printf $1" "$3}' 2>cmp.out`

if [ ! -s cmp.out ]; then
  echo " Ok"
  show "Checking whether C compiler ($ccver) works "
  echo "int main(void){return 0;}" >cmp.c
  gcc cmp.c -o cmp 2>cmp.out

  if [ ! -s cmp.out ]; then
    echo " Ok"
    rm cmp.out cmp.c cmp
  else
    echo " no?!"
    rm cmp.out cmp.c
    exit 1
  fi

else
  echo " not found!"
  rm cmp.out
  exit 1
fi

show "Creating Makefile "
makefile
echo " Ok"

