Plasma GitLab Archive
Projects Blog Knowledge

.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


This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml