cosmopolitan/third_party/duktape/duktape.mk
Justine Tunney 2d80bbc802 Get binaries closer to running without an o/s
blinkenlights now does a pretty good job emulating what happens when
binaries boot from BIOS into long mode. So it's been much easier to
debug the bare metal process and wrinkle out many issues.
2020-11-02 19:12:47 -08:00

70 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_STR \
LIBC_TINYMATH \
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)