Pular para o conteúdo

Makefile identificando a plataforma ? [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Makefile identificando a plataforma ? [RESOLVIDO]

Enviado em 13/03/2012 - 17:27h


Olá Pessoal !

Como faço em um Makefile para identificar a Plataforma(Windows, Linux) ???

Pois tenho no Makefile +ou- assim:
------------------------------------------------------------
...
# Gerando o DLL para o Windows

DLLWRAP=dllwrap --output-def libas.def --implib libas.a $(OBJ) -lSDL --no-export-all-symbols --add-stdcall-alias -o libas.dll

...
------------------------------------------------------------

Grato !

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Makefile identificando a plataforma ? [RESOLVIDO]

Melhor resposta

Enviado em 13/03/2012 - 21:09h

basta você determinar a plataforma previamente, e então em seu alvo (nesse exemplo, all) você instrui a compilação conforme a plataforma atual:


UNAME = $(shell uname)
ifeq ($(UNAME), Linux)
PLATFORM=LIN
else
ifneq (,$(findstring MINGW,$(UNAME)))
PLATFORM=WIN
endif
ifneq (,$(findstring CYGWIN,$(UNAME)))
PLATFORM=WIN
endif
endif

all:
ifeq ($(PLATFORM), WIN)
# seus comandos e/ou definições para compilar para windows aqui
@echo "compilando para Windows..."
endif
ifeq ($(PLATFORM), LIN)
# seus comandos e/ou definições para compilar para linux aqui
@echo "compilando para Linux..."
endif

3. Re: Makefile identificando a plataforma ? [RESOLVIDO]

Enviado em 13/03/2012 - 19:06h

você pode verificar a plataforma através de uname, e então determinar se está sob MinGW ou Cygwin
exemplo:


UNAME := $(shell uname)

all:
ifneq (,$(findstring MINGW,$(UNAME)))
@echo "Win (MinGW)"
endif
ifneq (,$(findstring CYGWIN,$(UNAME)))
@echo "Win (Cygwin)"
endif
ifeq ($(UNAME), Linux)
@echo Linux
endif

4. Re: Makefile identificando a plataforma ? [RESOLVIDO]

Enviado em 13/03/2012 - 19:17h


Ixi ! , assim complicou. ;)

É que para Window queria Gerar um ( .dll ) e compilando no Linux gerar um ( .so ).

Acho que vou distribuir com 2 Makefiles ... makefiles não eh comigo.


Grato !

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder