# Makefile for the portable graphics library

### Configuration section

# The path to the Caml Light standard library
LIBDIR=/users/thesards/saunier/caml/lib

# The path to the Caml Light standard binary
BINDIR=/users/thesards/saunier/caml/bin

# The path to the Caml Light standard binary
HELPDIR=/users/thesards/saunier/caml/help


# The path to the X11 include directory
# (usually /usr/include/X11; for Sparcstations, /usr/openwin/include/X11)
X11_INCLUDES=/usr/include/X11

# Which C compiler to use
CC=gcc
CFLAGS=-g -I../../src/runtime -I$(X11_INCLUDES)

# Test to see whether ranlib exists on the machine
RANLIBTEST=test -f /usr/bin/ranlib -o -f /bin/ranlib

# How to invoke ranlib
RANLIB=ranlib

### End of configuration section

#CAMLCOMP=camlc -g -O fast -c
#CAMLLINK=camlc -g -custom -O fast -o
CAMLCOMP=camlc -g -c
CAMLLINK=camlc -g -custom -o
CAMLLIBR=camllibr -o
CAMLHELP=camlhelp -c 190

.SUFFIXES: .zi .zo .ml .mli .mlp .html .hlp

OBJS=g_config.zo g_global.zo g_bitmap.zo g_button.zo g_string.zo \
     g_scroll.zo g_item.zo g_menu.zo g_text.zo g_toolb.zo \
     g_prompt.zo g_graph.zo g_list.zo g_radio.zo \
     g_helpb.zo g_grpbut.zo g_grprad.zo g_debug.zo g_shell.zo \
     g_html_i.zo g_html_d.zo g_html_o.zo g_extext.zo g_exprpt.zo g_area.zo \
     g_helpw.zo g_mloop.zo \
     g_warn.zo g_input.zo g_minput.zo g_look.zo g_edit.zo g_save.zo \
     g_select.zo g_filter.zo g_file.zo g_find.zo g_wshell.zo g_font.zo \
     g_color.zo g_helpd.zo

INTERFACE_OBJS= camlwin.zi

ICON_OBJS=ic_trans.zo newicon.zo saveicon.zo camlicon.zo 

HELP_OBJS=camlhelp.zo helpsave.zo comphelp.zo listhelp.zo titlhelp.zo \
          helpmain.zo

DSGN_OBJS=ic_but.zo ic_str.zo ic_scro.zo ic_tool.zo ic_prom.zo \
          ic_icon.zo ic_tex.zo ic_list.zo ic_help.zo ic_radio.zo \
          ic_gra.zo ic_grpb.zo ic_grpr.zo ic_shell.zo \
          $(ICON_OBJS) \
	  icondraw.zo ic_area.zo ic_expt.zo ic_extx.zo \
	  confdraw.zo \
          camldraw.zo globdraw.zo funcdraw.zo objdraw.zo typedraw.zo \
          grdraw.zo tooldraw.zo add_draw.zo \
          indraw.zo savedraw.zo butdraw.zo listdraw.zo s2draw.zo \
          strdraw.zo movedraw.zo windraw.zo textdraw.zo \
          s3draw.zo graddraw.zo gbutdraw.zo coldraw.zo fontdraw.zo\
          scrodraw.zo bmpdraw.zo cfgdraw.zo evendraw.zo deldraw.zo \
          maindraw.zo 

PROG_OBJS = $(DSGN_OBJS) \
          extprog.zo strbrk.zo linkprog.zo \
          camlprog.zo projprog.zo cfgprog.zo compprog.zo mainprog.zo

all: camlwin.zo camlicon camlhelp camldsgn camlprog help

camlwin.zo: $(INTERFACE_OBJS) $(OBJS)
	$(CAMLCOMP) camlwin.ml
	cp camlwin.zo camltmp.zo
	$(CAMLLIBR) camlwin.zo $(OBJS) camltmp.zo

camlicon: camlwin.zo $(ICON_OBJS) loopicon.zo
	$(CAMLLINK) camlicon unix.zo windows.zo camlwin.zo $(ICON_OBJS)  \
	loopicon.zo -lunix -lwin -lX11

camlhelp: camlwin.zo $(HELP_OBJS)
	$(CAMLLINK) camlhelp unix.zo windows.zo camlwin.zo $(HELP_OBJS) \
	-lunix -lwin -lX11

camldsgn: camlwin.zo $(DSGN_OBJS) loopdraw.zo
	$(CAMLLINK) camldsgn unix.zo windows.zo camlwin.zo $(DSGN_OBJS) \
	loopdraw.zo -lunix -lwin -lX11

camlprog: camlwin.zo $(PROG_OBJS)
	$(CAMLLINK) camlprog unix.zo windows.zo camlwin.zo $(PROG_OBJS) \
	-lunix -lwin -lX11

help:
	cd doc; make help

clean: 
	-rm *.z[io] *% *~ *.zix camlicon camldsgn camlprog camlhelp
	-rm examples/address/*.z[io] examples/address/*% examples/address/*~ \
            examples/address/*.zix examples/address/address
	-rm examples/morpion/*.z[io] examples/morpion/*% examples/morpion/*~ \
            examples/morpion/*.zix examples/morpion/morpion
	-rm examples/tracer/*.z[io] examples/tracer/*% examples/tracer/*~ \
            examples/tracer/*.zix examples/tracer/trace
	-rm util/pbm2caml/*.z[io] util/pbm2caml/*% util/pbm2caml/*~ \
            util/pbm2caml/*.zix util/pbm2caml/pbm2caml
	-rm util/onehelp/*.z[io] util/onehelp/*% util/onehelp/*~ \
            util/onehelp/*.zix util/onehelp/onehelp
	cd doc; make clean



relink:
	rm  camlicon camlhelp camldsgn camlprog
	make all


install: 
	- mkdir $(LIBDIR)
	- mkdir $(BINDIR)
	- mkdir $(HELPDIR)
	cp camlwin.zi    $(LIBDIR)
	cp camlwin.zo    $(LIBDIR)
	cp camlwin.mli   $(LIBDIR)
	cp camlprog      $(BINDIR)
	cp camlicon      $(BINDIR)
	cp camldsgn      $(BINDIR)
	cp camlhelp      $(BINDIR)
	cp doc/*.hlp     $(HELPDIR)

fromdos:
	cp /dos/disc_e/caml/graphlib/*.ml .
	cp /dos/disc_e/caml/graphlib/*.mli .
	cp cfgunix.ml g_config.ml
	fromdos *.ml
	fromdos *.mli

pack:
	tar cvf camlwin.tar *
	compress camlwin.tar

.mli.zi:
	$(CAMLCOMP) $<

.ml.zo:
	$(CAMLCOMP) $<

.html.hlp:
	$(CAMLHELP) $<

depend: .
	mv Makefile Makefile.bak
	(sed -n -e '1,/^### DO NOT DELETE THIS LINE/p' Makefile.bak; \
	camldep *.mli *.ml) > Makefile
	rm Makefile.bak

### EVERYTHING THAT GOES BEYOND THIS COMMENT IS GENERATED
### DO NOT DELETE THIS LINE
