]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtkmathview/Makefile.in
Initial revision
[helm.git] / helm / DEVEL / lablgtkmathview / Makefile.in
index bc875865f3265a8f3fd5e1fe3a8a2f916c8c5aa5..61d4a106dd60122f8299cd5c0b32ce35de773429 100644 (file)
-# Makefile for lablgtk_mathview.
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+INCLUDEDIR = @OCAML_INCLUDE_DIR@
+PREFIX = 
+OBJECTS_C = ml_gtk_mathview.o
+OBJECTS =  gtk_mathview.cmo gtkMathView.cmo gMathView.cmo
+OBJECTS_OPT = gtkMathView.cmx gtk_mathview.cmx gMathView.cmx
+INST = META gMathView.mli gMathView.cmi gtkMathView.cmi gtk_mathview.cmi
+DIST_FILES = \
+  AUTHORS COPYING ChangeLog LICENSE Makefile.in NEWS README \
+  configure.in gMathView.ml gMathView.mli gtkMathView.ml \
+  gtk_mathview.ml ml_gtk_mathview.c META.in .depend debian/ test/ \
+  configure lablgtkmathview.spec lablgtkmathview.spec.in
+DOC_FILES = AUTHORS COPYING ChangeLog NEWS README
+REQUIRES = gdome2 lablgtk
+PREDICATES =
+MLFLAGS = -labels
+
+OCAMLC = ocamlfind ocamlc $(MLFLAGS)
+OCAMLOPT = ocamlfind ocamlopt $(MLFLAGS)
+OCAMLDEP = ocamldep
+
+ARCHIVE = $(PACKAGE).cma
+ARCHIVE_A = $(PACKAGE).a
+ARCHIVE_SO = dll$(PACKAGE).so
+ARCHIVE_OPT = $(PACKAGE).cmxa
 
-VERSION = @LABLGTKMATHVIEW_VERSION@
-LABLGTKDIR = @LABLGTK_LIB_DIR@
-MLMINIDOMDIR = @MLMINIDOM_LIB_DIR@
 TESTDIR = ./test
-MLFLAGS += -I $(LABLGTKDIR) -I $(MLMINIDOMDIR)
+TMPDIR = .test
+TMPPKGDIR = $(TMPDIR)/$(PACKAGE)
 
-DIST_FILES = \
-  AUTHORS COPYING ChangeLog LICENSE Makefile.in NEWS README configure \
-  configure.in configure.mk gMathView.ml gtkMathView.ml gtk_mathview.ml \
-  ml_gtk_mathview.c
+all: $(ARCHIVE) $(ARCHIVE_SO) $(TESTDIR)/test
 
-TARGETS = ml_gtk_mathview.o lablgtkmathview.cma
+opt: $(OBJECTS_C) $(ARCHIVE_OPT) $(ARCHIVE_A) $(ARCHIVE_SO) #$(TESTDIR)/test.opt
 
-all: $(TARGETS)
+dist:
+       rm -rf $(PACKAGE)-$(VERSION)
+       mkdir $(PACKAGE)-$(VERSION)
+       cp -a $(DIST_FILES) $(DOC_FILES) $(PACKAGE)-$(VERSION)
+       tar cvfz $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
+       rm -rf $(PACKAGE)-$(VERSION)
 
-opt: lablgtkmathviewopt
+ml_gtk_mathview.o: ml_gtk_mathview.c
+       gcc -c -I$(INCLUDEDIR) -fPIC `ocamlfind query -i-format lablgtk` `glib-config --cflags` `gtk-config --cflags` `gtkmathview-config --cflags` `gdome-config --cflags` `ocamlfind query -i-format gdome2` $<
+
+.SUFFIXES: .cmo .cmi .cmx .ml .mli
 
-dist:
-       rm -rf lablgtkmathview-$(VERSION)
-       mkdir lablgtkmathview-$(VERSION)
-       cp $(DIST_FILES) lablgtkmathview-$(VERSION)
-       tar cvfz lablgtkmathview-$(VERSION).tar.gz lablgtkmathview-$(VERSION)
-       rm -rf lablgtkmathview-$(VERSION)
-
-configure:
-       @rm -f config.make
-       @$(MAKE) --no-print-directory -f configure.mk
-
-depend:
-       @rm -f .depend
-       @$(MAKE) --no-print-directory -f configure.mk .depend
-
-.depend config.make:
-       @$(MAKE) --no-print-directory -f configure.mk
-
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-include config.make
-
-INSTALLDIR = $(LIBDIR)/lablgtkmathview
-
-MLLIBS = lablgtkmathview.cma
-CLIBS = 
-MLLINK = unix.cma str.cma
-
-ifdef DEBUG
-CFLAGS = -g $(GTKCFLAGS)
-MLLINK += -cclib -lcamlrund
-MLFLAGS += -g
-else
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-endif
-CFLAGS += $(MINIDOMCFLAGS) $(GTKMATHVIEWCFLAGS)
-
-THFLAGS = -thread
-THLINK = unix.cma threads.cma
-
-ifdef USE_CC
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.c.o:
-       $(CCOMPILER) $<
 .ml.cmo:
