diff --git a/Makefile.am b/Makefile.am index 213a1fe6..3c2dc67e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -121,7 +121,6 @@ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES) libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD) pkgconfig_DATA = libkmod/libkmod.pc -noarch_pkgconfig_DATA = tools/kmod.pc bashcompletiondir=@bashcompletiondir@ dist_bashcompletion_DATA = \ diff --git a/configure.ac b/configure.ac index c204570d..eaa4e80d 100644 --- a/configure.ac +++ b/configure.ac @@ -312,7 +312,6 @@ AC_CONFIG_FILES([ libkmod/docs/Makefile libkmod/docs/version.xml libkmod/libkmod.pc - tools/kmod.pc ]) diff --git a/libkmod/libkmod.pc.in b/libkmod/libkmod.pc.in index 3acca6a6..1399260b 100644 --- a/libkmod/libkmod.pc.in +++ b/libkmod/libkmod.pc.in @@ -2,6 +2,11 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ +sysconfdir=@sysconfdir@ +distconfdir=@distconfdir@ +module_directory=@module_directory@ +module_signatures=@module_signatures@ +module_compressions=@module_compressions@ Name: libkmod Description: Library to deal with kernel modules diff --git a/man/depmod.8.scd b/man/depmod.8.scd index 7d2b3197..b7021f12 100644 --- a/man/depmod.8.scd +++ b/man/depmod.8.scd @@ -12,6 +12,8 @@ depmod - Generate modules.dep and map files. *depmod* [*-e*] [*-E* _Module.symvers_] [*-F* _System.map_] [*-n*] [*-v*] [*-P* _prefix_] \ \ \ \ \ \ \ \[*-w*] [_version_] [_filename_...] +*depmod* *-M* + # DESCRIPTION Linux kernel modules can provide services (called "symbols") for other modules @@ -80,6 +82,10 @@ rather than the current kernel version (as returned by *uname -r*). _/tmp/build/kernel-modules/$(uname -r)_ and generates index files under that same directory. +*-M* +*--moduledir-defualt* + Print the moduledir prefix @MODULE_DIRECTORY@ set at compile time. + *-o* _outdir_ *--outdir* _outdir_ Set the output directory where *depmod* will store any generated file. diff --git a/meson.build b/meson.build index 1c87fe0e..4f66bf05 100644 --- a/meson.build +++ b/meson.build @@ -363,11 +363,25 @@ libkmod = shared_library( install : true, ) +_libkmod_variables = [ + 'sysconfdir=' + sysconfdir, + 'distconfdir=' + distconfdir, + 'module_directory=' + moduledir, + 'module_signatures=' + module_signatures, +] + +# XXX: Support for empty variables was added in meson v1.4.0. +# pkgconf behaves identically on missing and empty variable. +if module_compressions != '' + _libkmod_variables += ['module_compressions=' + module_compressions] +endif + pkg.generate( name : 'libkmod', description : 'Library to deal with kernel modules', libraries : libkmod, requires_private : libkmod_deps, + variables: _libkmod_variables ) libkmod_internal = static_library( @@ -400,26 +414,6 @@ kmod = executable( install : get_option('tools'), ) -_kmod_variables = [ - 'sysconfdir=' + sysconfdir, - 'distconfdir=' + distconfdir, - 'module_directory=' + moduledir, - 'module_signatures=' + module_signatures, -] - -# XXX: Support for empty variables was added in meson v1.4.0. -# pkgconf behaves identically on missing and empty variable. -if module_compressions != '' - _kmod_variables += ['module_compressions=' + module_compressions] -endif - -pkg.generate( - name : 'kmod', - description : 'Tools to deal with kernel modules', - install_dir : join_paths(get_option('datadir'), 'pkgconfig'), - variables : _kmod_variables, -) - _tools = [ 'depmod', 'insmod', diff --git a/tools/depmod.c b/tools/depmod.c index 91bd1911..7e2c2348 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -50,12 +50,13 @@ static const char *const default_cfg_paths[] = { // clang-format on }; -static const char cmdopts_s[] = "aAb:m:o:C:E:F:evnP:wVh"; +static const char cmdopts_s[] = "aAb:m:Mo:C:E:F:evnP:wVh"; static const struct option cmdopts[] = { { "all", no_argument, 0, 'a' }, { "quick", no_argument, 0, 'A' }, { "basedir", required_argument, 0, 'b' }, { "moduledir", required_argument, 0, 'm' }, + { "moduledir-default", no_argument, 0, 'M' }, { "outdir", required_argument, 0, 'o' }, { "config", required_argument, 0, 'C' }, { "symvers", required_argument, 0, 'E' }, @@ -96,6 +97,7 @@ static void help(void) "\t-b, --basedir=DIR Root path (default: /).\n" "\t-m, --moduledir=DIR Module directory (default: " MODULE_DIRECTORY ").\n" + "\t-M, --moduledir-default Print MODULE_DIRECTORY default value.\n" "\t-o, --outdir=DIR Output root path (default: same as ).\n" "\t-F, --filesyms=FILE Use the file instead of the\n" "\t current kernel symbols.\n" @@ -2932,6 +2934,9 @@ static int do_depmod(int argc, char *argv[]) case 'm': module_directory = optarg; break; + case 'M': + puts(MODULE_DIRECTORY); + return EXIT_SUCCESS; case 'o': free(out_root); out_root = path_make_absolute_cwd(optarg); diff --git a/tools/kmod.pc.in b/tools/kmod.pc.in deleted file mode 100644 index 97215c8e..00000000 --- a/tools/kmod.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -sysconfdir=@sysconfdir@ -distconfdir=@distconfdir@ -module_directory=@module_directory@ -module_compressions=@module_compressions@ -module_signatures=@module_signatures@ - -Name: kmod -Description: Tools to deal with kernel modules -Version: @VERSION@