Skip to content
Snippets Groups Projects
Makefile 1.03 KiB
# galaxy: galaxy.o stars.o vec.o
# 	gcc -o galaxy galaxy.o stars.o vec.o

# galaxy.o: galaxy.c stars.h
# 	gcc -c galaxy.c

# stars.o: stars.c stars.h vec.h
# 	gcc -c stars.c

# vec.o: vec.c vec.h
# 	gcc -c vec.c

# clean:
# 	rm -f *.o galaxy

CC = gcc
CFLAGS = -g -Wall -Wextra -pedantic -O0 -std=c11
LDFLAGS = -lm

x = foo
y = $(x) bar
x = later

######### advanced v1 ############
SOURCES = galaxy.c stars.c vec.c
##################################

######### advanced v2 ############
# SOURCES = $(wildcard *.c)
# means *.c
##################################

# OK pour v1 et v2
# OBJECTS contient SOURCES avec .c -> .o
OBJECTS = $(SOURCES:.c=.o)

######### advanced v3 ############
# OBJECTS := $(patsubst %.c,%.o,$(wildcard *.c))
##################################

# galaxy sera l'exécutable (galaxy.c contient le main)
TARGET = galaxy
$(TARGET) : $(OBJECTS)
	@echo $(x) $(y)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

# galaxy.o: stars.h vec.h
# stars.o: *.h
# vec.o: vec.h

.PHONY: clean

clean:
	rm -f $(TARGET) $(OBJECTS)

# clean:
# 	rm -f *.o main