hop-2012/server/Makefile

65 lines
1.5 KiB
Makefile

APP=hop_server
TEMPLATES=$(wildcard web/bootstrap/templates/*.xml)
HTML=$(subst web/bootstrap/templates/,web/,$(subst .xml,.html,$(TEMPLATES)))
# Augment the path ocamlfind uses to discover installed packages.
OCAMLPATH=$(CURDIR)/thirdparty/_dist
export OCAMLPATH
LWT_SRC_DIR=thirdparty/lwt-2.3.2
all: \
thirdparty/_dist \
message.ml amqp_spec.ml \
$(APP).native \
webpages
thirdparty/_dist:
mkdir -p $@
(mkdir $@/lwt && \
(cd $(LWT_SRC_DIR) && \
./configure && \
make && \
OCAMLFIND_LDCONF=ignore \
OCAMLFIND_DESTDIR="$(CURDIR)/$@" \
make install))
webpages: $(HTML) web/bootstrap/css/bootstrap.css
web/bootstrap/css/bootstrap.css: web/bootstrap/less/*.less
recess --compile web/bootstrap/less/bootstrap.less > $@
web/%.html: web/bootstrap/templates/%.xml web/bootstrap/template.xsl web/bootstrap/nav.xml
xsltproc web/bootstrap/template.xsl $< > $@
message.ml: ../protocol/messages.json codegen.py
python codegen.py > $@
amqp_spec.ml: amqp0-9-1.stripped.xml amqp_codegen.py
python amqp_codegen.py > $@
webclean:
rm -f $(HTML)
clean: webclean
ocamlbuild -clean
rm -f message.ml
rm -f amqp_spec.ml
thirdpartyclean:
rm -rf thirdparty/_dist
rm -rf $(LWT_SRC_DIR)/_build
rm -f $(LWT_SRC_DIR)/setup.data
rm -f $(LWT_SRC_DIR)/setup.log
rm -f $(LWT_SRC_DIR)/src/unix/lwt_config.h
rm -f $(LWT_SRC_DIR)/src/unix/lwt_config.ml
veryclean: clean thirdpartyclean
rm -f web/bootstrap/css/bootstrap.css
$(APP).native: $(wildcard *.ml)
ocamlbuild -use-ocamlfind -X thirdparty -X scratch $@
run: all
./$(APP).native