cosmopolitan/third_party/duktape/duktape.mk
Justine Tunney 23d333c090 Make more improvements
This change includes many bug fixes, for the NT polyfills, strings,
memory, boot, and math libraries which were discovered by adding more
tools for recreational programming, such as PC emulation. Lemon has also
been vendored because it works so well at parsing languages.
2020-09-28 01:20:34 -07:00

69 lines
2.7 KiB
Makefile

#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
PKGS += THIRD_PARTY_DUKTAPE
THIRD_PARTY_DUKTAPE_ARTIFACTS += THIRD_PARTY_DUKTAPE_A
THIRD_PARTY_DUKTAPE = $(THIRD_PARTY_DUKTAPE_A_DEPS) $(THIRD_PARTY_DUKTAPE_A)
THIRD_PARTY_DUKTAPE_A = o/$(MODE)/third_party/duktape/duktape.a
THIRD_PARTY_DUKTAPE_A_FILES := $(wildcard third_party/duktape/*)
THIRD_PARTY_DUKTAPE_A_HDRS = $(filter %.h,$(THIRD_PARTY_DUKTAPE_A_FILES))
THIRD_PARTY_DUKTAPE_A_SRCS_A = $(filter %.s,$(THIRD_PARTY_DUKTAPE_A_FILES))
THIRD_PARTY_DUKTAPE_A_SRCS_S = $(filter %.S,$(THIRD_PARTY_DUKTAPE_A_FILES))
THIRD_PARTY_DUKTAPE_A_SRCS_C = $(filter %.c,$(THIRD_PARTY_DUKTAPE_A_FILES))
THIRD_PARTY_DUKTAPE_A_SRCS = \
$(THIRD_PARTY_DUKTAPE_A_SRCS_A) \
$(THIRD_PARTY_DUKTAPE_A_SRCS_S) \
$(THIRD_PARTY_DUKTAPE_A_SRCS_C)
THIRD_PARTY_DUKTAPE_A_OBJS = \
$(THIRD_PARTY_DUKTAPE_A_SRCS:%=o/$(MODE)/%.zip.o) \
$(THIRD_PARTY_DUKTAPE_A_SRCS_A:%.s=o/$(MODE)/%.o) \
$(THIRD_PARTY_DUKTAPE_A_SRCS_S:%.S=o/$(MODE)/%.o) \
$(THIRD_PARTY_DUKTAPE_A_SRCS_C:%.c=o/$(MODE)/%.o)
THIRD_PARTY_DUKTAPE_A_CHECKS = \
$(THIRD_PARTY_DUKTAPE_A).pkg
THIRD_PARTY_DUKTAPE_A_DIRECTDEPS = \
LIBC_CALLS \
LIBC_STUBS \
LIBC_FMT \
LIBC_TIME \
LIBC_MEM \
LIBC_MATH \
LIBC_UNICODE \
LIBC_NEXGEN32E
THIRD_PARTY_DUKTAPE_A_DEPS := \
$(call uniq,$(foreach x,$(THIRD_PARTY_DUKTAPE_A_DIRECTDEPS),$($(x))))
$(THIRD_PARTY_DUKTAPE_A): \
third_party/duktape/ \
$(THIRD_PARTY_DUKTAPE_A).pkg \
$(THIRD_PARTY_DUKTAPE_A_OBJS)
$(THIRD_PARTY_DUKTAPE_A).pkg: \
$(THIRD_PARTY_DUKTAPE_A_OBJS) \
$(foreach x,$(THIRD_PARTY_DUKTAPE_A_DIRECTDEPS),$($(x)_A).pkg)
$(THIRD_PARTY_DUKTAPE_A_OBJS): \
OVERRIDE_CFLAGS += \
$(IEEE_MATH)
o/dbg/third_party/duktape/duk_js_executor.o: \
OVERRIDE_CFLAGS += \
-DSTACK_FRAME_UNLIMITED
THIRD_PARTY_DUKTAPE_LIBS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)))
THIRD_PARTY_DUKTAPE_SRCS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_SRCS))
THIRD_PARTY_DUKTAPE_HDRS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_HDRS))
THIRD_PARTY_DUKTAPE_BINS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_BINS))
THIRD_PARTY_DUKTAPE_CHECKS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_CHECKS))
THIRD_PARTY_DUKTAPE_OBJS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_OBJS))
THIRD_PARTY_DUKTAPE_TESTS = $(foreach x,$(THIRD_PARTY_DUKTAPE_ARTIFACTS),$($(x)_TESTS))
$(THIRD_PARTY_DUKTAPE_OBJS): third_party/duktape/duktape.mk
.PHONY: o/$(MODE)/third_party/duktape
o/$(MODE)/third_party/duktape: $(THIRD_PARTY_DUKTAPE) $(THIRD_PARTY_DUKTAPE_CHECKS)