Actualizado a makefile de Mon
This commit is contained in:
125
Makefile_no
Normal file
125
Makefile_no
Normal file
@@ -0,0 +1,125 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# DIRECTORIES #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
# Project root directory, so everything will be relative to it:
|
||||
DIR_ROOT:= $(dir $(abspath $(MAKEFILE_LIST)))
|
||||
|
||||
# Root directory for the source code:
|
||||
DIR_SOURCES:= $(addsuffix /, $(DIR_ROOT)source)
|
||||
|
||||
# Executables will be here.
|
||||
DIR_BIN:= $(addsuffix /, $(DIR_ROOT))
|
||||
|
||||
# Directories for build artifacts (.o and .d files):
|
||||
DIR_BUILD:= $(addsuffix /, $(DIR_ROOT)build)
|
||||
|
||||
INCLUDES:= -I$(DIR_SOURCES)
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# FLAGS #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
# Compiler flags (for the C++ compiler):
|
||||
CXXFLAGS:= -std=c++11 -Wall -Os -ffunction-sections -fdata-sections
|
||||
|
||||
# Linker flags (SFML libraries):
|
||||
LDFLAGS:= -lSDL2
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# FILES #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
SOURCES := $(shell find $(DIR_SOURCES) -name '*.cpp')
|
||||
OBJECTS := $(subst $(DIR_SOURCES), $(DIR_BUILD), $(SOURCES))
|
||||
OBJECTS := $(OBJECTS:.cpp=.o)
|
||||
DEPENDENCIES:= $(OBJECTS:.o=.d)
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# TARGETS #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
TARGET_NAME:= coffee_crisis_arcade_edition
|
||||
TARGET_FILE:= $(DIR_BIN)$(TARGET_NAME)
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# OTHER COMMANDS #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
RM:= rm -rf
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# RULES #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
.PHONY: all a1
|
||||
|
||||
all: a1
|
||||
|
||||
a1: $(TARGET_FILE)
|
||||
|
||||
$(TARGET_FILE): $(OBJECTS)
|
||||
mkdir -p $(@D)
|
||||
$(CXX) $(SOURCES) $(CXXFLAGS) $(INCLUDES) $(LDFLAGS) -o $(TARGET_FILE)
|
||||
|
||||
$(DIR_BUILD)%.o: $(DIR_SOURCES)%.cpp
|
||||
mkdir -p $(@D)
|
||||
$(CXX) -c $< $(CXXFLAGS) $(INCLUDES) -o $@
|
||||
|
||||
-include $(DEPENDENCIES)
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# CLEAN #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
clean:
|
||||
$(RM) $(DIR_BIN) $(DIR_BUILD)
|
||||
|
||||
###############################################################################
|
||||
# #
|
||||
# PRINT-VARIABLES #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
.PHONY: print-variables
|
||||
|
||||
print-variables:
|
||||
@echo MAKEFILE_LIST: $(MAKEFILE_LIST)
|
||||
|
||||
@echo "DIR_ROOT :" $(DIR_ROOT)
|
||||
@echo "DIR_SOURCES:" $(DIR_SOURCES)
|
||||
@echo "DIR_BIN :" $(DIR_BIN)
|
||||
@echo "DIR_BUILD :" $(DIR_BUILD)
|
||||
|
||||
@echo "DIR_IMGUI :" $(DIR_IMGUI)
|
||||
@echo "DIR_IMGUI_SFML:" $(DIR_IMGUI_SFML)
|
||||
@echo "INCLUDES :" $(INCLUDES)
|
||||
|
||||
@echo CXX: $(CXX)
|
||||
@echo CXXFLAGS: $(CXXFLAGS)
|
||||
@echo LDFLAGS: $(LDFLAGS)
|
||||
|
||||
@echo SOURCES: $(SOURCES)
|
||||
@echo OBJECTS: $(OBJECTS)
|
||||
@echo DEPENDENCIES: $(DEPENDENCIES)
|
||||
|
||||
@echo TARGET_NAME: $(TARGET_NAME)
|
||||
@echo TARGET_FILE: $(TARGET_FILE)
|
||||
|
||||
@echo RM: $(RM)
|
||||
Reference in New Issue
Block a user