Created
November 14, 2019 17:17
-
-
Save Skalnark/1c8d7fc1578827fb4a1b9cff777da16a to your computer and use it in GitHub Desktop.
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
#### define o compilador | |
CPPC = g++ | |
############################# | |
#### opcoes de compilacao e includes | |
CCOPT = -O3 -fPIC -fexceptions -DNDEBUG -DIL_STD -std=c++11 | |
CONCERTINCDIR = $(CONCERTDIR)/include | |
CPLEXINCDIR = $(CPLEXDIR)/include | |
############################# | |
#### diretorios com os source files e com os objs files | |
SRCDIR = src | |
OBJDIR = obj | |
############################# | |
#### lista de todos os srcs e todos os objs | |
SRCS = $(wildcard $(SRCDIR)/*.cpp) | |
OBJS = $(patsubst $(SRCDIR)/%.cpp, $(OBJDIR)/%.o, $(SRCS)) | |
############################# | |
#### regra principal, gera o executavel | |
Name: $(OBJS) | |
@echo "\033[31m \nLinking all objects files: \033[0m" | |
$(CPPC) $(OBJS) -o $@ | |
############################ | |
#inclui os arquivos de dependencias | |
-include $(OBJS:.o=.d) | |
#regra para cada arquivo objeto: compila e gera o arquivo de dependencias do arquivo objeto | |
#cada arquivo objeto depende do .c e dos headers (informacao dos header esta no arquivo de dependencias gerado pelo compiler) | |
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp | |
@echo "\033[31m \nCompiling $<: \033[0m" | |
$(CPPC) $(CCFLAGS) -c $< -o $@ | |
@echo "\033[32m \ncreating $< dependency file: \033[0m" | |
$(CPPC) -std=c++11 -MM $< > $(basename $@).d | |
@mv -f $(basename $@).d $(basename $@).d.tmp #proximas tres linhas colocam o diretorio no arquivo de dependencias (g++ nao coloca, surprisingly!) | |
@sed -e 's|.*:|$(basename $@).o:|' < $(basename $@).d.tmp > $(basename $@).d | |
@rm -f $(basename $@).d.tmp | |
#apagar objetos e arquivos de dependencia | |
clean: | |
@echo "\033[31mcleaning obj directory \033[0m" | |
@rm Name -f $(OBJDIR)/*.o $(OBJDIR)/*.d | |
rebuild: clean Name |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment