view Makefile.gen @ 62:baccf2044289

Move the OpenGL rendering, setup etc. into a separate module/class, perhaps facilitating other types of renderers in future .. maybe.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 14 Dec 2019 16:39:20 +0200
parents 7b138613e2fc
children 03aa729a9e90
line wrap: on
line source

CXXFLAGS += -O3 -W -Wall -std=c++11
LDFLAGS += 
CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS)

MKDIR ?= mkdir
MKDIR_P ?= $(MKDIR) -p
BINPATH ?= ./

ifneq ($(V),1)
COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $<
COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+)
LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+)
LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@
else
COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $<" && $(CC) $(CFLAGS) -c -o $@ $<
COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $<" && $(CXX) $(CXXFLAGS) -c -o $@ $<
LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+)
LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+)
LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@
endif

BINARIES = gldragon ply2bin

TARGETS += \
	$(addprefix $(BINPATH),$(addsuffix $(BINEXT),$(BINARIES)))

NOBUILD_TARGETS +=
NOINST_TARGETS += 
CLEAN_TARGETS +=
DISTCLEAN_TARGETS += 


###
### Target rules
###
all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)


$(OBJPATH)%.o: %.cpp %.h
	$(COMPILE_CXX_OBJ)

$(OBJPATH)%.o: %.cpp
	$(COMPILE_CXX_OBJ)


$(BINPATH)gldragon$(BINEXT): $(addprefix $(OBJPATH), gldragon.o dmglrender.o dmscene.o dmutil.o)
	$(LINK_CXX_BIN) $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS)

$(BINPATH)ply2bin$(BINEXT): $(addprefix $(OBJPATH), ply2bin.o dmscene.o dmutil.o)
	$(LINK_CXX_BIN) $(LDFLAGS) $(TOOL_LDFLAGS)


###
### Special targets
###
clean:
	-$(RM) $(TARGETS) $(NOINST_TARGETS) $(CLEAN_TARGETS) $(OBJPATH)*.o

distclean: clean
	-$(RM) $(DISTCLEAN_TARGETS) *~ core *.core

.PHONY: clean distclean all