5 NİSAN 2011, Salı
Nasıl dosya Makefile varsa kontrol edebilirim?
Benim makefle temiz bölümünde dosyayı kalıcı olarak silmeden önce olup olmadığını kontrol etmek için çalışıyorum. Bu kodu kullanıyorum ama hata alıyorum.
Bunun nesi yanlış?
if [ -a myApp ]
then
rm myApp
fi
Bu hata mesajı alıyorum
f [ -a myApp ]
/bin/sh: Syntax error: end of file unexpected (expecting "then")
make: *** [clean] Error 2
CEVAP
13 Aralık 2013, Cuma
Garip bir çok insan bunun için kabuk komut dosyası kullanarak. Herhangi bir hedef dışında yazıyorum çünkü bir şekilde yerli makefile sözdizimi kullanmak isteyen bendim. wildcard
eğer dosya varsa kontrol etmek için bu işlevi kullanabilirsiniz:
ifeq ($(UNAME),Darwin)
SHELL := /opt/local/bin/bash
OS_X := true
else ifeq (,$(wildcard /etc/redhat-release))
OS_RHEL := true
else
OS_DEB := true
SHELL := /bin/bash
endif
Güncelleme:
Gerçekten benim için çalışan bir yolunu buldum:
ifneq ("$(wildcard $(PATH_TO_FILE))","")
FILE_EXISTS = 1
else
FILE_EXISTS = 0
endif
Bunu Paylaş:
Nasıl dosya jQuery veya JavaScript var...
Nasıl bir Java dosyası varsa kontrol e...
Nasıl bir değişkeni Python varsa kontr...
Nasıl eğer dizin varsa PHP ile kontrol...
Nasıl Perl bir dizi belirli bir değeri...