Mercurial > hg > forks > gldragon
view Makefile.gen @ 85:2ce1f9f288c7
Strip Windows executables by default.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 02 Apr 2020 22:11:45 +0300 |
parents | 8a56cb177711 |
children | cc7fcaf139ef |
line wrap: on
line source
### ### Compiler flags ### CXXFLAGS += -O3 -W -Wall -std=c++11 LDFLAGS += 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 $(COMPILE_CXX_OBJ) $(OBJPATH)%.o: %.cpp %.h $(COMPILE_CXX_OBJ) $(OBJPATH)%.o: %.cpp $(COMPILE_CXX_OBJ) $(BINPATH)gldragon$(BINEXT): $(addprefix $(OBJPATH), gldragon.o dmglrender.o dmscene.o dmply.o dmutil.o) $(LINK_CXX_BIN) $(LDFLAGS) $(SDL_LDFLAGS) $(GL_LDFLAGS) $(BINPATH)ply2bin$(BINEXT): $(addprefix $(OBJPATH), ply2bin.o dmscene.o dmply.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