Files
shitgame/Makefile

100 lines
2.2 KiB
Makefile

#Troy Rosin
CC =gcc
CFLAGS =-g
CPPFLAGS =-c -g -Wall -pedantic -Wextra
LDFLAGS =-lSDL2 -lm -lSDL2main -lSDL2_image
LDFLAGS +=-L/usr/local/lib -lSDL2_ttf -lSDL2_net
INCFLAGS = -I/usr/local/include/SDL2 -Iinclude
INC =include/
BIN =build/bin/
LIB =build/lib/
OBJ =build/obj/
DIRS =$(BIN) $(LIB) $(OBJ)
debug ?=on
ifeq ($(debug),on)
CPPFLAGS += -Ddebug
endif
BINARIES = game client server
all : $(BINARIES)
clean :
rm -rf build/ $(BINARIES)
$(DIRS) :
mkdir -p $@
## --- OBJECT FILES ---
#$(OBJ) : | $(OBJ)
# $(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)client_test.o : client_test.c | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)server_test.o : server_test.c | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)main.o : main.c $(INC)input.h $(INC)game.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)battle.o : battle.c $(INC)game.h $(INC)deck.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)input.o : input.c $(INC)input.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)host.o : host.c $(INC)host.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)join.o : join.c | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)options.o : options.c | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)game.o : game.c $(INC)game.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)overworld.o : overworld.c $(INC)overworld.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)net.o : net.c $(INC)net.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)client.o : client.c $(INC)net.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
$(OBJ)server.o : server.c $(INC)net.h | $(OBJ)
$(CC) $(CPPFLAGS) -o $@ $< $(INCFLAGS)
## --- LIBRARY FILES ---
#$(LIB) : | $(LIB)
# ar rcs $@ $^
## --- EXECUTABLE FILES ---
#$(BIN) : $(OBJ) | $(BIN)
# $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
$(BIN)client : $(OBJ)client.o | $(BIN)
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
$(BIN)server: $(OBJ)server.o | $(BIN)
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
$(BIN)game : $(OBJ)main.o $(OBJ)input.o $(OBJ)battle.o $(OBJ)game.o\
$(OBJ)options.o $(OBJ)host.o $(OBJ)join.o $(OBJ)overworld.o $(OBJ)net.o\
| $(BIN)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
$(BINARIES) : % : $(BIN)%
ln -sf $< $@