2010-04-30 13 views
45

एक चर रिटर्न MINGW32_NT-5.1 या CYGWIN_NT-5.1. (हां, अंत में डॉट)Makefile: स्ट्रिंग

कि दिए गए वर की तुलना करने की आवश्यकता शामिल NT-5.1 कहीं भी तैनात।

साइगविन का उपयोग करना और किसी भी * निक्स के साथ संगत होना चाहते हैं।

उत्तर

75

findstring समारोह क्या तुम्हारे दिल इच्छाओं है:

$(findstringका एक घटना के लिए)

खोजों में मिल, में पाते हैं। यदि ऐसा होता है, तो मान खोजें; अन्यथा, मान खाली है। आप किसी दिए गए स्ट्रिंग में किसी विशिष्ट सबस्ट्रिंग की उपस्थिति के लिए परीक्षण करने के लिए एक सशर्त में इस फ़ंक्शन का उपयोग कर सकते हैं। इस प्रकार, दो उदाहरण,

$(findstring a,a b c) 
$(findstring a,b c) 

मूल्यों "a" और "" (रिक्त स्ट्रिंग) क्रमश: उत्पादन,। findstring के व्यावहारिक अनुप्रयोग के लिए Testing Flags देखें।

कुछ की तरह:

ifneq (,$(findstring NT-5.1,$(VARIABLE))) 
    # Found 
else 
    # Not found 
endif 
+1

बढ़िया है, वास्तव में क्या मैं चाहता हूँ। सिर्फ एक सवाल - 'ifneq (, $ (... ' – Pablo

+3

के लिए यहां अल्पविराम क्या है' ifneq (ए, बी) 'जहां इसे खाली स्ट्रिंग है और बी' $ (findstring ...) ' यह अजीब लगता है क्योंकि आप मेकफ़ाइल में स्ट्रिंग्स उद्धृत नहीं करते हैं। –

+1

क्या 'ढूंढने वाला' केस संवेदनशील है? यदि हां, तो केस असंवेदनशील मिलान करने का कोई आसान तरीका है? मैनुअल स्पष्ट नहीं था ... –

11
VARIABLE=NT-5.1_Can_be_any_string 
ifeq ($(findstring NT-5.1,$(VARIABLE)),NT-5.1) 
    # Found 
    RESULT=found 
else 
    # Not found 
    RESULT=notfound 
endif 

all: 
    @echo "RESULT=${RESULT} , output=$(findstring NT-5.1,$(VARIABLE))" 

यह दिया स्ट्रिंग से मेल खाता है और रिटर्न

+4

यह काम करता है और पढ़ो स्वीकृत उत्तर, आईएमओ से बेहतर है। –

संबंधित मुद्दे