Commit graph

111 commits

Author SHA1 Message Date
Joey Hess
24bfabe263 add build dep on network-info 2012-09-07 19:44:20 -04:00
Joey Hess
a8e05c8da1 add network-multicast to bulld depends 2012-09-07 14:54:00 -04:00
Joey Hess
47b88bbd16 move build scripts 2012-09-01 15:22:22 -04:00
Joey Hess
68f1be8f0a Merge branch 'master' into assistant
Conflicts:
	Makefile
	debian/copyright
2012-08-20 16:04:56 -04:00
Joey Hess
db960871fd use a stamp file to avoid running ghc in make install
That fails when make install is run sudoed, but cabal has been used to
install dependencies in a user's home directory.
2012-08-20 16:02:41 -04:00
Joey Hess
be310ac4d0 support building with yesod-default 1.1.0
Old 1.0.1 version is still supported as well. Cabal autodetects
which version is available, but in the Makefile, WITH_OLD_YESOD
has to be configured appropriately.

I have not squashed all the $newline warnings with the new Yesod.
They should go away eventually anyway as Yesod moves past that transition.
2012-08-09 13:33:04 -04:00
Joey Hess
a66e1f68ca remove template haskell file touching
too annoying
2012-08-07 13:25:06 -04:00
Joey Hess
c08ce66427 make dir 2012-08-07 13:12:16 -04:00
Joey Hess
415f0dd5d8 don't clobber env variable if set 2012-08-07 12:24:12 -04:00
Joey Hess
8925d975a9 build in GIT_ANNEX_TMP_BUILD_DIR
This allows setting GIT_ANNEX_TMP_BUILD_DIR to be on a ramdisk,
and all the .o files as well as the git-annex binary are written there.
A useful optimisation for me to avoid SSD write thrashing during
development.
2012-08-07 12:05:24 -04:00
Joey Hess
e78b13c428 hook desktop menu file installation into makefile and cabal 2012-08-01 21:05:27 -04:00
Joey Hess
c950e8fba0 move out to template 2012-07-31 18:33:19 -04:00
Joey Hess
ff4ab6d6da work around GHC not knowing to rebuild files using template haskell
when things they include change
2012-07-26 22:59:14 -04:00
Joey Hess
8e49206af5 fix normal build to include OPTFLAGS 2012-07-26 13:02:00 -04:00
Joey Hess
32d3cffc4c run yesod, and launch webapp on startup 2012-07-25 21:26:13 -04:00
Joey Hess
03979d4d54 Merge branch 'master' into assistant
Conflicts:
	Makefile
2012-07-25 14:55:53 -04:00
Joey Hess
927b53088f force C compiler to build 32 bit on OSX when 32 bit ghc is being used 2012-07-24 11:01:15 -04:00
Joey Hess
107a7b9388 try to make Utility.Mounts portable
This is an unholy mashup, but it just might work. It works on Linux,
that's all I've tested. :)
2012-07-19 20:38:58 -04:00
Joey Hess
f20a40f9d4 MountWatcher thread
Currently only prints mount points when mounts happen.
2012-07-19 13:04:33 -04:00
Joey Hess
1d5582091e attempt at building with -threaded
Added a modified System.Cmd.Utils, working around bug #681621

Unfortunatly, the test suite still hangs partway through.
Some of the hangs occur within pOpen3 still. Some of the hangs
do not seem to occur within System.Cmd.Utils at all, but in some other
code.
2012-07-17 13:37:55 -04:00
Joey Hess
41fcb3d852 Version build dependency on STM, and allow building without it, which disables the watch command. 2012-06-26 09:15:47 -04:00
Joey Hess
3c8a9043b6 skeleton C library for calling kqueue 2012-06-18 12:25:20 -04:00
Jimmy Tang
89f6f820bf Teach _Makefile_ to only do _-DWITH_INOTIFY_ when on a Linux machine. 2012-06-18 10:09:13 -04:00
Joey Hess
91567ab8f6 make inotify a build flag etc 2012-06-17 17:15:56 -04:00
Joey Hess
01beef4459 fix make-sdist to omit too long filenames 2012-06-15 14:14:50 -04:00
Nathan Collins
79a71d9ba6 Simplify git-annex.cabal and generate sdist with make-sdist.sh.
The `cabal install` is happy as long as the files it needs are
present, but `cabal sdist` will only package up files you tell it to.
So, generate the source tarball ourselves.

