include ../Makefile.inc

OBJECTS = lowlevel-linux.o libnetlink.o ll_map.o ll_types.o utils.o lowlevel-options-linux.o daemon.o iproute.o

objs: $(OBJECTS)


libs: objs libLowLevel.a 

# ============================================================
# === C low level stuff ======================================
# ============================================================
lowlevel-linux.o: lowlevel-linux.c 
	@echo "[CC     ] $(SUBDIR)/$@"
	$(CC) $(COPTS) -I. -c lowlevel-linux.c 

libnetlink.o: libnetlink.c
	@echo "[CC     ] $(SUBDIR)/$@ (warnings ignored)"
	$(CC) $(COPTS) -c libnetlink.c 2> libnetlink.c-warnings

ll_map.o: ll_map.c 
	@echo "[CC     ] $(SUBDIR)/$@"
	$(CC) $(COPTS) -c ll_map.c

ll_types.o: ll_types.c
	@echo "[CC     ] $(SUBDIR)/$@"
	$(CC) $(COPTS) -c ll_types.c

utils.o: utils.c
	@echo "[CC     ] $(SUBDIR)/$@ (warnings ignored)"
	$(CC) $(COPTS) -c utils.c 2> utils.c-warnings

lowlevel-options-linux.o: lowlevel-options-linux.c	
	@echo "[CC     ] $(SUBDIR)/$@"
	$(CC) $(COPTS) -c $<

iproute.o: iproute.c
	@echo "[CC     ] $(SUBDIR)/$@ (warnings ignored)"
	$(CC) $(COPTS) -c iproute.c 2> iproute.c-warnings

# ============================================================
# === tests ==================================================
# ============================================================

test: test1 test2

test1: test1.cpp ../Misc/addrpack.o libLowLevel.a
	$(CXX) $(OPTS) test1.cpp ../Misc/addrpack.o libLowLevel.a -o test1

test2: test2.cpp libLowLevel.a
	cd $(SRVCFGMGR); $(MAKE) libs
	$(CXX) $(OPTS)  test2.cpp -L. -lLowLevel -o test2

test3: test1.cpp SrvParser.cpp SrvLexer.o
	cd $(SRVCFGMGR); $(MAKE) libs
	$(CXX) $(OPTS) -I $(INCDIR) -o $@ test3.cpp SrvParser.cpp SrvLexer.o \
	-L. -lSrvParser -L$(SRVCFGMGR) -lSrvCfgMgr ../IPv6Addr.cpp ../DUID.cpp \
	$(LOWLEVEL)/addrpack.o ../Logger.o
