]> git.ozlabs.org Git - ppp.git/commitdiff
Add pkgconfig support to PPP project (#270)
authorEivind Næss <eivnaes@yahoo.com>
Sat, 24 Apr 2021 05:26:06 +0000 (22:26 -0700)
committerGitHub <noreply@github.com>
Sat, 24 Apr 2021 05:26:06 +0000 (15:26 +1000)
This adds pppd.pc into $(INSTROOT)/$(LIBDIR)/pkgconfig. On some distributions
this would be /lib/pkgconfig, or /usr/lib/pkgconfig, but other distributions
may consider specifying --libdir=/usr/lib/x86_x64-linux-gnu/ and the pkgconfig
directory would be under that. Allowing --libdir to be specified at configure
time fixes #223, providing pkgconfig support fixes #19 and allows third party
packages pickup the plugin directory.

Manually cherry picking parts of two commits by @lkundrak from:
    https://github.com/NetworkManager/ppp/tree/lr/pkgconfig

Mainly, the difference between the original commit is not to replace DESTDIR
with "prefix". Leave DESTDIR alone, and add needed pkgconfig (pppd.pc.in)
as a part of the linux distribution (previously in pppd/plugin directory).

This fixes GitHub issues: #19 #47 and #223

Signed-off-by: Eivind Naess <eivnaes@yahoo.com>
12 files changed:
.gitignore
chat/Makefile.linux
configure
linux/pppd.pc.in [new file with mode: 0644]
pppd/Makefile.linux
pppd/plugins/Makefile.linux
pppd/plugins/pppoatm/Makefile.linux
pppd/plugins/pppoe/Makefile.linux
pppd/plugins/pppol2tp/Makefile.linux
pppd/plugins/radius/Makefile.linux
pppdump/Makefile.linux
pppstats/Makefile.linux

index eb7087cb08f9d0bfbc82d70dd6d465a5484ca6dc..c7445be5e0366d4812e089f9ab51f9d6ca478a53 100644 (file)
@@ -3,5 +3,6 @@
 *.o
 *.so
 *.a
+*.pc
 *.cat8
 Makefile
index 407cc128796d1160602c31f1a7c1c1ca2268e969..2cd1f3f7d2ed3df38036846d762f980152ea2f6d 100644 (file)
@@ -2,7 +2,8 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
 
index b0c3d2b491220a06542c2a8eedbd4346a8420880..d8546799da2e7c8f18928dd398e062721dcbd831 100755 (executable)
--- a/configure
+++ b/configure
@@ -4,6 +4,10 @@
 # Where to install stuff by default
 DESTDIR=/usr/local
 SYSCONF=/etc
+LIBDIR='${PREFIX}'/lib
+INCDIR='${PREFIX}'/include
+
+VERSION=$(awk -F '"' '/VERSION/ { print $2; }' pppd/patchlevel.h)
 
 # Compile defaults
 CROSS_COMPILE=
@@ -99,7 +103,7 @@ while [ $# -gt 0 ]; do
            val=`expr "x$arg" : 'x[^=]*=\(.*\)'`
            arg=`expr "x$arg" : 'x\([^=]*\)=.*'`
            ;;
-       --prefix|--sysconf)
+       --prefix|--sysconf|--libdir|--includedir)
            if [ $# -eq 0 ]; then
                echo "error: the $arg argument requires a value" 1>&2
                exit 1
@@ -111,6 +115,8 @@ while [ $# -gt 0 ]; do
     case $arg in
        --prefix)        DESTDIR=$val ;;
        --sysconfdir)    SYSCONF=$val ;;
+       --libdir)        LIBDIR=$val ; HAVE_LIBDIR_PARAM=1 ;;
+       --includedir)    INCDIR=$val ; HAVE_INCDIR_PARAM=1 ;;
        --cross_compile) CROSS_COMPILE=$val ;;
        --cc)            CC=$val ;;
        --cflags)        CFLAGS=$val ;;
@@ -121,9 +127,14 @@ mkmkf() {
     rm -f $2
     if [ -f $1 ]; then
        echo "  $2 <= $1"
-       sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" \
-           -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" -e "s,@CC@,$CC,g" \
-           -e "s|@CFLAGS@|$CFLAGS|g" $1 >$2
+       sed -e "s,@DESTDIR@,$DESTDIR,g" \
+           -e "s,@SYSCONF@,$SYSCONF,g" \
+           -e "s,@LIBDIR@,$LIBDIR,g" \
+           -e "s,@INCDIR@,$INCDIR,g" \
+           -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" \
+           -e "s,@CC@,$CC,g" \
+           -e "s|@CFLAGS@|$CFLAGS|g" \
+           -e "s,@VERSION@,$VERSION,g" $1 >$2
     fi
 }
 
