.PHONY: all build install doc clean html deb pkg bintar sdist # This gets the numeric part of the version from the cabal file VERSION=$(shell sed -ne "s/^version: *\([0-9.]*\).*/\1/p" gf.cabal) # Check if stack is installed STACK=$(shell if hash stack 2>/dev/null; then echo "1"; else echo "0"; fi) # Check if cabal >= 2.4 is installed (with v1- and v2- commands) CABAL_NEW=$(shell if cabal v1-repl --help >/dev/null 2>&1 ; then echo "1"; else echo "0"; fi) ifeq ($(STACK),1) CMD=stack else CMD=cabal ifeq ($(CABAL_NEW),1) CMD_PFX=v1- endif CMD_OPT="--force-reinstalls" endif all: src/runtime/c/libpgf.la src/runtime/haskell/dist/setup-config src/server/dist/setup-config src/compiler/dist/setup-config src/runtime/c/libpgf.la: src/runtime/c/Makefile (cd src/runtime/c; make; sudo make install) src/runtime/c/Makefile: src/runtime/c/Makefile.in src/runtime/c/configure (cd src/runtime/c; ./configure) src/runtime/c/Makefile.in src/runtime/c/configure: src/runtime/c/configure.ac src/runtime/c/Makefile.am (cd src/runtime/c; autoreconf -i) src/runtime/haskell/dist/setup-config: src/runtime/c/libpgf.la src/runtime/haskell/pgf2.cabal (cd src/runtime/haskell; ${CMD} ${CMD_PFX}install ${CMD_OPT}) src/server/dist/setup-config: src/server/pgf-service.cabal src/runtime/haskell/dist/setup-config (cd src/server; ${CMD} ${CMD_PFX}install ${CMD_OPT}) src/compiler/dist/setup-config: src/compiler/gf.cabal src/compiler/Setup.hs src/compiler/WebSetup.hs src/runtime/haskell/dist/setup-config src/server/dist/setup-config (cd src/compiler; ${CMD} ${CMD_PFX}install ${CMD_OPT}) doc: ${CMD} ${CMD_PFX}haddock clean: ${CMD} ${CMD_PFX}clean bash bin/clean_html html:: bash bin/update_html # Make a debian package. First add a suitable entry with the correct GF version # number to the top of debian/changelog. # (Tested on Ubuntu 15.04. You need to install dpkg-dev & debhelper.) deb: dpkg-buildpackage -b -uc # Make a macOS installer package pkg: FMT=pkg bash bin/build-binary-dist.sh # Make a binary tar distribution bintar: bash bin/build-binary-dist.sh #sdist: # cabal sdist # Make a source tar.gz distribution using git to make sure that everything is included. # We put the distribution in dist/ so it is removed on `make clean` # sdist: # test -d dist || mkdir dist # git archive --format=tar.gz --output=dist/gf-${VERSION}.tar.gz HEAD