Cómo cambiar las reglas integradas

Cómo cambiar las reglas integradas

Me gustaría saber si hay alguna manera de cambiar las reglas que make aplica automáticamente cuando no hay un archivo make. Para dar un ejemplo, si escribe make fooen un directorio que contiene un archivo llamado, foo.cppse ejecuta g++ foo.cpp -o foo incluso si no hay ningún archivo makefileen el directorio.

Me gustaría cambiarlas para adaptarlas a mis necesidades, decir algo como g++ foo.cpp -o foo --std=c++11 -W -O2 -I .... pero también agregar nuevas reglas para otras extensiones como .c, .java o .tex.

Sé cómo definir las nuevas reglas, pero no sé dónde especificarlas además de crear un archivo MAKE en cada directorio. Supongo que hay algún archivo que contiene todas estas reglas integradas, pero no he podido encontrarlo ni cómo sobrecargarlo con una propia.

Trabajo principalmente con Mingw y cygwin.

Respuesta1

De acuerdo con lamanual, la regla es en realidad:

no se elabora automáticamente a partir de n.cc, n.cpp, o n.Ccon una receta del formulario ' $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c'. Le recomendamos que utilice el sufijo " .cc" para archivos fuente de C++ en lugar de " .C".

Entonces eso nos deja ajustar las variables de entorno (por ejemplo, en ~/.bashrc) o simplemente crear un Makefile que anule esa regla.

Úselo make -pen un directorio sin Makefile para conocer todos los valores predeterminados y las reglas integradas.

información relacionada