This commit is contained in:
Denis Landa 2025-06-08 20:48:42 +02:00
parent 969f6318a9
commit a4f186f61e

View File

@ -1,25 +1,59 @@
# Univerzálny Makefile pre ncurses projekt
# Autor: Mišo Chlebovec
# Verzia: 1.1
# Kompilátor
CC = gcc CC = gcc
CFLAGS=-Wall -std=c99 -g
LDFLAGS=-lncurses
# Základné flags
CFLAGS = -Wall -std=c99 -g -D_GNU_SOURCE
OBJS = main.o game.o world.o # 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")
all: game NCURSES_LIBS = $(shell pkg-config --libs ncurses 2>/dev/null || echo "-lncurses")
game: $(OBJS) # Finalne flags
$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o game CFLAGS += $(NCURSES_CFLAGS)
LDFLAGS = $(NCURSES_LIBS)
main.o: main.c game.h world.h # Súbory
$(CC) $(CFLAGS) -c main.c SRCS = main.c game.c world.c
OBJS = $(SRCS:.c=.o)
TARGET = game
game.o: game.c game.h world.h # Pravidlá
$(CC) $(CFLAGS) -c game.c all: $(TARGET)
world.o: world.c world.h $(TARGET): $(OBJS)
$(CC) $(CFLAGS) -c world.c $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $(TARGET)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean: clean:
rm -f *.o game 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))