You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.4 KiB

# Copyright (c) 2018-present, Facebook, Inc.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
SHELL=bash
OCAMLDOT?=ocamldot
OCAMLFORMAT?=ocamlformat
.PHONY: default
default: exe
.PHONY: src/version.ml
src/version.ml:
@tools/gen_version.sh $@
.PHONY: version
version: src/version.ml
jbuild-workspace: jbuild-workspace.in
sed -e "s|@OPAM_SWITCH[@]|$$(opam switch show)|g" $< > $@
JBUILDS=$(patsubst %.in,%,$(shell find * -name jbuild.in))
.PHONY: jbuilds
jbuilds: $(JBUILDS)
%/jbuild: jbuild-common.in %/jbuild.in
@cat $+ > $@
.PHONY: setup
setup: src/version.ml jbuild-workspace jbuilds
.PHONY: exe
exe: setup
jbuilder build src/sledge.exe
.PHONY: bc
bc: setup
jbuilder build _build/dbg/src/sledge.bc
.PHONY: dbg
dbg: setup
jbuilder build _build/dbg/src/sledge.exe
.PHONY: opt
opt: setup
jbuilder build _build/default/src/sledge.exe
SRCS=$(shell \ls src/{,*/}*.ml{,i})
mod_dep.dot: $(SRCS)
ocamldep.opt $(SRCS) | $(OCAMLDOT) -r Sledge -fullgraph > _build/mod_dep.dot
.PHONY: clean
clean:
rm -rf _build jbuild-workspace $(JBUILDS)
.PHONY: cleaner
cleaner: clean
rm -rf src/version.ml
.PHONY: fmt
fmt:
$(OCAMLFORMAT) -i $(SRCS)
clang-format -i model/llair_intrinsics.h model/cxxabi.cpp
# print any variable for Makefile debugging
print-%:
@printf '$*='; printf '$($*)'; printf '\n'