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