# Note that this file and related scripts (bootstrap, install-eggs) don't # contain anything specific to re6stnet. They could be reused as is for SlapOS. # We don't strip ELF files because all dists automatically do it. # For those that produce debug packages, these packages are anyway quite small # (debug information also compresses quite well). BUILD = $(TARGET) PATH := $(CURDIR)/$(BUILD)/parts/chrpath/bin:$(CURDIR)/$(BUILD)/parts/file/bin:$(CURDIR)/$(BUILD)/parts/perl/bin:$(PATH) PYTHON2 = $(firstword $(wildcard /usr/bin/python2 /usr/bin/python)) all: $(BUILD)/.installed.cfg ifneq ($(wildcard upstream.mk),) make -f upstream.mk %: _% make -f upstream.mk $@ _install%: _install; Makefile:; else install: _install endif $(BUILD)/bin/buildout: cd $(BUILD) && $(PYTHON2) -S $(CURDIR)/bootstrap $(BUILD)/.installed.cfg: $(BUILD)/bin/buildout $(BUILD)/buildout.cfg cd $(BUILD) && bin/buildout babeld-repository:recipe= touch $@ PROGS = $(patsubst %,$(DESTDIR)/usr/bin/%,$(BIN)) _install: $(DESTDIR)/$(TARGET) $(PROGS); $(PROGS): $(BUILD)/.installed.cfg mkdir -p $(@D) sed s,$(CURDIR)/$(BUILD),/$(TARGET),g $(BUILD)/bin/$(@F) > $@ chmod +x $@ $(DESTDIR)/$(TARGET): $(BUILD)/.installed.cfg rm -rf $@ && mkdir -p $@/parts cd $(BUILD) && $(PYTHON2) $(CURDIR)/install-eggs $@ $(BIN) for x in $(filter-out $(NOPART),$(shell cd $(BUILD)/parts && echo *)); \ do cp --preserve=links -r $(BUILD)/parts/$$x $@/parts; done cd $@ && $(CURDIR)/cleanup && chmod -R u+w . # Fix paths in files, first ELF, then non-binary @set -ex $(CURDIR)/$(BUILD) /$(TARGET); set $$* "s:\\Q$$1\\E:$$2:g"; \ x=`find $@ -type f \( -executable -o -name '*.so*' \)`; x=`file $$x`; \ x=`echo "$$x" |sed -n 's/:.*ELF.*\(executable\|shared\).*//p'`; \ x=`chrpath -k $$x |perl -ne "$$3"'; \ s/(.*): R(UN)?PATH=(.*)/chrpath -r $$3 $$1/ and print'`; \ eval "$$x"; \ if x=`grep -rIlF $$1 $@`; then \ echo "Fixing path to $$2 rather than $$1:" $$x; \ perl -pi -e "$$3" $$x; fi # Fix symlinks at the end because they'll become broken inside DESTDIR. # Maybe we should generate relative symlinks, or let dists do it. set -e $(CURDIR)/$(BUILD)/; \ find $@ -type l -lname "$$1*" -printf '%l %p\n' |cut -c"$${#1}"- | \ while read s d; do echo "Fixing symlink $$d"; \ rm $$d; ln -s /$(TARGET)$$s $$d; \ done clean: find $(BUILD) -mindepth 1 -maxdepth 1 \ $(patsubst %,! -name %,$(BUILD_KEEP)) |xargs rm -rf