# # patch "Makefile" # from [0ff8d912f1d8fccbf896c95fb21722949580010b] # to [dfd12cb4e23bab838c7ccfad430038fefea99d4e] # # patch "config.make.in" # from [a159f50289f1a1cb333ba6caf59d63cfc9ed38cc] # to [8ad0af1464a7164544bc450dc146bf21f5967bf1] # # patch "configure.ac" # from [21e180a8c1b1952647874565ddfbba2e77b0b8f7] # to [da40926bfc9a96aa1262b39088c3dcf2426081e2] # ======================================================================== --- Makefile 0ff8d912f1d8fccbf896c95fb21722949580010b +++ Makefile dfd12cb4e23bab838c7ccfad430038fefea99d4e @@ -55,7 +55,14 @@ glib/ocaml-misc.c glib/ocaml-gdate.c glib/ocaml-gpattern.c \ glib/gspawn_tags.var glib/giochannel_tags.var \ crypto/ocaml-openssl.c crypto/crypto.ml crypto/crypto.mli +DIST_LABLGTK= lablgtk/configure lablgtk/configure.in lablgtk/config.make.in \ + lablgtk/COPYING lablgtk/CHANGES lablgtk/README* \ + lablgtk/Makefile lablgtk/src/Makefile lablgtk/src/.depend \ + lablgtk/src/*.ml lablgtk/src/*.ml[il4] lablgtk/src/*.props \ + lablgtk/src/*.[ch] lablgtk/src/*.var lablgtk/src/lablgtk2.in + + ifdef SQLITE_LIBS LIB3RDPARTY_OBJ = $(C_OBJ) SQLITE_LINK = -ccopt "$(SQLITE_LIBS)" @@ -65,13 +72,19 @@ ifeq ($(OCAMLBEST), opt) monotone-viz : $(OBJX) lib3rdparty.a - $(OCAMLOPT) -o $@ -I . -I $(LABLGTK_DIR) $(MLLIBS) $^ $(CRYPTO_LIB) $(SQLITE_LINK) + $(OCAMLOPT) -o $@ -I . $(MLINCDIRS) $(MLLIBS) $^ $(CRYPTO_LIB) $(SQLITE_LINK) monotone-viz : MLLIBS = str.cmxa lablgtk.cmxa gtkInit.cmx lablgnomecanvas.cmxa +ifeq ($(LOCAL_LABLGTK), yes) +$(OBJX) : .lablgtk +endif else monotone-viz : $(OBJ) lib3rdparty.a - $(OCAMLC) -custom -o $@ -I . -I $(LABLGTK_DIR) $(MLLIBS) $^ $(CRYPTO_LIB) $(SQLITE_LINK) + $(OCAMLC) -custom -o $@ -I . $(MLINCDIRS) $(MLLIBS) $^ $(CRYPTO_LIB) $(SQLITE_LINK) monotone-viz : MLLIBS = str.cma lablgtk.cma gtkInit.cmo lablgnomecanvas.cma +ifeq ($(LOCAL_LABLGTK), yes) +$(OBJ) : .lablgtk endif +endif lib3rdparty.a : $(C_OBJ) ar crs lib3rdparty.a $(LIB3RDPARTY_OBJ) @@ -143,12 +156,17 @@ dist : ../$(NAME)-$(VERSION).tar.gz ../$(NAME)-$(VERSION).tar.gz : $(DISTSRC) + test -d lablgtk export DIRNAME="$${PWD##*/}" ; \ cd .. && mv "$$DIRNAME" $(NAME)-$(VERSION) && \ - tar zcvf $(@F) $(addprefix $(NAME)-$(VERSION)/,$(DISTSRC)) && \ + tar zcvf $(@F) $(addprefix $(NAME)-$(VERSION)/,$(DISTSRC) $(DIST_LABLGTK)) && \ mv $(NAME)-$(VERSION) "$$DIRNAME" # no config.make ifndef OCAMLLEX $(error run ./configure first (cf README)) endif + +.lablgtk : + $(MAKE) -C lablgtk world + touch $@ ======================================================================== --- config.make.in a159f50289f1a1cb333ba6caf59d63cfc9ed38cc +++ config.make.in 8ad0af1464a7164544bc450dc146bf21f5967bf1 @@ -8,8 +8,14 @@ OCAMLDEP = @OCAMLDEP@ CAMLP4O = @CAMLP4O@ -MONOTONE_DIR := @MONOTONE_DIR@ +LOCAL_LABLGTK := @LOCAL_LABLGTK@ +ifeq ($(LOCAL_LABLGTK), yes) +LABLGTK_DIR := $(shell pwd)/lablgtk/src +else LABLGTK_DIR := @LABLGTK_DIR@ +endif + +MONOTONE_DIR := @MONOTONE_DIR@ CRYPTO_LIB := @CRYPTO_LIB@ SQLITE_CFLAGS := @SQLITE_CFLAGS@ SQLITE_LIBS := @SQLITE_LIBS@ ======================================================================== --- configure.ac 21e180a8c1b1952647874565ddfbba2e77b0b8f7 +++ configure.ac da40926bfc9a96aa1262b39088c3dcf2426081e2 @@ -1,4 +1,4 @@ -AC_INIT(monotone-viz, 0.11) +AC_INIT(monotone-viz, 0.12) AC_PROG_OCAML AC_PROG_OCAML_TOOLS @@ -15,36 +15,75 @@ AS_HELP_STRING([--with-lablgtk-dir=], [specify location of lablgtk library]), LABLGTK_DIR=$withval) -FINDLIB_LABLGTK=$(ocamlfind query lablgtk2 2> /dev/null) -AC_CHECK_OCAML_MODULE(lablgtk, LABLGTK_DIR, GFile, +lablgtk2 +lablgtk ${FINDLIB_LABLGTK}) -# Stop if LablGTK is not found -if test -z "$LABLGTK_DIR" ; then - AC_MSG_ERROR([ +AC_ARG_WITH([local-lablgtk], + AS_HELP_STRING([--without-local-lablgtk], + [do not use the local copy of lablgtk]), + LOCAL_LABLGTK=$withval, + LOCAL_LABLGTK=maybe) +AC_SUBST(LOCAL_LABLGTK) +# Check if the local lablgtk is present and wether to use it +if test "$LOCAL_LABLGTK" = "yes" ; then + if ! test -d "lablgtk" ; then + AC_MSG_ERROR([ + +Could not find the local LablGTK tree.]) + fi +elif test "$LOCAL_LABLGTK" = "maybe" ; then + if test -d "lablgtk" ; then + LOCAL_LABLGTK=yes + else + LOCAL_LABLGTK=no + fi +else + LOCAL_LABLGTK=no +fi + +if test "$LOCAL_LABLGTK" = "no" ; then + FINDLIB_LABLGTK=$(ocamlfind query lablgtk2 2> /dev/null) + AC_CHECK_OCAML_MODULE(lablgtk, LABLGTK_DIR, GFile, +lablgtk2 +lablgtk ${FINDLIB_LABLGTK}) + # Stop if LablGTK is not found + if test -z "$LABLGTK_DIR" ; then + AC_MSG_ERROR([ + Could not find LablGTK. Make sure LablGTK >= 2.4.0 is installed and specify its location to configure with the `--with-lablgtk-dir=' option or the LABLGTK_DIR environment variable.]) -fi -LABLGTK_DIR=$(echo $LABLGTK_DIR | sed "address@hidden@$OCAMLLIB/@") -# Check if LablGTK was compiled with libgnomecanvas support -AC_MSG_CHECKING([GnomeCanvas support]) -if test -r "$LABLGTK_DIR/lablgnomecanvas.cma" ; then - AC_MSG_RESULT(found) -else - AC_MSG_ERROR([ + fi + LABLGTK_DIR=$(echo $LABLGTK_DIR | sed "address@hidden@$OCAMLLIB/@") + # Check if LablGTK was compiled with libgnomecanvas support + AC_MSG_CHECKING([GnomeCanvas support]) + if test -r "$LABLGTK_DIR/lablgnomecanvas.cma" ; then + AC_MSG_RESULT(found) + else + AC_MSG_ERROR([ libgnomecanvas support not found. LablGTK need to be built with GnomeCanvas support.]) -fi -# Check if LablGTK is natively compiled -if test -r "$LABLGTK_DIR/lablgtk.cmxa" -a -r "$LABLGTK_DIR/lablgnomecanvas.cmxa"; then - echo [Using the native code compiler] + fi + # Check if LablGTK is natively compiled + if test -r "$LABLGTK_DIR/lablgtk.cmxa" -a -r "$LABLGTK_DIR/lablgnomecanvas.cmxa"; then + echo [Using the native code compiler] + else + echo [Using the byte code compiler] + OCAMLBEST=byte + fi else - echo [Using the byte code compiler] - OCAMLBEST=byte + echo + echo + echo [CONFIGURING LOCAL LABLGTK] + echo + echo + cd lablgtk + ./configure --without-gl --without-glade --without-rsvg --with-gnomecanvas --without-gnomeui --without-panel --without-gtkspell + cd .. + echo + echo + echo [DONE CONFIGURING LOCAL LABLGTK] + echo + echo fi - # Check the sqlite3 sources AC_ARG_WITH([monotone-dir], AS_HELP_STRING([--with-monotone-dir=], @@ -57,7 +96,9 @@ SHARED_SQLITE=$withval, SHARED_SQLITE=maybe) if test "$SHARED_SQLITE" = "yes" -o "$SHARED_SQLITE" = "maybe" ; then - PKG_CHECK_MODULES(SQLITE, sqlite3 >= 3.0, + # Actually we need at least 3.2.2 but the micro number isn't in the + # pkgconfig file (sigh) + PKG_CHECK_MODULES(SQLITE, sqlite3 >= 3.2, SHARED_SQLITE=yes, if test "$SHARED_SQLITE" = "yes" ; then AC_MSG_ERROR([ Couldn't find the shared sqlite package.]) ; fi)