macrofuck/compiler/Makefile

53 lines
1.1 KiB
Makefile
Raw Normal View History

2024-02-11 16:02:13 +00:00
CC = gcc
CFLAGS = -std=c11 -D_POSIX_C_SOURCE=200809L -Wall -Wpedantic -g -I./src/ -I../common/src/ -I./gen
2024-02-11 16:02:13 +00:00
LD = gcc
LDFLAGS =
2024-02-16 11:50:13 +00:00
YACC = bison
2024-02-11 16:02:13 +00:00
YFLAGS = -d
LEX = lex
LEXFLAGS =
MAKE = make
2024-02-11 16:02:13 +00:00
2024-02-16 11:50:13 +00:00
PLUGINS = obj/macros/numbers.o
OBJS = obj/lex.yy.o obj/y.tab.o obj/codegen.o obj/ast.o obj/band.o \
2024-02-19 22:15:53 +00:00
obj/plugins.o obj/scope.o $(PLUGINS) obj/main.o
2024-02-11 16:02:13 +00:00
DEPS = $(OBJS:%.o=%.d)
-include $(DEPS)
all: macrofuck test
2024-02-22 17:33:02 +00:00
gen/lex.yy.c: src/lexer.l gen/y.tab.c
2024-02-11 16:02:13 +00:00
$(LEX) $(LEXFLAGS) -o $@ $<
gen/y.tab.c: src/parser.y src/ast.h ../common/src/error.h
2024-02-11 16:02:13 +00:00
$(YACC) $(YFLAGS) -o $@ $<
2024-02-22 17:33:02 +00:00
obj/lex.yy.o: gen/lex.yy.c
2024-02-11 16:02:13 +00:00
$(CC) $(CFLAGS) -c -o $@ $<
2024-02-22 17:33:02 +00:00
obj/y.tab.o: gen/y.tab.c
2024-02-11 16:02:13 +00:00
$(CC) $(CFLAGS) -c -o $@ $<
2024-02-22 17:33:02 +00:00
obj/%.o: src/%.c obj
2024-02-11 16:02:13 +00:00
$(CC) $(CFLAGS) -c -o $@ $<
macrofuck: $(OBJS) ../common/common.a
2024-02-11 16:02:13 +00:00
$(LD) $(LDFLAGS) -o $@ $^
../common/common.a: FORCE
cd ../common/ && $(MAKE) common.a
2024-02-11 16:26:08 +00:00
test: macrofuck FORCE
./test/tests.sh "./macrofuck"
FORCE: ;
2024-02-11 16:02:13 +00:00
clean:
@echo "Cleaning up"
@cd ../common/ && $(MAKE) clean
2024-02-11 16:02:13 +00:00
@rm -f obj/*.o
@rm -f obj/*.d
@rm -f gen/*.c
@rm -f gen/*.h
@rm macrofuck