run - ¿Puede un makefile tener un directorio como destino?
makefile windows (3)
Sí, un Makefile
puede tener un directorio como destino.
Su problema podría ser que el cd
no hace lo que usted quiere: lo hace cd
y el git clone
se lleva a cabo en el directorio original (del que se cd
, no del que se cd
). Esto se debe a que para cada comando en el Makefile
se crea un shell adicional. Una solución alternativa es ejecutar cd
y clonar como un solo comando con la shell &&
.
Esto debería funcionar:
bla/f: dir
cd dir && touch f
dir:
mkdir dir
Estoy tratando de decir "la descarga del repositorio git solo funcionará si el directorio tirar / existe. Si el directorio tirar / no existe, entonces hágalo"
yank/gist.el/gist.el : yank
cd yank ; git clone http://github.com/defunkt/gist.el.git
yank:
mkdir yank
Estoy usando makepp - http://makepp.sf.net y me aparece el error:
[metaperl@andLinux ~/edan/pkg/gist.el] makepp
makepp: Loading makefile `/home/metaperl/edan/pkg/gist.el/Makeppfile''
makepp: Entering directory `/home/metaperl/edan/pkg/gist.el''
mkdir yank
mkdir: cannot create directory `yank'': File exists
makepp: error: Failed to build target `/home/metaperl/edan/pkg/gist.el/yank'' [1]
makepp: 0 files updated, 0 phony targets built and 1 target failed
[metaperl@andLinux ~/edan/pkg/gist.el]
¿Pero por qué intentaría hacer el directorio yank si existe? La "fuente" ya ha creado ben ...
Tu makefile debe hacer lo que esperas. Dado que el yank no tiene dependencia, no se rehará si existe. Así que esto parece un error en makepp. Puede confirmar esto probando su makefile con una implementación tradicional de make.
En un archivo make, ¿es un nombre de directorio un objetivo falso o un objetivo "real"?
Lo que necesita es un requisito previo de solo pedido .
Una búsqueda rápida no reveló ninguna referencia para los requisitos previos de makepp y de solo pedido, pero aún puede funcionar.