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.
This commit is contained in:
Rafael Almeida 2008-06-01 21:33:44 -03:00 committed by Stephen Hemminger
parent 6579feeac4
commit b514b3587e
5 changed files with 18 additions and 11 deletions

View File

@ -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

View File

@ -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 */

View File

@ -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:

View File

@ -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:

View File

@ -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;
}