forked from unikraft/lib-lua
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.uk
118 lines (100 loc) · 4.77 KB
/
Makefile.uk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
################################################################################
# Library registration
################################################################################
$(eval $(call addlib_s,liblua,$(CONFIG_LIBLUA)))
################################################################################
# Sources
################################################################################
LIBLUA_VERSION=5.3.5
LIBLUA_TARBALL=lua-$(LIBLUA_VERSION)
LIBLUA_URL=https://www.lua.org/ftp/$(LIBLUA_TARBALL).tar.gz
LIBLUA_PATCHDIR=$(LIBLUA_BASE)/patches
$(eval $(call fetch,liblua,$(LIBLUA_URL)))
$(eval $(call patch,liblua,$(LIBLUA_PATCHDIR),lua-$(LIBLUA_VERSION)))
################################################################################
# Helpers
################################################################################
LIBLUA_SRCS_BASE=$(LIBLUA_ORIGIN)/$(LIBLUA_TARBALL)/src
################################################################################
# Library includes
################################################################################
# Put public headers of the library to a public folder and export them globally.
# The prepare step below takes care of populating the folder.
$(call mk_sub_build_dir,liblua/include)
CINCLUDES-$(CONFIG_LIBLUA) += -I$(LIBLUA_BUILD)/include
CXXINCLUDES-$(CONFIG_LIBLUA) += -I$(LIBLUA_BUILD)/include
# Private headers
LIBLUA_CINCLUDES-y += -I$(LIBLUA_SRCS_BASE)
################################################################################
# Glue code
################################################################################
LIBLUA_SRCS-$(CONFIG_LIBLUA_MAIN_FUNCTION) += $(LIBLUA_BASE)/main.c
################################################################################
# Library flags
################################################################################
LIBLUA_SUPPRESS_FLAGS += -Wno-implicit-function-declaration -Wno-unused-function
LIBLUA_FLAGS += -DLUA_COMPAT_5_2
LIBLUA_CFLAGS-y += $(LIBLUA_FLAGS) $(LIBLUA_SUPPRESS_FLAGS)
LIBLUA_CXXFLAGS-y += $(LIBLUA_FLAGS) $(LIBLUA_SUPPRESS_FLAGS)
################################################################################
# Sources
################################################################################
# Main loop
LIBLUA_LUA_FLAGS-y += -Dmain=lua_main
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lua.c
# CORE_O
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lapi.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lcode.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lctype.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ldebug.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ldo.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ldump.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lfunc.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lgc.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/llex.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lmem.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lobject.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lopcodes.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lparser.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lstate.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lstring.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ltable.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ltm.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lundump.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lvm.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lzio.c
# LIB_O
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lauxlib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lbaselib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lbitlib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lcorolib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ldblib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/liolib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lmathlib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/loslib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lstrlib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/ltablib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lutf8lib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/loadlib.c
LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/linit.c
################################################################################
# Libray API headers
################################################################################
# Make sure that make does not treat the headers from the archive as intermediate
.PRECIOUS: $(LIBLUA_SRCS_BASE)/%.h
$(LIBLUA_SRCS_BASE)/%.h: $(LIBLUA_BUILD)/.origin
@# empty recipe to enforce dependency to archive extraction
$(LIBLUA_BUILD)/include/%.h: $(LIBLUA_SRCS_BASE)/%.h
$(call build_cmd,LN,liblua,$@,\
ln -sf $< $@)
$(LIBLUA_SRCS_BASE)/%.hpp: $(LIBLUA_BUILD)/.origin
@# empty recipe to enforce dependency to archive extraction
$(LIBLUA_BUILD)/include/%.hpp: $(LIBLUA_SRCS_BASE)/%.hpp
$(call build_cmd,LN,liblua,$@,\
ln -sf $< $@)
# TO_INC
UK_PREPARE += $(LIBLUA_BUILD)/include/lua.h
UK_PREPARE += $(LIBLUA_BUILD)/include/luaconf.h
UK_PREPARE += $(LIBLUA_BUILD)/include/lualib.h
UK_PREPARE += $(LIBLUA_BUILD)/include/lauxlib.h
UK_PREPARE += $(LIBLUA_BUILD)/include/lua.hpp