SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • We've moved!

    We've moved!

    7 Ocak 2008
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008
  • pendrop gaming

    pendrop gami

    4 ŞUBAT 2013