Como alterar as regras internas do make

Como alterar as regras internas do make

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 fooem um diretório que contém um arquivo chamado, foo.cppele será executado g++ foo.cpp -o foo mesmo que não haja nenhum makefileno 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, ou n.Ccom 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 -pem um diretório sem Makefile para aprender todos os padrões e regras integradas.

informação relacionada