LIBNETMNGR = libnetmngr.so

LIBNETMNGROBJS = net_plugin.o common.o interfacestack.o

LIB_CFLAGS = $(CFLAGS) -Wall -Werror -fstrict-aliasing -g
LIB_LDFLAGS = $(LDFLAGS)
FPIC := -fPIC

ifeq ($(filter -DBBF_VENDOR_PREFIX=%,$(LIB_CFLAGS)),)
LIB_CFLAGS += -DBBF_VENDOR_PREFIX=\"X_IOWRT_EU_\"
endif

ifeq ($(NETMNGR_GRE_OBJ),y)
LIBNETMNGROBJS += gre.o
LIB_CFLAGS += -DNETMNGR_GRE_OBJ
endif

ifeq ($(NETMNGR_IP_OBJ),y)
LIBNETMNGROBJS += ip.o
LIB_CFLAGS += -DNETMNGR_IP_OBJ
endif

ifeq ($(NETMNGR_ROUTING_OBJ),y)
LIBNETMNGROBJS += routing.o
LIB_CFLAGS += -DNETMNGR_ROUTING_OBJ
endif

ifeq ($(NETMNGR_PPP_OBJ),y)
LIBNETMNGROBJS += ppp.o
LIB_CFLAGS += -DNETMNGR_PPP_OBJ
endif

ifeq ($(NETMNGR_ROUTER_ADVERTISEMENT_OBJ),y)
LIBNETMNGROBJS += routeradvertisement.o
LIB_CFLAGS += -DNETMNGR_ROUTER_ADVERTISEMENT_OBJ
endif

ifeq ($(NETMNGR_IPV6RD_OBJ),y)
LIBNETMNGROBJS += ipv6rd.o
LIB_CFLAGS += -DNETMNGR_IPV6RD_OBJ
endif
   
.PHONY: all

%.o: %.c
	$(CC) $(LIB_CFLAGS) $(FPIC) -c -o $@ $<

all: $(LIBNETMNGR)

$(LIBNETMNGR): $(LIBNETMNGROBJS)
	$(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS) -shared -o $@ $^

clean:
	rm -f *.o $(LIBNETMNGR)