@@ -139,6 +150,16 @@ if [ -d "$ksrc" ]; then
     if [ -f $ksrc/Makefile.$makext$archvariant ]; then
        mkmkf $ksrc/Makefile.$makext$archvariant $ksrc/Makefile
     fi
+    if [ -f "$ksrc/pppd.pc.in" ] ; then
+       echo "Creating pkg-config file"
+       if [ ${HAVE_LIBDIR_PARAM:-0} -ne 1 ] ; then
+           LIBDIR='${prefix}'/lib
+       fi
+       if [ ${HAVE_INCDIR_PARAM:-0} -ne 1 ] ; then
+           INCDIR='${prefix}'/include
+       fi
+       mkmkf $ksrc/pppd.pc.in pppd/pppd.pc
+    fi
 else
   echo "Unable to locate kernel source $ksrc"
   exit 1
diff --git a/linux/pppd.pc.in b/linux/pppd.pc.in
new file mode 100644 (file)
index 0000000..bb44595
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@DESTDIR@
+exec_prefix=@DESTDIR@
+libdir=@LIBDIR@
+includedir=@INCDIR@
+version=@VERSION@
+plugindir=@LIBDIR@/pppd/${version}
+
+Name: pppd
+Description: Point-to-Point Protocol (PPP) daemon
+Version: @VERSION@
+Cflags: -I${includedir}
index d04752d5f3232163e59e70e78a21714bec8b5765..f92f7c081a976cb71c4f34578a57d95f3aa136a7 100644 (file)
@@ -8,10 +8,13 @@ CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
 # Default installation locations
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
-INCDIR = $(DESTDIR)/include
+INCDIR = $(INSTROOT)@INCDIR@
+LIBDIR = $(INSTROOT)@LIBDIR@
+PKGCONFDIR = $(LIBDIR)/pkgconfig
 
 TARGETS = pppd
 
@@ -238,11 +241,14 @@ INSTALL= install
 all: $(TARGETS)
 
 install: pppd
-       mkdir -p $(BINDIR) $(MANDIR)
+       $(INSTALL) -d $(BINDIR)
+       $(INSTALL) -d $(MANDIR)
+       $(INSTALL) -d $(PKGCONFDIR)
        $(EXTRAINSTALL)
        $(INSTALL) -c -m 755 pppd $(BINDIR)/pppd
        if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
          chmod o-rx,u+s $(BINDIR)/pppd; fi
+       $(INSTALL) -c -m 644 pppd.pc $(PKGCONFDIR)
        $(INSTALL) -c -m 644 pppd.8 $(MANDIR)
 
 pppd: $(PPPDOBJS)
index 6403e3d477e3bf427f5830743dd9cbc88fc6ac94..0230da15879b47ef60bac73ccac18b1f480beca8 100644 (file)
@@ -2,10 +2,14 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
+LIBDIR = $(INSTROOT)@LIBDIR@
+INCDIR = $(INSTROOT)@INCDIR@
+VERSION = @VERSION@
+PLUGINDIR = $(LIBDIR)/pppd/$(VERSION)
 
 CFLAGS = $(COPTS) -I.. -I../../include -fPIC
 LDFLAGS_SHARED = -shared
@@ -37,11 +41,9 @@ all: $(PLUGINS)
 %.so: %.c
        $(CC) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) $(CFLAGS) $^
 
-VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../patchlevel.h)
-
 install: $(PLUGINS)
-       $(INSTALL) -d $(LIBDIR)
-       $(INSTALL) $? $(LIBDIR)
+       $(INSTALL) -d $(PLUGINDIR)
+       $(INSTALL) $? $(PLUGINDIR)
        for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d install || exit $$?; done
 
 clean:
index 970eee1cc3d0328b49c43378da391134ee6cef95..d3330269cd58c701b1c19b6a74ff7883631c3b55 100644 (file)
@@ -3,10 +3,11 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
-
-VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
+LIBDIR = $(INSTROOT)@LIBDIR@
+VERSION = @VERSION@
+PLUGINDIR = $(LIBDIR)/pppd/$(VERSION)
 
 CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC
 LDFLAGS_SHARED = -shared
