diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2016-10-16 21:16:54 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2016-10-16 21:16:54 +0000 |
commit | c863c27eb00b768732015be3d38bcacb8fee9ba2 (patch) | |
tree | da000070eb2ba07ada797ee1b2bd83b4e7930ad3 | |
parent | 8f7d1d6976238ccad800e0f54c2907437879459e (diff) | |
download | s6-rc-c863c27eb00b768732015be3d38bcacb8fee9ba2.tar.xz |
Implement --enable-absolute-paths
-rw-r--r-- | Makefile | 11 | ||||
-rwxr-xr-x | configure | 47 | ||||
-rw-r--r-- | package/targets.mak | 4 |
3 files changed, 25 insertions, 37 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: @@ -18,12 +18,11 @@ Installation directories: Fine tuning of the installation directories: --dynlibdir=DIR shared library files [PREFIX/lib] - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR admin executables [EPREFIX/sbin] + --bindir=BINDIR user executables [EPREFIX/bin] --libexecdir=DIR package-scoped executables [EPREFIX/libexec] --libdir=DIR static library files [PREFIX/lib/$package] --includedir=DIR C header files [PREFIX/include] - --datadir=DATADIR global configuration files [PREFIX/etc] + --livedir=DIR default live directory [/run/s6-rc] If no --prefix option is given, by default libdir (but not dynlibdir) will be /usr/lib/$package, and includedir will be /usr/include. @@ -43,7 +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] - --livedir=DIR default live directory [/run/s6-rc] + --enable-absolute-paths do not rely on PATH to access this package's binaries, + hardcode absolute BINDIR/foobar paths instead [disabled] EOF exit 0 @@ -131,15 +131,15 @@ 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' -datadir='$prefix/etc' +livedir=/run/s6-rc sysdeps='$prefix/lib/skalibs/sysdeps' manualsysdeps=false shared=false static=true slashpackage=false +abspath=false sproot= home= exthome= @@ -151,7 +151,6 @@ addlibdpath='' vpaths='' vpathd='' build= -livedir=/run/s6-rc for arg ; do case "$arg" in @@ -161,10 +160,9 @@ for arg ; do --dynlibdir=*) dynlibdir=${arg#*=} ;; --libexecdir=*) libexecdir=${arg#*=} ;; --bindir=*) bindir=${arg#*=} ;; - --sbindir=*) sbindir=${arg#*=} ;; --libdir=*) libdir=${arg#*=} ;; --includedir=*) includedir=${arg#*=} ;; - --datadir=*) datadir=${arg#*=} ;; + --livedir=*) livedir=${arg#*=} ;; --with-sysdeps=*) sysdeps=${arg#*=} manualsysdeps=true ;; --with-include=*) var=${arg#*=} ; stripdir var ; addincpath="$addincpath -I$var" ;; --with-lib=*) var=${arg#*=} ; stripdir var ; addlibspath="$addlibspath -L$var" ; vpaths="$vpaths $var" ;; @@ -180,10 +178,8 @@ for arg ; do --enable-slashpackage=*) sproot=${arg#*=} ; slashpackage=true ; ;; --enable-slashpackage) sproot= ; slashpackage=true ;; --disable-slashpackage) sproot= ; slashpackage=false ;; - --enable-cross=*) cross=${arg#*=} ;; - --enable-cross) ;; - --disable-cross) cross= ;; - --livedir=*) livedir=${arg#*=} ;; + --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#*=} ;; @@ -208,7 +204,7 @@ fi # Expand installation directories stripdir prefix -for i in exec_prefix dynlibdir libexecdir bindir sbindir libdir includedir datadir sysdeps sproot livedir ; do +for i in exec_prefix dynlibdir libexecdir bindir libdir includedir sysdeps sproot livedir ; do eval tmp=\${$i} eval $i=$tmp stripdir $i @@ -237,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" @@ -318,6 +312,8 @@ tryflag CFLAGS_AUTO -fdata-sections tryldflag LDFLAGS_AUTO -Wl,--sort-section=alignment tryldflag LDFLAGS_AUTO -Wl,--sort-common +CPPFLAGS_AUTO="${CPPFLAGS_AUTO}${addincpath}" + if $evenmorestatic ; then LDFLAGS_NOSHARED=-static fi @@ -343,8 +339,6 @@ if test -z "$vpaths" ; then done < package/deps-build fi -CPPFLAGS_AUTO="$CPPFLAGS_AUTO $addincpath" - echo "creating config.mak..." cmdline=$(quote "$0") for i ; do cmdline="$cmdline $(quote "$i")" ; done @@ -361,10 +355,8 @@ exec_prefix := $exec_prefix dynlibdir := $dynlibdir libexecdir := $libexecdir bindir := $bindir -sbindir := $sbindir libdir := $libdir includedir := $includedir -datadir := $datadir sysdeps := $sysdeps slashpackage := $slashpackage sproot := $sproot @@ -420,20 +412,19 @@ cat <<EOF #define ${package_macro_name}_CONFIG_H #define ${package_macro_name}_VERSION "$version" -#define ${package_macro_name}_ETC "$datadir" #define ${package_macro_name}_LIVE_BASE "$livedir" 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}_EXTLIBEXECPREFIX \"$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}_EXTLIBEXECPREFIX \"$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 9953c80..9573a5f 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -2,9 +2,7 @@ BIN_TARGETS := \ s6-rc-compile \ s6-rc-dryrun \ s6-rc-db \ -s6-rc-bundle - -SBIN_TARGETS := \ +s6-rc-bundle \ s6-rc-init \ s6-rc \ s6-rc-update |