Mercurial > hg > forks > gldragon
view Makefile.gen @ 103:f88859a8fa4b
Add note about code origins to COPYING.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 06 Oct 2022 05:02:07 +0300 |
parents | 8059aad101d1 |
children |
line wrap: on
line source
### ### Compiler flags ### ifneq ($(ASAN),) CXXFLAGS += -fsanitize=address LDFLAGS += -lasan else ifneq ($(TSAN),) CXXFLAGS += -fsanitize=thread LDFLAGS += -ltsan else CXXFLAGS += -O3 LDFLAGS += endif endif CXXFLAGS += -g -W -Wall -std=c++11 CXXFLAGS += $(SDL_CFLAGS) $(GL_CFLAGS) ### ### Tools, paths and directories ### MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p BINPATH ?= ./ ### ### Main targets and objects ### BINARIES = gldragon ply2bin TARGETS += \ $(addprefix $(BINPATH),$(addsuffix $(BINEXT),$(BINARIES))) NOBUILD_TARGETS += NOINST_TARGETS += CLEAN_TARGETS += DISTCLEAN_TARGETS += ### ### Functions and compilation/link commands ### ifneq ($(V),1) DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) else DO_CMD=/bin/echo -E $(3) && $(3) endif DO_MKDIR=if test ! -z "$(1)" -a ! -d "$(1)"; then /bin/echo -E " MKDIR $(1)"; mkdir -p "$(1)"; fi COMPILE_C_OBJ = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) LINK_C_BIN = \ @$(call DO_MKDIR,$(BINPATH)) ; \ $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) COMPILE_CXX_OBJ = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) LINK_CXX_BIN = \ @$(call DO_MKDIR,$(BINPATH)) ; \ $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) LINK_STATIC_LIB = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) ### ### Generic target rules ### all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) $(OBJPATH)dmglrender.o: dmglrender.cpp dmglrender.h dmglexts.h $(call COMPILE_CXX_OBJ,) $(OBJPATH)%.o: %.cpp %.h $(call COMPILE_CXX_OBJ,) $(OBJPATH)%.o: %.cpp $(call COMPILE_CXX_OBJ,) $(BINPATH)gldragon$(BINEXT): $(addprefix $(OBJPATH), gldragon.o dmglrender.o dmscene.o dmply.o dmutil.o) $(call LINK_CXX_BIN, $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS)) $(BINPATH)ply2bin$(BINEXT): $(addprefix $(OBJPATH), ply2bin.o dmscene.o dmply.o dmutil.o) $(call 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