45 lines
917 B
Makefile
45 lines
917 B
Makefile
CC = g++
|
|
CFLAGS = -std=c++17 -Wall -Iinclude
|
|
LDFLAGS =
|
|
|
|
SRCS = src/cpp/lexer/lexer.cpp \
|
|
src/cpp/parser/parser.cpp \
|
|
src/cpp/semantic/semantic.cpp \
|
|
src/cpp/codegen/codegen.cpp \
|
|
src/cpp/compiler.cpp
|
|
|
|
OBJS = $(SRCS:.cpp=.o)
|
|
TARGET = oraset3
|
|
|
|
.PHONY: all clean test run
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
%.o: %.cpp
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(TARGET)
|
|
rm -f tests/*.out
|
|
rm -f examples/*.out
|
|
|
|
test: all
|
|
./$(TARGET) tests/test1.ora tests/test1.cpp
|
|
g++ -o tests/test1.out tests/test1.cpp
|
|
./tests/test1.out
|
|
|
|
run: all
|
|
./$(TARGET) examples/hello.ora examples/hello.cpp
|
|
g++ -o examples/hello.out examples/hello.cpp
|
|
./examples/hello.out
|
|
|
|
# Linux build with clang
|
|
clang:
|
|
clang++ -std=c++17 -Wall -Iinclude -o $(TARGET) $(SRCS)
|
|
|
|
# Windows build
|
|
win:
|
|
x86_64-w64-mingw32-g++ -std=c++17 -Wall -Iinclude -o $(TARGET).exe $(SRCS)
|