1 include ../makefile.inc
3 # build destination directories
4 OBJDIR = ../output/$(MACHINE)
7 TARGET_SO = $(OBJDIR)/$(COMPONENT).so
8 TARGET_LIB_SO = $(OBJDIR)/libamxb_ubus.so.$(VERSION)
9 TARGET_LIB_A = $(OBJDIR)/libamxb_ubus.a
14 INCDIR_PUB = ../include
15 INCDIR_PRIV = ../include_priv
16 INCDIRS = $(INCDIR_PUB) $(INCDIR_PRIV) $(if $(STAGINGDIR), $(STAGINGDIR)/include) $(if $(STAGINGDIR), $(STAGINGDIR)/usr/include)
17 STAGING_LIBDIR = $(if $(STAGINGDIR), -L$(STAGINGDIR)/lib) $(if $(STAGINGDIR), -L$(STAGINGDIR)/usr/lib)
20 HEADERS = $(wildcard $(INCDIR_PUB)/$(TARGET_NAME)/*.h)
21 SOURCES = $(wildcard $(SRCDIR)/*.c)
22 OBJECTS = $(addprefix $(OBJDIR)/,$(notdir $(SOURCES:.c=.o)))
24 # compilation and linking flags
25 CFLAGS += -Werror -Wall \
27 -Wwrite-strings -Wredundant-decls \
28 -Wmissing-declarations -Wno-attributes \
29 -fPIC -g3 $(addprefix -I ,$(INCDIRS))
34 CFLAGS += -Wstrict-prototypes -Wold-style-definition -Wnested-externs -std=gnu11
37 LDFLAGS += $(STAGING_LIBDIR) -shared -fPIC -lamxc -lamxp -lamxd -lamxb -lubox -lubus
40 all: ../include_priv/amxb_ubus_version.h $(TARGET_SO) $(TARGET_LIB_SO) $(TARGET_LIB_A)
42 $(TARGET_SO): $(OBJECTS)
43 $(CC) -Wl,-soname,$(COMPONENT).so -o $@ $(OBJECTS) $(LDFLAGS)
45 $(TARGET_LIB_SO): $(OBJECTS)
46 $(CC) -Wl,-soname,libamxb_ubus.so.$(VMAJOR) -o $@ $(OBJECTS) $(LDFLAGS)
48 $(TARGET_LIB_A): $(OBJECTS)
49 $(AR) rcs $(@) $(OBJECTS)
51 -include $(OBJECTS:.o=.d)
53 $(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR)/
54 $(CC) $(CFLAGS) -c -o $@ $<
55 @$(CC) $(CFLAGS) -MM -MP -MT '$(@) $(@:.o=.d)' -MF $(@:.o=.d) $(<)
60 ../include_priv/amxb_ubus_version.h: ../include_priv/amxb_ubus_version.h.m4
61 @echo "Current backend version = $(VMAJOR).$(VMINOR).$(VBUILD)"
62 m4 -DMAJOR=$(VMAJOR) -DMINOR=$(VMINOR) -DBUILD=$(VBUILD) $(<) > $(@)
65 rm -rf ../output/ ../$(COMPONENT)-*.* ../$(COMPONENT)_*.* ../include_priv/amxb_ubus_version.h
67 find ../test -name "run_test" -delete
68 find ../test -name "*.so" -delete