| 1 |
|
| 2 |
|
| 3 | include ../../scripts/Makefile.arch
|
| 4 |
|
| 5 | INSTALL ?= install
|
| 6 | prefix ?= /usr
|
| 7 | ifeq ($(LP64), 1)
|
| 8 | libdir_relative = lib64
|
| 9 | else
|
| 10 | libdir_relative = lib
|
| 11 | endif
|
| 12 | libdir ?= $(prefix)/$(libdir_relative)
|
| 13 | includedir ?= $(prefix)/include
|
| 14 |
|
| 15 | SPECDIR=../../../Documentation/netlink/specs
|
| 16 |
|
| 17 | SUBDIRS = lib generated ynltool tests
|
| 18 |
|
| 19 | all: $(SUBDIRS) libynl.a
|
| 20 |
|
| 21 | tests: | lib generated libynl.a
|
| 22 | ynltool: | lib generated libynl.a
|
| 23 | libynl.a: | lib generated
|
| 24 | @echo -e "\tAR $@"
|
| 25 | @$(AR) rcs $@ lib/ynl.o generated/*-user.o
|
| 26 |
|
| 27 | $(SUBDIRS):
|
| 28 | @if [ -f "$@/Makefile" ] ; then \
|
| 29 | $(MAKE) -C $@ ; \
|
| 30 | fi
|
| 31 |
|
| 32 | clean distclean:
|
| 33 | @for dir in $(SUBDIRS) ; do \
|
| 34 | if [ -f "$$dir/Makefile" ] ; then \
|
| 35 | $(MAKE) -C $$dir $@; \
|
| 36 | fi \
|
| 37 | done
|
| 38 | rm -f libynl.a
|
| 39 | rm -rf pyynl/__pycache__
|
| 40 | rm -rf pyynl/lib/__pycache__
|
| 41 | rm -rf pyynl.egg-info
|
| 42 | rm -rf build
|
| 43 |
|
| 44 | install: libynl.a lib/*.h ynltool
|
| 45 | @echo -e "\tINSTALL libynl.a"
|
| 46 | @$(INSTALL) -d $(DESTDIR)$(libdir)
|
| 47 | @$(INSTALL) -m 0644 libynl.a $(DESTDIR)$(libdir)/libynl.a
|
| 48 | @echo -e "\tINSTALL libynl headers"
|
| 49 | @$(INSTALL) -d $(DESTDIR)$(includedir)/ynl
|
| 50 | @$(INSTALL) -m 0644 lib/*.h $(DESTDIR)$(includedir)/ynl/
|
| 51 | @echo -e "\tINSTALL pyynl"
|
| 52 | @pip install --prefix=$(DESTDIR)$(prefix) .
|
| 53 | @make -C generated install
|
| 54 | @make -C ynltool install
|
| 55 |
|
| 56 | run_tests:
|
| 57 | @$(MAKE) -C tests run_tests
|
| 58 |
|
| 59 | lint:
|
| 60 | yamllint $(SPECDIR)
|
| 61 |
|
| 62 | schema_check:
|
| 63 | @N=1; \
|
| 64 | for spec in $(SPECDIR)/*.yaml ; do \
|
| 65 | NAME=$$(basename $$spec) ; \
|
| 66 | OUTPUT=$$(./pyynl/cli.py --spec $$spec --validate) ; \
|
| 67 | if [ $$? -eq 0 ] ; then \
|
| 68 | echo "ok $$N $$NAME schema validation" ; \
|
| 69 | else \
|
| 70 | echo "not ok $$N $$NAME schema validation" ; \
|
| 71 | echo "$$OUTPUT" ; \
|
| 72 | echo ; \
|
| 73 | fi ; \
|
| 74 | N=$$((N+1)) ; \
|
| 75 | done
|
| 76 |
|
| 77 | .PHONY: all clean distclean install run_tests lint schema_check $(SUBDIRS)
|