diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2016-10-16 21:15:25 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2016-10-16 21:15:25 +0000 |
commit | 6f66618a9530bc7ac741217913b682d553b920a5 (patch) | |
tree | 190470d540c036d7f82f8e3ce41bb81b7ade7da7 | |
parent | a4a4cc2f1c546915fbb9efe8e21a1189d235b18c (diff) | |
download | execline-6f66618a9530bc7ac741217913b682d553b920a5.tar.xz |
Implement --enable-absolute-paths
-rw-r--r-- | Makefile | 11 | ||||
-rwxr-xr-x | configure | 28 | ||||
-rw-r--r-- | package/targets.mak | 1 |
3 files changed, 19 insertions, 21 deletions
@@ -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: @@ -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 |