Added Makefile rule for libluau.a

This is useful if Luau is to be packaged to be used with package
managers or if developers want to embed Luau without having to
link several files in a specific order due to the way compilers
link.
This commit is contained in:
Unknown 2023-01-07 13:07:22 +00:00
parent be52bd91e4
commit fb0a82fe4c

View file

@ -44,6 +44,8 @@ ANALYZE_CLI_SOURCES=CLI/FileUtils.cpp CLI/Flags.cpp CLI/Analyze.cpp
ANALYZE_CLI_OBJECTS=$(ANALYZE_CLI_SOURCES:%=$(BUILD)/%.o)
ANALYZE_CLI_TARGET=$(BUILD)/luau-analyze
LIBLUAU_TARGET=$(BUILD)/libluau.a
FUZZ_SOURCES=$(wildcard fuzz/*.cpp) fuzz/luau.pb.cpp
FUZZ_OBJECTS=$(FUZZ_SOURCES:%=$(BUILD)/%.o)
@ -136,7 +138,7 @@ fuzz-proto fuzz-prototest: LDFLAGS+=build/libprotobuf-mutator/src/libfuzzer/libp
# pseudo targets
.PHONY: all test clean coverage format luau-size aliases
all: $(REPL_CLI_TARGET) $(ANALYZE_CLI_TARGET) $(TESTS_TARGET) aliases
all: $(REPL_CLI_TARGET) $(ANALYZE_CLI_TARGET) $(TESTS_TARGET) $(LIBLUAU_TARGET) aliases
aliases: $(EXECUTABLE_ALIASES)
@ -205,8 +207,9 @@ $(ANALYSIS_TARGET): $(ANALYSIS_OBJECTS)
$(CODEGEN_TARGET): $(CODEGEN_OBJECTS)
$(VM_TARGET): $(VM_OBJECTS)
$(ISOCLINE_TARGET): $(ISOCLINE_OBJECTS)
$(LIBLUAU_TARGET): $(ANALYSIS_OBJECTS) $(COMPILER_OBJECTS) $(AST_OBJECTS) $(CODEGEN_OBJECTS) $(VM_OBJECTS)
$(AST_TARGET) $(COMPILER_TARGET) $(ANALYSIS_TARGET) $(CODEGEN_TARGET) $(VM_TARGET) $(ISOCLINE_TARGET):
$(AST_TARGET) $(COMPILER_TARGET) $(ANALYSIS_TARGET) $(CODEGEN_TARGET) $(VM_TARGET) $(ISOCLINE_TARGET) $(LIBLUAU_TARGET):
ar rcs $@ $^
# object file targets