blob: 44bb83cd05865a5b5ead66b7cba16a7134a68ea8 [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
6GENLMODULES :=
7GENLMODULES += ctrl.o
8
9GENLOBJ += $(GENLMODULES)
10
11GENLLIB :=
12
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050013ifeq ($(SHARED_LIBS),y)
Stephen Hemmingera18fa242006-10-19 13:13:20 -070014LDFLAGS += -Wl,-export-dynamic
15LDLIBS += -lm -ldl
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050016endif
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -070017
18all: genl
19
20genl: $(GENLOBJ) $(LIBNETLINK) $(LIBUTIL) $(GENLLIB)
21
22install: all
Stephen Hemmingera18fa242006-10-19 13:13:20 -070023 install -m 0755 genl $(DESTDIR)$(SBINDIR)
Jamal Hadi Salim65018ae2006-08-08 12:13:34 -070024
25clean:
26 rm -f $(GENLOBJ) $(GENLLIB) genl
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050027
28ifneq ($(SHARED_LIBS),y)
29
30genl: static-syms.o
31static-syms.o: static-syms.h
32static-syms.h: $(wildcard *.c)
33 files="$^" ; \
34 for s in `grep -B 3 '\<dlsym' $$files | sed -n '/snprintf/{s:.*"\([^"]*\)".*:\1:;s:%s::;p}'` ; do \
35 sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
36 done > $@
37
38endif