@@ -37,8 +38,8 @@ $(PLUGIN): $(PLUGIN_OBJS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $^ $(LIBS)
 
 install: all
-       $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -c -m 755 $(PLUGIN) $(LIBDIR)
+       $(INSTALL) -d -m 755 $(PLUGINDIR)
+       $(INSTALL) -c -m 755 $(PLUGIN) $(PLUGINDIR)
 
 clean:
        rm -f *.o *.so
index b9698710dddc4e3260d538b97392fd6a962bc12b..301130238d51a06c110166e6a0e1430c10ff2e77 100644 (file)
@@ -16,12 +16,13 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(PPPDVERSION)
-
-PPPDVERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
+LIBDIR = $(INSTROOT)@LIBDIR@
+VERSION = @VERSION@
+PLUGINDIR= $(LIBDIR)/pppd/$(VERSION)
 
 INSTALL        = install
 LN_S   = ln -sf
@@ -42,10 +43,10 @@ pppoe.so: plugin.o discovery.o if.o common.o
        $(CC) $(LDFLAGS) -o pppoe.so -shared plugin.o discovery.o if.o common.o
 
 install: all
-       $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -c -m 755 pppoe.so $(LIBDIR)
+       $(INSTALL) -d -m 755 $(PLUGINDIR)
+       $(INSTALL) -c -m 755 pppoe.so $(PLUGINDIR)
        # Symlink for backward compatibility
-       $(LN_S) pppoe.so $(LIBDIR)/rp-pppoe.so
+       $(LN_S) pppoe.so $(PLUGINDIR)/rp-pppoe.so
        $(INSTALL) -d -m 755 $(BINDIR)
        $(INSTALL) -c -m 755 pppoe-discovery $(BINDIR)
        $(INSTALL) -c -m 644 pppoe-discovery.8 $(MANDIR)
index 1aa1c0b57d4eef9f1000dad67dcbb1a22015b305..0aa285808ccba3c43da189fac3ca8f95ed9af449 100644 (file)
@@ -3,10 +3,11 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)/@DESTDIR@
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
-
-VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
+LIBDIR = $(INSTROOT)@LIBDIR@
+VERSION = @VERSION@
+PLUGINDIR = $(LIBDIR)/pppd/$(VERSION)
 
 CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC
 LDFLAGS_SHARED = -shared
@@ -20,8 +21,8 @@ all: $(PLUGINS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $^ $(LIBS)
 
 install: all
-       $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -c -m 755 $(PLUGINS) $(LIBDIR)
+       $(INSTALL) -d -m 755 $(PLUGINDIR)
+       $(INSTALL) -c -m 755 $(PLUGINS) $(PLUGINDIR)
 
 clean:
        rm -f *.o *.so
index 489aef25229ba2e7fc38dda02023d7f24a5516bd..26bacec88b9373eeaee556c4517c73c3b9e76199 100644 (file)
@@ -7,11 +7,12 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 MANDIR = $(DESTDIR)/share/man/man8
-LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
-
-VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
+LIBDIR = $(INSTROOT)@LIBDIR@
+VERSION = @VERSION@
+PLUGINDIR = $(LIBDIR)/pppd/$(VERSION)
 
 INSTALL        = install
 
@@ -39,10 +40,10 @@ endif
 all: $(PLUGIN)
 
 install: all
-       $(INSTALL) -d -m 755 $(LIBDIR)
-       $(INSTALL) -c -m 755 radius.so $(LIBDIR)
-       $(INSTALL) -c -m 755 radattr.so $(LIBDIR)
-       $(INSTALL) -c -m 755 radrealms.so $(LIBDIR)
+       $(INSTALL) -d -m 755 $(PLUGINDIR)
+       $(INSTALL) -c -m 755 radius.so $(PLUGINDIR)
+       $(INSTALL) -c -m 755 radattr.so $(PLUGINDIR)
+       $(INSTALL) -c -m 755 radrealms.so $(PLUGINDIR)
        $(INSTALL) -c -m 444 pppd-radius.8 $(MANDIR)
        $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
 
index a94187fa9e296a590d6a84a588b40d2f903b31d2..1c58151bab4177d678a732a4fbe7b587ead6a380 100644 (file)
@@ -2,7 +2,8 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8
 
index ddfe0cc841be361c4a7926b317c2f39a78d6523e..743ffafcba3398833cc62282309cf6c7162f4227 100644 (file)
@@ -5,7 +5,8 @@ CROSS_COMPILE=@CROSS_COMPILE@
 CC=$(CROSS_COMPILE)@CC@
 COPTS=@CFLAGS@
 
-DESTDIR = $(INSTROOT)@DESTDIR@
+PREFIX = @DESTDIR@
+DESTDIR = $(INSTROOT)$(PREFIX)
 BINDIR = $(DESTDIR)/sbin
 MANDIR = $(DESTDIR)/share/man/man8