Files
babbler/Makefile
2026-01-28 22:20:52 +01:00

53 lines
1.1 KiB
Makefile

CC = gcc
CFLAGS = -Wall -Wextra -O2 -MMD -MP -Isrc
LDFLAGS = -lm
CORE_SRCS = src/articulator.c src/articulator_db.c src/transcriber.c src/visualizer.c
CORE_OBJS = $(patsubst src/%.c, obj/%.o, $(CORE_SRCS))
GEN_TARGET = mapgen
GEN_OBJS = obj/mapgen.o obj/articulator_db.o
EX1_OBJ = obj/example_babble.o
EX1_TARGET = example_babble
EX2_OBJ = obj/example_names.o
EX2_TARGET = example_names
ALL_OBJS = $(CORE_OBJS) obj/mapgen.o $(EX1_OBJ) $(EX2_OBJ)
DEPS = $(ALL_OBJS:.o=.d)
all: $(GEN_TARGET) $(EX1_TARGET) $(EX2_TARGET)
$(GEN_TARGET): $(GEN_OBJS)
$(CC) $(CFLAGS) $(GEN_OBJS) -o $@
src/ortho_maps.h: $(GEN_TARGET)
./$(GEN_TARGET) > src/ortho_maps.h
obj/%.o: src/%.c | obj
$(CC) $(CFLAGS) -c $< -o $@
obj/%.o: examples/%.c | obj
$(CC) $(CFLAGS) -c $< -o $@
obj/mapgen.o: tools/mapgen.c | obj
$(CC) $(CFLAGS) -c $< -o $@
obj/transcriber.o: src/ortho_maps.h
obj:
mkdir -p obj
$(EX1_TARGET): $(EX1_OBJ) $(CORE_OBJS)
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
$(EX2_TARGET): $(EX2_OBJ) $(CORE_OBJS)
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
-include $(DEPS)
clean:
rm -rf obj $(GEN_TARGET) $(EX1_TARGET) $(EX2_TARGET) src/ortho_maps.h
.PHONY: all clean