]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/Makefile
updated the binding so that it works well with lablgtk-1.00,
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20001129-0.1.0 / Makefile
1 # $Id$
2 # Makefile for lablgtk.
3
4 TARGETS = varcc lablgtktop lablgtktop_t lablgtkrun lablgtk
5
6 all: $(TARGETS)
7
8 opt: lablgtkopt
9
10 configure:
11         @rm -f config.make
12         @$(MAKE) --no-print-directory -f configure.mk
13
14 depend:
15         @rm -f .depend
16         @$(MAKE) --no-print-directory -f configure.mk .depend
17
18 .depend config.make:
19         @$(MAKE) --no-print-directory -f configure.mk
20
21 COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
22 LINKER = $(CAMLC) $(MLFLAGS)
23 COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
24 LINKOPT = $(CAMLOPT) $(MLFLAGS)
25 TOPLEVEL = ocamlmktop $(MLFLAGS)
26
27 include config.make
28
29 INSTALLDIR = $(LIBDIR)/lablgtk
30 LABLGLDIR = $(LIBDIR)/lablGL
31
32 MLLIBS = lablgtk.cma
33 CLIBS = liblablgtk.a
34 MLLINK = unix.cma str.cma
35
36 ifdef DEBUG
37 CFLAGS = -g $(GTKCFLAGS)
38 MLLINK += -cclib -lcamlrund
39 MLFLAGS = -g
40 else
41 CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
42 endif
43
44 THFLAGS = -thread
45 THLINK = unix.cma threads.cma
46
47 ifdef USE_CC
48 CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
49 else
50 CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
51 endif
52
53 ifdef USE_GL
54 MLFLAGS += -I $(LABLGLDIR)
55 MLLINK += lablgl.cma
56 MLLIBS += lablgtkgl.cma
57 CLIBS += liblablgtkgl.a
58 GLLINK = -cclib -llablgtkgl -cclib -lgtkgl
59 GLMLOBJS = glGtk.cmo
60 GLCOBJS = ml_gtkgl.o
61
62 endif
63
64 ifdef USE_GNOME
65 MLLIBS += lablgnome.cma
66 CLIBS += liblablgnome.a
67 GNOMEMLOBJS = gtkXmHTML.cmo gHtml.cmo
68 GNOMECOBJS = ml_gtkxmhtml.o
69 endif
70
71 # Rules
72 .SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
73 .c.o:
74         $(CCOMPILER) $<
75 .ml.cmo:
76         $(COMPILER) $<
77 .mli.cmi:
78         $(COMPILER) $<
79 .ml.cmx:
80         $(COMPOPT) $<
81 .var.h:
82         ./varcc $<
83
84 # Targets
85 GTKOBJS = ml_gtk.o ml_gtkbin.o ml_gtkbutton.o ml_gtkedit.o ml_gtklist.o \
86         ml_gtkmenu.o ml_gtkmisc.o ml_gtknew.o ml_gtkpack.o ml_gtkrange.o \
87         ml_gtktree.o
88 COBJS = ml_gdk.o ml_glib.o wrappers.o $(GTKOBJS)
89 MLOBJS = gaux.cmo gpointer.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \
90         gtk.cmo gtkArgv.cmo gtkSignal.cmo \
91         gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \
92         gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \
93         gtkBin.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \
94         gDraw.cmo \
95         gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \
96         gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gBin.cmo \
97         gEdit.cmo gRange.cmo gUtil.cmo
98 THOBJS = gtkThread.cmo
99 INITOBJS = gtkInit.cmo
100 THINITOBJS = gtkThInit.cmo
101 ALLOBJS = $(MLOBJS) $(GLMLOBJS) $(GNOMEMLOBJS) $(THOBJS) \
102         $(INITOBJS) $(THINITOBJS)
103
104 lablgtktop: $(CLIBS) $(MLLIBS) $(INITOBJS)
105         $(TOPLEVEL) -o $@ $(MLLINK) -ccopt -L. $(MLLIBS) $(INITOBJS)
106
107 lablgtktop_t: $(CLIBS) $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
108         $(TOPLEVEL) $(THFLAGS) -o $@ $(THLINK) $(MLLINK) \
109            -ccopt -L. $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
110
111 lablgtk: Makefile config.make lablgtk.in
112         sed -e "s|@INSTALLDIR@|$(INSTALLDIR)|g" \
113             -e "s|@LABLGLDIR@|$(LABLGLDIR)|g" \
114             -e "s|@LIBDIR@|$(LIBDIR)|g" \
115             < lablgtk.in > $@
116         chmod 755 $@
117
118 lablgtkrun: $(CLIBS) $(MLLIBS)
119         $(LINKER) -o $@ -make-runtime $(MLLINK) -ccopt -L. $(MLLIBS)
120
121 lablgtkopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) $(INITOBJS:.cmo=.cmx) \
122         $(THOBJS:.cmo=.cmx)
123
124 install:
125         if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
126         cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
127         cp *.mli $(INSTALLDIR)
128         cp *.h $(INSTALLDIR)
129         cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
130         cp $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR)
131         cp $(CLIBS) $(INSTALLDIR)
132         cp lablgtktop  lablgtktop_t $(INSTALLDIR)
133         cp lablgtk lablgtkrun $(BINDIR)
134         if test -f lablgtk.cmxa; then \
135            cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \
136               $(INITOBJS:.cmo=.cmx) $(INITOBJS:.cmo=.o) $(INSTALLDIR); fi
137         if test -f gtkThread.cmx; then \
138            cp $(THOBJS:.cmo=.cmx) $(THOBJS:.cmo=.o) $(INSTALLDIR); fi
139
140 liblablgtk.a: $(COBJS)
141         ar rc $@ $(COBJS)
142         $(RANLIB) $@
143 lablgtk.cma: $(MLOBJS)
144         $(LINKER) -a -custom -o $@ $(MLOBJS) \
145           -cclib -llablgtk $(GTKLIBS)
146 lablgtk.cmxa: $(MLOBJS:.cmo=.cmx)
147         $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \
148           -cclib -llablgtk $(GTKLIBS)
149
150 liblablgtkgl.a: $(GLCOBJS)
151         ar rc $@ $(GLCOBJS)
152         $(RANLIB) $@
153 lablgtkgl.cma: $(GLMLOBJS)
154         $(LINKER) -a -custom -o $@ $(GLLINK) $(GLMLOBJS)
155 lablgtkgl.cmxa: $(GLMLOBJS:.cmo=.cmx)
156         $(LINKOPT) -a -o $@ $(GLLINK) $(GLMLOBJS:.cmo=.cmx)
157
158 liblablgnome.a: $(GNOMECOBJS)
159         ar rc $@ $(GNOMECOBJS)
160         $(RANLIB) $@
161 lablgnome.cma: $(GNOMEMLOBJS)
162         $(LINKER) -a -custom -o $@ $(GNOMEMLOBJS) \
163           -cclib -llablgnome $(GNOMELIBS)
164 lablgnome.cmxa: $(GNOMEMLOBJS:.cmo=.cmx)
165         $(LINKOPT) -a -o $@ $(GNOMEMLOBJS:.cmo=.cmx) \
166           -cclib -llablgnome $(GNOMELIBS)
167
168 gtkThread.cmo: gtkThread.ml
169         $(COMPILER) $(THFLAGS) gtkThread.ml
170
171 gtkThread.cmx: gtkThread.ml
172         if test -f $(LIBDIR)/libthreadsnat.a; then \
173            $(COMPOPT) $(THFLAGS) gtkThread.ml; fi
174
175 varcc: varcc.cmo
176         $(LINKER) -o $@ varcc.cmo
177         rm -f *_tags.h *_tags.c
178
179 clean:
180         rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS)
181
182 $(GTKOBJS): gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h
183 ml_gdk.o: gdk_tags.h ml_gdk.h wrappers.h
184 ml_gtkgl.o: gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h
185 ml_gtkxmhtml.o: gtkxmhtml_tags.h ml_gtk.h ml_gdk.h wrappers.h
186
187 include .depend