Whitespace, 80-col violations.
[cabal.git] / Cabal / Makefile
blobf50a892ce70148a73462a86e503008ae73cf589b
2 VERSION=2.1.0.0
4 #KIND=devel
5 KIND=rc
6 #KIND=cabal-latest
8 PREFIX=/usr/local
9 HC=ghc
10 GHCFLAGS=-Wall -threaded
11 SSH_USER=$(USER)
13 all: build
15 # build the library itself
17 SOURCES=Distribution/*.hs Distribution/Simple/*.hs \
18 Distribution/PackageDescription/*.hs Distribution/Simple/GHC/*.hs \
19 Distribution/Simple/Build/*.hs Distribution/Compat/*.hs \
20 Distribution/Simple/Program/*.hs
21 CONFIG_STAMP=dist/setup-config
22 BUILD_STAMP=dist/build/libHSCabal-$(VERSION).a
23 HADDOCK_STAMP=dist/doc/html/Cabal/index.html
24 USERGUIDE_STAMP=dist/doc/users-guide/index.html
25 SDIST_STAMP=dist/Cabal-$(VERSION).tar.gz
26 DISTLOC=dist/release
27 DIST_STAMP=$(DISTLOC)/Cabal-$(VERSION).tar.gz
28 SPHINXCMD:=$(shell command -v sphinx-build2 2> /dev/null)
29 ifndef SPHINXCMD
30 SPHINXCMD:=$(shell command -v sphinx-build 2> /dev/null)
31 endif
32 ifndef SPHINXCMD
33 $(error "needs sphinx-build")
34 endif
37 COMMA=,
39 setup: $(SOURCES) Setup.hs
40 -mkdir -p dist/setup
41 $(HC) $(GHCFLAGS) --make -i. -odir dist/setup -hidir dist/setup Setup.hs \
42 -o setup
44 $(CONFIG_STAMP): setup Cabal.cabal
45 ./setup configure --with-compiler=$(HC) --prefix=$(PREFIX)
47 build: $(BUILD_STAMP)
48 $(BUILD_STAMP): $(CONFIG_STAMP) $(SOURCES)
49 ./setup build
51 install: $(BUILD_STAMP)
52 ./setup install
54 # documentation...
56 haddock: $(HADDOCK_STAMP)
57 $(HADDOCK_STAMP) : $(CONFIG_STAMP) $(BUILD_STAMP)
58 ./setup haddock
60 SPHINX_HTML_OUTDIR=dist/doc/users-guide
62 users-guide: $(USERGUIDE_STAMP)
63 $(USERGUIDE_STAMP) : doc/*.rst
64 mkdir -p $(SPHINX_HTML_OUTDIR)
65 $(SPHINXCMD) doc $(SPHINX_HTML_OUTDIR)
67 docs: haddock users-guide
69 clean:
70 rm -rf dist/
71 rm -f setup
73 # testing...
75 moduleTest: tests/ModuleTest.hs tests/PackageDescriptionTests.hs
76 mkdir -p dist/test
77 $(HC) --make -Wall -DDEBUG -odir dist/test -hidir dist/test \
78 -itests tests/ModuleTest.hs -o moduleTest
80 #tests: moduleTest clean
81 # cd tests/A && $(MAKE) clean
82 # cd tests/HUnit-1.0 && $(MAKE) clean
83 # cd tests/A && $(MAKE)
84 # cd tests/HUnit-1.0 && $(MAKE)
86 #check:
87 # rm -f moduleTest
88 # $(MAKE) moduleTest
89 # ./moduleTest
91 # distribution...
93 $(SDIST_STAMP) : $(BUILD_STAMP)
94 ./setup sdist
96 dist: $(DIST_STAMP)
97 $(DIST_STAMP) : $(HADDOCK_STAMP) $(USERGUIDE_STAMP) $(SDIST_STAMP)
98 rm -rf $(DISTLOC)
99 mkdir $(DISTLOC)
100 tar -xzf $(SDIST_STAMP) -C $(DISTLOC)/
101 mkdir -p $(DISTLOC)/Cabal-$(VERSION)/doc
102 cp -r dist/doc/html $(DISTLOC)/Cabal-$(VERSION)/doc/API
103 cp -r dist/doc/users-guide $(DISTLOC)/Cabal-$(VERSION)/doc/
104 cp changelog $(DISTLOC)/Cabal-$(VERSION)/
105 tar --format=ustar -C $(DISTLOC) -czf $(DISTLOC)/Cabal-$(VERSION).tar.gz Cabal-$(VERSION)
106 mkdir $(DISTLOC)/doc
107 mv $(DISTLOC)/Cabal-$(VERSION)/doc/users-guide $(DISTLOC)/doc
108 mv $(DISTLOC)/Cabal-$(VERSION)/doc/API $(DISTLOC)/doc
109 mv $(DISTLOC)/Cabal-$(VERSION)/changelog $(DISTLOC)/
110 rm -r $(DISTLOC)/Cabal-$(VERSION)/
111 @echo "Cabal tarball built: $(DIST_STAMP)"
112 @echo "Release fileset prepared: $(DISTLOC)/"
114 # Out of date, use SFTP
115 #release: $(DIST_STAMP)
116 # scp -r $(DISTLOC) $(SSH_USER)@haskell.org:/home/web/haskell.org/cabal/release/cabal-$(VERSION)
117 # ssh $(SSH_USER)@haskell.org 'cd /home/web/haskell.org/cabal/release && rm -f $(KIND) && ln -s cabal-$(VERSION) $(KIND)'
119 # tags...
121 TAGSSRCDIRS = Distribution Language
122 tags TAGS: $(SOURCES)
123 find $(TAGSSRCDIRS) -name \*.\*hs | xargs hasktags