summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2016-10-16 21:15:25 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2016-10-16 21:15:25 +0000
commit6f66618a9530bc7ac741217913b682d553b920a5 (patch)
tree190470d540c036d7f82f8e3ce41bb81b7ade7da7
parenta4a4cc2f1c546915fbb9efe8e21a1189d235b18c (diff)
downloadexecline-6f66618a9530bc7ac741217913b682d553b920a5.tar.xz
Implement --enable-absolute-paths
-rw-r--r--Makefile11
-rwxr-xr-xconfigure28
-rw-r--r--package/targets.mak1
3 files changed, 19 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index 67fb474..bffc468 100644
--- a/Makefile
+++ b/Makefile
@@ -50,7 +50,7 @@ RANLIB := $(CROSS_COMPILE)ranlib
STRIP := $(CROSS_COMPILE)strip
INSTALL := ./tools/install.sh
-ALL_BINS := $(LIBEXEC_TARGETS) $(BIN_TARGETS) $(SBIN_TARGETS)
+ALL_BINS := $(LIBEXEC_TARGETS) $(BIN_TARGETS)
ALL_LIBS := $(SHARED_LIBS) $(STATIC_LIBS) $(INTERNAL_LIBS)
ALL_INCLUDES := $(wildcard src/include/$(package)/*.h)
@@ -78,11 +78,10 @@ ifneq ($(strip $(ALL_BINS)$(SHARED_LIBS)),)
exec $(STRIP) -R .note -R .comment -R .note.GNU-stack $(ALL_BINS) $(SHARED_LIBS)
endif
-install: install-dynlib install-libexec install-bin install-sbin install-lib install-include
+install: install-dynlib install-libexec install-bin install-lib install-include
install-dynlib: $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(dynlibdir)/lib%.so)
install-libexec: $(LIBEXEC_TARGETS:%=$(DESTDIR)$(libexecdir)/%)
install-bin: $(BIN_TARGETS:%=$(DESTDIR)$(bindir)/%)
-install-sbin: $(SBIN_TARGETS:%=$(DESTDIR)$(sbindir)/%)
install-lib: $(STATIC_LIBS:lib%.a.xyzzy=$(DESTDIR)$(libdir)/lib%.a)
install-include: $(ALL_INCLUDES:src/include/$(package)/%.h=$(DESTDIR)$(includedir)/$(package)/%.h)
install-data: $(ALL_DATA:src/etc/%=$(DESTDIR)$(datadir)/%)
@@ -94,7 +93,7 @@ $(DESTDIR)$(exthome): $(DESTDIR)$(home)
update: $(DESTDIR)$(exthome)
-global-links: $(DESTDIR)$(exthome) $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(sproot)/library.so/lib%.so.$(version_M)) $(BIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%) $(SBIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
+global-links: $(DESTDIR)$(exthome) $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(sproot)/library.so/lib%.so.$(version_M)) $(BIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
$(DESTDIR)$(sproot)/command/%: $(DESTDIR)$(home)/command/%
exec $(INSTALL) -D -l ..$(subst $(sproot),,$(exthome))/command/$(<F) $@
@@ -115,7 +114,7 @@ $(DESTDIR)$(dynlibdir)/lib%.so: lib%.so.xyzzy
$(INSTALL) -l $(@F).$(version_m) $@.$(version_M) && \
exec $(INSTALL) -l $(@F).$(version_M) $@
-$(DESTDIR)$(libexecdir)/% $(DESTDIR)$(bindir)/% $(DESTDIR)$(sbindir)/%: % package/modes
+$(DESTDIR)$(libexecdir)/% $(DESTDIR)$(bindir)/%: % package/modes
exec $(INSTALL) -D -m 600 $< $@
grep -- ^$(@F) < package/modes | { read name mode owner && \
if [ x$$owner != x ] ; then chown -- $$owner $@ ; fi && \
@@ -143,6 +142,6 @@ lib%.a.xyzzy:
lib%.so.xyzzy:
exec $(REALCC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-soname,$(patsubst lib%.so.xyzzy,lib%.so.$(version_M),$@) $^ $(EXTRA_LIBS) $(LDLIBS)
-.PHONY: it all clean distclean tgz strip install install-dynlib install-bin install-sbin install-lib install-include install-data
+.PHONY: it all clean distclean tgz strip install install-dynlib install-bin install-lib install-include install-data
.DELETE_ON_ERROR:
diff --git a/configure b/configure
index f315069..780384a 100755
--- a/configure
+++ b/configure
@@ -19,7 +19,6 @@ Installation directories:
Fine tuning of the installation directories:
--dynlibdir=DIR shared library files [PREFIX/lib]
--bindir=BINDIR user executables [EPREFIX/bin]
- --sbindir=DIR admin executables [EPREFIX/sbin]
--libexecdir=DIR package-scoped executables [EPREFIX/libexec]
--libdir=DIR static library files [PREFIX/lib/$package]
--includedir=DIR C header files [PREFIX/include]
@@ -43,6 +42,8 @@ Optional features:
--disable-allstatic do not prefer linking against static libraries [enabled]
--enable-static-libc make entirely static binaries [disabled]
--enable-slashpackage[=ROOT] assume /package installation at ROOT [disabled]
+ --enable-absolute-paths do not rely on PATH to access this package's binaries,
+ hardcode absolute BINDIR/foobar paths instead [disabled]
EOF
exit 0
@@ -130,7 +131,6 @@ exec_prefix='$prefix'
dynlibdir='$prefix/lib'
libexecdir='$exec_prefix/libexec'
bindir='$exec_prefix/bin'
-sbindir='$exec_prefix/sbin'
libdir='$prefix/lib/$package'
includedir='$prefix/include'
shebangdir='$bindir'
@@ -139,6 +139,7 @@ manualsysdeps=false
shared=false
static=true
slashpackage=false
+abspath=false
sproot=
home=
exthome=
@@ -159,7 +160,6 @@ for arg ; do
--dynlibdir=*) dynlibdir=${arg#*=} ;;
--libexecdir=*) libexecdir=${arg#*=} ;;
--bindir=*) bindir=${arg#*=} ;;
- --sbindir=*) sbindir=${arg#*=} ;;
--libdir=*) libdir=${arg#*=} ;;
--includedir=*) includedir=${arg#*=} ;;
--shebangdir=*) shebangdir=${arg#*=} ;;
@@ -178,6 +178,8 @@ for arg ; do
--enable-slashpackage=*) sproot=${arg#*=} ; slashpackage=true ; ;;
--enable-slashpackage) sproot= ; slashpackage=true ;;
--disable-slashpackage) sproot= ; slashpackage=false ;;
+ --enable-absolute-paths|--enable-absolute-paths=yes) abspath=true ;;
+ --disable-absolute-paths|--enable-absolute-paths=no) abspath=false ;;
--enable-*|--disable-*|--with-*|--without-*|--*dir=*) ;;
--host=*|--target=*) target=${arg#*=} ;;
--build=*) build=${arg#*=} ;;
@@ -202,7 +204,7 @@ fi
# Expand installation directories
stripdir prefix
-for i in exec_prefix dynlibdir libexecdir bindir sbindir libdir includedir shebangdir sysdeps sproot ; do
+for i in exec_prefix dynlibdir libexecdir bindir libdir includedir shebangdir sysdeps sproot ; do
eval tmp=\${$i}
eval $i=$tmp
stripdir $i
@@ -231,13 +233,11 @@ if $slashpackage ; then
else
sysdeps=${sproot}/package/prog/skalibs/sysdeps
fi
- binprefix=${home}/command
extbinprefix=${exthome}/command
dynlibdir=${home}/library.so
- libexecdir=$binprefix
- bindir=$binprefix
- sbindir=$binprefix
+ bindir=${home}/command
libdir=${home}/library
+ libexecdir=$bindir
includedir=${home}/include
while read dep ; do
addincpath="$addincpath -I${sproot}${dep}/include"
@@ -355,7 +355,6 @@ exec_prefix := $exec_prefix
dynlibdir := $dynlibdir
libexecdir := $libexecdir
bindir := $bindir
-sbindir := $sbindir
libdir := $libdir
includedir := $includedir
sysdeps := $sysdeps
@@ -415,16 +414,17 @@ cat <<EOF
#define ${package_macro_name}_VERSION "$version"
EOF
if $slashpackage ; then
- echo "#define ${package_macro_name}_BINPREFIX \"$binprefix/\""
+ echo "#define ${package_macro_name}_BINPREFIX \"$bindir/\""
echo "#define ${package_macro_name}_EXTBINPREFIX \"$extbinprefix/\""
- echo "#define ${package_macro_name}_LIBEXECPREFIX \"$binprefix/\""
- echo "#define ${package_macro_name}_SHEBANGPREFIX \"$extbinprefix/\""
+elif $abspath ; then
+ echo "#define ${package_macro_name}_BINPREFIX \"$bindir/\""
+ echo "#define ${package_macro_name}_EXTBINPREFIX \"$bindir/\""
else
echo "#define ${package_macro_name}_BINPREFIX \"\""
echo "#define ${package_macro_name}_EXTBINPREFIX \"\""
- echo "#define ${package_macro_name}_LIBEXECPREFIX \"$libexecdir/\""
- echo "#define ${package_macro_name}_SHEBANGPREFIX \"$shebangdir/\""
fi
+echo "#define ${package_macro_name}_LIBEXECPREFIX \"$libexecdir/\""
+echo "#define ${package_macro_name}_SHEBANGPREFIX \"$shebangdir/\""
echo
echo "#endif"
exec 1>&3 3>&-
diff --git a/package/targets.mak b/package/targets.mak
index ca8275d..73ef16b 100644
--- a/package/targets.mak
+++ b/package/targets.mak
@@ -46,7 +46,6 @@ unexport \
wait \
withstdinas
-SBIN_TARGETS :=
LIBEXEC_TARGETS :=
LIB_DEFS := EXECLINE=execline