Что делали пользователи или использовали перед командой?

Я использую Gentoo в качестве основной домашней настольной ОС. У меня с 2004 года. Я ценю команду emerge для управления исходной ОС, а также ее работу. Время от времени я проверяю другие дистрибутивы, но я особенно люблю Linux From Scratch – для тех из вас, кто не знает . Конечно, я никогда не просматривал всю книгу, потому что использование Gentoo испортило мне в этом отношении. Я считаю Gentoo LFS + диспетчером пакетов. Я, наконец, решил, что закончу книгу, поэтому я запустил XUbuntu на виртуальной машине, чтобы имитировать новизну и …


Я следую за кандидатом на выпуск версии 3 – Systemd CLFS , и он ударил меня в главе 6 – «Временная система – сделать» . Если пользователь должен make чтобы скомпилировать версию Make, возникает проблема причинности курица и яйца. Это приводит меня к моим следующим логическим вопросам.

  1. Когда Стюарт Фельдман создал make в 1976 году, как компьютерный сборник скомпилировал его программу, если их ОС не содержала ОС-зависимый make ? Могу ли я предположить, что приведенная ниже статья WikiPedia верна для каждой ОС?

  2. Он должен был сделать пакет, чтобы включить каждую версию, зависящую от ОС, для завершения 1? (Смотри ниже)

  3. Если мне нужна программа A, но она была доступна только для компиляции на OS A, мне пришлось покупать ОС A, даже если я использую OS B? (Пожалуйста, проигнорируйте Windows здесь, если возможно.)

Обновить

  1. Основываясь на комментарии Jimmij, были ли конкретные компиляторы OS такими же, как и OS Dependent?

WikiPedia говорит:

Перед вступлением в Make, система сборки Unix чаще всего состояла из зависящих от операционной системы сценариев «make» и «install», связанных с источником их программы. Возможность сочетать команды для разных целей в один файл и возможность абстрагироваться от отслеживания зависимостей и обработки архивов была важным шагом в направлении современной среды сборки.

Кроме того, обратите внимание, что я ищу здесь историческую перспективу, так как я родился в 1976 году.

Make просто для удобства. Вы можете создавать программное обеспечение без него, это просто сложнее.

Когда вы запускаете make для создания чего-либо, он показывает вам команды, которые он запускает. Вы можете запустить эти команды вручную и получить тот же эффект.

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

Создал файл с именем test .
Я могу получить тот же результат, просто сделав:

 cc test.c -o test 

Если make не существует, вы можете либо поручить пользователям запускать эту команду cc вручную, либо вы можете распространять скрипт оболочки и инструктировать их для запуска скрипта.