bs-ajv
Version:
BucklesScript bindings to Ajv (Another JSON Validator)
71 lines (60 loc) • 2.53 kB
Plain Text
#########################################################################
# #
# OCaml #
# #
# Xavier Clerc, SED, INRIA Rocquencourt #
# #
# Copyright 2010 Institut National de Recherche en Informatique et #
# en Automatique. All rights reserved. This file is distributed #
# under the terms of the Q Public License version 1.0. #
# #
#########################################################################
BASEDIR=../..
COMPFLAGS=-I $(OTOPDIR)/otherlibs/dynlink
LD_PATH=.:$(TOPDIR)/otherlibs/dynlink
.PHONY: default
default:
@if ! $(SUPPORTS_SHARED_LIBRARIES); then \
echo 'skipped (shared libraries not available)'; \
else \
$(SET_LD_PATH) $(MAKE) compile run; \
fi
.PHONY: compile
compile:
@$(OCAMLC) -c registry.ml
@for file in stub*.c; do \
$(OCAMLC) -ccopt -I -ccopt $(CTOPDIR)/byterun/caml -c $$file; \
$(OCAMLMKLIB) -o `echo $$file | sed -e 's/stub/plug/' -e 's/\.c//'` \
`basename $$file c`$(O); \
done
@for file in plug*.ml; do \
$(OCAMLC) -c $$file; \
$(OCAMLMKLIB) -o `basename $$file .ml` `basename $$file ml`cmo; \
done
@$(OCAMLC) -c main.ml
@rm -f main static custom custom.exe
@$(OCAMLC) -o main dynlink.cma registry.cmo main.cmo
@$(OCAMLC) -o static -linkall registry.cmo plug1.cma plug2.cma \
-use-runtime $(OTOPDIR)/boot/ocamlrun$(EXE)
@$(OCAMLC) -o custom$(EXE) -custom -linkall registry.cmo plug2.cma \
plug1.cma -I .
.PHONY: run
run:
@printf " ... testing 'main'"
@$(OCAMLRUN) ./main plug1.cma plug2.cma >main.result
@$(DIFF) main.reference main.result >/dev/null \
&& echo " => passed" || echo " => failed"
@printf " ... testing 'static'"
@$(OCAMLRUN) ./static >static.result
@$(DIFF) static.reference static.result >/dev/null \
&& echo " => passed" || echo " => failed"
@printf " ... testing 'custom'"
@./custom$(EXE) >custom.result
@$(DIFF) custom.reference custom.result >/dev/null \
&& echo " => passed" || echo " => failed"
.PHONY: promote
promote: defaultpromote
.PHONY: clean
clean: defaultclean
@rm -f main static custom custom.exe *.result marshal.data
include $(BASEDIR)/makefiles/Makefile.common