w3panik/Makefile

53 lines
1.6 KiB
Makefile

OBJ_DEBUG_MAIN = build/debug/objs/Main.o
OBJ_DEBUG_COMM = build/debug/objs/Commands.o
OBJ_DEBUG_KBFF = build/debug/objs/Keybuffer.o
OBJ_RELEASE_MAIN = build/release/objs/Main.o
OBJ_RELEASE_COMM = build/release/objs/Commands.o
OBJ_RELEASE_KBFF = build/release/objs/Keybuffer.o
OBJS_DEBUG = $(OBJ_DEBUG_MAIN) $(OBJ_DEBUG_COMM) $(OBJ_DEBUG_KBFF)
OBJS_RELEASE = $(OBJ_RELEASE_MAIN) $(OBJ_RELEASE_COMM) $(OBJ_RELEASE_KBFF)
CC = gcc
FLAGS_BASE = -Wall
FLAGS_DEBUG = -Og
FLAGS_RELEASE = -O3
OBJ_OUTPUT_DEBUG = w3panik-debug
OBJ_OUTPUT_RELEASE = w3panik-release
debug : $(OBJS_DEBUG)
$(CC) $(FLAGS_DEBUG) -o $(OBJ_OUTPUT_DEBUG) $(OBJS_DEBUG)
release : $(OBJS_RELEASE)
$(CC) $(FLAGS_RELEASE) -o $(OBJ_OUTPUT_RELEASE) $(OBJS_RELEASE)
build/debug/objs/Main.o: src/Main.c
$(CC) $(FLAGS_DEBUG) -o $(OBJ_DEBUG_MAIN) -c src/Main.c
build/debug/objs/Commands.o: src/Commands.c src/Commands.h
$(CC) $(FLAGS_DEBUG) -o $(OBJ_DEBUG_COMM) -c src/Commands.c
build/debug/objs/Keybuffer.o: src/Keybuffer.c src/Keybuffer.h
$(CC) $(FLAGS_DEBUG) -o $(OBJ_DEBUG_KBFF) -c src/Keybuffer.c
build/release/objs/Main.o: src/Main.c
$(CC) $(FLAGS_RELEASE) -o $(OBJ_RELEASE_MAIN) -c src/Main.c
build/release/objs/Commands.o: src/Commands.c src/Commands.h
$(CC) $(FLAGS_RELEASE) -o $(OBJ_RELEASE_COMM) -c src/Commands.c
build/release/objs/Keybuffer.o: src/Keybuffer.c src/Keybuffer.h
$(CC) $(FLAGS_RELEASE) -o $(OBJ_RELEASE_KBFF) -c src/Keybuffer.c
clean-all:
rm $(OBJS_DEBUG) $(OBJS_RELEASE) $(OBJ_OUTPUT_DEBUG) $(OBJ_OUTPUT_RELEASE)
clean-release:
rm $(OBJS_RELEASE) $(OBJ_OUTPUT_RELEASE)
clean-debug:
rm $(OBJS_DEBUG) $(OBJ_OUTPUT_DEBUG)