1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-20 18:56:39 +02:00

maint: refactor SMACK interface to a separate module

Consolidate all smack routines and checks in a module.
We replace and wrap the most commonly used smack routines,
which allows removing ifdefs throughout the code.

* gl/lib/smack.h: A new header containing the implementation
of the wrapped and replacement routines.  Note the is_smack_enabled()
routine should be optimized out at compile time when compiled
on a system without libsmack.
* gl/modules/smack: Describe the new module and move the
configure time code here from ...
* m4/jm-macros.m4: ... here.
* bootstrap.conf: Reference the new module.
* src/id.c: Use the routines without ifdefs where possible.
* src/ls.c: Likewise.
* src/mkdir.c: Likewise.
* src/mkfifo.c: Likewise.
* src/mknod.c: Likewise.
This commit is contained in:
Pádraig Brady
2013-07-02 03:42:20 +01:00
parent b8a87eaf2d
commit 5fb93f635b
9 changed files with 105 additions and 66 deletions

42
gl/modules/smack Normal file
View File

@@ -0,0 +1,42 @@
Description:
Include and determine the availability of smack routines
Files:
lib/smack.h
Depends-on:
configure.ac:
# Check whether libsmack is available
LIB_SMACK=
AC_ARG_ENABLE([libsmack],
AC_HELP_STRING([--disable-libsmack], [disable libsmack support]))
if test "X$enable_libsmack" != "Xno"; then
AC_CHECK_LIB([smack], [smack_new_label_from_self],
[AC_CHECK_LIB([smack], [smack_new_label_from_path],
[AC_CHECK_HEADER([sys/smack.h],
[LIB_SMACK=-lsmack
AC_DEFINE([HAVE_SMACK], [1], [libsmack usability])]
)])])
if test "X$LIB_SMACK" = "X"; then
if test "X$enable_libsmack" = "Xyes"; then
AC_MSG_ERROR([libsmack library was not found or not usable])
fi
fi
else
AC_MSG_WARN([libsmack support disabled by user])
fi
AC_SUBST([LIB_SMACK])
Makefile.am:
lib_SOURCES += smack.h
Include:
"smack.h"
License:
LGPL
Maintainer:
Pádraig Brady