# Makefile for the Camlot linker.
# Regis Cridlig 1993

include ../configuration

PROJET=..

RM = rm -f
Z2K2=$(PROJET)/Compiler/z2k2
CAMLOT=$(PROJET)/camlot

LINKER = linker  # fichier a batir

INTF=

IMPL= link.ml linker.ml

FILES= $(INTF) $(IMPL)

work: $(LINKER)

clean : ; - $(RM) $(FILES:.ml=.zi) $(FILES:.ml=.zo) $(FILES:.ml=.ki) \
		   $(FILES:.ml=.k2) $(FILES:.ml=.c) $(FILES:.ml=.o)

scratch : clean 
	-$(RM) $(LINKER)

install : ; cp $(LINKER) $(LIBDIR)/$(LINKER)

$(LINKER): $(IMPL:.ml=.zo) ../Compiler/config.zo ../Compiler/misc.zo
	$(ZC) $(ZFLAGS) -o $@ ../Compiler/config.zo ../Compiler/misc.zo $^

# suffixe rules:

.SUFFIXES: .mli .ml .zi .zo .ki .o

%.zi: %.mli
	${ZC} ${ZFLAGS} $<

%.zo: %.mli %.ml %.zi
	$(ZC) $(ZFLAGS) -c $*.ml

%.zi %.zo: %.ml
	${ZC} ${ZFLAGS} -c $<

%.ki: %.mli
	$(Z2K2) $(ZFLAGS) $<

%.o: %.mli %.ml %.ki
	$(CAMLOT) $(ZFLAGS) -c $*.ml

%.ki %.o: %.ml
	$(CAMLOT) ${ZFLAGS} -c $<

### dependances

link.zi:
link.zo: ../Compiler/misc.zi ../Compiler/config.zi
linker.zo: ../Compiler/misc.zi ../Compiler/config.zi link.zi

