2012-03-04 27 views
10

मैं इस है:जीएनयू मेक: सूची में शामिल होने और इसे विभाजक के साथ अलग कैसे करें?

FOO = foo1 foo2 ... fooN 

और इन सभी स्ट्रिंग में शामिल होने के लिए और साथ अलग उदाहरण, colong के लिए, करना चाहते हैं: बाहरी यूनिक्स का उपयोग किए बिना,

foo1:foo2:foo3:...:fooN 

जीएनयू में यह करने के लिए कैसे बनाने उपकरण?

उत्तर

14

नीचे दिए गए कोड को देखें।

# A literal space. 
space := 
space += 

# Joins elements of the list in arg 2 with the given separator. 
# 1. Element separator. 
# 2. The list. 
join-with = $(subst $(space),$1,$(strip $2)) 

उपयोग:

FOO = foo1 foo2 ... fooN 

COLON_SEPARATED_FOO := $(call join-with,:,$(FOO)) 
12

आप बस पेट के साथ रिक्त स्थान की जगह ले सकता:

EMPTY := 
SPACE := $(EMPTY) $(EMPTY) 
FOO = foo1 foo2 ... fooN 
FOO_LIST = $(subst $(SPACE),:,$(FOO)) 

FOO_LISTfoo1:foo2:...:fooN है।

+1

क्यों न केवल 'FOO_LIST = $ ($ $ (स्पेस),:, $ (FOO)) '? – Beta

+0

@ बीटा अच्छा बिंदु। सही किया। –

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

  • कोई संबंधित समस्या नहीं^_^