macrofuck/common/Makefile
2024-02-23 23:16:51 +01:00

42 lines
780 B
Makefile

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) $@ $^
test: common.a
@echo "no tests for common yet"
FORCE: ;
clean:
@echo "Cleaning up"
@rm -f obj/*.o
@rm -f obj/*.d
@rm common.a