
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 foo
en un directorio que contiene un archivo llamado, foo.cpp
se ejecuta
g++ foo.cpp -o foo
incluso si no hay ningún archivo makefile
en 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
, on.C
con 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 -p
en un directorio sin Makefile para conocer todos los valores predeterminados y las reglas integradas.