
Gostaria de saber se existe uma forma de alterar as regras aplicadas automaticamente pelo make quando não existe o makefile. Para dar um exemplo, se você escrever make foo
em um diretório que contém um arquivo chamado, foo.cpp
ele será executado
g++ foo.cpp -o foo
mesmo que não haja nenhum makefile
no diretório.
Gostaria de alterá-los para atender às minhas necessidades, digamos algo como,
g++ foo.cpp -o foo --std=c++11 -W -O2 -I ....
mas também adicionar novas regras para outras extensões, como .c, .java ou .tex
Eu sei como definir as novas regras, mas não sei onde especificá-las além de criar um makefile em cada diretório. Suponho que exista algum arquivo que contenha todas essas regras internas, mas não consegui encontrá-lo ou como sobrecarregá-lo com uma das minhas.
Estou trabalhando principalmente com Mingw e cygwin.
Responder1
De acordo commanual, a regra é na verdade:
não é feito automaticamente a partir de
n.cc
,n.cpp
, oun.C
com uma receita no formato '$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
'. Recomendamos que você use o sufixo '.cc
' para arquivos de origem C++ em vez de '.C
'.
Então, basta ajustar suas variáveis de ambiente (por exemplo, in ~/.bashrc
) ou apenas criar um Makefile que substitua essa regra.
Use make -p
em um diretório sem Makefile para aprender todos os padrões e regras integradas.