# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

DEPTH = @DEPTH@
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@

include $(DEPTH)/config/autoconf.mk

FORCE_STATIC_LIB = 1
STL_FLAGS =

# exported_headers.mk defines the headers exported by mfbt.  It is included by
# mfbt itself and by the JS engine, which, when built standalone, must do the
# work to install mfbt's exported headers itself.
include $(srcdir)/exported_headers.mk

# sources.mk defines the source files built for mfbt. It is included by mfbt
# itself and by the JS engine, which, when built standalone, must do the work
# to build mfbt sources itself.
MFBT_ROOT = $(srcdir)
include $(MFBT_ROOT)/sources.mk

DEFINES += -DIMPL_MFBT

include $(topsrcdir)/config/rules.mk
