#
# Include files from subdirectories
#
include stdlib/Files
include system/Files
include util/Files
include unix/Files

STDLIB_FILES  = $(file $(addprefix stdlib/,  $(STDLIB_FILES)))
SYSTEM_FILES  = $(file $(addprefix system/,  $(SYSTEM_FILES)))
UTIL_FILES    = $(file $(addprefix util/,    $(UTIL_FILES)))
UNIX_FILES    = $(file $(addprefix unix/,    $(UNIX_FILES)))

FILES[] =
    $(STDLIB_FILES)
    $(UNIX_FILES)
    $(SYSTEM_FILES)
    $(UTIL_FILES)

USE_OCAMLFIND = false

if $(not $(defined LMINSTALL))
    LMINSTALL = false
    export

section
    ABORT_ON_DEPENDENCY_ERRORS = false
    if $(LMINSTALL)
        OCamlLibraryInstall($(LMINSTALL), $(LIB), lm, $(FILES))
    else
        OCamlLibrary(lm, $(FILES))

open build/svn_realclean

if $(not $(defined CLEAN))
    .PHONY: clean realclean

    if $(not $(defined FORCE_REALCLEAN))
        FORCE_REALCLEAN = false
        export

    realclean: clean
        svn_realclean $(if $(FORCE_REALCLEAN), -f) -i .omakedb -i .omakedb.lock

    CLEAN = rm -rf *.cm* *~ .\#* *.o *.obj *.a *.lib *.exe *.omc *.tmp
    export

clean:
    $(CLEAN)

#
# Configuration
#
if $(not $(defined LM_STANDALONE))
    LM_STANDALONE = false
    export

if $(not $(defined CAMLLIB))
    CAMLLIB = $(dir $(getenv CAMLLIB, $(getenv OCAMLLIB, $(shell $(OCAMLC) -where))))
    INCLUDES += $(CAMLLIB)
    export

LIBFILES =
if $(NATIVE_ENABLED)
    LIBFILES += lm.cmxa lm$(EXT_LIB)
    export
if $(BYTE_ENABLED)
    LIBFILES += lm.cma
    export

if $(LM_STANDALONE)
   .DEFAULT: $(LIBFILES)

if $(not $(defined THREADS_ENABLED))
    THREADS_ENABLED = false
    export

#
# Subdirectories of this project
#
.SUBDIRS: cutil stdlib unix system util
