60 lines
1.1 KiB
Makefile
60 lines
1.1 KiB
Makefile
# Univerzálny Makefile pre ncurses projekt
|
|
# Autor: Mišo Chlebovec
|
|
# Verzia: 1.1
|
|
|
|
# Kompilátor
|
|
CC = gcc
|
|
|
|
# Základné flags
|
|
CFLAGS = -Wall -std=c99 -g -D_GNU_SOURCE
|
|
|
|
# Hľadanie ncurses
|
|
NCURSES_CFLAGS = $(shell pkg-config --cflags ncurses 2>/dev/null || \
|
|
echo "-I/usr/include -I/usr/include/ncurses -I/usr/local/include -I/usr/local/include/ncurses")
|
|
|
|
NCURSES_LIBS = $(shell pkg-config --libs ncurses 2>/dev/null || echo "-lncurses")
|
|
|
|
# Finalne flags
|
|
CFLAGS += $(NCURSES_CFLAGS)
|
|
LDFLAGS = $(NCURSES_LIBS)
|
|
|
|
# Súbory
|
|
SRCS = main.c game.c world.c
|
|
OBJS = $(SRCS:.c=.o)
|
|
TARGET = game
|
|
|
|
# Pravidlá
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(TARGET)
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(TARGET)
|
|
|
|
distclean: clean
|
|
rm -f *~ .*swp
|
|
|
|
# Pomocné pravidlá
|
|
.PHONY: all clean distclean
|
|
|
|
# Automatická detekcia závislostí
|
|
DEPDIR := .deps
|
|
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.d
|
|
|
|
COMPILE.c = $(CC) $(DEPFLAGS) $(CFLAGS) -c
|
|
|
|
%.o : %.c $(DEPDIR)/%.d | $(DEPDIR)
|
|
$(COMPILE.c) $< -o $@
|
|
|
|
$(DEPDIR):
|
|
@mkdir -p $@
|
|
|
|
DEPFILES := $(SRCS:%.c=$(DEPDIR)/%.d)
|
|
$(DEPFILES):
|
|
|
|
include $(wildcard $(DEPFILES))
|