O que os usuários fizeram ou usaram antes do comando Make?

5

Eu uso o Gentoo como meu principal sistema operacional de desktop doméstico. Eu tenho desde ~ 2004. Eu aprecio o comando emerge para gerenciar um sistema operacional baseado em fonte, assim como faz. De vez em quando eu verifico outras distribuições, mas gosto muito de Linux From Scratch - para aqueles de vocês que não conhecem . Eu nunca passei por todo o livro porque usar o Gentoo me estragou a esse respeito. Eu considero o Gentoo como sendo o LFS + um Gerenciador de Pacotes. Eu finalmente decidi que vou completar o livro, então eu coloquei o XUbuntu em uma VM para simular a novidade e ...

Estou acompanhando o release candidate para a Versão 3 - Systemd do CLFS , e me bateu em Capítulo 6 - Sistema Temporário - Make . Se um usuário precisar de make para compilar uma versão do Make, o Problema de causalidade de galinha e ovo aparece em> Isso me leva às minhas próximas perguntas lógicas.

  1. Quando Stuart Feldman criou make em 1976, como o público da computação compilou sua programa se o seu sistema operacional não continha um depenent OS make ? Devo assumir que o artigo da WikiPedia abaixo é válido para todos os sistemas operacionais?

  2. Ele teve que empacotar para incluir todas as versões do make dependentes do SO para completar 1? (veja abaixo)

  3. Se eu precisasse do Programa A, mas ele estivesse disponível apenas para compilar no SO A, eu teria que comprar o SO A, mesmo se eu usasse o SO B? (Ignore Windows aqui, se possível.)

Atualizar

  1. Com base no comentário do jimmij, Os compiladores específicos do SO existiam da mesma forma que o make dependia do SO?

WikiPedia diz:

Before Make's introduction, the Unix build system most commonly consisted of operating system dependent "make" and "install" shell scripts accompanying their program's source. Being able to combine the commands for the different targets into a single file and being able to abstract out dependency tracking and archive handling was an important step in the direction of modern build environments.

Além disso, por favor, note que estou procurando alguma perspectiva histórica aqui, como eu nasci em 1976.

    
por eyoung100 10.10.2014 / 20:20

1 resposta

5

Make é simplesmente por conveniência. Você pode construir software sem ele, é apenas mais difícil.

Quando você executa make para criar algo, ele mostra os comandos que está sendo executado. Você pode executar esses comandos manualmente e obter o mesmo efeito.

$ echo "int main() {}" > test.c
$ make test
cc     test.c   -o test

Que criou um arquivo chamado test .
Eu posso obter o mesmo resultado apenas fazendo:

cc test.c -o test

Se o make não existisse, você poderia instruir os usuários a executar esse comando cc manualmente, ou você poderia distribuir um script de shell e instruí-los a executar o script.

    
por 10.10.2014 / 20:58