summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGravatar Nathan Collins <nathan.collins@gmail.com>2012-06-10 19:24:15 -0700
committerGravatar Nathan Collins <nathan.collins@gmail.com>2012-06-11 00:12:11 -0700
commit7753b33c8860486edf37936e30f35da9db7c8f8b (patch)
tree2023068c3b7c254f789a63c3b3d7f8b4679ad5aa /Makefile
parentb86f201bdf5bba6da51647486ac5cf2dbbf206bd (diff)
Refactor generation of git-annex.cabal and incorporate man pages.
The existing `sed | find | perl` hack in the Makefile was not including the man pages in the generated git-annex.cabal. I couldn't figure out why it didn't work; running the `find | perl` part of the command *did* list the man pages ... So, I set up a new hack. It produces a cleaner .cabal file and includes the man pages in the sdist. I changed git-annex.cabal and its generation as follows: - git-annex.cabal is now generated by a here document in git-annex.cabal.template.sh. The here document has inline file list insertion, whereas before the file lists were inserted with sed. - The 'Extra-Source-Files:' field now only includes the non-source files: the man pages, plain text documentation, and license. - The source dependencies are now listed in 'Other-Modules' sections in the 'Executable' and 'Test-Suite' sections. The list of dependencies is generated by `gen-other-modules.sh`. - The ./debian and ./doc are no longer included in the sdist package. These were not installed anywhere by `cabal install`. A user that wants them could clone the git repo. Running the tests with cabal is not yet working, i.e. cabal configure --enable-tests && cabal build && cabal test and cabal install --enable-tests fail to find Utility.Touch. However, I did not break this: it doesn't work for the git-annex package on Hackage either. Next step is to figure out how to deal with HSC in cabal ... or not bother, because `make test` works. I'm worried this is a cabal bug. To test building from sdist, I've been running cd ../.. ; cabal sdist ; cd dist ; tar xf git-annex-3.20120605.tar.gz && cd git-annex-3.20120605 && rm -fr /tmp/git-annex && cabal install --prefix=/tmp/git-annex && tree -A /tmp/git-annex in the dist directory. Using `cabal-dev install` is a better test, but is very slow.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile18
1 files changed, 11 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 03bada30e..131daade7 100644
--- a/Makefile
+++ b/Makefile
@@ -98,16 +98,20 @@ docs: $(mans)
clean:
rm -rf tmp $(bins) $(mans) test configure *.tix .hpc $(sources) \
- doc/.ikiwiki html dist $(clibs)
+ doc/.ikiwiki html dist $(clibs) git-annex.cabal
# Workaround for cabal sdist not running Setup hooks, so I cannot
# generate a file list there.
-sdist: clean
- @make $(mans)
- @if [ ! -e git-annex.cabal.orig ]; then cp git-annex.cabal git-annex.cabal.orig; fi
- @sed -e "s!\(Extra-Source-Files: \).*!\1$(shell find . -name .git -prune -or -not -name \\*.orig -not -type d -print | perl -ne 'print unless length >= 100')!i" < git-annex.cabal.orig > git-annex.cabal
- @cabal sdist
- @mv git-annex.cabal.orig git-annex.cabal
+sdist: clean $(mans)
+ # Could make this a .PHONY, but it needs to be rerun each time,
+ # unless we want to list a *lot* of dependencies.
+ ./git-annex.cabal.template.sh > git-annex.cabal
+ # Complains about not running 'configure' first, but adding
+ #
+ # cabal configure
+ #
+ # does not help.
+ cabal sdist
# Upload to hackage.
hackage: sdist