From: Rafael Almeida Date: Mon, 2 Jun 2008 00:33:44 +0000 (-0300) Subject: Fixed installation when changing DESTDIR X-Git-Tag: v2.6.26~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b514b3587ee56552fcc87a066c955a7ff4f55d6f;p=thirdparty%2Fiproute2.git Fixed installation when changing DESTDIR After changing the DESTDIR the installated binaries have some issues due to hard coded paths. For example, using distributions on NetEm would segfault. I've changed iplink.c and tc_util.c so they are now aware of DESTDIR. Along with that change I needed to change the main Makefile so it defines the DESTDIR macro when calling gcc. I also changed the paths so that during the installation sbin, etc, share and lib directories are created directly inside of the DESTDIR, instead of creating a usr directory inside that. That's the behaviour of most packages out there, so I think most users will be expecting that to happen. --- diff --git a/Makefile b/Makefile index 723eb5d32..cfb27f422 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,13 @@ -DESTDIR= -SBINDIR=/usr/sbin +DESTDIR=/usr/ +SBINDIR=/sbin CONFDIR=/etc/iproute2 -DOCDIR=/usr/share/doc/iproute2 -MANDIR=/usr/share/man +DOCDIR=/share/doc/iproute2 +MANDIR=/share/man # Path to db_185.h include DBM_INCLUDE:=/usr/include -DEFINES= -DRESOLVE_HOSTNAMES +DEFINES= -DRESOLVE_HOSTNAMES -DDESTDIR=\"$(DESTDIR)\" #options if you have a bind>=4.9.4 libresolv (or, maybe, glibc) LDLIBS=-lresolv diff --git a/ip/iplink.c b/ip/iplink.c index c70c84ad4..9a092630e 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -33,6 +33,9 @@ #include "ip_common.h" #define IPLINK_IOCTL_COMPAT 1 +#ifndef DESTDIR +#define DESTDIR "/usr/" +#endif static void usage(void) __attribute__((noreturn)); @@ -78,7 +81,7 @@ struct link_util *get_link_kind(const char *id) if (strcmp(l->id, id) == 0) return l; - snprintf(buf, sizeof(buf), "/usr/lib/ip/link_%s.so", id); + snprintf(buf, sizeof(buf), DESTDIR "/lib/ip/link_%s.so", id); dlh = dlopen(buf, RTLD_LAZY); if (dlh == NULL) { /* look in current binary, only open once */ diff --git a/netem/Makefile b/netem/Makefile index 2d7d68bb1..b6ccfc6a4 100644 --- a/netem/Makefile +++ b/netem/Makefile @@ -20,9 +20,9 @@ stats: stats.c $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm install: all - mkdir -p $(DESTDIR)/usr/lib/tc + mkdir -p $(DESTDIR)/lib/tc for i in $(DISTDATA); \ - do install -m 755 $$i $(DESTDIR)/usr/lib/tc; \ + do install -m 755 $$i $(DESTDIR)/lib/tc; \ done clean: diff --git a/tc/Makefile b/tc/Makefile index bf2df0077..4116983e7 100644 --- a/tc/Makefile +++ b/tc/Makefile @@ -72,10 +72,10 @@ libtc.a: $(TCLIB) $(AR) rcs $@ $(TCLIB) install: all - mkdir -p $(DESTDIR)/usr/lib/tc + mkdir -p $(DESTDIR)/lib/tc install -m 0755 tc $(DESTDIR)$(SBINDIR) for i in $(TCSO); \ - do install -m 755 $$i $(DESTDIR)/usr/lib/tc; \ + do install -m 755 $$i $(DESTDIR)/lib/tc; \ done clean: diff --git a/tc/tc_util.c b/tc/tc_util.c index cd9dd5942..ba7c0c9da 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -24,13 +24,17 @@ #include "utils.h" #include "tc_util.h" +#ifndef DESTDIR +#define DESTDIR "/usr/" +#endif + const char *get_tc_lib(void) { const char *lib_dir; lib_dir = getenv("TC_LIB_DIR"); if (!lib_dir) - lib_dir = "/usr/lib/tc"; + lib_dir = DESTDIR "/lib/tc"; return lib_dir; }