273 lines
7.5 KiB
Makefile
273 lines
7.5 KiB
Makefile
|
############################################################################
|
||
|
# apps/interpreters/luajit/Makefile
|
||
|
#
|
||
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||
|
# contributor license agreements. See the NOTICE file distributed with
|
||
|
# this work for additional information regarding copyright ownership. The
|
||
|
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||
|
# "License"); you may not use this file except in compliance with the
|
||
|
# License. You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
# License for the specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
#
|
||
|
############################################################################
|
||
|
|
||
|
include $(APPDIR)/Make.defs
|
||
|
|
||
|
LUAJIT_PATCHS ?= $(sort $(wildcard 000*.patch))
|
||
|
|
||
|
LUAJIT_VERSION := $(patsubst "%",%,$(CONFIG_LUAJIT_VERSION))
|
||
|
LUAJIT_UNPACK = LuaJIT
|
||
|
LUAJIT_TARBALL = $(LUAJIT_VERSION).tar.gz
|
||
|
LUAJIT_URL_BASE = https://github.com/LuaJIT/LuaJIT/archive
|
||
|
LUAJIT_URL = $(LUAJIT_URL_BASE)/$(LUAJIT_TARBALL)
|
||
|
|
||
|
MAINSRC = luajit.c
|
||
|
|
||
|
CSRCS += lib_aux.c
|
||
|
CSRCS += lib_base.c
|
||
|
CSRCS += lib_bit.c
|
||
|
CSRCS += lib_buffer.c
|
||
|
CSRCS += lib_debug.c
|
||
|
CSRCS += lib_ffi.c
|
||
|
CSRCS += lib_init.c
|
||
|
CSRCS += lib_io.c
|
||
|
CSRCS += lib_jit.c
|
||
|
CSRCS += lib_math.c
|
||
|
CSRCS += lib_os.c
|
||
|
CSRCS += lib_package.c
|
||
|
CSRCS += lib_string.c
|
||
|
CSRCS += lib_table.c
|
||
|
CSRCS += lj_alloc.c
|
||
|
CSRCS += lj_api.c
|
||
|
CSRCS += lj_asm.c
|
||
|
CSRCS += lj_assert.c
|
||
|
CSRCS += lj_bc.c
|
||
|
CSRCS += lj_bcread.c
|
||
|
CSRCS += lj_bcwrite.c
|
||
|
CSRCS += lj_buf.c
|
||
|
CSRCS += lj_carith.c
|
||
|
CSRCS += lj_ccall.c
|
||
|
CSRCS += lj_ccallback.c
|
||
|
CSRCS += lj_cconv.c
|
||
|
CSRCS += lj_cdata.c
|
||
|
CSRCS += lj_char.c
|
||
|
CSRCS += lj_clib.c
|
||
|
CSRCS += lj_cparse.c
|
||
|
CSRCS += lj_crecord.c
|
||
|
CSRCS += lj_ctype.c
|
||
|
CSRCS += lj_debug.c
|
||
|
CSRCS += lj_dispatch.c
|
||
|
CSRCS += lj_err.c
|
||
|
CSRCS += lj_ffrecord.c
|
||
|
CSRCS += lj_func.c
|
||
|
CSRCS += lj_gc.c
|
||
|
CSRCS += lj_gdbjit.c
|
||
|
CSRCS += lj_ir.c
|
||
|
CSRCS += lj_lex.c
|
||
|
CSRCS += lj_lib.c
|
||
|
CSRCS += lj_load.c
|
||
|
CSRCS += lj_mcode.c
|
||
|
CSRCS += lj_meta.c
|
||
|
CSRCS += lj_obj.c
|
||
|
CSRCS += lj_opt_dce.c
|
||
|
CSRCS += lj_opt_fold.c
|
||
|
CSRCS += lj_opt_loop.c
|
||
|
CSRCS += lj_opt_mem.c
|
||
|
CSRCS += lj_opt_narrow.c
|
||
|
CSRCS += lj_opt_sink.c
|
||
|
CSRCS += lj_opt_split.c
|
||
|
CSRCS += lj_parse.c
|
||
|
CSRCS += lj_prng.c
|
||
|
CSRCS += lj_profile.c
|
||
|
CSRCS += lj_record.c
|
||
|
CSRCS += lj_serialize.c
|
||
|
CSRCS += lj_snap.c
|
||
|
CSRCS += lj_state.c
|
||
|
CSRCS += lj_str.c
|
||
|
CSRCS += lj_strfmt.c
|
||
|
CSRCS += lj_strfmt_num.c
|
||
|
CSRCS += lj_strscan.c
|
||
|
CSRCS += lj_tab.c
|
||
|
CSRCS += lj_trace.c
|
||
|
CSRCS += lj_udata.c
|
||
|
CSRCS += lj_vmevent.c
|
||
|
CSRCS += lj_vmmath.c
|
||
|
|
||
|
ASRCS += lj_vm.S
|
||
|
|
||
|
VPATH += $(LUAJIT_UNPACK)/dynasm
|
||
|
VPATH += $(LUAJIT_UNPACK)/src
|
||
|
VPATH += $(LUAJIT_UNPACK)/src/host
|
||
|
|
||
|
CFLAGS += -fomit-frame-pointer
|
||
|
CFLAGS += -fno-short-enums
|
||
|
CFLAGS += -D__ARM_ARCH_7M__
|
||
|
CFLAGS += -DLUAJIT_DISABLE_PROFILE
|
||
|
CFLAGS += -DLUAJIT_NO_UNWIND
|
||
|
CFLAGS += -DLUAJIT_OS=LUAJIT_OS_NUTTX
|
||
|
CFLAGS += -DLUAJIT_SECURITY_MCODE=0
|
||
|
CFLAGS += -DLUAJIT_SECURITY_PRNG=0
|
||
|
CFLAGS += -DLUA_ROOT=CONFIG_LIBC_HOMEDIR
|
||
|
|
||
|
PROGNAME = luajit
|
||
|
PRIORITY = $(CONFIG_LUAJIT_PRIORITY)
|
||
|
STACKSIZE = $(CONFIG_LUAJIT_STACKSIZE)
|
||
|
MODULE = $(CONFIG_INTERPRETERS_LUAJIT)
|
||
|
|
||
|
$(LUAJIT_TARBALL):
|
||
|
$(call DOWNLOAD,$(LUAJIT_URL_BASE),$(LUAJIT_TARBALL),$(LUAJIT_TARBALL))
|
||
|
|
||
|
$(LUAJIT_UNPACK): $(LUAJIT_TARBALL)
|
||
|
$(ECHO_BEGIN) "Unpacking $(LUAJIT_TARBALL) to $(LUAJIT_UNPACK)"
|
||
|
$(Q) tar xzvf $(LUAJIT_TARBALL)
|
||
|
$(Q) mv LuaJIT-$(LUAJIT_VERSION) $(LUAJIT_UNPACK)
|
||
|
$(Q) cat $(LUAJIT_PATCHS) | \
|
||
|
patch -s -N -d $(LUAJIT_UNPACK) -p1
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/.patch: $(LUAJIT_UNPACK)
|
||
|
$(Q) touch $(LUAJIT_UNPACK)/.patch
|
||
|
|
||
|
DASM_ARCH = armv7m
|
||
|
|
||
|
DASM_DASC = $(LUAJIT_UNPACK)/src/vm_armv7m.dasc
|
||
|
|
||
|
DASM_FLAGS += -D ENDIAN_LE
|
||
|
DASM_FLAGS += -D JIT
|
||
|
DASM_FLAGS += -D FFI
|
||
|
DASM_FLAGS += -D DUALNUM
|
||
|
DASM_FLAGS += -D FPU
|
||
|
DASM_FLAGS += -D HFABI
|
||
|
DASM_FLAGS += -D NO_UNWIND
|
||
|
DASM_FLAGS += -D VER=70
|
||
|
|
||
|
MINILUA_O = $(LUAJIT_UNPACK)/src/host/minilua.o
|
||
|
|
||
|
BUILDVM_O = $(LUAJIT_UNPACK)/src/host/buildvm.o \
|
||
|
$(LUAJIT_UNPACK)/src/host/buildvm_asm.o \
|
||
|
$(LUAJIT_UNPACK)/src/host/buildvm_fold.o \
|
||
|
$(LUAJIT_UNPACK)/src/host/buildvm_lib.o \
|
||
|
$(LUAJIT_UNPACK)/src/host/buildvm_peobj.o
|
||
|
|
||
|
HOSTCFLAGS += -D__ARM_ARCH_7M__=1
|
||
|
HOSTCFLAGS += -DLJ_ABI_SOFTFP=0
|
||
|
HOSTCFLAGS += -DLJ_ARCH_HASFPU=1
|
||
|
HOSTCFLAGS += -DLUAJIT_DISABLE_PROFILE
|
||
|
HOSTCFLAGS += -DLUAJIT_NO_UNWIND
|
||
|
HOSTCFLAGS += -DLUAJIT_TARGET=LUAJIT_ARCH_arm
|
||
|
HOSTCFLAGS += -I$(LUAJIT_UNPACK)/src
|
||
|
HOSTCFLAGS += -I$(LUAJIT_UNPACK)/src/host
|
||
|
|
||
|
HOSTLDFLAGS += -lm
|
||
|
|
||
|
BUILDVM_BIN = $(LUAJIT_UNPACK)/src/host/buildvm
|
||
|
|
||
|
MINILUA_BIN = $(LUAJIT_UNPACK)/src/host/minilua
|
||
|
|
||
|
LJVM_S = $(LUAJIT_UNPACK)/src/lj_vm.S
|
||
|
|
||
|
LIB_VMDEF = $(LUAJIT_UNPACK)/src/jit/vmdef.lua
|
||
|
|
||
|
LIB_VMDEFP = $(LIB_VMDEF)
|
||
|
|
||
|
ALL_T = $(MINILUA_BIN)
|
||
|
|
||
|
ALL_HDRGEN = $(LUAJIT_UNPACK)/src/lj_bcdef.h
|
||
|
ALL_HDRGEN += $(LUAJIT_UNPACK)/src/lj_ffdef.h
|
||
|
ALL_HDRGEN += $(LUAJIT_UNPACK)/src/lj_folddef.h
|
||
|
ALL_HDRGEN += $(LUAJIT_UNPACK)/src/lj_libdef.h
|
||
|
ALL_HDRGEN += $(LUAJIT_UNPACK)/src/lj_recdef.h
|
||
|
|
||
|
ALL_GEN = $(LJVM_S) $(ALL_HDRGEN) $(LIB_VMDEFP)
|
||
|
|
||
|
HOST_OBJS = $(MINILUA_O) $(BUILDVM_O)
|
||
|
|
||
|
LJLIB_O = $(LUAJIT_UNPACK)/src/lib_base.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_bit.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_buffer.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_debug.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_ffi.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_io.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_jit.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_math.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_os.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_package.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_string.o
|
||
|
LJLIB_O += $(LUAJIT_UNPACK)/src/lib_table.o
|
||
|
|
||
|
LJLIB_C = $(LJLIB_O:.o=.c)
|
||
|
|
||
|
.NOTPARALLEL:
|
||
|
|
||
|
$(MINILUA_BIN): $(MINILUA_O)
|
||
|
$(ECHO_BEGIN) "HOSTLINK $@"
|
||
|
$(Q) $(HOSTCC) -m32 -o $@ $(MINILUA_O) $(HOSTLDFLAGS)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/host/buildvm_arch.h: $(DASM_DASC) $(MINILUA_BIN) $(LUAJIT_UNPACK)/src/lj_arch.h $(LUAJIT_UNPACK)/src/lua.h $(LUAJIT_UNPACK)/src/luaconf.h
|
||
|
$(ECHO_BEGIN) "DYNASM $@"
|
||
|
$(Q)$(MINILUA_BIN) $(LUAJIT_UNPACK)/dynasm/dynasm.lua $(DASM_FLAGS) -o $@ $(DASM_DASC)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(BUILDVM_BIN): $(BUILDVM_O)
|
||
|
$(ECHO_BEGIN) "HOSTLINK $@"
|
||
|
$(Q)$(HOSTCC) -m32 -o $@ $(BUILDVM_O)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LJVM_S): $(BUILDVM_BIN)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m elfasm -o $@
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/lj_bcdef.h: $(BUILDVM_BIN) $(LJLIB_C)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m bcdef -o $@ $(LJLIB_C)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/lj_ffdef.h: $(BUILDVM_BIN) $(LJLIB_C)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m ffdef -o $@ $(LJLIB_C)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/lj_libdef.h: $(BUILDVM_BIN) $(LJLIB_C)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m libdef -o $@ $(LJLIB_C)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/lj_recdef.h: $(BUILDVM_BIN) $(LJLIB_C)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m recdef -o $@ $(LJLIB_C)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LIB_VMDEF): $(BUILDVM_BIN) $(LJLIB_C)
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m vmdef -o $(LIB_VMDEFP) $(LJLIB_C)
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(LUAJIT_UNPACK)/src/lj_folddef.h: $(BUILDVM_BIN) $(LUAJIT_UNPACK)/src/lj_opt_fold.c
|
||
|
$(ECHO_BEGIN) "BUILDVM $@"
|
||
|
$(Q)$(BUILDVM_BIN) -m folddef -o $@ $(LUAJIT_UNPACK)/src/lj_opt_fold.c
|
||
|
$(ECHO_END)
|
||
|
|
||
|
$(HOST_OBJS): %.o: %.c
|
||
|
$(ECHO_BEGIN) "CC: $<"
|
||
|
$(Q) $(HOSTCC) -m32 -c $(HOSTCFLAGS) $< -o $@
|
||
|
$(ECHO_END)
|
||
|
|
||
|
ifeq ($(wildcard $(LUAJIT_UNPACK)/.git),)
|
||
|
context:: $(LUAJIT_UNPACK)/.patch $(LUAJIT_UNPACK)/src/host/buildvm_arch.h $(ALL_GEN)
|
||
|
|
||
|
distclean::
|
||
|
$(call DELDIR, $(LUAJIT_UNPACK))
|
||
|
$(call DELFILE, $(LUAJIT_TARBALL))
|
||
|
endif
|
||
|
|
||
|
include $(APPDIR)/Application.mk
|