2024-02-23 22:07:01 +00:00
|
|
|
CC = gcc
|
|
|
|
CFLAGS = -std=c11 -D_POSIX_C_SOURCE=200809L -Wall -Wpedantic -g
|
|
|
|
LD = gcc
|
|
|
|
LDFLAGS =
|
|
|
|
AR = ar
|
|
|
|
ARFLAGS = rcs
|
|
|
|
|
|
|
|
|
|
|
|
OBJS = obj/alloc.o obj/dict.o obj/error.o obj/list.o
|
|
|
|
DEPS = $(OBJS:%.o=%.d)
|
|
|
|
|
|
|
|
-include $(DEPS)
|
|
|
|
|
|
|
|
all: common.a test
|
|
|
|
|
|
|
|
gen/lex.yy.c: src/lexer.l gen/y.tab.c
|
|
|
|
$(LEX) $(LEXFLAGS) -o $@ $<
|
|
|
|
|
|
|
|
gen/y.tab.c: src/parser.y src/ast.h ../common/src/error.h
|
|
|
|
$(YACC) $(YFLAGS) -o $@ $<
|
|
|
|
|
|
|
|
obj/lex.yy.o: gen/lex.yy.c
|
|
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
obj/y.tab.o: gen/y.tab.c
|
|
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
obj/%.o: src/%.c obj
|
|
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
|
|
|
|
common.a: CFLAGS += -fPIC
|
|
|
|
common.a: $(OBJS)
|
|
|
|
$(AR) $(ARFLAGS) $@ $^
|
|
|
|
|
2024-02-25 10:58:30 +00:00
|
|
|
test: CFLAGS += -I../testing/src/
|
|
|
|
test: obj/tests.o common.a ../testing/testing.a
|
|
|
|
$(LD) $(LDFLAGS) -o $@ $^
|
|
|
|
./test
|
|
|
|
|
|
|
|
../testing/testing.a: FORCE
|
|
|
|
cd ../testing/ && $(MAKE) testing.a
|
2024-02-23 22:07:01 +00:00
|
|
|
|
|
|
|
FORCE: ;
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@echo "Cleaning up"
|
2024-02-25 10:58:30 +00:00
|
|
|
cd ../testing/ && $(MAKE) clean
|
2024-02-23 22:07:01 +00:00
|
|
|
@rm -f obj/*.o
|
|
|
|
@rm -f obj/*.d
|
|
|
|
@rm common.a
|