mirror of
https://github.com/lua/lua
synced 2025-02-19 22:53:59 +03:00

Macro HARDMEMTESTS broke in two: HARDMEMTESTS forces a full GC cycle at every point where the GC can run. New macro EMERGENCYGCTESTS forces an emergency collection at every memory allocation.
210 lines
7.0 KiB
Makefile
210 lines
7.0 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= \
|
|
-fmax-errors=5 \
|
|
-Wextra \
|
|
-Wshadow \
|
|
-Wsign-compare \
|
|
-Wundef \
|
|
-Wwrite-strings \
|
|
-Wredundant-decls \
|
|
-Wdisabled-optimization \
|
|
-Wdouble-promotion \
|
|
-Wlogical-op \
|
|
-Wno-aggressive-loop-optimizations \
|
|
# 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 \
|
|
|
|
# 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)
|
|
|
|
# Some useful compiler options for internal tests:
|
|
# -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
|
|
# ('-ftrapv' for runtime checks of integer overflows)
|
|
# -fsanitize=undefined -ftrapv -fno-inline
|
|
# 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)
|
|
|
|
|
|
llex.o:
|
|
$(CC) $(CFLAGS) -Os -c llex.c
|
|
|
|
lparser.o:
|
|
$(CC) $(CFLAGS) -Os -c lparser.c
|
|
|
|
lcode.o:
|
|
$(CC) $(CFLAGS) -Os -c lcode.c
|
|
|
|
|
|
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 lobject.h llimits.h lstate.h \
|
|
ltm.h lzio.h lmem.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 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 \
|
|
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 ldebug.h lstate.h lobject.h \
|
|
llimits.h ltm.h lzio.h lmem.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 llimits.h lmem.h lstate.h \
|
|
lobject.h ltm.h lzio.h
|
|
|
|
# (end of Makefile)
|