X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fkmod.git;a=blobdiff_plain;f=Makefile.am;h=c5c2f06f6d558c49a10668a431f984d06f2b724c;hp=caf18b6cb73ab9c19943465895a3f945abc43d31;hb=HEAD;hpb=037618816c5c89fc768842793baa943583221d68 diff --git a/Makefile.am b/Makefile.am index caf18b6..e2e2411 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,7 @@ endif DISTCLEAN_LOCAL_HOOKS = EXTRA_DIST = CLEANFILES = $(BUILT_FILES) +DISTCLEANFILES = BUILT_FILES = ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} AM_MAKEFLAGS = --no-print-directory @@ -18,30 +19,29 @@ AM_CPPFLAGS = \ -include $(top_builddir)/config.h \ -I$(top_srcdir) \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DDISTCONFDIR=\""$(distconfdir)"\" \ + -DMODULE_DIRECTORY=\""$(module_directory)"\" \ ${zlib_CFLAGS} AM_CFLAGS = $(OUR_CFLAGS) AM_LDFLAGS = $(OUR_LDFLAGS) -SED_PROCESS = \ - $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \ - -e 's,@VERSION\@,$(VERSION),g' \ - -e 's,@prefix\@,$(prefix),g' \ - -e 's,@exec_prefix\@,$(exec_prefix),g' \ - -e 's,@libdir\@,$(libdir),g' \ - -e 's,@includedir\@,$(includedir),g' \ - -e 's,@liblzma_CFLAGS\@,${liblzma_CFLAGS},g' \ - -e 's,@liblzma_LIBS\@,${liblzma_LIBS},g' \ - -e 's,@zlib_CFLAGS\@,${zlib_CFLAGS},g' \ - -e 's,@zlib_LIBS\@,${zlib_LIBS},g' \ - < $< > $@ || rm $@ - -%.pc: %.pc.in Makefile - $(SED_PROCESS) - -LIBKMOD_CURRENT=4 -LIBKMOD_REVISION=10 -LIBKMOD_AGE=2 +# Rules for libtool versioning (from https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html) +# 1. Start with version information of ‘0:0:0’ for each libtool library. +# 2. Update the version information only immediately before a public release of +# your software. More frequent updates are unnecessary, and only guarantee that +# the current interface number gets larger faster. +# 3. If the library source code has changed at all since the last update, then +# increment revision (‘c:r:a’ becomes ‘c:r+1:a’). +# 4. If any interfaces have been added, removed, or changed since the last +# update, increment current, and set revision to 0. +# 5. If any interfaces have been added since the last public release, then +# increment age. +# 6. If any interfaces have been removed or changed since the last public +# release, then set age to 0. +LIBKMOD_CURRENT=6 +LIBKMOD_REVISION=2 +LIBKMOD_AGE=4 noinst_LTLIBRARIES = shared/libshared.la shared_libshared_la_SOURCES = \ @@ -51,6 +51,8 @@ shared_libshared_la_SOURCES = \ shared/array.h \ shared/hash.c \ shared/hash.h \ + shared/scratchbuf.c \ + shared/scratchbuf.h \ shared/strbuf.c \ shared/strbuf.h \ shared/util.c \ @@ -63,6 +65,7 @@ libkmod_libkmod_la_SOURCES = \ libkmod/libkmod.h \ libkmod/libkmod-internal.h \ libkmod/libkmod.c \ + libkmod/libkmod-builtin.c \ libkmod/libkmod-list.c \ libkmod/libkmod-config.c \ libkmod/libkmod-index.c \ @@ -84,7 +87,7 @@ libkmod_libkmod_la_DEPENDENCIES = \ ${top_srcdir}/libkmod/libkmod.sym libkmod_libkmod_la_LIBADD = \ shared/libshared.la \ - ${liblzma_LIBS} ${zlib_LIBS} + ${libzstd_LIBS} ${liblzma_LIBS} ${zlib_LIBS} ${libcrypto_LIBS} noinst_LTLIBRARIES += libkmod/libkmod-internal.la libkmod_libkmod_internal_la_SOURCES = $(libkmod_libkmod_la_SOURCES) @@ -93,10 +96,8 @@ libkmod_libkmod_internal_la_LDFLAGS = $(AM_LDFLAGS) \ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES) libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD) -pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libkmod/libkmod.pc -EXTRA_DIST += libkmod/libkmod.pc.in -CLEANFILES += libkmod/libkmod.pc +noarch_pkgconfig_DATA = tools/kmod.pc bashcompletiondir=@bashcompletiondir@ dist_bashcompletion_DATA = \ @@ -110,9 +111,19 @@ install-exec-hook: ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libkmod.so && \ mv $(DESTDIR)$(libdir)/libkmod.so.* $(DESTDIR)$(rootlibdir); \ fi +if BUILD_TOOLS + for tool in insmod lsmod rmmod depmod modprobe modinfo; do \ + $(LN_S) -f kmod $(DESTDIR)$(bindir)/$$tool; \ + done +endif uninstall-hook: rm -f $(DESTDIR)$(rootlibdir)/libkmod.so* +if BUILD_TOOLS + for tool in insmod lsmod rmmod depmod modprobe modinfo; do \ + rm -f $(DESTDIR)$(bindir)/$$tool; \ + done +endif if BUILD_TOOLS bin_PROGRAMS = tools/kmod @@ -126,9 +137,8 @@ tools_kmod_SOURCES = \ tools/rmmod.c tools/insmod.c \ tools/modinfo.c tools/modprobe.c \ tools/depmod.c tools/log.h tools/log.c \ - tools/insert.c \ - tools/remove.c \ tools/static-nodes.c + tools_kmod_LDADD = \ shared/libshared.la \ libkmod/libkmod-internal.la @@ -138,98 +148,30 @@ ${noinst_SCRIPTS}: tools/kmod $(LN_S) $(notdir $<) $@) endif -# ------------------------------------------------------------------------------ -# PYTHON BINDINGS -# ------------------------------------------------------------------------------ - -CYTHON_FLAGS_VERBOSE_ = -CYTHON_FLAGS_VERBOSE_0 = -CYTHON_FLAGS_VERBOSE_1 = -v -CYTHON_FLAGS = $(CYTHON_FLAGS_VERBOSE_$(V)) -AM_V_CYTHON = $(am__v_CYTHON_$(V)) -am__v_CYTHON_ = $(am__v_CYTHON_$(AM_DEFAULT_VERBOSITY)) -am__v_CYTHON_0 = @echo " CYTHON " $@; - -.pyx.c: - $(AM_V_CYTHON)$(CYTHON) -o $@ $< - -%.py: %.py.in Makefile - $(SED_PROCESS) - -# Remove some warnings for generated code -PYTHON_NOWARN = -Wno-redundant-decls -Wno-shadow -Wno-strict-aliasing - -CPYTHON_MODULE_CFLAGS = \ - $(AM_CFLAGS) -DCPYTHON_COMPILING_IN_PYPY=0 \ - $(PYTHON_NOWARN) $(PYTHON_CFLAGS) \ - -fvisibility=default -CPYTHON_MODULE_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version -shared - -if BUILD_PYTHON -pkgpyexec_LTLIBRARIES = \ - libkmod/python/kmod/kmod.la \ - libkmod/python/kmod/list.la \ - libkmod/python/kmod/module.la \ - libkmod/python/kmod/_util.la - -libkmod_python_kmod_kmod_la_SOURCES = libkmod/python/kmod/kmod.c -libkmod_python_kmod_kmod_la_CFLAGS = $(CPYTHON_MODULE_CFLAGS) -libkmod_python_kmod_kmod_la_LDFLAGS = $(CPYTHON_MODULE_LDFLAGS) -libkmod_python_kmod_kmod_la_LIBADD = $(PYTHON_LIBS) libkmod/libkmod.la - -libkmod_python_kmod_list_la_SOURCES = libkmod/python/kmod/list.c -libkmod_python_kmod_list_la_CFLAGS = $(CPYTHON_MODULE_CFLAGS) -libkmod_python_kmod_list_la_LDFLAGS = $(CPYTHON_MODULE_LDFLAGS) -libkmod_python_kmod_list_la_LIBADD = $(PYTHON_LIBS) libkmod/libkmod.la - -libkmod_python_kmod_module_la_SOURCES = libkmod/python/kmod/module.c -libkmod_python_kmod_module_la_CFLAGS = $(CPYTHON_MODULE_CFLAGS) -libkmod_python_kmod_module_la_LDFLAGS = $(CPYTHON_MODULE_LDFLAGS) -libkmod_python_kmod_module_la_LIBADD = $(PYTHON_LIBS) libkmod/libkmod.la - -libkmod_python_kmod__util_la_SOURCES = libkmod/python/kmod/_util.c -libkmod_python_kmod__util_la_CFLAGS = $(CPYTHON_MODULE_CFLAGS) -libkmod_python_kmod__util_la_LDFLAGS = $(CPYTHON_MODULE_LDFLAGS) -libkmod_python_kmod__util_la_LIBADD = $(PYTHON_LIBS) libkmod/libkmod.la - -BUILT_FILES += \ - $(libkmod_python_kmod_kmod_la_SOURCES) \ - $(libkmod_python_kmod_list_la_SOURCES) \ - $(libkmod_python_kmod_module_la_SOURCES) \ - $(libkmod_python_kmod__util_la_SOURCES) - -dist_pkgpyexec_PYTHON = \ - libkmod/python/kmod/error.py \ - libkmod/python/kmod/__init__.py \ - libkmod/python/kmod/version.py - -BUILT_FILES += libkmod/python/kmod/version.py - -endif # ------------------------------------------------------------------------------ # TESTSUITE # ------------------------------------------------------------------------------ -EXTRA_DIST += testsuite/populate-modules.sh +EXTRA_DIST += testsuite/setup-rootfs.sh MODULE_PLAYGROUND = testsuite/module-playground ROOTFS = testsuite/rootfs ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine -CREATE_ROOTFS = $(AM_V_GEN) ( $(RM) -rf $(ROOTFS) && mkdir -p $(dir $(ROOTFS)) && \ - cp -r $(ROOTFS_PRISTINE) $(ROOTFS) && \ - find $(ROOTFS) -type d -exec chmod +w {} \; && \ - find $(ROOTFS) -type f -name .gitignore -exec rm -f {} \; && \ - $(top_srcdir)/testsuite/populate-modules.sh \ - $(MODULE_PLAYGROUND) $(ROOTFS) ) && \ - touch testsuite/stamp-rootfs +CREATE_ROOTFS = $(AM_V_GEN) MODULE_DIRECTORY=$(module_directory) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir) build-module-playground: $(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \ $(RM) -rf testsuite/module-playground && \ + mkdir -p testsuite/ && \ cp -r $(top_srcdir)/$(MODULE_PLAYGROUND) $(top_builddir)/$(MODULE_PLAYGROUND) && \ find $(top_builddir)/$(MODULE_PLAYGROUND) -type d -exec chmod +w {} \; ; \ fi +if BUILD_MODULES $(MAKE) -C $(MODULE_PLAYGROUND) +else + $(MAKE) -C $(MODULE_PLAYGROUND) FAKE_BUILD=1 +endif + rootfs: build-module-playground $(CREATE_ROOTFS) @@ -246,16 +188,12 @@ TESTSUITE_OVERRIDE_LIBS = \ TESTSUITE_OVERRIDE_LIBS_LDFLAGS = \ avoid-version -module -shared -export-dynamic -rpath /nowhere -ldl -check-sysconfdir: - $(AM_V_at)if test "$(sysconfdir)" != "/etc" -a "$(sysconfdir)" != "/etc/"; then \ - echo "warning: Some tests will fail without --sysconfdir=/etc" >&2; \ - fi -.PHONY: check-sysconfdir - -check-am: rootfs check-sysconfdir +check-am: rootfs EXTRA_DIST += \ + testsuite/module-playground/cache \ + testsuite/module-playground/dummy.pkcs7 \ testsuite/module-playground/dummy.sha1 \ testsuite/module-playground/dummy.sha256 \ testsuite/module-playground/Makefile \ @@ -272,6 +210,12 @@ EXTRA_DIST += \ testsuite/module-playground/mod-loop-c.c \ testsuite/module-playground/mod-loop-d.c \ testsuite/module-playground/mod-loop-e.c \ + testsuite/module-playground/mod-loop-f.c \ + testsuite/module-playground/mod-loop-g.c \ + testsuite/module-playground/mod-loop-h.c \ + testsuite/module-playground/mod-loop-i.c \ + testsuite/module-playground/mod-loop-j.c \ + testsuite/module-playground/mod-loop-k.c \ testsuite/module-playground/mod-loop.h \ testsuite/module-playground/mod-simple.c \ testsuite/module-playground/mod-simple-i386.ko \ @@ -310,6 +254,7 @@ testsuite_libtestsuite_la_LIBADD = -lrt TESTSUITE = \ testsuite/test-hash \ testsuite/test-array \ + testsuite/test-scratchbuf \ testsuite/test-strbuf \ testsuite/test-init \ testsuite/test-initstate \ @@ -317,8 +262,7 @@ TESTSUITE = \ testsuite/test-modinfo testsuite/test-util testsuite/test-new-module \ testsuite/test-modprobe testsuite/test-blacklist \ testsuite/test-dependencies testsuite/test-depmod \ - testsuite/test-list \ - testsuite/test-tools + testsuite/test-list check_PROGRAMS = $(TESTSUITE) TESTS = $(TESTSUITE) @@ -333,6 +277,9 @@ testsuite_test_hash_CPPFLAGS = $(TESTSUITE_CPPFLAGS) testsuite_test_array_LDADD = $(TESTSUITE_LDADD) testsuite_test_array_CPPFLAGS = $(TESTSUITE_CPPFLAGS) +testsuite_test_scratchbuf_LDADD = $(TESTSUITE_LDADD) +testsuite_test_scratchbuf_CPPFLAGS = $(TESTSUITE_CPPFLAGS) + testsuite_test_strbuf_LDADD = $(TESTSUITE_LDADD) testsuite_test_strbuf_CPPFLAGS = $(TESTSUITE_CPPFLAGS) @@ -358,8 +305,6 @@ testsuite_test_depmod_LDADD = $(TESTSUITE_LDADD) testsuite_test_depmod_CPPFLAGS = $(TESTSUITE_CPPFLAGS) testsuite_test_list_LDADD = $(TESTSUITE_LDADD) testsuite_test_list_CPPFLAGS = $(TESTSUITE_CPPFLAGS) -testsuite_test_tools_LDADD = $(TESTSUITE_LDADD) -testsuite_test_tools_CPPFLAGS = $(TESTSUITE_CPPFLAGS) testsuite-distclean: $(RM) -r $(ROOTFS) @@ -372,8 +317,8 @@ testsuite-distclean: DISTCLEAN_LOCAL_HOOKS += testsuite-distclean EXTRA_DIST += testsuite/rootfs-pristine -DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-python --sysconfdir=/etc \ - --with-zlib \ +DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --sysconfdir=/etc \ + --with-zlib --with-zstd --with-openssl \ --with-bashcompletiondir=$$dc_install_base/$(bashcompletiondir) distclean-local: $(DISTCLEAN_LOCAL_HOOKS) @@ -426,14 +371,14 @@ endif kmod-coverity-%.tar.xz: rm -rf $< cov-int - ./bootstrap-configure --disable-python --disable-manpages + ./autogen.sh c --disable-manpages make clean cov-build --dir cov-int make -j 4 tar caf $@ cov-int -coverity-tar: kmod-coverity-$(shell git describe).tar.xz +coverity-tar: kmod-coverity-$(shell git describe 2>/dev/null).tar.xz -coverity-sync: kmod-coverity-$(shell git describe).tar.xz +coverity-sync: kmod-coverity-$(shell git describe 2>/dev/null).tar.xz @echo "uploading coverity tarball" @curl --form token=$(COVERITY_KMOD_TOKEN) \ --form email=lucas.de.marchi@gmail.com \