107 lines
3.5 KiB
Makefile
107 lines
3.5 KiB
Makefile
#**************************************************************************
|
|
#* *
|
|
#* OCaml *
|
|
#* *
|
|
#* Florian Angeletti *
|
|
#* *
|
|
#* Copyright 2017 *
|
|
#* *
|
|
#* All rights reserved. This file is distributed under the terms of *
|
|
#* the GNU Lesser General Public License version 2.1, with the *
|
|
#* special exception on linking described in the file LICENSE. *
|
|
#* *
|
|
#**************************************************************************
|
|
|
|
|
|
include $(SRC)/config/Makefile
|
|
|
|
P :=
|
|
VPATH=.:$(SRC)
|
|
include $(SRC)/stdlib/StdlibModules
|
|
|
|
STDLIB_UNPREFIXED=$(SRC)/ocamldoc/stdlib_non_prefixed
|
|
|
|
PARSING_MLIS := $(wildcard $(SRC)/parsing/*.mli)
|
|
UTILS_MLIS := $(wildcard $(SRC)/utils/*.mli)
|
|
TYPING_MLIS := $(wildcard $(SRC)/typing/*.mli)
|
|
BYTECOMP_MLIS := $(wildcard $(SRC)/bytecomp/*.mli)
|
|
|
|
# Documented modules: stdlib + otherlib + utils(?) + parsing(for compiler-libs)
|
|
STDLIB_MLIS=\
|
|
$(STDLIB_MODULES:%=%.mli) \
|
|
$(PARSING_MLIS:$(SRC)/parsing/%.mli=%.mli) \
|
|
$(UTILS_MLIS:$(SRC)/utils/%.mli=%.mli) \
|
|
str.mli \
|
|
unix.mli unixLabels.mli \
|
|
graphics.mli graphicsX11.mli \
|
|
dynlink.mli \
|
|
thread.mli mutex.mli condition.mli event.mli threadUnix.mli \
|
|
pparse.mli
|
|
|
|
STDLIB_MLIS:=$(addprefix $(STDLIB_UNPREFIXED)/, $(STDLIB_MLIS))
|
|
|
|
# Dependencies for the documented modules
|
|
STDLIB_DEPS:=$(STDLIB_MLIS) \
|
|
$(TYPING_MLIS:$(SRC)/typing/%.mli=$(STDLIB_UNPREFIXED)/%.mli) \
|
|
$(BYTECOMP_MLIS:$(SRC)/bytecomp/%.mli=$(STDLIB_UNPREFIXED)/%.mli)
|
|
|
|
# Add back the isolated modules in typing and bytecomp
|
|
STDLIB_MLIS:= $(STDLIB_MLIS) \
|
|
$(addprefix $(STDLIB_UNPREFIXED)/, typemod.mli simplif.mli)
|
|
|
|
|
|
STDLIB_CMIS=$(STDLIB_DEPS:%.mli=%.cmi)
|
|
|
|
|
|
# Copy mli files from the main source directory
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/stdlib/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/pervasives.mli:
|
|
echo '[@@@deprecated "Use Stdlib instead."]' > $@
|
|
echo 'include module type of struct include Stdlib end' >> $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/parsing/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/utils/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/$(UNIXLIB)/%.mli
|
|
sed 's/Stdlib\.//g' $< > $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/str/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/num/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/graph/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/threads/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/otherlibs/dynlink/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/driver/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/typing/%.mli
|
|
cp $< $@
|
|
|
|
$(STDLIB_UNPREFIXED)/%.mli: $(SRC)/bytecomp/%.mli
|
|
cp $< $@
|
|
|
|
# Remove aliases from stdlib.mli
|
|
$(STDLIB_UNPREFIXED)/stdlib.mli: $(SRC)/stdlib/stdlib.mli \
|
|
$(SRC)/stdlib/remove_module_aliases.awk
|
|
$(AWK) -f $(SRC)/stdlib/remove_module_aliases.awk $< > $@
|
|
|
|
# Build cmis file inside the STDLIB_UNPREFIXED directories
|
|
.PHONY: unprefix_stdlib_for_ocamldoc
|
|
unprefix_stdlib_for_ocamldoc: $(STDLIB_MLIS) $(STDLIB_DEPS)
|
|
@$(MAKE) -C $(STDLIB_UNPREFIXED) $(notdir $(STDLIB_CMIS))
|