2012-02-14 11 views
13

मेरे पास एक आदेश है जो ओएसएक्स/यूनिक्स में एक और एक और डेबियन/लिनक्स में काम करता है। मैं अपने आवेदन के लिए एक मेक फाइल बनाना चाहता हूं लेकिन ओएस का पता लगाने और तदनुसार कमांड जारी करने की आवश्यकता है। मैं ऐसा कैसे कर पाऊंगा?मेक फ़ाइल में ओएस का पता कैसे लगाया जाए?

+0

संभव डुप्लिकेट http://stackoverflow.com/questions/714100/os-: अपने Makefile में, आप की तरह कुछ लिख सकता है पता लगाने-मेकफ़ाइल) – Anko

उत्तर

25

ऐसा करने के लिए आप uname का उपयोग कर सकते हैं।

OS := $(shell uname) 
ifeq $(OS) Darwin 
# Run MacOS commands 
else 
# check for Linux and run other commands 
endif 
+2

इस कोड को किसी एक लक्ष्य के अंदर कैसे निष्पादित किया जा सकता है? – Mikhail

0

autotools का उपयोग करें। यह पोर्टेबल स्रोत कोड पैकेज बनाने का एक मानक तरीका है।

14

क्या मेरे लिए काम किया

OS := $(shell uname) 
ifeq ($(OS),Darwin) 
    # Run MacOS commands 
else 
    # check for Linux and run other commands 
endif 
[ओएस का पता लगाने makefile] (की
संबंधित मुद्दे