Below is the file 'Makefile' from this revision. You can also download the file.
include config.make
NAME = git-viz
VERSION = 0.1
OCAMLNET := ocamlnet-0.97.1
EXTLIB := extlib-1.3
VPATH = glib crypto
MLINCDIRS = -I $(LABLGTK_DIR) -I glib -I crypto
CINCDIRS = -I $(LABLGTK_DIR) -ccopt "$(GTK_CFLAGS) $(CRYPTO_CFLAGS)"
GTK_CFLAGS := $(shell pkg-config gtk+-2.0 --cflags)
SRC = gspawn.ml gspawn.mli giochannel.ml giochannel.mli \
crypto.ml crypto.mli \
viz_misc.ml viz_misc.mli viz_types.ml viz_types.mli \
q.ml q.mli heap.ml heap.mli \
dot_lexer.ml dot_parser.ml dot_parser.mli \
revision_types.mli revision_lexer.ml revision_parser.ml revision_parser.mli \
subprocess.ml subprocess.mli \
status.ml \
database.ml database.mli agraph.ml agraph.mli \
autocolor.ml autocolor.mli viz_style.ml viz_style.mli \
icon.ml unidiff.ml unidiff.mli \
view.ml view.mli ui.ml main.ml
USE_P4 = viz_style.ml
OBJ = $(patsubst %.ml,%.cmo,$(filter %.ml, $(SRC)))
OBJX = $(patsubst %.ml,%.cmx,$(filter %.ml, $(SRC)))
DISTSRC = Makefile configure.ac config.make.in ocaml.m4 configure aclocal.m4 \
monotone-viz.style.sample README INSTALL NEWS \
viz_misc.ml viz_misc.mli viz_types.ml viz_types.mli q.ml q.mli \
autocolor.ml autocolor.mli viz_style.ml viz_style.mli heap.ml heap.mli \
dot_types.mli dot_lexer.mll dot_parser.mly \
subprocess.ml subprocess.mli icon.ml status.ml ui.ml \
revision_types.mli revision_lexer.mll revision_parser.mly \
git.ml database-mt.ml database.mli agraph.ml agraph.mli \
unidiff.ml unidiff.mli view.ml view.mli main.ml \
glib/gspawn.ml glib/gspawn.mli glib/giochannel.ml glib/giochannel.mli \
glib/ocaml-gspawn.c glib/ocaml-giochannel.c \
glib/gspawn_tags.var glib/giochannel_tags.var \
crypto/ocaml-openssl.c crypto/crypto.ml crypto/crypto.mli
ifeq ($(OCAMLBEST), opt)
git-viz: $(OBJX) lib3rdparty.a
$(OCAMLOPT) -o $@ -I . -I $(LABLGTK_DIR) $(MLLIBS) $^ $(CRYPTO_LIB)
git-viz : MLLIBS = str.cmxa lablgtk.cmxa gtkInit.cmx lablgnomecanvas.cmxa
else
git-viz:
ln -sf git.ml database.ml
$(OCAMLC) -custom -o $@ -I . -I $(LABLGTK_DIR) $(MLLIBS) $^ $(CRYPTO_LIB)
git-viz : MLLIBS = str.cma lablgtk.cma gtkInit.cmo lablgnomecanvas.cma
endif
database.ml :
ln -s git.ml $@
lib3rdparty.a : glib/ocaml-gspawn.o glib/ocaml-giochannel.o crypto/ocaml-openssl.o
ar crs lib3rdparty.a $^
glib/ocaml-gspawn.o : gspawn_tags.c gspawn_tags.h
glib/ocaml-giochannel.o : giochannel_tags.c giochannel_tags.h
%.ml : %.mll
$(OCAMLLEX) $<
%.mli %.ml : %.mly
$(OCAMLYACC) $<
PP = $(if $(findstring $(1),$(USE_P4)),-pp $(CAMLP4O))
%.cmo : %.ml
$(OCAMLC) $(MLFLAGS) $(MLINCDIRS) $(call PP,$<) -c $<
%.cmx : %.ml
$(OCAMLOPT) $(MLFLAGS) $(MLINCDIRS) $(call PP,$<) -c $<
%.cmi : %.mli
$(OCAMLC) $(MLINCDIRS) $<
%.o : %.c
cd $(<D) ; $(OCAMLC) $(CINCDIRS) $(<F)
%.c %.h : %.var
cd $(<D) ; $(LABLGTK_DIR)/varcc -static $(<F)
clean :
rm -f *.a *.so *.o *.cm* monotone-viz
rm -f dot_lexer.ml dot_parser.ml dot_parser.mli
rm -f revision_lexer.ml revision_parser.ml revision_parser.mli
cd glib && rm -f *.o *.cm*
cd crypto && rm -f *.o *.cm*
.PHONY : clean dist
ifeq ($OCAMLBEST, opt)
DEP_FLAGS = -native
endif
-include .depend
.depend : $(SRC)
@echo "making deps ..."
@$(OCAMLDEP) $(DEP_FLAGS) $(addprefix -I ,$(VPATH)) $(filter-out $(USE_P4),$^) > $@
@$(OCAMLDEP) $(DEP_FLAGS) -pp '$(CAMLP4O)' $(USE_P4) >> $@
dist : ../$(NAME)-$(VERSION).tar.gz
../$(NAME)-$(VERSION).tar.gz : $(DISTSRC)
export DIRNAME="$${PWD##*/}" ; \
cd .. && mv "$$DIRNAME" $(NAME)-$(VERSION) && \
tar zcvf $(@F) $(addprefix $(NAME)-$(VERSION)/,$(DISTSRC)) && \
mv $(NAME)-$(VERSION) "$$DIRNAME"
# not config.make
ifndef OCAMLLEX
$(error run ./configure first (cf README))
endif