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
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'
|