The source tarball is generated by make-sdist.sh, which uses cabal
sdist to calculate the package name.  Could also generate the name
from the 'Version:' field in git-annex.cabal.
2012-06-12 02:36:05 -07:00
Nathan Collins
6eb4f35c03 Merge branch 'master' into cabal-man-pages 2012-06-11 00:18:48 -07:00
Nathan Collins
7753b33c88 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.
2012-06-11 00:12:11 -07:00
Nathan Collins
f4b82e31b4 Fix Makefile dependencies for make test. 2012-06-10 18:59:16 -07:00
Sergei Trofimovich
3bb58afd59 Makefile: ignore monads-tf in favour of mtl
Fixes build breakage when both 'mtl' and 'monads-tf' are present:
$ make git-annex
> ghc -O2 -Wall -ignore-package monads-fd -outputdir tmp -IUtility -DWITH_S3 --make git-annex Utility/libdiskfree.o
>
> Common.hs:6:8:
>    Ambiguous module name `Control.Monad.State.Strict':
>      it was found in multiple packages: monads-tf-0.1.0.0 mtl-2.1.1
> make: *** [git-annex] Error 1

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2012-06-10 12:11:30 -04:00
Nathan Collins
2b29a02285 Make man pages when making sdist. 2012-06-09 20:46:41 -07:00
Nathan Collins
f5261f60c3 Make standalone man-page installation possible
The `cabal install git-annex` doesn't install the man pages, and the
Makefile only installed the man pages as part of a full build/install.
So, I factored out the documentation parts of the Makefile.
2012-06-05 20:36:42 -07:00
Joey Hess
aa353d1400 use LANGUAGE CPP pragma, avoids running cpp on all the other sources 2012-04-17 18:37:40 -04:00
Joey Hess
626697b459 cabal file now autodetects whether S3 support is available. 2012-04-14 14:22:33 -04:00
Joey Hess
3642c72320 Renamed diskfree.c to avoid OSX case insensativity bug. 2012-04-13 11:26:39 -04:00
Joey Hess
16acc507f3 releasing version 3.20120405 2012-04-05 16:37:44 -04:00
Joey Hess
e38a839a80 Rewrote free disk space checking code
Moving the portability handling into a small C library cleans up things
a lot, avoiding the pain of unpacking structs from inside haskell code.
2012-03-22 17:32:47 -04:00
Joey Hess
d2769cf795 shave some 12 mb from the installed size
* git-annex now behaves as git-annex-shell if symlinked to and run by that
  name. The Makefile sets this up, saving some 8 mb of installed size.
* git-union-merge is a demo program, so it is no longer built by default.
2012-03-15 12:00:19 -04:00
Joey Hess
d820099c8f makefile tweaks
Put build cruft in a subdir
2012-03-15 00:04:28 -04:00
Joey Hess
94d7b323ee remove cruft 2012-03-10 23:02:17 -04:00
Joey Hess
6d3fb5cba7 remove -fspec-constr-count workaround
not needed with ghc 7.4
2012-02-27 14:36:40 -04:00
Joey Hess
81856c3175 add a configure check for StatFS
This way, the build log will indicate whether StatFS can be relied on.
I've tested all the failing architectures now, and on all of them,
the StatFS code now returns Nothing, rather than Just nonsense.

Also, if annex.diskreserve is set on a platform where StatFS is not
working, git-annex will complain.

Also, the Makefile was missing the sources target used when building with
cabal.
2012-01-15 13:49:32 -04:00
Joey Hess
9ad52ef67c add hackage target 2012-01-13 15:08:28 -04:00
Joey Hess
f534fcc7b1 remove S3stub stuff
Let's keep that in a no-s3 branch, which can be merged into eg,
debian-stable.
2012-01-05 23:14:10 -04:00
Joey Hess
7e6a54f984 Added quickcheck to build dependencies, and fail if test suite cannot be built. 2012-01-03 14:52:20 -04:00
Joey Hess
435a349ef5 increate spec-constr-count
Was getting SpecConstr warnings on Command.Find
2011-12-30 20:20:25 -04:00
Joey Hess
9cfa7a969c note 2011-12-20 16:07:34 -04:00
Joey Hess
f30d545256 remove seemingly unneeded dependencies 2011-12-20 16:02:59 -04:00
Joey Hess
a71c03bc51 add make fast target 2011-11-10 03:10:17 -04:00
Joey Hess
737f043c55 fast build mode for vim 2011-11-09 21:36:11 -04:00