En Unix, ¿puedo ejecutarme make
en un directorio sin cd
acceder primero a ese directorio?
En Unix, ¿puedo ejecutarme make
en un directorio sin cd
acceder primero a ese directorio?
Respuestas:
make -C /path/to/dir
Como se señaló en otras respuestas, make (1) tiene una -C
opción para esto; varios comandos tienen opciones similares (por ejemplo, tar). Es útil tener en cuenta que para otros comandos que carecen de tales opciones se puede usar lo siguiente:
(cd /dir/path && command-to-run)
Esto ejecuta el comando en un sub-shell que primero ha cambiado su directorio de trabajo (mientras deja solo el directorio de trabajo del shell principal). Aquí &&
se utiliza en lugar de ;
detectar casos de error en los que el directorio no se puede cambiar.
Si la razón por la que no desea cd a un directorio es porque necesita permanecer en el directorio actual para una tarea posterior, puede usar pushd y popd:
pushd ProjectDir ; make ; popd
Eso va al ProjectDir, ejecuta make y vuelve a donde estabas.
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
o
run:
./../build/test
etc.