CURRENT_DIR = $(shell pwd)
COMMON_ZCFG_INCLUDE_DIR = $(CURRENT_DIR)/../../../private/apps/zcfg/include
LIB_PATH = -L$(USRLIBDIR) -L$(INSTALL_DIR)/lib/public -L$(INSTALL_DIR)/lib/private
LINK_LIB = -ljson -lzcfg_msg -lzcfg_fe_rdm_access -lzcfg_fe_rdm_string -lzcfg_fe_rdm_struct
INC_PATH = -I$(TOOLCHAIN)/include -I$(COMMON_ZCFG_INCLUDE_DIR) -I.
OBJ_FILES = wanDev.o wanDev_api.o zyExt.o diag.o devInfo.o devTime.o root.o mgmtSrv.o lanDev.o l2bridge.o l3fwd.o lanConfSec.o firewall.o schedule.o qos.o voice.o
CFLAGS += -fPIC -Wall


.PHONY : $(OBJ_FILES) libzcfg_fe_tr98

all: clean $(OBJ_FILES) libzcfg_fe_tr98

libzcfg_fe_tr98 : zcfg_fe_tr98.o $(OBJ_FILES)
	$(CC) -shared -o libzcfg_fe_tr98.so zcfg_fe_tr98.o $(OBJ_FILES) $(LIB_PATH) $(LINK_LIB)

wanDev.o: wanDev.c wanDev_api.h
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

wanDev_api.o: wanDev_api.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

zyExt.o : zyExt.c
	$(CC) $(CFLAGS) -Werror -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

diag.o : diag.c
	$(CC) $(CFLAGS) -Werror -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

devInfo.o: devInfo.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

devTime.o: devTime.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

lanDev.o: lanDev.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

l2bridge.o: l2bridge.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

root.o: root.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

mgmtSrv.o: mgmtSrv.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

l3fwd.o: l3fwd.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

lanConfSec.o: lanConfSec.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

firewall.o: firewall.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

schedule.o: schedule.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

qos.o: qos.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

voice.o: voice.c
	$(CC) $(CFLAGS) -c $< $(INC_PATH) $(LIB_PATH) $(LINK_LIB) -std=gnu99

zcfg_fe_tr98.o : zcfg_fe_tr98.c zcfg_fe_tr98.h
	$(CC) $(CFLAGS) -c zcfg_fe_tr98.c $(CFLAG) $(LIB_PATH) $(INC_PATH) $(LINK_LIB) -std=gnu99

install:
	install -m 755 libzcfg_fe_tr98.so $(INSTALL_DIR)/lib/public
	install -m 666 zcfg_fe_tr98.h $(COMMON_ZCFG_INCLUDE_DIR)

clean:
	rm -rf *.o
	rm -rf *.so
	rm -rf $(COMMON_ZCFG_INCLUDE_DIR)/zcfg_fe_tr98.h

CURR_DIR := $(shell pwd)
BUILD_DIR:=$(subst /userspace, /userspace,$(CURR_DIR))
BUILD_DIR:=$(word 1, $(BUILD_DIR))

#include $(BUILD_DIR)/make.common

CFLAGS += -DIPV6INTERFACE_PROFILE -DDHCPV6CLIENT_PROFILE -DIPV6RD_PROFILE -DROUTERADVERTISEMENT_PROFILE -DIPV6SERVER_PROFILE


