Skip to content
Snippets Groups Projects
Makefile.dev 1.98 KiB
Newer Older
#######################################################################################
# Workflow:
# C=git commit ;  A=git amend ; U=update_version ; O=opam pack
# 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
# 1 -P-> 1
# 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 src/lutilsVersion.ml
	make src/lutilsVersion.ml
	cp _oasis _oasis.save
	cat _oasis.save | sed "s/^Version:.*/Version:     $(VERSION)/" > _oasis
	rm -f committed
	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 


###############################
# forge

push:
	git push git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lutils/lutils.git

pull:
	git pull git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lutils/lutils.git


#############################
# 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=lutils
PACKNAME=$(NAME).$(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