packages feed

BNFC-2.5.0: Makefile

CABALVERSION:=$(shell grep -Po "(?<=^Version: ).*"  BNFC.cabal)
VERSION:=$(CABALVERSION)
RELEASEDIR=dist/releases/$(VERSION)
MACBUILDER=grammaticalframework.org

all: build

build:
	cabal configure && cabal build

install:
	cabal install

clean:
	cabal clean

.PHONY: all build install clean

release: $(RELEASEDIR)/bnfc-$(VERSION).tar.gz \
  $(RELEASEDIR)/bnfc-$(VERSION)-mac.gz

# Commane line aliases
release-source: $(RELEASEDIR)/bnfc-$(VERSION).tar.gz
release-linux: $(RELEASEDIR)/bnfc-$(VERSION)-linux.gz
release-mac: $(RELEASEDIR)/bnfc-$(VERSION)-mac.gz
release-win: $(RELEASEDIR)/bnfc-$(VERSION)-win.exe
.PHONY: release release-source release-linux release-mac release-win

$(RELEASEDIR):
	mkdir -p $@

$(RELEASEDIR)/bnfc-$(VERSION).tar.gz: | $(RELEASEDIR)
	cabal configure
	cabal sdist
	mv dist/BNFC-$(CABALVERSION).tar.gz $@

$(RELEASEDIR)/bnfc-$(VERSION)-linux.gz: $(RELEASEDIR)/bnfc-$(VERSION).tar.gz
	$(eval TMPDIR=$(shell mktemp -d))
	$(eval CURDIR=$(shell pwd))
	tar xf $< -C $(TMPDIR)
	ls $(TMPDIR)
	rm -rf $(TMPDIR)

$(RELEASEDIR)/bnfc-$(VERSION)-mac.gz: $(RELEASEDIR)/bnfc-$(VERSION).tar.gz
	scp $< $(MACBUILDER):
	ssh $(MACBUILDER) "\
	  [ -d 'BNFC-$(CABALVERSION)' ] && rm -rf 'BNFC-$(CABALVERSION)'; \
	  tar xf bnfc-$(VERSION).tar.gz; \
	  cd BNFC-$(CABALVERSION); \
	  cabal configure && cabal build; \
	  gzip -c dist/build/bnfc/bnfc > ../bnfc-$(VERSION)-mac.gz"
	scp $(MACBUILDER):bnfc-$(VERSION)-mac.gz $@