Со временем Linux (точнее — операционная система, которую обычно называют «Linux», представляющая собой ядро Linux и GNU-инструменты) стала гораздо сложнее, чем Unix — ОС, стоящая у истоков Linux. Это, конечно, неизбежно. Но это означает, что тем, кто пользуется Linux уже давно, нужно было постепенно расширять свои знания и навыки, осваивая новые возможности. А вот на тех, кто начинает работу в Linux в наши дни, сваливается необходимость освоить систему, так сказать, за один присест. Эту ситуацию хорошо иллюстрирует пример того, как в Linux обычно осуществляется сборка программ. Практически во всех проектах используется make
— утилита, которая, запуская процессы компиляции кода, пытается делать только то, что нужно. Это было особенно важно в те времена, когда компьютеру с процессором, работающим на частоте в 100 МГц, и с медленным жёстким диском, нужно было потратить целый день на то, чтобы собрать какой-нибудь серьёзный проект. Программа make
, судя по всему, устроена очень просто. Но сегодня у того, кто почитает типичный файл Makefile
, может закружиться голова. А во многих проектах используются дополнительные абстракции, которые ещё сильнее всё запутывают.
В этом материале я хочу продемонстрировать вам то, насколько простым может быть файл Makefile
. Если вы способны создать простой Makefile
, это значит, что вы сможете найти гораздо больше способов применения утилиты make
, чем может показаться на первый взгляд. Примеры, которые я будут тут показывать, основаны на языке C, но дело тут не в самом языке, а в его распространённости и широкой известности. С помощью make
можно, средствами командной строки Linux, собрать практически всё что угодно.
Читать полностью »