-       $(COMPILER) $<
+       $(OCAMLC) -package "$(REQUIRES)" -predicates "$(PREDICATES)" \
+                  -c $<
 .mli.cmi:
-       $(COMPILER) $<
+       $(OCAMLC) -package "$(REQUIRES)" -predicates "$(PREDICATES)" \
+                  -c $<
 .ml.cmx:
-       $(COMPOPT) $<
-.var.h:
-       ./var2def < $< > $@
-.var.c:
-       ./var2conv < $< > $@
+       $(OCAMLOPT) -package "$(REQUIRES)" -predicates "$(PREDICATES)" \
+                  -c $<
+
+depend: *.ml *.mli
+       $(OCAMLDEP) *.ml *.mli >.depend
+include .depend
 
-# Targets
-COBJS = ml_gtk_mathview.o
-MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo
-ALLOBJS = $(MLOBJS)
+$(ARCHIVE): $(OBJECTS) $(ARCHIVE_SO)
+       $(OCAMLC) -a -package "$(REQUIRES)" \
+        -predicates "$(PREDICATES)" -o $@ $^ \
+        -cclib "`glib-config --libs` `gdome-config --libs` `gtkmathview-config --libs`" -dllib -l$(PACKAGE)
+$(ARCHIVE_OPT) $(ARCHIVE_A): $(OBJECTS_OPT)
+       $(OCAMLOPT) -a -package "$(REQUIRES)" \
+        -predicates "$(PREDICATES)" -o $@ $^ \
+        -cclib "`glib-config --libs` `gdome-config --libs` `gtkmathview-config --libs`" \
+               -cclib "@OCAML_LIB_DIR@/stublibs/$(ARCHIVE_SO)"
 
-lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa)
+$(ARCHIVE_SO): $(OBJECTS_C)
+       gcc -shared -o $@ $< `gtkmathview-config --libs` -lmlgdome -L `ocamlfind query gdome2` -Xlinker -rpath -Xlinker `ocamlfind query gdome2`
+
+
+
+$(TESTDIR)/test: $(OBJECTS_C) $(ARCHIVE) $(TESTDIR)/test.ml
+       mkdir -p $(TMPPKGDIR)
+       cp $(OBJECTS_C) $(ARCHIVE_SO) $(ARCHIVE) $(INST) $(TMPPKGDIR)
+       cd $(TESTDIR) ; export OCAMLPATH=../$(TMPDIR):$$OCAMLPATH ; make
+       rm -r $(TMPDIR)
+
+$(TESTDIR)/test.opt: $(OBJECTS_C) $(ARCHIVE_A) $(ARCHIVE_OPT) $(TESTDIR)/test.ml
+       mkdir -p $(TMPPKGDIR)
+       cp $(OBJECTS_C) $(ARCHIVE_A) $(ARCHIVE_OPT) $(INST) $(TMPPKGDIR)
+       cd $(TESTDIR) ; export OCAMLPATH=../$(TMPDIR):$$OCAMLPATH ; make opt
+       rm -r $(TMPDIR)
 
 install:
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi
-       cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
-       cp $(MLLIBS) $(INSTALLDIR)
-       cp $(COBJS) $(INSTALLDIR)
-       if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi
-       if test -f lablgtkmathview.cmxa; then \
-          cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \
-             $(INSTALLDIR); fi
-
-lablgtkmathview.cma: $(MLOBJS)
-       $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)"
-lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) -cclib "$(GTKMATHVIEWLIBS)" -cclib "$(MINIDOMLIBS)"
-
-ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \
-          $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h
+       test ! -f $(ARCHIVE_OPT) || extra="$(ARCHIVE_A) $(ARCHIVE_OPT)" ; \
+       if [ "$(PREFIX)" = "" ]; then \
+               ocamlfind install $(PACKAGE) $(OBJECTS_C) $(ARCHIVE) $(ARCHIVE_SO) $(INST) $$extra; \
+       else \
+               ocamlfind install -destdir $(PREFIX) $(PACKAGE) $(OBJECTS_C) $(ARCHIVE) $(ARCHIVE_SO) $(INST) $$extra; \
+       fi
+
+uninstall:
+       ocamlfind remove $(PACKAGE)
 
 clean:
-       rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS)
-       cd $(TESTDIR); make clean
+       rm -f *.o *.cm? $(ARCHIVE) $(ARCHIVE_A) $(ARCHIVE_SO) $(ARCHIVE_OPT)
+       cd $(TESTDIR) ; make clean
+       rm -rf $(TMPDIR)
 
 distclean: clean
-       rm -f configure config.cache config.status config.log Makefile 
-       cd $(TESTDIR); make distclean
-       
-include .depend
+       rm -f config.log config.cache config.status Makefile META lablgtkmathview.spec
+       cd $(TESTDIR) ; make distclean