.PHONY: all install clean
open omake.conf
USE_OCAMLFIND = true
OCAMLPACKS[] =
rpc
netplex
netsys
shell
netstring
netclient
netmulticore
netmech-scram
rpc-auth-local
if $(not $(OCAMLFIND_EXISTS))
eprintln(This project requires ocamlfind, but is was not found.)
eprintln(You need to install ocamlfind and run "omake --configure".)
exit 1
NATIVE_ENABLED = $(OCAMLOPT_EXISTS)
BYTE_ENABLED = true
OCAMLFLAGS += -annot -g
OCAMLDEP_MODULES_ENABLED = false
ROOT=$(dir .)
if $(not $(defined OCAMLRPCGEN))
OCAMLRPCGEN = ocamlrpcgen
export
public.InterfaceDoc(name, files) =
protected.mlifiles = $(filter-exists $(addsuffix .mli, $(files)))
protected.cmifiles = $(addsuffix .cmi, $(removesuffix $(mlifiles)))
$(name).idoc: $(mlifiles) $(cmifiles) /.PHONY/OCamlGeneratedFilesTarget
ocamlfind ocamldoc -dump $(name).idoc -stars \
$(PREFIXED_OCAMLINCLUDES) -package "$(OCAMLPACKS)" \
$(mlifiles)
return $(name).idoc
.SUBDIRS: src tests
public.findlib_install(name) =
dir = src/$(name)
files[] =
$(glob $(dir)/*.cmi)
$(glob $(dir)/*.mli)
$(glob $(dir)/*.cma)
opt_files[] =
$(glob $(dir)/*.a)
$(glob $(dir)/*.cmxa)
$(glob $(dir)/*.so)
ocamlfind install $(name) \
$(dir)/META $(files) -optional $(opt_files)
.PHONY: install
install:
findlib_install(plasmaclient)
findlib_install(plasmasupport)
findlib_install(mr_platform)
findlib_install(mr_framework)
findlib_install(pkv)
mkdir -p $(BINDIR)
cp src/pfs_admin/plasma_admin $(BINDIR)
cp src/pfs_admin/plasma_datanode_init $(BINDIR)
cp src/pfs_daemon/plasmad $(BINDIR)
cp src/pfs_nfs3/nfs3d $(BINDIR)
cp src/plasmaclient/plasma $(BINDIR)
cp src/pkv/plasma_kv $(BINDIR)
cp src/pkv/plasma_kv_httpd_demo $(BINDIR)
cp src/mr_framework/mr_streaming $(BINDIR)
mkdir -p $(SHAREDIR)
mkdir -p $(SHAREDIR)/ipc
cp ipc/*.x $(SHAREDIR)/ipc
mkdir -p $(SHAREDIR)/sql
cp sql/*.sql $(SHAREDIR)/sql
mkdir -p $(SHAREDIR)/clusterconfig
cp -r clusterconfig/* $(SHAREDIR)/clusterconfig
cp clusterconfig/inst_gen.conf $(SHAREDIR)/clusterconfig/inst.conf
.PHONY: bin-install
bin-install:
mkdir -p $(BINDIR)
cp src/pfs_admin/plasma_admin $(BINDIR)
cp src/pfs_admin/plasma_datanode_init $(BINDIR)
cp src/pfs_daemon/plasmad $(BINDIR)
cp src/pfs_nfs3/nfs3d $(BINDIR)
cp src/plasmaclient/plasma $(BINDIR)
cp src/pkv/plasma_kv $(BINDIR)
cp src/pkv/plasma_kv_httpd_demo $(BINDIR)
cp src/mr_framework/mr_streaming $(BINDIR)
mkdir -p $(SHAREDIR)
mkdir -p $(SHAREDIR)/ipc
cp ipc/*.x $(SHAREDIR)/ipc
mkdir -p $(SHAREDIR)/sql
cp sql/*.sql $(SHAREDIR)/sql
mkdir -p $(SHAREDIR)/clusterconfig
cp -r clusterconfig/*.sh $(SHAREDIR)/clusterconfig
cp -r clusterconfig/inst_bin.conf $(SHAREDIR)/clusterconfig/inst.conf
mkdir -p $(SHAREDIR)/clusterconfig/instances/template
cp clusterconfig/instances/template/*.{conf,hosts,sh} $(SHAREDIR)/clusterconfig/instances/template/
commands[] =
plasmad
plasma
plasma_admin
plasma_datanode_init
nfs3d
.DEFAULT: clusterconfig/inst_gen.conf
clusterconfig/inst_gen.conf:
echo "# Generated file" > clusterconfig/inst_gen.conf
foreach(cmd, $(commands))
echo $(cmd)=\"$(BINDIR)/$(cmd)\" \
>> clusterconfig/inst_gen.conf
echo namenode_sql=\"$(SHAREDIR)/sql/namenode.sql\" \
>> clusterconfig/inst_gen.conf