mirror of
https://github.com/lua/lua
synced 2024-11-28 07:33:08 +03:00
55ac40f859
Several definitions that don't need to be "global" (that is, that concerns only specific parts of the code) moved out of llimits.h, to more appropriate places.
212 lines
7.3 KiB
Makefile
212 lines
7.3 KiB
Makefile
# Developer's makefile for building Lua
|
|
# see luaconf.h for further customization
|
|
|
|
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
|
|
|
|
# Warnings valid for both C and C++
|
|
CWARNSCPP= \
|
|
-Wfatal-errors \
|
|
-Wextra \
|
|
-Wshadow \
|
|
-Wundef \
|
|
-Wwrite-strings \
|
|
-Wredundant-decls \
|
|
-Wdisabled-optimization \
|
|
-Wdouble-promotion \
|
|
-Wmissing-declarations \
|
|
# the next warnings might be useful sometimes,
|
|
# but usually they generate too much noise
|
|
# -Werror \
|
|
# -pedantic # warns if we use jump tables \
|
|
# -Wconversion \
|
|
# -Wsign-conversion \
|
|
# -Wstrict-overflow=2 \
|
|
# -Wformat=2 \
|
|
# -Wcast-qual \
|
|
|
|
|
|
# Warnings for gcc, not valid for clang
|
|
CWARNGCC= \
|
|
-Wlogical-op \
|
|
-Wno-aggressive-loop-optimizations \
|
|
|
|
|
|
# The next warnings are neither valid nor needed for C++
|
|
CWARNSC= -Wdeclaration-after-statement \
|
|
-Wmissing-prototypes \
|
|
-Wnested-externs \
|
|
-Wstrict-prototypes \
|
|
-Wc++-compat \
|
|
-Wold-style-definition \
|
|
|
|
|
|
CWARNS= $(CWARNSCPP) $(CWARNSC) $(CWARNGCC)
|
|
|
|
# Some useful compiler options for internal tests:
|
|
# -DLUAI_ASSERT turns on all assertions inside Lua.
|
|
# -DHARDSTACKTESTS forces a reallocation of the stack at every point where
|
|
# the stack can be reallocated.
|
|
# -DHARDMEMTESTS forces a full collection at all points where the collector
|
|
# can run.
|
|
# -DEMERGENCYGCTESTS forces an emergency collection at every single allocation.
|
|
# -DEXTERNMEMCHECK removes internal consistency checking of blocks being
|
|
# deallocated (useful when an external tool like valgrind does the check).
|
|
# -DMAXINDEXRK=k limits range of constants in RK instruction operands.
|
|
# -DLUA_COMPAT_5_3
|
|
|
|
# -pg -malign-double
|
|
# -DLUA_USE_CTYPE -DLUA_USE_APICHECK
|
|
|
|
# The following options help detect "undefined behavior"s that seldom
|
|
# create problems; some are only available in newer gcc versions. To
|
|
# use some of them, we also have to define an environment variable
|
|
# ASAN_OPTIONS="detect_invalid_pointer_pairs=2".
|
|
# -fsanitize=undefined
|
|
# -fsanitize=pointer-subtract -fsanitize=address -fsanitize=pointer-compare
|
|
# TESTS= -DLUA_USER_H='"ltests.h"' -O0 -g
|
|
|
|
|
|
LOCAL = $(TESTS) $(CWARNS)
|
|
|
|
|
|
# enable Linux goodies
|
|
MYCFLAGS= $(LOCAL) -std=c99 -DLUA_USE_LINUX -DLUA_USE_READLINE
|
|
MYLDFLAGS= $(LOCAL) -Wl,-E
|
|
MYLIBS= -ldl -lreadline
|
|
|
|
|
|
CC= gcc
|
|
CFLAGS= -Wall -O2 $(MYCFLAGS) -fno-stack-protector -fno-common -march=native
|
|
AR= ar rc
|
|
RANLIB= ranlib
|
|
RM= rm -f
|
|
|
|
|
|
|
|
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
|
|
|
|
|
|
LIBS = -lm
|
|
|
|
CORE_T= liblua.a
|
|
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
|
|
lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
|
|
ltm.o lundump.o lvm.o lzio.o ltests.o
|
|
AUX_O= lauxlib.o
|
|
LIB_O= lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o \
|
|
lutf8lib.o loadlib.o lcorolib.o linit.o
|
|
|
|
LUA_T= lua
|
|
LUA_O= lua.o
|
|
|
|
|
|
ALL_T= $(CORE_T) $(LUA_T)
|
|
ALL_O= $(CORE_O) $(LUA_O) $(AUX_O) $(LIB_O)
|
|
ALL_A= $(CORE_T)
|
|
|
|
all: $(ALL_T)
|
|
touch all
|
|
|
|
o: $(ALL_O)
|
|
|
|
a: $(ALL_A)
|
|
|
|
$(CORE_T): $(CORE_O) $(AUX_O) $(LIB_O)
|
|
$(AR) $@ $?
|
|
$(RANLIB) $@
|
|
|
|
$(LUA_T): $(LUA_O) $(CORE_T)
|
|
$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(CORE_T) $(LIBS) $(MYLIBS) $(DL)
|
|
|
|
|
|
clean:
|
|
$(RM) $(ALL_T) $(ALL_O)
|
|
|
|
depend:
|
|
@$(CC) $(CFLAGS) -MM *.c
|
|
|
|
echo:
|
|
@echo "CC = $(CC)"
|
|
@echo "CFLAGS = $(CFLAGS)"
|
|
@echo "AR = $(AR)"
|
|
@echo "RANLIB = $(RANLIB)"
|
|
@echo "RM = $(RM)"
|
|
@echo "MYCFLAGS = $(MYCFLAGS)"
|
|
@echo "MYLDFLAGS = $(MYLDFLAGS)"
|
|
@echo "MYLIBS = $(MYLIBS)"
|
|
@echo "DL = $(DL)"
|
|
|
|
$(ALL_O): makefile ltests.h
|
|
|
|
# DO NOT EDIT
|
|
# automatically made with 'gcc -MM l*.c'
|
|
|
|
lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h \
|
|
ltable.h lundump.h lvm.h
|
|
lauxlib.o: lauxlib.c lprefix.h lua.h luaconf.h lauxlib.h
|
|
lbaselib.o: lbaselib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lcode.o: lcode.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
|
|
llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
|
|
ldo.h lgc.h lstring.h ltable.h lvm.h
|
|
lcorolib.o: lcorolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lctype.o: lctype.c lprefix.h lctype.h lua.h luaconf.h llimits.h
|
|
ldblib.o: ldblib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
ldebug.o: ldebug.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h \
|
|
ldebug.h ldo.h lfunc.h lstring.h lgc.h ltable.h lvm.h
|
|
ldo.o: ldo.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \
|
|
lparser.h lstring.h ltable.h lundump.h lvm.h
|
|
ldump.o: ldump.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h lgc.h ltable.h lundump.h
|
|
lfunc.o: lfunc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h
|
|
lgc.o: lgc.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lgc.h llex.h lstring.h \
|
|
ltable.h
|
|
linit.o: linit.c lprefix.h lua.h luaconf.h lualib.h lauxlib.h
|
|
liolib.o: liolib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
llex.o: llex.c lprefix.h lua.h luaconf.h lctype.h llimits.h ldebug.h \
|
|
lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lgc.h llex.h lparser.h \
|
|
lstring.h ltable.h
|
|
lmathlib.o: lmathlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lmem.o: lmem.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h
|
|
loadlib.o: loadlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lobject.o: lobject.c lprefix.h lua.h luaconf.h lctype.h llimits.h \
|
|
ldebug.h lstate.h lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h \
|
|
lvm.h
|
|
lopcodes.o: lopcodes.c lprefix.h lopcodes.h llimits.h lua.h luaconf.h
|
|
loslib.o: loslib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lparser.o: lparser.c lprefix.h lua.h luaconf.h lcode.h llex.h lobject.h \
|
|
llimits.h lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h \
|
|
ldo.h lfunc.h lstring.h lgc.h ltable.h
|
|
lstate.o: lstate.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h \
|
|
lstring.h ltable.h
|
|
lstring.o: lstring.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
|
|
lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h
|
|
lstrlib.o: lstrlib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
ltable.o: ltable.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
|
|
ltablib.o: ltablib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
ltests.o: ltests.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h lauxlib.h lcode.h llex.h lopcodes.h \
|
|
lparser.h lctype.h ldebug.h ldo.h lfunc.h lopnames.h lstring.h lgc.h \
|
|
ltable.h lualib.h
|
|
ltm.o: ltm.c lprefix.h lua.h luaconf.h ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
|
|
lua.o: lua.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lundump.o: lundump.c lprefix.h lua.h luaconf.h ldebug.h lstate.h \
|
|
lobject.h llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h \
|
|
ltable.h lundump.h
|
|
lutf8lib.o: lutf8lib.c lprefix.h lua.h luaconf.h lauxlib.h lualib.h
|
|
lvm.o: lvm.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h \
|
|
lstring.h ltable.h lvm.h ljumptab.h
|
|
lzio.o: lzio.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \
|
|
lobject.h ltm.h lzio.h lmem.h
|
|
|
|
# (end of Makefile)
|