REVISION	= $(shell sh ./evalrev)
REVFLAGS        = -D_REVISION=$(REVISION)

CC              = gcc
CFLAGS          ?= -g -W -Wall -O3
OPTFLAGS        = -D_FILE_OFFSET_BITS=64

destdir         = 
prefix          = ${PREFIX}
bindir          = $(prefix)/bin
sbindir         = $(prefix)/sbin
mandir          = $(prefix)/man/man1
datadir         = $(prefix)/share
docdir          = $(datadir)/doc/aircrack-ng

BINFILES        = aircrack-ng airdecap-ng packetforge-ng ivstools kstats
SCRIPTS         = airmon-ng
TESTFILES       = makeivs
DOCFILES        = ChangeLog INSTALLING README LICENSE AUTHORS VERSION


default: all

all: aircrack-ng airdecap-ng packetforge-ng ivstools kstats makeivs

aircrack-ng: src/aircrack-ng.c src/crypto.c src/sha1-mmx.S src/common.c src/aircrack-ptw-lib.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) src/aircrack-ng.c src/crypto.c src/sha1-mmx.S src/common.c src/aircrack-ptw-lib.c -o aircrack-ng -lpthread

airdecap-ng: src/airdecap-ng.c src/crypto.c src/common.c src/crc.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) src/airdecap-ng.c src/crypto.c src/common.c src/crc.c -o airdecap-ng

packetforge-ng: src/packetforge-ng.c src/common.c src/crc.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) src/packetforge-ng.c src/common.c src/crc.c -o packetforge-ng

ivstools: src/ivstools.c src/common.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) src/ivstools.c src/common.c -o ivstools

kstats: src/kstats.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) src/kstats.c  -o kstats

makeivs: test/makeivs.c
	$(CC) $(CFLAGS) $(OPTFLAGS) $(REVFLAGS) test/makeivs.c -o makeivs

strip: $(BINFILES) $(TESTFILES)
	strip $(BINFILES) $(TESTFILES)

install: $(BINFILES) $(TESTFILES)
	install -d $(destdir)$(bindir)
	install -m 755 $(BINFILES) $(destdir)$(bindir)
	install -m 755 $(SCRIPTS) $(destdir)$(sbindir)
	install -d $(destdir)$(mandir)
	install -m 644 ./manpages/* $(destdir)$(mandir)

uninstall:
	-rm -f $(destdir)$(bindir)/aircrack-ng
	-rm -f $(destdir)$(bindir)/airdecap-ng
	-rm -f $(destdir)$(bindir)/arpforge
	-rm -f $(destdir)$(bindir)/packetforge-ng
	-rm -f $(destdir)$(bindir)/aireplay-ng
	-rm -f $(destdir)$(bindir)/airmon.sh
	-rm -f $(destdir)$(bindir)/mergeivs
	-rm -f $(destdir)$(bindir)/makeivs
	-rm -f $(destdir)$(bindir)/pcap2ivs
	-rm -f $(destdir)$(bindir)/ivstools
	-rm -f $(destdir)$(bindir)/kstats
	-rm -f $(destdir)$(bindir)/ivstools-ng
	-rm -f $(destdir)$(mandir)/aircrack-ng.1
	-rm -f $(destdir)$(mandir)/airdecap-ng.1
	-rm -f $(destdir)$(mandir)/airmon.sh.1
	-rm -f $(destdir)$(mandir)/airmon-ng.1
	-rm -f $(destdir)$(mandir)/arpforge.1
	-rm -f $(destdir)$(mandir)/mergeivs.1
	-rm -f $(destdir)$(mandir)/pcap2ivs.1
	-rm -f $(destdir)$(mandir)/ivstools.1
	-rm -f $(destdir)$(mandir)/kstats.1
	-rm -f $(destdir)$(mandir)/makeivs.1
	-rm -f $(destdir)$(mandir)/packetforge-ng.1
	-rm -f $(destdir)/usr/man/man1/aircrack-ng.1
	-rm -f $(destdir)/usr/man/man1/airdecap-ng.1
	-rm -f $(destdir)/usr/man/man1/airmon.sh.1
	-rm -f $(destdir)/usr/man/man1/arpforge.1
	-rm -f $(destdir)/usr/man/man1/mergeivs.1
	-rm -f $(destdir)/usr/man/man1/pcap2ivs.1
	
doc:
	install -d $(destdir)$(docdir)
	install -m 644 $(DOCFILES) $(destdir)$(docdir)
	

clean:
	-rm -f $(SBINFILES) $(BINFILES) $(TESTFILES)
