SRCS=	dna.c server.c client.c peers.c ciphers.c responses.c packetformats.c dataformats.c \
	hlrdata.c srandomdev.c simulate.c batman.c export.c gateway.c \
	overlay.c overlay_buffer.c overlay_interface.c overlay_payload.c overlay_route.c \
	overlay_packetformats.c overlay_abbreviations.c overlay_advertise.c

OBJS=	dna.o server.o client.o peers.o ciphers.o responses.o packetformats.o dataformats.o \
	hlrdata.o srandomdev.o simulate.o batman.o export.o gateway.o \
	overlay.o overlay_buffer.o overlay_interface.o overlay_payload.o overlay_route.o \
	overlay_packetformats.o overlay_abbreviations.o overlay_advertise.o

HDRS=	Makefile mphlr.h
LDFLAGS=	@LDFLAGS@
CFLAGS=	@CFLAGS@
DEFS=	@DEFS@

all:	serval.c dna

%.o:	%.c $(HDRS)
	$(CC) $(CFLAGS) $(DEFS) -Os -g -Wall -c $<

dna:	$(OBJS)
	$(CC) $(CFLAGS) -Os -g -Wall -o dna $(OBJS) $(LDFLAGS)

serval.c:	$(SRCS) $(HDRS)
	cat mphlr.h > serval.c
	echo '#include <sys/mman.h>' >>serval.c
	cat $(SRCS) | grep -v "#include" | sed -e 's/inet_ntoa/ast_inet_ntoa/g' >>serval.c

testserver: dna
	clear
	rm hlr.dat
	./dna -vvv -S 1 -f hlr.dat

testcreate: dna
	clear
	./dna -vvv -d 0427679796 -C
	@touch testcreate

testget:	dna testcreate
	clear
	./dna -vvv -d 0427679796 -R dids | tee testget

testset:	dna testget
	clear
	# Try writing a value to a variable
	echo "short value" >shortvalue.txt
	./dna -vvv -s `cat testget | cut -f2 -d: | tail -1` -i 0 -W note=@shortvalue.txt

testbigset: testget
	clear
	./dna -vvv -s `cat testget | cut -f2 -d: | tail -1` -i 0 -W note=@411.txt