about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2016-10-16 21:16:52 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2016-10-16 21:16:52 +0000
commit4481d1442470424f2f7ba9fe7d250c5b2af937d7 (patch)
treef5eff7265d7734364c4aa3e6620f325ff1ec57c9
parent39e9677791c00ac8dab9b8cabbf13ba639679e34 (diff)
downloads6-portable-utils-4481d1442470424f2f7ba9fe7d250c5b2af937d7.tar.gz
s6-portable-utils-4481d1442470424f2f7ba9fe7d250c5b2af937d7.tar.xz
s6-portable-utils-4481d1442470424f2f7ba9fe7d250c5b2af937d7.zip
Implement --enable-absolute-paths
-rw-r--r--Makefile11
-rwxr-xr-xconfigure25
-rw-r--r--package/targets.mak1
3 files changed, 18 insertions, 19 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 0d5867a..47de6bd 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]
@@ -42,6 +41,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
@@ -129,7 +130,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'
 sysdeps='$prefix/lib/skalibs/sysdeps'
@@ -137,6 +137,7 @@ manualsysdeps=false
 shared=false
 static=true
 slashpackage=false
+abspath=false
 sproot=
 home=
 exthome=
@@ -157,7 +158,6 @@ for arg ; do
     --dynlibdir=*) dynlibdir=${arg#*=} ;;
     --libexecdir=*) libexecdir=${arg#*=} ;;
     --bindir=*) bindir=${arg#*=} ;;
-    --sbindir=*) sbindir=${arg#*=} ;;
     --libdir=*) libdir=${arg#*=} ;;
     --includedir=*) includedir=${arg#*=} ;;
     --with-sysdeps=*) sysdeps=${arg#*=} manualsysdeps=true ;;
@@ -175,6 +175,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#*=} ;;
@@ -199,7 +201,7 @@ fi
 
 # Expand installation directories
 stripdir prefix
-for i in exec_prefix dynlibdir libexecdir bindir sbindir libdir includedir sysdeps sproot ; do
+for i in exec_prefix dynlibdir libexecdir bindir libdir includedir sysdeps sproot ; do
   eval tmp=\${$i}
   eval $i=$tmp
   stripdir $i
@@ -228,13 +230,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"
@@ -352,7 +352,6 @@ exec_prefix := $exec_prefix
 dynlibdir := $dynlibdir
 libexecdir := $libexecdir
 bindir := $bindir
-sbindir := $sbindir
 libdir := $libdir
 includedir := $includedir
 sysdeps := $sysdeps
@@ -412,14 +411,16 @@ 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/\""
+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/\""
 fi
+echo "#define ${package_macro_name}_LIBEXECPREFIX \"$libexecdir/\""
 echo
 echo "#endif"
 exec 1>&3 3>&-
diff --git a/package/targets.mak b/package/targets.mak
index c562da8..8a56b39 100644
--- a/package/targets.mak
+++ b/package/targets.mak
@@ -43,5 +43,4 @@ s6-unquote-filter \
 s6-update-symlinks \
 seekablepipe
 
-SBIN_TARGETS :=
 LIBEXEC_TARGETS :=