chiark / gitweb /
Prep v230: Move installed headers
authorSven Eden <yamakuzure@gmx.net>
Fri, 2 Jun 2017 09:18:12 +0000 (11:18 +0200)
committerSven Eden <yamakuzure@gmx.net>
Fri, 16 Jun 2017 08:12:58 +0000 (10:12 +0200)
The headers are now installed into

  /usr/include/elogind/systemd

and the pkg-config file now returns -I/usr/include/elogind for CFLAGS.

Further
  /usr/include/elogind
contains symlinks to the headers, so existing packages already including
<elogind/sd-login.h> will not be broken.

This way no software has to change their include lines anywhere to
support elogind any more. All they have to do is either add
LIBSYSTEMD_CFLAGS or LIBELOGIND_CFLAGS from pkg-config and be done
with it.

So most patching can be avoided, just some configure adaption is
needed.

However, this can lead to systemd/elogind bug confusion if there is anything
mixed up on a system that shouldn't.

Downstreams, chose any of the two ways to your own discretion!

See https://bugs.freedesktop.org/show_bug.cgi?id=101251

Makefile.am
src/libelogind/libelogind.pc.in

index 2305caf..bf90824 100644 (file)
@@ -58,7 +58,7 @@ PKTTYAGENT=$(bindir)/pkttyagent
 
 # Our own, non-special dirs
 pkgsysconfdir=$(sysconfdir)/elogind
-pkgincludedir=$(includedir)/elogind
+pkgincludedir=$(includedir)/elogind/systemd
 udevrulesdir=@udevrulesdir@
 udevbindir=@udevbindir@
 udevlibexecdir=$(udevbindir)
@@ -625,6 +625,18 @@ pkginclude_HEADERS += \
        src/systemd/sd-id128.h \
        src/systemd/_sd-common.h
 
+header-install-hook:
+       $(MKDIR_P) $(DESTDIR)/$(pkgincludedir)
+       cd $(DESTDIR)/$(includedir)/elogind && \
+               for hdr in $(notdir $(pkginclude_HEADERS)) ; do \
+                       $(LN_S) systemd/$$hdr $$hdr ; \
+               done
+
+header-uninstall-hook:
+       m -f $(DESTDIR)/$(includedir)/elogind/*.h
+
+INSTALL_EXEC_HOOKS += header-install-hook
+UNINSTALL_EXEC_HOOKS += header-uninstall-hook
 
 lib_LTLIBRARIES += \
        libelogind.la
index 17a92b1..0b0fd87 100644 (file)
@@ -8,7 +8,7 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@
+includedir=@includedir@/elogind
 
 Name: elogind
 Description: elogind Library