Makefile.dev 2.2 KB
Newer Older
1
2
#######################################################################################
# Workflow:
3
# C=git commit ;  A=git amend ; U=update_version ; OP=opam pack
4
5
6
7
# to make sure the sha and the version are good, one should never
# do U and then A.
# to avoid such problems, legal trace are defined by this automata:
# 0 -C-> 1
8
# 1 -OP-> 1
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# 1 -A-> 1
# 1 -U-> 0
# to implement such a workflow, C puts a lock (state 1) and U removes it (state 0)
###############################
# a few git shortcuts

uv:update_version
update_version:
	rm -f lutin/src/version.ml
	make lutin/src/version.ml
	cp _oasis _oasis.save
	cat _oasis.save | sed "s/^Version:.*/Version:     $(VERSION)/" > _oasis
	rm -f committed
	git add lutin/src/version.ml  _oasis
	make clean && make


cia:
	test -f committed && \
   echo "*** I won't commit!\n*** until you 'make update_version'!" \
      || (git commit -a -F log && touch committed)

ci:
	test -f committed  && \
   echo "*** I won't commit!\n*** until you 'make update_version'!" \
      || (git commit  -F log && touch committed)

amend:
	test -f committed && git commit -a -F log --amend 


dif:
	git --no-pager diff  --color-words
diff:dodiff
	echo "il y a $(shell grep "+" diff.diff | wc -l) + et $(shell grep "-" diff.diff | wc -l) -"

dodiff:
	git diff HEAD -w  > diff.diff 


# diff of the lastly commited change
cdiff:
	git diff -w "HEAD^" HEAD > diff.diff


###############################
# tags

OTAGS=otags
# otags don't manage to parse gnuplotRif.ml
NO_TAGS=gnuplotRif.ml
tags:
	$(OTAGS) -v $(shell ocamlc -where)/*.mli  $(shell ls src/*.ml | grep -v $(NO_TAGS))


###############################
# opam-ing

NAME=lutin
PACKNAME=$(NAME).$(PRE_VERSION)
WWW=/import/www/DIST-TOOLS/SYNCHRONE
HTTP=http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE

$(PACKNAME).tgz:
	git archive --prefix=$(PACKNAME)/ -o $(PACKNAME).tgz HEAD

$(WWW)/pool/$(PACKNAME).tgz: $(PACKNAME).tgz
	mv $^ $@ 


opam : $(WWW)/pool/$(PACKNAME).tgz
	cd $(WWW)/opam-repository/packages && \
	oasis2opam   $(HTTP)/pool/$(PACKNAME).tgz && \
	cd .. ; opam-admin check  && opam-admin make -g
83
84
85
86
87
88
89
90
91
92
93
94


.PHONY:install
oi:install
or:reinstall
ob:build
oc:clean
clean:
	ocaml setup.ml -clean
	rm -f setup.data
	cd polka; make clean
	cd lutin-utils/src/ ; make clean