diff options
author | Pádraig Brady <P@draigBrady.com> | 2013-07-02 03:42:20 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2013-07-02 09:47:32 +0100 |
commit | 5fb93f635b935ea5632e36600e07a2c5fc5bad5e (patch) | |
tree | 387476cda6992e8768ff4646cc605f24dd307de5 /gl/modules/smack | |
parent | b8a87eaf2d6f054473d2dab491ffd4252b6f5b4d (diff) | |
download | coreutils-5fb93f635b935ea5632e36600e07a2c5fc5bad5e.tar.xz |
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.
Diffstat (limited to 'gl/modules/smack')
-rw-r--r-- | gl/modules/smack | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gl/modules/smack b/gl/modules/smack new file mode 100644 index 000000000..a6dcbaa62 --- /dev/null +++ b/gl/modules/smack @@ -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 |