-include BuildOptions.mk

MAKESHIFT	?= makeshift

include $(MAKESHIFT)/build.mk

$(call profiles,profile/*.mk)

CFLAGS		:= -Wall -Wmissing-prototypes -Wformat=2 -Wshadow
CPPFLAGS_debug	+= -DDEBUG

common_NAME	:= common
common_VERSION	:= 0
common_SOURCES	:= buffer.c common.c mount.c protocol.c

$(call library,common)

client_NAME	:= sbrsh
client_SOURCES	:= client.c config.c
client_LIBS	:= -lcommon
client_DEPENDS	:= common@static

$(call binary,client)

daemon_NAME	:= sbrshd
daemon_SOURCES	:= daemon.c fakeroot.c
daemon_CPPFLAGS	:= -I.
daemon_LIBS	:= -lcommon -lutil
daemon_DEPENDS	:= common@static

$(call binary,daemon)

TAGS_SOURCES	:= $(wildcard *.c *.h)

build: sbrsh sbrshd

PROFILE		?= optimize

sbrsh: client-$(PROFILE)
	ln -f $(client_BINARY_$(PROFILE)) $@

sbrshd: daemon-$(PROFILE)
	ln -f $(daemon_BINARY_$(PROFILE)) $@

BINDIR		?= $(PREFIX)/bin
SBINDIR		?= $(PREFIX)/sbin
SYSCONFDIR	?= $(PREFIX)/etc

install: client-$(PROFILE) daemon-$(PROFILE)
	install -d $(DESTDIR)$(PREFIX)/bin
	install -m 755 $(client_BINARY_$(PROFILE)) $(DESTDIR)$(BINDIR)/

	install -d $(DESTDIR)$(PREFIX)/sbin
	install -m 755 $(daemon_BINARY_$(PROFILE)) $(DESTDIR)$(SBINDIR)/

	install -d $(DESTDIR)$(SYSCONFDIR)/init.d
	install -m 644 sbrshd.init $(DESTDIR)$(SYSCONFDIR)/init.d/sbrshd

GIT		:= git
AUTOCONF	:= autoconf

.PHONY: source-tarball
source-tarball:
	@(VERSION=`$(GIT) describe --tags | sed s/^v//` && \
	TMP=$$(mktemp -d tmp.XXXXXX) && \
	$(GIT) archive --format=tar --prefix="sbrsh-$$VERSION/" HEAD \
		> "$$TMP/sbrsh-$$VERSION.tar" && \
	cd "$$TMP" && \
	tar xf "sbrsh-$$VERSION.tar" && \
	cd "sbrsh-$$VERSION" && \
	$(AUTOCONF) && \
	cd .. && \
	tar rf "sbrsh-$$VERSION.tar" "sbrsh-$$VERSION/configure" && \
	gzip -c "sbrsh-$$VERSION.tar" > "../sbrsh-$$VERSION.tar.gz" && \
	cd .. && \
	rm -r "$$TMP")

.PHONY: ipk
ipk: daemon-$(PROFILE)
	rm -rf ipkg/build

	install -d ipkg/build/CONTROL
	sed s/'<VERSION>'/`head -n1 debian/changelog | cut -d'(' -f2 | cut -d')' -f1`/ ipkg/control.in > ipkg/build/CONTROL/control
	install -m 755 ipkg/postinst ipkg/build/CONTROL/
	install -m 755 ipkg/postrm ipkg/build/CONTROL/

	install -d ipkg/build/usr/sbin
	install -m 755 $(daemon_BINARY_$(PROFILE)) ipkg/build/usr/sbin/

	ipkg-build ipkg/build
	rm -rf ipkg/build
