2012-02-14 24 views
13

Ho un comando che funziona in un modo in OSX/Unix e un altro in Debian/Linux. Voglio creare un file make per la mia applicazione, ma ho bisogno di rilevare il sistema operativo ed emettere il comando di conseguenza. Come potrei fare questo?Come rilevare il SO in un file make?

+0

possibile duplicato del [OS makefile rilevazione] (http://stackoverflow.com/questions/714100/os- detecting-makefile) – Anko

risposta

25

È possibile utilizzare uname per eseguire questa operazione. Nel vostro Makefile, si potrebbe scrivere qualcosa di simile:

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

Come può essere eseguito questo codice all'interno di uno degli obiettivi? – Mikhail

0

Utilizzare autotools. È un modo standard per creare pacchetti di codice sorgente portatile.

14

Quello che ha funzionato per me

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