From 73342b651bc52864c2ebfc5788ea6ab30042bc12 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 18 Nov 2013 13:28:44 -0400 Subject: add --- .gitignore | 2 ++ Build/make-sdist.sh | 21 +++++++++++++++++++++ Makefile | 31 +++++++++++++++++++++++++++++++ configure.hs | 6 ++++++ 4 files changed, 60 insertions(+) create mode 100755 Build/make-sdist.sh create mode 100644 Makefile create mode 100644 configure.hs diff --git a/.gitignore b/.gitignore index ac795ec..55a966c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ Build/SysConfig.hs +tags +git-repair diff --git a/Build/make-sdist.sh b/Build/make-sdist.sh new file mode 100755 index 0000000..5443e43 --- /dev/null +++ b/Build/make-sdist.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# Workaround for `cabal sdist` requiring all included files to be listed +# in .cabal. + +# Create target directory +sdist_dir=git-repair-$(grep '^Version:' git-repair.cabal | sed -re 's/Version: *//') +mkdir --parents dist/$sdist_dir + +find . \( -name .git -or -name dist -or -name cabal-dev \) -prune \ + -or -not -name \\*.orig -not -type d -print \ +| perl -ne "print unless length >= 100 - length q{$sdist_dir}" \ +| xargs cp --parents --target-directory dist/$sdist_dir + +cd dist +tar -caf $sdist_dir.tar.gz $sdist_dir + +# Check that tarball can be unpacked by cabal. +# It's picky about tar longlinks etc. +rm -rf $sdist_dir +cabal unpack $sdist_dir.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..07df05d --- /dev/null +++ b/Makefile @@ -0,0 +1,31 @@ +PREFIX=/usr +CABAL?=cabal # set to "./Setup" if you lack a cabal program + +build: Build/SysConfig.hs + $(CABAL) build + ln -sf dist/build/git-repair/git-repair git-repair + @$(MAKE) tags >/dev/null 2>&1 & + +Build/SysConfig.hs: configure.hs Build/TestConfig.hs Build/Configure.hs + if [ "$(CABAL)" = ./Setup ]; then ghc --make Setup; fi + $(CABAL) configure + +install: build + install -d $(DESTDIR)$(PREFIX)/bin + install git-repair $(DESTDIR)$(PREFIX)/bin + install -d $(DESTDIR)$(PREFIX)/share/man/man1 + install -m 0644 git-repair.1 $(DESTDIR)$(PREFIX)/share/man/man1 + +clean: + rm -rf git-repair dist configure Build/SysConfig.hs Setup tags + find -name \*.o -exec rm {} \; + find -name \*.hi -exec rm {} \; + +# Upload to hackage. +hackage: clean + ./Build/make-sdist.sh + @cabal upload dist/*.tar.gz + +# hothasktags chokes on some template haskell etc, so ignore errors +tags: + find . | grep -v /.git/ | grep -v /tmp/ | grep -v /dist/ | grep -v /doc/ | egrep '\.hs$$' | xargs hothasktags > tags 2>/dev/null diff --git a/configure.hs b/configure.hs new file mode 100644 index 0000000..15833e6 --- /dev/null +++ b/configure.hs @@ -0,0 +1,6 @@ +{- configure program -} + +import Build.Configure + +main :: IO () +main = run tests -- cgit v1.2.3