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_OBJECTS=$(ANALYZE_CLI_SOURCES:%=$(BUILD)/%.o)
ANALYZE_CLI_TARGET=$(BUILD)/luau-analyze ANALYZE_CLI_TARGET=$(BUILD)/luau-analyze
LIBLUAU_TARGET=$(BUILD)/libluau.a
FUZZ_SOURCES=$(wildcard fuzz/*.cpp) fuzz/luau.pb.cpp FUZZ_SOURCES=$(wildcard fuzz/*.cpp) fuzz/luau.pb.cpp
FUZZ_OBJECTS=$(FUZZ_SOURCES:%=$(BUILD)/%.o) FUZZ_OBJECTS=$(FUZZ_SOURCES:%=$(BUILD)/%.o)
@ -136,7 +138,7 @@ fuzz-proto fuzz-prototest: LDFLAGS+=build/libprotobuf-mutator/src/libfuzzer/libp
# pseudo targets # pseudo targets
.PHONY: all test clean coverage format luau-size aliases .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) aliases: $(EXECUTABLE_ALIASES)
@ -205,8 +207,9 @@ $(ANALYSIS_TARGET): $(ANALYSIS_OBJECTS)
$(CODEGEN_TARGET): $(CODEGEN_OBJECTS) $(CODEGEN_TARGET): $(CODEGEN_OBJECTS)
$(VM_TARGET): $(VM_OBJECTS) $(VM_TARGET): $(VM_OBJECTS)
$(ISOCLINE_TARGET): $(ISOCLINE_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 $@ $^ ar rcs $@ $^
# object file targets # object file targets