4 ifeq (,$(findstring disttest
,$(MAKECMDGOALS
)))
5 ifeq (,$(findstring slowdisttest
,$(MAKECMDGOALS
)))
6 ifeq (,$(findstring clean,$(MAKECMDGOALS
)))
7 ifneq (config
,$(MAKECMDGOALS
))
15 GHCFLAGS
+= +RTS
$(RTSFLAGS
) -RTS
18 GHCFLAGS
+= -Wall
-Werror
-I.
-I.
/src
-i.
/src
19 GHCFLAGS_src__Darcs__Commands__Record.o
= $(filter-out -auto-all
,$(GHCFLAGS
))
20 GHCFLAGS_src__Darcs__SelectChanges.o
= $(filter-out -auto-all
,$(GHCFLAGS
))
21 GHCFLAGS_src__SHA1.o
= $(GHCFLAGS
) -no-auto-all
-funfolding-use-threshold20
22 ifeq ($(HAVE_CURSES
),True
)
23 GHCFLAGS_src__Darcs__External.o
= $(GHCFLAGS
)
24 ifeq ($(HAVE_TERMIO_H
),True
)
25 # This termio bit is a grim hack for Solaris 10 (at least).
26 # Without it, SGTTY isn't declared. Something in the ghc C headers
27 # which get included before term.h in the generated C is clobbering
28 # it. (If you edit that C and put the curses.h and term.h first, the
30 GHCFLAGS_src__Darcs__External.o
+= '-\#include <termio.h>'
32 GHCFLAGS_src__Darcs__External.o
+= '-\#include <curses.h>' '-\#include <term.h>'
35 SRC_DIRS
:= .
$(shell find src
/ -name sys
-prune
-o
-type d
-print)
44 URL.hs HTTP.hs DateMatcher.lhs \
46 ByteStringUtils.hs UglyFileName.lhs IsoDate.lhs \
50 SHA1.lhs Ssh.hs UTF8.lhs \
53 MODULES_CRYPT
:= SHA256.hs
56 ArgumentDefaults.lhs \
57 Arguments.lhs Bug.lhs \
60 Commands.lhs CommandsAux.lhs RunCommand.lhs \
62 Diff.lhs Email.hs FilePathUtils.hs \
65 Flags.lhs Global.lhs \
67 IO.lhs Lock.lhs Ordered.lhs Patch.lhs \
69 Population.hs PopulationData.hs \
70 PrintPatch.lhs Progress.lhs \
71 RemoteApply.lhs RepoPath.hs \
72 Repository.lhs Resolution.lhs SignalHandler.lhs Test.lhs URL.hs \
75 SelectChanges.lhs TheCommands.lhs \
79 Apply.lhs Bundle.lhs \
80 Commute.lhs Core.lhs \
82 Depends.lhs FileName.lhs \
83 Info.lhs Match.lhs MatchData.lhs \
85 Patchy.lhs Permutations.lhs \
87 Read.lhs ReadMonads.hs Real.lhs Set.lhs Show.lhs \
88 TouchesFiles.lhs Viewing.lhs \
94 HashedIO.lhs HashedRepo.lhs \
95 Format.lhs Internal.lhs Repair.lhs \
102 Add.lhs AmendRecord.lhs Annotate.lhs Apply.lhs \
103 Changes.lhs Check.lhs Convert.lhs Diff.lhs Dist.lhs \
104 Get.lhs Help.lhs Init.lhs MarkConflicts.lhs Mv.lhs Optimize.lhs \
105 Pull.lhs Push.lhs Put.lhs \
106 Record.lhs Remove.lhs Repair.lhs Replace.lhs \
107 Revert.lhs Rollback.lhs \
108 Send.lhs SetPref.lhs \
109 Show.lhs ShowAuthors.lhs ShowBug.lhs \
110 ShowContents.lhs ShowFiles.lhs ShowTags.lhs ShowRepo.lhs \
111 Tag.lhs TrackDown.lhs TransferMode.lhs \
112 Unrecord.lhs Unrevert.lhs WhatsNew.lhs \
114 witnesses
: src
/Darcs
/Patch
/Real.hi src
/Darcs
/Patch
/Properties.hi src
/Darcs
/Patch.hi \
115 src
/Darcs
/Repository
/ApplyPatches.hi src
/Darcs
/Patch
/Bundle.hi \
116 src
/Darcs
/Patch
/Match.hi src
/Darcs
/Repository
/HashedRepo.hi \
117 src
/Darcs
/Resolution.hi src
/Darcs
/Patch
/Check.hi \
118 src
/Darcs
/Repository
/Pristine.hi src
/Darcs
/Repository
/DarcsRepo.hi \
119 src
/Darcs
/Repository
/Internal.hi \
120 src
/Darcs
/Commands
/Unrevert.hi src
/Darcs
/Commands
/WhatsNew.hi \
121 src
/Darcs
/Commands
/Dist.hi src
/Darcs
/Commands
/TransferMode.hi
124 $(patsubst %,src
/%,$(MODULES_AUTOCONF
))\
125 $(patsubst %,src
/%,$(MODULES_GENERAL
))\
126 $(patsubst %,src
/Crypt
/%,$(MODULES_CRYPT
))\
127 $(patsubst %,src
/Darcs
/%,$(MODULES_DARCS
))\
128 $(patsubst %,src
/Darcs
/Patch
/%,$(MODULES_PATCH
))\
129 $(patsubst %,src
/Darcs
/Repository
/%,$(MODULES_REPOSITORY
))\
130 $(patsubst %,src
/Darcs
/Commands
/%,$(MODULES_COMMANDS
))
132 UNIT_FILES
:= $(DARCS_FILES
) src
/Darcs
/Patch
/Test.lhs src
/Darcs
/Patch
/QuickCheck.lhs \
133 src
/Darcs
/Patch
/Unit.lhs src
/Darcs
/Patch
/Properties.lhs src
/Darcs
/Patch
/Check.lhs
135 C_OBJS
:= $(patsubst %,src
/%.o
,c_compat maybe_relink atomic_create fpstring umask Crypt
/sha2 hscurl hslibwww
)
137 ifeq ($(SYS
), windows
)
138 GHCFLAGS
+= -isrc
/win32
-Isrc
/win32
-DWIN32
139 DARCS_FILES
+= src
/win32
/System
/Posix.hs src
/win32
/System
/Posix
/Files.hs \
140 src
/win32
/System
/Posix
/IO.hs src
/win32
/CtrlC.hs
141 C_OBJS
+= src
/win32
/CtrlC_stub.o src
/win32
/CtrlC.o
142 UNIT_FILES
+= src
/win32
/System
/Posix.hs src
/win32
/System
/Posix
/Files.hs \
143 src
/win32
/System
/Posix
/IO.hs
146 ifeq ($(HAVE_MAPI
),True
)
147 C_OBJS
+= src
/win32
/send_email.o
148 CPPFLAGS
+= -Isrc
/win32
149 GHCFLAGS
+= -DHAVE_MAPI
152 DARCS_OBJS
:= $(patsubst %.hs
,%.o
,$(patsubst %.lhs
,%.o
,$(DARCS_FILES
)))
153 UNIT_OBJS
:= $(patsubst %.hs
,%.o
,$(patsubst %.lhs
,%.o
,$(UNIT_FILES
)))
156 .PHONY
: all clean distclean maintainer-clean
dist deb
test check install \
157 test-franchise test-old test-hashed test-format2 \
159 disttest slowdisttest \
160 bugs bugs-old bugs-hashed bugs-format2 \
161 installserver installdocs installbin windowsinstaller \
165 config
: configure autoconf.mk
168 $(MAKE
) install prefix=$(destdir
)/$(prefix) \
169 bindir=$(destdir
)/$(bindir) \
170 libdir=$(destdir
)/$(libdir) \
171 datadir=$(destdir
)/$(datadir) \
172 libexecdir
=$(destdir
)/$(libexecdir
)
175 test -d
$(DESTDIR
)$(bindir) ||
$(INSTALL
) -d
$(DESTDIR
)$(bindir)
176 $(INSTALL
) darcs
$(DESTDIR
)$(bindir)
178 test -d
$(DESTDIR
)$(sysconfdir
)/bash_completion.d || \
179 $(INSTALL
) -d
$(DESTDIR
)$(sysconfdir
)/bash_completion.d
180 $(INSTALL_DATA
) tools
/darcs_completion
$(DESTDIR
)$(sysconfdir
)/bash_completion.d
/darcs
182 test -d
$(DESTDIR
)$(mandir)/man1 || \
183 $(INSTALL
) -d
$(DESTDIR
)$(mandir)/man1
184 $(INSTALL_DATA
) doc
/darcs
.1 $(DESTDIR
)$(mandir)/man1
/
186 installdocs
: doc
/manual
/darcs.pdf doc
/manual
/patch-theory.pdf doc
/manual
/index.html
187 test -d
$(DESTDIR
)$(docdir
)/manual || \
188 $(INSTALL
) -d
$(DESTDIR
)$(docdir
)/manual
189 $(INSTALL_DATA
) doc
/manual
/*.pdf
$(DESTDIR
)$(docdir
)/manual
190 $(INSTALL_DATA
) doc
/manual
/*.png
$(DESTDIR
)$(docdir
)/manual
191 $(INSTALL_DATA
) doc
/manual
/*.html
$(DESTDIR
)$(docdir
)/manual
193 test -d
$(DESTDIR
)$(docdir
)/examples || \
194 $(INSTALL
) -d
$(DESTDIR
)$(docdir
)/examples
195 $(INSTALL_DATA
) tools
/zsh_completion_new
$(DESTDIR
)$(docdir
)/examples
/
196 $(INSTALL_DATA
) tools
/zsh_completion_old
$(DESTDIR
)$(docdir
)/examples
/
198 installserver
: tools
/cgi
/darcs.cgi
199 test -d
$(DESTDIR
)$(libexecdir
)/cgi-bin || \
200 $(INSTALL
) -d
$(DESTDIR
)$(libexecdir
)/cgi-bin
202 test -d
$(DESTDIR
)$(sysconfdir
)/darcs || \
203 $(INSTALL
) -d
$(DESTDIR
)$(sysconfdir
)/darcs
204 test -e
$(DESTDIR
)$(sysconfdir
)/darcs
/cgi.conf || \
205 $(INSTALL_DATA
) tools
/cgi
/cgi.conf
$(DESTDIR
)$(sysconfdir
)/darcs
/cgi.conf
206 $(INSTALL
) tools
/cgi
/darcs.cgi
$(DESTDIR
)$(libexecdir
)/cgi-bin
/darcs.cgi
207 test -d
$(DESTDIR
)$(datadir)/darcs || \
208 $(INSTALL
) -d
$(DESTDIR
)$(datadir)/darcs
209 test -d
$(DESTDIR
)$(datadir)/darcs
/xslt || \
210 $(INSTALL
) -d
$(DESTDIR
)$(datadir)/darcs
/xslt
211 $(INSTALL_DATA
) tools
/cgi
/xslt
/*.xslt
$(DESTDIR
)$(datadir)/darcs
/xslt
/
212 $(INSTALL_DATA
) tools
/cgi
/xslt
/errors.xml
$(DESTDIR
)$(datadir)/darcs
/xslt
/
213 $(INSTALL_DATA
) tools
/cgi
/xslt
/styles.css
$(DESTDIR
)$(datadir)/darcs
/xslt
/styles.css
215 # Debian policy doesn't allow symlinks as configuration files.
216 # test -e $(DESTDIR)$(sysconfdir)/darcs/styles.css || \
217 # ln -s $(datadir)/darcs/xslt/styles.css \
218 # $(DESTDIR)$(sysconfdir)/darcs/styles.css
219 $(INSTALL
) -m
644 tools
/cgi
/xslt
/styles.css
$(DESTDIR
)$(sysconfdir
)/darcs
/styles.css
221 PREDIST_COPY_FILES
:= \
226 DARCS_VERSION_WITH_PATCHES
=$(shell sed
-e
's/ (//' -e
's/ patches)//' -e
's/+ /+/' release
/STATE
)
227 darcs-nightly
: darcs release
/STATE
228 ln
-sf darcs darcs-
$(DARCS_VERSION_WITH_PATCHES
)
230 dist: darcs
$(PREDIST_COPY_FILES
)
231 REPO_PATH
="$$PWD" .
/darcs
dist --dist-name darcs-
$(DARCS_VERSION
)
232 ln
-sf darcs-
$(DARCS_VERSION
).
tar.gz darcs-latest.
tar.gz
234 darcs-test.
tar.gz
: darcs
$(PREDIST_COPY_FILES
)
235 REPO_PATH
="$$PWD" .
/darcs
dist --dist-name darcs-test
238 for F in
$(PREDIST_COPY_FILES
); do \
239 cp
"$$REPO_PATH/$$F" "$$F"; \
242 predist
: predist_copy doc
/manual
/darcs.ps doc
/darcs
.1 doc
/manual
/index.html
distclean
243 rm -fr release
/debian
245 #ensure the directory exists for api documentation
247 @echo
"Creating api-doc directory"
250 #generate the api documentation
251 api-doc
: api-doc-dir
$(DARCS_FILES
)
252 @
test $(HADDOCK_VERSION
) -lt
2 ||
{ echo
"You need haddock 2.0.0 or later to build the API documentation"; false
; }
253 echo
"Generating html"
254 haddock
--ignore-all-exports
--optghc
=-I.
--optghc
=-I.
/src
--optghc
=-i.
/src
-B
`$(GHC) --print-libdir` -o api-doc
-h
$(filter-out %api-doc-dir
,$^
)
255 cp api-doc
/index.html api-doc
/modules-index.html
257 #generate the api documentation with links to colourised source code
258 api-doc-with-source
: api-doc-dir colourised-source
$(DARCS_FILES
) src
/darcs.lhs
259 @
test $(HADDOCK_VERSION
) -lt
2 ||
{ echo
"You need haddock 2.0.0 or later to build the API documentation"; false
; }
260 echo
"Generating haddock api docs"
261 haddock
--no-warnings
--ignore-all-exports
--optghc
=-I.
--optghc
=-I.
/src
--optghc
=-i.
/src
-B
`$(GHC) --print-libdir` -o api-doc
-h
--source-module
=src-
%{MODULE
/.
/-}.html
$(filter-out %api-doc-dir colourised-source
,$^
)
262 cp api-doc
/index.html api-doc
/modules-index.html
263 # --source-entity=src-%{MODULE/./-}.html#%N # awaiting http://code.google.com/p/ndmitchell/issues/detail?id=95
265 # munge haddock and hoogle into a rough but useful framed layout
266 # ensure that the hoogle cgi is built with base target "main"
267 api-doc-frames
: api-doc-with-source hoogleweb
268 echo
"Converting api docs to frames"
269 sed
-i
-e
's%^></head%><base target="main"></head%i' api-doc
/modules-index.html
270 cp doc
/misc
/api-doc-frames.html api-doc
/index.html
271 cp doc
/misc
/hoogle-small.html hoogle
273 colourised-source
: api-doc-dir
$(DARCS_FILES
) src
/darcs.lhs
274 echo
"Generating colourised source"
275 for f in
$(DARCS_FILES
) src
/darcs.lhs
; do \
276 HsColour
-css
-anchor
$$f -oapi-doc
/`echo $$f | sed -e's%/%-%g' | sed -e's%\.l\?hs$$%.html%'` ; \
278 mv api-doc
/src-darcs.html api-doc
/src-Main.html
279 HsColour
-print-css
>api-doc
/hscolour.css
281 #generate a hoogle index
282 #uses system "hoogle"
283 #works around http://code.google.com/p/ndmitchell/issues/detail?id=93
284 #usage: hoogle --data=api-doc/default ...
285 hoogleindex
: $(DARCS_FILES
) src
/darcs.lhs
286 echo
"Generating hoogle index"
288 haddock
--no-warnings
--ignore-all-exports
--optghc
=-I.
--optghc
=-I.
/src
--optghc
=-i.
/src
-B
`$(GHC) --print-libdir` -o hoogle
--hoogle
$^
289 cd hoogle
&& sed
-i
-e
's/^(_/-- (_/' main.txt
290 cd hoogle
&& hoogle
--convert
=main.txt
--output
=default.hoo
292 #set up the hoogle web interface
293 #uses a hoogle source tree configured with --datadir=. and patched to fix haddock urls
294 HOOGLESRC
=/usr
/local
/src
/hoogle
295 HOOGLE
=$(HOOGLESRC
)/dist/build
/hoogle
/hoogle
296 HOOGLEVER
=`$(HOOGLE) --version |tail -n 1 | sed -e 's/Version /hoogle-/'`
297 hoogleweb
: hoogleindex
298 echo
"Configuring hoogle web interface"
300 ln
-sf . hoogle
/$(HOOGLEVER
)
301 cp
-r
$(HOOGLESRC
)/deploy
/res
/ hoogle
/
302 cp
-p
$(HOOGLE
) hoogle
/index.cgi
306 windowsinstaller
: darcs doc
/manual
/index.html release
/darcs.nsi
307 echo
"!define VERSION $(DARCS_VERSION)" > version.nsi
308 "$(MAKENSIS)" version.nsi release
/darcs.nsi
311 darcs
: $(DARCS_OBJS
) src
/darcs.lhs
$(C_OBJS
)
313 @
rm -f Main.o Main.hi
315 $(GHC
) $(GHCFLAGS
) $(OPTLLDFLAGS
) -o
$@
$^
$(OPTLLIBS
)
317 @
$(GHC
) $(GHCFLAGS
) $(OPTLLDFLAGS
) -o
$@
$^
$(OPTLLIBS
)
320 # rebuild whenever a module changes, using searchpath
321 # Requires a patched version: darcs get http://joyful.com/repos/searchpath
322 SP
=sp
--no-default-map
--no-exts
--sp-verbose
1
323 SPDARCSCMD
="--version"
324 SPLAST
=--run
$(SPDARCSCMD
)
326 @
$(SP
) $(GHC
) --make
$(GHCFLAGS
) $(OPTLLDFLAGS
) -o darcs src
/darcs.lhs
$(C_OBJS
) $(OPTLLIBS
) $(SPLAST
)
328 ghci
: $(DARCS_FILES
) $(C_OBJS
)
329 ghci
$(filter-out -Wall
,$(GHCFLAGS
)) $(OPTLLDFLAGS
) src
/darcs.lhs
$(C_OBJS
) $(OPTLLIBS
)
332 darcsman
: src
/darcsman.hs
$(C_OBJS
) $(DARCS_OBJS
)
333 list_authors
: src
/list_authors.hs
$(C_OBJS
) $(DARCS_OBJS
)
334 microbench
: src
/microbench.hs
$(C_OBJS
) $(DARCS_OBJS
)
335 unit
: src
/unit.lhs
$(UNIT_OBJS
) $(C_OBJS
)
336 preproc
: src
/preproc.hs
$(C_OBJS
) $(DARCS_OBJS
)
337 git-darcs-import
: src
/git-darcs-import.hs
$(C_OBJS
) $(DARCS_FILES
) src
/Git
/*.hs
338 $(GHC
) -o
$@
$(GHCFLAGS
) --make
$(OPTLLDFLAGS
) $< $(OPTLLIBS
) $(C_OBJS
) -optl-s
340 TEXSOURCES
:= preproc src
/darcs.lhs src
/features.
tex \
341 src
/switching.
tex src
/configuring_darcs.
tex src
/gpl.
tex \
342 $(DARCS_FILES
) src
/building_darcs.
tex \
343 src
/best_practices.
tex src
/formats.
tex
344 src
/darcs.
tex: $(TEXSOURCES
)
345 .
/preproc darcs.lhs
$(PREPROCHTML
) >$@
346 # The following is to prevent both being generated simultaneously, which
348 src
/darcs_print.pdf
: src
/darcs_print.ps
349 src
/darcs_print.
tex: $(TEXSOURCES
)
350 .
/preproc darcs.lhs
>$@
351 src
/patch-theory.
tex: $(TEXSOURCES
) $(UNIT_FILES
)
352 .
/preproc Darcs
/Patch
/Properties.lhs
>$@
354 website
: doc
/manual
/darcs.ps doc
/manual
/patch-theory.pdf doc
/manual
/index.html doc
/manual
/bigpage.html \
357 doc
/manual
/index.html
: src
/darcs.
tex src
/gpl.
tex doc
/darcs.css
359 cp
-f doc
/darcs.css doc
/manual
/darcs.css
361 doc
/manual
/bigpage.html
: src
/darcs.
tex src
/gpl.
tex doc
/darcs.css
362 ln
-sf darcs.
tex src
/bigpage.
tex
363 latex2html
-split
0 -external_file darcs
-prefix big \
364 -no_auto_link
-dir doc
/manual src
/bigpage.
tex
366 cp
-f doc
/darcs.css doc
/manual
/bigpage.css
368 doc
/manual
/darcs.ps
: src
/darcs_print.ps
369 cp src
/darcs_print.ps doc
/manual
/darcs.ps
370 doc
/manual
/darcs.pdf
: src
/darcs_print.pdf
371 cp src
/darcs_print.pdf doc
/manual
/darcs.pdf
372 doc
/manual
/patch-theory.pdf
: src
/patch-theory.pdf
373 cp src
/patch-theory.pdf doc
/manual
/
375 doc
/darcs
.1: darcsman
378 AUTHORS
: list_authors
381 check test: test-old test-hashed test-format2
384 @echo
'**********************************************************************'
385 @echo Note
: to prevent darcs from running tests by default
, you can put
386 @echo the following entries in _darcs
/prefs
/defaults
389 @echo amend-record no-test
391 @echo It would be helpful if you ran the tests sometime before sending in
392 @echo your patches. You can do so by running darcs
check.
394 @echo To run a faster subset of the tests
, just run make
check.
395 @echo
'**********************************************************************'
396 @if ghc-pkg list QuickCheck | grep
'\-2\..' > /dev
/null
; then true
; else \
397 echo
"You need QuickCheck 2 to run the tests ( darcs get http://darcs.haskell.org/QuickCheck )";\
400 @echo
'*****************************'
401 @echo Get a
clean copy of franchise
402 @echo
'*****************************'
403 rm -rf franchise-test Distribution
404 darcs
get http
://darcs.net
/repos
/franchise franchise-test
405 cp
-r franchise-test
/Distribution .
406 @echo
'*****************************'
407 @echo Test franchise build of darcs
408 @echo
'*****************************'
409 runghc Setup.hs configure
410 runghc Setup.hs build
-j4
411 runghc Setup.hs
clean
412 $(call echo_without_wine
,'**************************************')
413 $(call echo_without_wine
,Not testing with older version of wine
)
414 $(call echo_without_wine
,'**************************************')
415 $(call echo_with_wine
,'****************************************')
416 $(call echo_with_wine
,Test franchise build of darcs under wine
)
417 $(call echo_with_wine
,'****************************************')
418 $(call with_wine
,wine runghc Setup.hs configure
)
419 $(call with_wine
,wine runghc Setup.hs build
-j4
)
420 $(call with_wine
,wine runghc Setup.hs
clean)
421 @echo
'**************************'
422 @echo Running old autoconf tests
423 @echo
'**************************'
425 .
/configure
--with-type-witnesses
426 $(MAKE
) -j4 witnesses
430 $(MAKE
) -j4
check test_network
432 slowdisttest
: disttest test_unit
434 bugs
: bugs-old bugs-hashed bugs-format2 \
436 TEST_FILTER_FILE
:= tests_to_run
437 SHELL_HARNESS
:= perl ..
/tests
/shell_harness
440 @if
test "wine-1.0" = `wine --version`; then echo
"$1"; $1; fi
443 define echo_with_wine
444 @if
test "wine-1.0" = `wine --version`; then echo
"$1"; fi
447 define echo_without_wine
448 @if
test !"wine-1.0" = `wine --version`; then echo
"$1"; fi
454 @echo Running tests on
$1 repositories...
455 @chmod
-R u
+rwx tests-
$1.
dir 2>/dev
/null || true
456 @
rm -rf tests-
$1.
dir && cp
-R tests tests-
$1.
dir
457 @cd tests-
$1.
dir && rm -rf .darcs
; mkdir .darcs
;\
459 if
[ -r
$(TEST_FILTER_FILE
) ];\
460 then grep
"\.sh" $(TEST_FILTER_FILE
) | grep
-v
'^#' | xargs
$(SHELL_HARNESS
); \
461 else printf
%s
\\n
*.sh |
sort -r | xargs
$(SHELL_HARNESS
); fi
462 @echo Done running tests on
$1 repositories...
466 @echo Demonstrating bugs on
$1 repositories...
467 @
rm -rf bugs-
$1.
dir && cp
-R bugs bugs-
$1.
dir
468 @cd bugs-
$1.
dir && rm -rf .darcs
; mkdir .darcs
;\
470 if
[ -r
$(TEST_FILTER_FILE
) ];\
471 then bugs
=1 grep
"\.sh" $(TEST_FILTER_FILE
) | grep
-v
'^#' | xargs
$(SHELL_HARNESS
) || true
; \
472 else bugs
=1 printf
%s
\\n
*.sh |
sort -r | xargs
$(SHELL_HARNESS
) || true
; fi
473 @echo Done demonstrating bugs on
$1 repositories...
477 @echo Running network tests ...
478 @
rm -rf tests-network.
dir && cp
-R tests
/network tests-network.
dir
479 @cd tests-network.
dir && rm -rf .darcs
; mkdir .darcs
;\
480 if
[ -r
$(TEST_FILTER_FILE
) ];\
481 then bugs
=1 grep
"\.sh" $(TEST_FILTER_FILE
) | grep
-v
'^#' | xargs
$(SHELL_HARNESS
); \
482 else bugs
=1 ls
*.sh |
sort -r | xargs
$(SHELL_HARNESS
); fi
483 @echo Passed network tests.
485 hspwd
: tests
/hspwd.hs
486 ghc
--make
-o hspwd tests
/hspwd.hs
488 test-old
: darcs hspwd
489 $(call shell_harness
,old-fashioned
,\
490 echo ALL
--old-fashioned-inventory
>> .darcs
/defaults
)
492 # for the format2 tests, we skip the hashed_inventory.sh test, since explicitly
493 # creates the old-fashioned format that's incompatible with darcs-2.
494 test-format2
: darcs hspwd
495 $(call shell_harness
,darcs-2
,\
496 echo ALL
--darcs-2
>> .darcs
/defaults
)
498 test-hashed
: darcs hspwd
499 $(call shell_harness
,hashed
,\
500 echo ALL
--hashed
>> .darcs
/defaults
)
502 bugs-old
: darcs hspwd
503 $(call shell_bugs
,old-fashioned
,\
504 echo ALL
--old-fashioned-inventory
>> .darcs
/defaults
)
506 bugs-format2
: darcs hspwd
507 $(call shell_bugs
,format-2
,\
508 echo ALL
--darcs-2
>> .darcs
/defaults
)
510 bugs-hashed
: darcs hspwd
511 $(call shell_bugs
,hashed
,\
512 echo ALL
--hashed
>> .darcs
/defaults
)
514 test_unit
: darcs unit
520 rm -f
$(foreach dir,$(SRC_DIRS
),$(dir)/*.o
$(dir)/*.hi
)
521 rm -f unit diff darcs darcs_cgi
523 rm -f src
/darcs.
tex src
/darcs.
dvi src
/darcs.aux
524 rm -f src
/patch-theory.
tex src
/patch-theory.aux src
/patch-theory.log
525 rm -f src
/patch-theory.aux src
/patch-theory.toc
526 rm -f src
/darcs_print.
tex src
/darcs_print.log src
/darcs_print.aux src
/darcs_print.toc
527 rm -f preproc darcsman
528 rm -rf tests
/temp
* darcs.log darcs.toc
529 rm -f conftest
* .depend.bak
530 rm -f src
/win32
/System
/Posix
/IO.hs src
/win32
/System
/Posix
/Files.hs
535 #only remove src/Context.hs if we have a darcs inventory to rebuild it from
536 if
test -f _darcs
/inventory
; then
rm -f src
/Context.hs
; fi
538 rm -f git-darcs-import
541 rm -rf config.status config.log autoconf.mk config.cache autom4te.cache
542 rm -f doc
/manual
/darcs.ps doc
/manual
/darcs.pdf doc
/manual
/patch-theory.pdf src
/Autoconf.lhs darcs.idv
543 rm -f src
/ThisVersion.lhs tools
/cgi
/README tools
/cgi
/darcs.cgi tools
/cgi
/cgi.conf
546 maintainer-clean
: distclean
547 @echo
'This command is intended for maintainers to use; it'
548 @echo
'deletes files that may need special tools to rebuild.'
549 rm -f configure doc
/darcs
.1 .depend AUTHORS
551 rm -f doc
/manual
/*.html doc
/manual
/darcs
*.??? doc
/manual
/darcs.lg
552 rm -f doc
/manual
/darcs.xref c_context.c doc
/darcs_print.ps
553 rm -rf tests
/test_output
555 configure
: configure.ac aclocal.m4
558 autoconf.mk src
/Autoconf.lhs tools
/cgi
/darcs.cgi
: \
559 config.status autoconf.mk.in src
/Autoconf.lhs.in tools
/cgi
/darcs.cgi.in
562 config.status
: configure
563 @if
test -x config.status
; then \
564 .
/config.status
--recheck
; \
566 echo
>&2 "Please run ./configure to setup the build system."; \
570 .depend
: $(DARCS_FILES
) $(UNIT_FILES
)
571 $(ANNOUNCE_GHC
) $(GHCFLAGS
) -M
-optdep-f
-optdep.depend
$^
575 ifeq (,$(findstring disttest
,$(MAKECMDGOALS
)))
576 ifeq (,$(findstring clean,$(MAKECMDGOALS
)))
577 ifneq (config
,$(MAKECMDGOALS
))
585 # This follows what autoconf does.
586 # Fixme: Generate correct list of .c files and depend on that.
587 .PHONY
: CTAGS ctags
tags
590 $(ETAGS
) $(DARCS_FILES
) && etags
-a src
/*.c
592 CTAGS
: $(DARCS_FILES
)
593 $(CTAGS
) $(DARCS_FILES
) && ctags
-a src
/*.c
594 mv
tags tags.unsorted
595 sort tags.unsorted
> tags