blob: f5a0bfe42aff4b9a6cd603fe8aa5e2cdb4182a6b [file] [log] [blame]
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -07001GENLOBJ=genl.o
2
3include ../Config
Mike Frysingerf2e27cf2009-11-06 06:09:22 -05004SHARED_LIBS ?= y
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -07005
Stephen Hemminger46dc73a2011-03-09 10:39:17 -08006CFLAGS += -fno-strict-aliasing
7
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -07008GENLMODULES :=
9GENLMODULES += ctrl.o
10
11GENLOBJ += $(GENLMODULES)
12
13GENLLIB :=
14
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050015ifeq ($(SHARED_LIBS),y)
Stephen Hemmingera18fa242006-10-19 13:13:20 -070016LDFLAGS += -Wl,-export-dynamic
17LDLIBS += -lm -ldl
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050018endif
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -070019
20all: genl
21
22genl: $(GENLOBJ) $(LIBNETLINK) $(LIBUTIL) $(GENLLIB)
David Ahern57bdf8b2016-05-24 15:04:49 -070023 $(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -070024
25install: all
Stephen Hemmingera18fa242006-10-19 13:13:20 -070026 install -m 0755 genl $(DESTDIR)$(SBINDIR)
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -070027
28clean:
29 rm -f $(GENLOBJ) $(GENLLIB) genl
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050030
31ifneq ($(SHARED_LIBS),y)
32
33genl: static-syms.o
34static-syms.o: static-syms.h
35static-syms.h: $(wildcard *.c)
36 files="$^" ; \
37 for s in `grep -B 3 '\<dlsym' $$files | sed -n '/snprintf/{s:.*"\([^"]*\)".*:\1:;s:%s::;p}'` ; do \
38 sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
39 done > $@
40
41endif