From 4676457df2c8a73b4f589a66315b9b137ee89202 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Sun, 5 Feb 2023 04:37:51 +0000 Subject: Simplify build system, add --enable-multicall Signed-off-by: Laurent Bercot --- Makefile | 27 ++++++++------- configure | 9 +++++ package/targets.mak | 98 ++++++++++++----------------------------------------- tools/install.sh | 11 ++++-- 4 files changed, 54 insertions(+), 91 deletions(-) diff --git a/Makefile b/Makefile index 483403f..82f380f 100644 --- a/Makefile +++ b/Makefile @@ -17,9 +17,8 @@ CC = $(error Please use ./configure first) STATIC_LIBS := SHARED_LIBS := INTERNAL_LIBS := -EXTRA_TARGETS := LIB_DEFS := -EXTRA_BINS := +BIN_SYMLINKS := EXTRA_TEMP := define library_definition @@ -55,14 +54,14 @@ RANLIB := $(CROSS_COMPILE)ranlib STRIP := $(CROSS_COMPILE)strip INSTALL := ./tools/install.sh -ALL_BINS := $(LIBEXEC_TARGETS) $(BIN_TARGETS) +ALL_BINS := $(BIN_TARGETS) $(LIBEXEC_TARGETS) ALL_LIBS := $(SHARED_LIBS) $(STATIC_LIBS) $(INTERNAL_LIBS) ALL_INCLUDES := $(wildcard src/include/$(package)/*.h) all: $(ALL_LIBS) $(ALL_BINS) $(ALL_INCLUDES) clean: - @exec rm -f $(ALL_LIBS) $(ALL_BINS) $(EXTRA_BINS) $(EXTRA_TEMP) $(wildcard src/*/*.o src/*/*.lo) + @exec rm -f $(ALL_LIBS) $(ALL_BINS) $(EXTRA_TEMP) $(wildcard src/*/*.o src/*/*.lo) distclean: clean @exec rm -f config.mak src/include/$(package)/config.h @@ -86,7 +85,7 @@ endif 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)/%) $(EXTRA_TARGETS:%=$(DESTDIR)$(bindir)/%) +install-bin: $(BIN_TARGETS:%=$(DESTDIR)$(bindir)/%) $(BIN_SYMLINKS:%=$(DESTDIR)$(bindir)/%) 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)/%) @@ -98,7 +97,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/%) $(EXTRA_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/%) $(BIN_SYMLINKS:%=$(DESTDIR)$(sproot)/command/%) $(DESTDIR)$(sproot)/command/%: $(DESTDIR)$(home)/command/% exec $(INSTALL) -D -l ..$(subst $(sproot),,$(exthome))/command/$( src/multicall/execline.c -multicall-install: $(DESTDIR)$(bindir)/execline - for i in $(BIN_TARGETS) $(EXTRA_TARGETS) ; do ./tools/install.sh -l execline $(DESTDIR)$(bindir)/$$i ; done +src/multicall/execline.o: src/multicall/execline.c src/include/execline/config.h src/include/execline/execline.h -multicall-global-links: $(DESTDIR)$(sproot)/command/execline +else -.PHONY: multicall multicall-all multicall-strip multicall-install multicall-global-links +BIN_TARGETS := $(notdir $(wildcard src/execline/deps-exe/*)) +BIN_SYMLINKS := cd umask -src/multicall/execline.c: tools/gen-multicall.sh src/execline/deps-exe src/include/execline/config.h src/include/execline/execline.h - ./tools/gen-multicall.sh > src/multicall/execline.c +ifeq ($(PEDANTIC_POSIX),1) +SYMLINK_TARGET_cd := posix-cd +SYMLINK_TARGET_umask := posix-umask +else +SYMLINK_TARGET_cd := execline-cd +SYMLINK_TARGET_umask := execline-umask +endif + +endif diff --git a/tools/install.sh b/tools/install.sh index 89f9428..e96dd7b 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,19 +1,21 @@ #!/bin/sh usage() { - echo "usage: $0 [-D] [-l] [-m mode] src dst" 1>&2 + echo "usage: $0 [ -D ] [ -l ] [ -m mode ] [ -O owner:group ] src dst" 1>&2 exit 1 } mkdirp=false symlink=false mode=0755 +og= -while getopts Dlm: name ; do +while getopts Dlm:O: name ; do case "$name" in D) mkdirp=true ;; l) symlink=true ;; m) mode=$OPTARG ;; + O) og=$OPTARG ;; ?) usage ;; esac done @@ -46,7 +48,10 @@ if $symlink ; then ln -s "$src" "$tmp" else cat < "$1" > "$tmp" - chmod "$mode" "$tmp" + if test -n "$og" ; then + chown -- "$og" "$tmp" + fi + chmod -- "$mode" "$tmp" fi mv -f "$tmp" "$dst" -- cgit v1.3.1