Files
GameLib/Example.GameLib/Makefile.common.mk

75 lines
1.5 KiB
Makefile

########################
# Utility Declarations #
########################
ifeq ($(VERBOSE_BUILD),true)
DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
DO_CXX=$(CXX) $(CFLAGS) -o $@ -c $<
else
DO_CC=@$(ECHO) "CC: $@" ;\
$(CC) $(CFLAGS) -o $@ -c $<
DO_CXX=@$(ECHO) "CXX: $@" ;\
$(CXX) $(CFLAGS) -o $@ -c $<
endif
#####################
# Game Declarations #
#####################
GAME_HEADS := $(GAMELIB_HEADS) Game$(SLASH)GameEnts.h Game$(SLASH)GameMap.h
GAME_OBJS := \
$(BUILDDIR)$(SLASH)Game.o$(SLASH)GameEnts.o \
$(BUILDDIR)$(SLASH)Game.o$(SLASH)GameMap.o \
$(BUILDDIR)$(SLASH)Game.o$(SLASH)main.o
RES_GAME_OUT := $(BUILDDIR)$(SLASH)$(RES_GAME)
#################
# General Rules #
#################
.FORCE:
(cd $(GAMELIB_DIR) && make lib $(GAMELIB_MAKEPARAMS))
all: .FORCE $(BUILDDIR) $(RES_GAME_OUT)
$(BUILDDIR):
$(MKDIR) $(BUILDDIR)
$(MKDIR) $(BUILDDIR)$(SLASH)Game.o
full-clean: clean
(cd $(GAMELIB_DIR) && make clean $(GAMELIB_MAKEPARAMS))
clean:
$(RM) $(GAME_OBJS) $(RES_GAME_OUT)
run: $(BUILDDIR) $(RES_GAME_OUT)
$(LAUNCHER) ./$(RES_GAME_OUT) debug
rebuild: clean all
##############
# Game Rules #
##############
$(BUILDDIR)$(SLASH)Game.o$(SLASH)GameEnts.o: src$(SLASH)GameEnts.c $(HEADS)
$(DO_CC)
$(BUILDDIR)$(SLASH)Game.o$(SLASH)GameMap.o: src$(SLASH)GameMap.c $(HEADS)
$(DO_CC)
$(BUILDDIR)$(SLASH)Game.o$(SLASH)main.o: src$(SLASH)main.c $(HEADS)
$(DO_CC)
################
# Result Rules #
################
$(RES_GAME_OUT): $(GAME_OBJS)
@$(ECHO) "LINK: $@"
@$(CC) $(GAME_OBJS) $(STATICLIBS) -o $(RES_GAME_OUT) $(LIBS) $(CFLAGS) $(LDFLAGS)