"Make clean" no limpia las dependencies con Automake?

Tengo un proyecto de C ++ que usa Autoconf y Automake. Decidí que hay demasiados files fuente en mi directory src y moví algunos files a un subdirectory. Luego, modifiqué Makefile.am y cambié estos files de source.cpp a subdir/source.cpp . Sabía que este enfoque debería funcionar, ya que lo hice antes para algunos files nuevos (pero luego no cambié el nombre). Ahora ejecuté lo siguiente, como de costumbre:

 autoreconf ./configure make clean make 

Recibí un post de error de algo como esto:

 No rule to make target "source.cpp" needed for "source.o" 

No entendí qué salió mal. Revisé mi Makefile, pero parecía estar bien. Así que cloné mi repository de git en un lugar nuevo y probé una marca allí, y funcionó. No hay problema, pensé, e hice un git clean -xf en mi directory original. Después de esto, la compilation todavía no funcionaba. Ahora hice un diff en las dos estructuras de directory (después de otro git clean -xf , y encontré que quedaba un directory .deps . Después de eliminar eso, compiló.

La moraleja de la historia es la siguiente:

  • make clean no elimina dependencies.
  • git clean -xf no elimina dependencies (probablemente debido al directory oculto).

¿Hay alguna forma de hacer make clean (o posiblemente git clean ) elimine este directory automáticamente? Claro que puedo hacerlo manualmente, pero es muy molesto que haya files de dependencia después de una limpieza.

make clean solo hace lo que sea el objective limpio en tu file MAKE. Si desea eliminar el directory .deps , agregue

 clean:: rm -rf .deps 

al Makefile

Si quieres que git clean haga esto por ti, simplemente agrega el git clean -fxd -d : git clean -fxd también limpiará los subdirectorys sin seguimiento.

¿Hay alguna forma de hacer que clean (o posiblemente git clean) elimine este directory automáticamente?

Utilice make distclean lugar de make clean que eliminará .deps .

Si está dispuesto a ejecutar git clean -xf , debería estar dispuesto a ejecutar git clean -xfd .

Desde la git help clean :

-d Remove untracted directories in addition to untracted files.

    Intereting Posts