53 lines
1.1 KiB
Makefile
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 |