Created
January 22, 2015 19:13
-
-
Save InusualZ/c8958c7a7f3b111f1cd8 to your computer and use it in GitHub Desktop.
Generic Executable Makefile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Makefile Settings | |
| #Project Name | |
| PROJECT=BenchMine | |
| #Source directory | |
| SOURCES_DIRECTORY=src | |
| #Include Directory | |
| INCLUDE_DIRECTORIES="include/" | |
| #Source files extension | |
| SOURCE_FILE_EXT=.cpp | |
| #Sources Files | |
| SOURCES_FILES=$(shell find $(SOURCES_DIRECTORY)/ -name '*$(SOURCE_FILE_EXT)') | |
| #Build Directory | |
| BUILD_DIRECTORY=build | |
| #Final Binarie Directory | |
| BINARY_DIRECTORY=$(BUILD_DIRECTORY)/bin | |
| #Source files compiled = Object = .o | |
| OBJECTS_FILES=$(addprefix $(BUILD_DIRECTORY)/, $(SOURCES_FILES:$(SOURCE_FILE_EXT)=.o)) | |
| #Compiler to be used | |
| COMPILER=g++ | |
| #Compiler Flags | |
| CFLAGS=-std=c++11 -Wall -I $(INCLUDE_DIRECTORIES) | |
| #Link Flags? | |
| LFLAGS= -lws2_32 -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic | |
| all: $(PROJECT) | |
| $(PROJECT): $(OBJECTS_FILES) | |
| @echo " LD $@" | |
| @mkdir -p $(BINARY_DIRECTORY)/ | |
| @$(COMPILER) $(wildcard $(BUILD_DIRECTORY)/*.o) $(LFLAGS) -o $(BINARY_DIRECTORY)/$@ | |
| @echo "$@ have been succesfully compiled!" | |
| $(BUILD_DIRECTORY)/%.o: %.cpp | |
| @mkdir -p $(BUILD_DIRECTORY) | |
| @echo -e "\tCompiling: $<" | |
| @$(COMPILER) -c $< $(CFLAGS) -MMD | |
| @mv -fu $(notdir $@) *.d $(BUILD_DIRECTORY)/ | |
| clean: | |
| @rm -rf $(BUILD_DIRECTORY) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment