Quiero ser capaz de dividir mi bin y mis archivos de código en directorios separados ya que se está volviendo difícil de administrar en su estado actual.¿Cómo puede Makefile utilizar directorios separados para el código fuente y los binarios?
que idealmente gustaría tener
project_dir
|-Makefile
|-run_tests.sh
|
|__source
| |-program1.cpp
| |-program2.cpp
|
|__bin
|-program1
|-program2
Sin embargo soy incapaz de conseguir que esto funcione con mi sistema actual sin tener que escribir manualmente las reglas para cada programa (tenga en cuenta que cada programa es una programa independiente, no una serie de objetos vinculados entre sí)
#Current make system
BIN=./bin/
SOURCE=./source/
LIST=program1 program2...
all: $(LIST)
%: $(SOURCE)%.cpp
$(CC) $(INC) $< $(CFLAGS) -o $(BIN)[email protected] $(LIBS)
esto funciona, excepto que yo no puede ver el objetivo en la ruta actual por lo que piensa que siempre se vuelve a generar los binarios incluso si los archivos de origen no tienen cambiado
Mi único pensamiento en este momento es escribir un programa para hacer un archivo MAKE pero no quiero hacer eso.
El enfoque tradicional es llamar al directorio de origen 'src', construir los binarios allí, y tener un paso' install' separado en el que los archivos binarios se copian en el directorio 'bin', incluso hay una utilidad especial' instalar' para hacer eso. – reinierpost