Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 1 | GENLOBJ=genl.o |
| 2 | |
Stephen Hemminger | 5f1df30 | 2017-08-10 17:05:03 -0700 | [diff] [blame^] | 3 | include ../config.mk |
Mike Frysinger | f2e27cf | 2009-11-06 06:09:22 -0500 | [diff] [blame] | 4 | SHARED_LIBS ?= y |
Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 5 | |
Stephen Hemminger | 46dc73a | 2011-03-09 10:39:17 -0800 | [diff] [blame] | 6 | CFLAGS += -fno-strict-aliasing |
| 7 | |
Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 8 | GENLMODULES := |
| 9 | GENLMODULES += ctrl.o |
| 10 | |
| 11 | GENLOBJ += $(GENLMODULES) |
| 12 | |
| 13 | GENLLIB := |
| 14 | |
Mike Frysinger | f2e27cf | 2009-11-06 06:09:22 -0500 | [diff] [blame] | 15 | ifeq ($(SHARED_LIBS),y) |
Stephen Hemminger | a18fa24 | 2006-10-19 13:13:20 -0700 | [diff] [blame] | 16 | LDFLAGS += -Wl,-export-dynamic |
| 17 | LDLIBS += -lm -ldl |
Mike Frysinger | f2e27cf | 2009-11-06 06:09:22 -0500 | [diff] [blame] | 18 | endif |
Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 19 | |
| 20 | all: genl |
| 21 | |
| 22 | genl: $(GENLOBJ) $(LIBNETLINK) $(LIBUTIL) $(GENLLIB) |
David Ahern | 57bdf8b | 2016-05-24 15:04:49 -0700 | [diff] [blame] | 23 | $(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@ |
Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 24 | |
| 25 | install: all |
Stephen Hemminger | a18fa24 | 2006-10-19 13:13:20 -0700 | [diff] [blame] | 26 | install -m 0755 genl $(DESTDIR)$(SBINDIR) |
Jamal Hadi Salim | 65018ae | 2006-08-08 12:13:34 -0700 | [diff] [blame] | 27 | |
| 28 | clean: |
| 29 | rm -f $(GENLOBJ) $(GENLLIB) genl |
Mike Frysinger | f2e27cf | 2009-11-06 06:09:22 -0500 | [diff] [blame] | 30 | |
| 31 | ifneq ($(SHARED_LIBS),y) |
| 32 | |
| 33 | genl: static-syms.o |
| 34 | static-syms.o: static-syms.h |
| 35 | static-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 | |
| 41 | endif |