Source

omy / OMyOPAM

OCAMLFIND_DESTDIR=$(HOME)/.opam/system/lib

GetOPAMVersion(opamname) =
    return $(shell opam list -installed | awk '$$1 ~ /^$(opamname)$$/ { print $$2 }')

OPAMPrefix = $(shell opam config var prefix)

# We cannot remove ocamlfind
CleanOPAMPackages() =
    installed=$(shell opam list -installed | awk '$$2 !~ /(base|system|package)/ && $$1 !~ /ocamlfind|omake/ { print $$1 }')
    if $(gt $(length $(installed)), 0):
        println(Uninstalling OPAM packages: $(string $(installed)))
        opam --yes remove $(installed)

GetOPAMBuildDir(opamname) =
    ver = $(GetOPAMVersion $(opamname))
    return "$(OPAMPrefix)$(DIRSEP)build$(DIRSEP)$(opamname).$(ver)"

# CR jfuruse: need to be unified
OMyOPAMNoSpotInstall(flname) =
    $(Installed $(flname)):
        section:
            opam --yes --verbose install $(flname)
            opambuilddir=$(GetOPAMBuildDir $(flname))
            CreateInstalled($(flname), $(find $(OCAMLFIND_DESTDIR)$(DIRSEP)$(flname) -f {}))

OMyOPAM(flname) =
    $(Installed $(flname)):
        section:
            opam --yes --verbose install $(flname)
            opambuilddir=$(GetOPAMBuildDir $(flname))
            println(Running spotinstall at $(opambuilddir))
            (cd $(opambuilddir); spotinstall $(flname))
            CreateInstalled($(flname), $(find $(OCAMLFIND_DESTDIR)$(DIRSEP)$(flname) -f {}))

OMyOPAM2(name, flname) =
    $(Installed $(flname)):
        section:
            opam --yes --verbose install $(name)
            opambuilddir=$(GetOPAMBuildDir $(name))
            println(Running spotinstall at $(opambuilddir))
            (cd $(opambuilddir); spotinstall $(flname))
            CreateInstalled($(flname), $(find $(OCAMLFIND_DESTDIR)$(DIRSEP)$(flname) -f {}))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.