
# Compiler and Linker Options
COPTS = -O2 -Wall -g 

CFLAGS	= $(COPTS)

ifeq ($(origin CC), undefined)
CC	= gcc
endif


%.o:		%.c  ipv6calc.h $<
		$(CC) $(CFLAGS) -c $<

ipv6calc:	ipv6calc.o ipv6calc.h addr2compaddr.o addr2uncompaddr.o addr2fulluncompaddr.o addr2if_inet6.o addr2ip6_int.o if_inet62addr.o  libipv6calc.o
		$(CC)  -o ipv6calc ipv6calc.o addr2compaddr.o addr2uncompaddr.o addr2fulluncompaddr.o addr2if_inet6.o addr2ip6_int.o if_inet62addr.o  libipv6calc.o

clean:
		rm -rf ipv6calc *.o

install:
		make test
		mkdir -p $(root)/bin/
		install -m 755 -o root -g root ipv6calc $(root)/bin/

test:
		./ipv6calc --addr2ip6_int 3ffe:400:100:f101::1 | grep -q '^1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.int$\' && echo "ok" || echo "error!"
		./ipv6calc --addr2ip6_int 3ffe:400:100:f101::1/64 | grep -q '^1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.int$\' && echo "ok" || echo "error!"

		./ipv6calc --addr2compaddr 3ffe:0400:0100:f101:0000:0000:0000:0001 | grep -q '^3ffe:400:100:f101::1$\' && echo "ok" || echo "error!"
		./ipv6calc --addr2compaddr 3ffe:0400:0100:f101:0000:0000:0000:0001/64 | grep -q '^3ffe:400:100:f101::1/64$\' && echo "ok" || echo "error!"

		./ipv6calc --addr2uncompaddr 3ffe:400:100:f101::1 | grep -q '^3ffe:400:100:f101:0:0:0:1$\' && echo "ok" || echo "error!"
		./ipv6calc --addr2uncompaddr 3ffe:400:100:f101::1/64 | grep -q '^3ffe:400:100:f101:0:0:0:1/64$\' && echo "ok" || echo "error!"

		./ipv6calc --addr2uncompaddr --maskprefix 3ffe:400:100:f101::1/64 | grep -q '^3ffe:400:100:f101:0:0:0:0/64$\' && echo "ok" || echo "error!"
		./ipv6calc --addr2uncompaddr --masksuffix 3ffe:400:100:f101:c000::1/64 | grep -q '^0:0:0:0:c000:0:0:1/64$\' && echo "ok" || echo "error!"

		./ipv6calc --addr2fulluncompaddr 3ffe:400:100:f101::1 | grep -q '^3ffe:0400:0100:f101:0000:0000:0000:0001$\'  && echo "ok" || echo "error!" 
		./ipv6calc --addr2fulluncompaddr 3ffe:400:100:f101::1/64 | grep -q '^3ffe:0400:0100:f101:0000:0000:0000:0001/64$\'  && echo "ok" || echo "error!" 
		./ipv6calc --addr2if_inet6 3ffe:400:100:f101::1 | grep -q '^3ffe04000100f1010000000000000001 00$\' && echo "ok" || echo "error!" 
		./ipv6calc --addr2if_inet6 3ffe:400:100:f101::1/64 | grep -q '^3ffe04000100f1010000000000000001 00 40$\' && echo "ok" || echo "error!" 

		./ipv6calc --if_inet62addr 3ffe04000100f1010000000000000001 | grep -q '^3ffe:400:100:f101::1$\' && echo "ok" || echo "error!"
		./ipv6calc --if_inet62addr 3ffe04000100f1010000000000000001 40 | grep '^3ffe:400:100:f101::1/64$\' && echo "ok" || echo "error!"

