SHELL = @PORTAGE_BASH@

prefix = @prefix@
exec_prefix = @exec_prefix@
sysconfdir = @sysconfdir@
libdir = @libdir@

srcdir = @srcdir@
top_builddir = @top_builddir@

portageuser = @portageuser@
portagegroup = @portagegroup@

PORTAGE_BIN = @PORTAGE_BASE@/bin
LN_S = @LN_S@
INSTALL = @INSTALL@
INSTALL_subst = $(top_builddir)/subst-install

usr_binprogs = \
	ebuild \
	egencache \
	emerge \
	emerge-webrsync \
	emirrordist \
	portageq \
	quickpkg

usr_sbinprogs = \
	archive-conf \
	dispatch-conf \
	emaint \
	env-update \
	etc-update \
	fixpackages \
	regenworld

hprefixify_progs = \
	etc-update

all:

install:
	$(INSTALL) -d -m 755 -o "$(portageuser)" -g "$(portagegroup)" $(DESTDIR)$(PORTAGE_BIN)
	( cd "$(srcdir)" && find . -type d ) | while read f ; do \
		files=( ) ; \
		shopt -s nullglob ; \
		for t in "$(srcdir)/$${f}"/* ; do \
			[[ -d $${t} ]] && continue ; \
			[[ $${t} == */Makefile* ]] && continue ; \
			files=( "$${files[@]}" "$${t}" ) ; \
		done ; \
		$(INSTALL) -d -m 755 \
			-o "$(portageuser)" -g "$(portagegroup)" \
			"$(DESTDIR)$(PORTAGE_BIN)/$${f}" && \
		[[ $${files[0]} ]] || continue ; \
		$(INSTALL_subst) -m 755 \
			-o "$(portageuser)" -g "$(portagegroup)" \
			-t "$(DESTDIR)$(PORTAGE_BIN)/$${f}" \
			"$${files[@]}" ; \
	done ; \
	for f in $(hprefixify_progs) ; do \
		$(INSTALL_subst) --hprefixify -m 755 \
			-o "$(portageuser)" -g "$(portagegroup)" \
			-t "$(DESTDIR)$(PORTAGE_BIN)" \
			"$(srcdir)/$${f}" ; \
	done
	$(INSTALL) -d -m 755 -o "$(portageuser)" -g "$(portagegroup)" $(DESTDIR)$(prefix)/bin
	cd $(DESTDIR)$(prefix)/bin \
	; for p in $(usr_binprogs) \
	; do test -f $(DESTDIR)$(PORTAGE_BIN)/$${p} \
		 || { echo "$(DESTDIR)$(PORTAGE_BIN)/$${p} does not exist" ; exit 1 ; } \
	   ; rm -f $(DESTDIR)$(prefix)/bin/$${p} \
	   ; $(LN_S) ../lib/portage/bin/$${p} $${p} || exit 1 \
	; done
	$(INSTALL) -d -m 755 -o "$(portageuser)" -g "$(portagegroup)" $(DESTDIR)$(prefix)/sbin
	cd $(DESTDIR)$(prefix)/sbin \
	; for p in $(usr_sbinprogs) \
	; do test -f $(DESTDIR)$(PORTAGE_BIN)/$${p} \
		 || { echo "$(DESTDIR)$(PORTAGE_BIN)/$${p} does not exist" ; exit 1 ; } \
	   ; rm -f $(DESTDIR)$(prefix)/sbin/$${p} \
	   ; $(LN_S) ../lib/portage/bin/$${p} $${p} || exit 1 \
	; done

.PHONY: all install
