.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 if $(not $(defined NATIVE_ENABLED)) NATIVE_ENABLED = $(OCAMLOPT_EXISTS) export 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) cp src/mr_framework/plasma_convert $(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) cp src/mr_framework/plasma_convert $(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