Descobrir extensão de arquivos executáveis?

5

Quando estou construindo software a partir do código-fonte em um sistema GNU + Linux, durante o estágio ./configure , frequentemente vejo a seguinte linha:

checking for suffix of executables...

Como faço para criar essa verificação em um script bash?

A razão pela qual eu quero saber isso é que eu quero criar um makefile no qual ele compila com o sufixo .exe no Cygwin, mas nenhum sufixo no verdadeiro GNU + Linux.

    
por Muhammad Moaz Imtiaz 03.07.2014 / 07:30

2 respostas

5

O teste é feito compilando-se um pequeno programa C fictício e verificando como o compilador nomeia o arquivo de saída.

O exemplo a seguir é uma versão simplificada do que o configure está fazendo

#!/bin/sh

cat << EOT > dummy.c
int main(int argc, char ** argv) {
    return 0;
}
EOT

gcc -o dummy dummy.c

if [ -f dummy.exe ] ; then
  # exe
fi

Sugiro que você use o autoconf para gerar um script de configuração e usá-lo para o seu propósito.

    
por 03.07.2014 / 08:00
-1

Isso lhe dará a extensão do arquivo:

FILENAME=/tmp/testfile.exe
echo "${FILENAME##*.}"

resultado:

exe
    
por 03.07.2014 / 07:51