LINUX.ORG.RU
Ответ на: комментарий от Harald

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

В нормальной системе сборки такого быть не должно. Должен быть человекочитаемый исходник, по которому быстро идет сборка. И никакого приаттачивания сгенерированных файлов к проекту

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от X512

ну если системы сборки для кого-то слишком сложные, пусть качает бинарники, вроде всё так и должно быть

Harald ★★★★★
()
Ответ на: комментарий от Harald

Остальные хотя бы без проблем распространяются в виде чисто исходных конфигурационных файлов, не требующих «для экономии времени» дополнительно прикладывать сгенерированные файлы

Ну и шаблоны m4 это жопа в плане синтаксиса.

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от Harald

Странно, но в причине треда сборка под сложный meson занимает 500 строк, а при удалении сборки под простой autotools удалили 1800 строк.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от Harald

правильно давать ссылку сюда

Исходники готового проекта с инструкцией по сборке нагляднее. А для деталей можно смотреть документацию.

X512 ★★★★★
()
Ответ на: комментарий от Harald

то, что ты приводишь как пример - это эквивалент ./configure && make install

Предлагаю ещё посмотреть исходники объявлений сборки и сравнить.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Предлагаю ещё посмотреть исходники объявлений сборки и сравнить.

Здравствуйте, это конкурс хелло ворлдов?

$ grep . configure.ac Makefile.am hello.c 
configure.ac:AC_PREREQ([2.63])
configure.ac:AC_INIT([hello], [0.0.1])
configure.ac:AC_CONFIG_AUX_DIR([build-aux])
configure.ac:AM_INIT_AUTOMAKE([-Wall -Werror foreign])
configure.ac:AC_PROG_CC
configure.ac:AM_PROG_CC_C_O
configure.ac:AC_CONFIG_FILES([
configure.ac:    Makefile
configure.ac:])
configure.ac:AC_OUTPUT
Makefile.am:bin_PROGRAMS = hello
Makefile.am:hello_SOURCES = hello.c
hello.c:#include <stdio.h>
hello.c:int main(void)
hello.c:{
hello.c:    printf("Hello, World!\n");
hello.c:    return 0;
hello.c:}
wandrien ★★★
() автор топика
Ответ на: комментарий от wandrien

Здравствуйте, это конкурс хелло ворлдов?

Зачем 2 файла сборки?

Meson:

> grep . meson.build main.c
meson.build:project('MinApp', 'c',
meson.build:    version : '1.0')
meson.build:executable('MinApp',
meson.build:    'main.c',
meson.build:    install : true)
main.c:#include <stdio.h>
main.c:int main(int argc, const char **argv)
main.c:{
main.c: printf("This is TestApp.\n");
main.c: return 0;
main.c:}

> meson build
The Meson build system
Version: 0.55.0
Source dir: /Haiku 64 (USB)/home/Tests/meson/meson/Test1
Build dir: /Haiku 64 (USB)/home/Tests/meson/meson/Test1/build
Build type: native build
Project name: MinApp
Project version: 1.0
C compiler for the host machine: cc (gcc 8.3.0 "cc (2019_05_24) 8.3.0")
C linker for the host machine: cc ld.bfd 2.26.1
Host machine cpu family: x86
Host machine cpu: bepc
Build targets in project: 1

Found ninja-1.10.0 at /bin/ninja
> ninja -C build
ninja: Entering directory `build'
[2/2] Linking target MinApp
> build/MinApp
This is TestApp.

Если добавить новый исходный файл, то ninja -C build автоматически переконфигурирует проект.

X512 ★★★★★
()
Ответ на: комментарий от X512

Зачем 2 файла сборки?

Затем, что в реальном проекте ты всё равно будешь делить это всё на файлы, чтобы не запутаться.

wandrien ★★★
() автор топика
Ответ на: комментарий от wandrien

То есть этот тред ты создал не про реальный проект? И мне мерещится, что там, вместо пары десятков Makefile.am, остался один meson.build? Или, может, не во всех системах сборки можно запутаться с одним файлом?

gremlin_the_red ★★★★★
()
Последнее исправление: gremlin_the_red (всего исправлений: 1)
Ответ на: комментарий от wandrien

Затем, что в реальном проекте ты всё равно будешь делить это всё на файлы, чтобы не запутаться.

Как-то пока не запутываюсь. И деление происходит по другому принципу.

X512 ★★★★★
()
Ответ на: комментарий от gremlin_the_red

И мне мерещится, что там, вместо пары десятков Makefile.am

никто ж не запрещал всё в одном Makefile.am держать, просто разработчик в своё время сделал такой выбор

Harald ★★★★★
()
Ответ на: комментарий от Harald

Ну вот гражданин выше утверждал, что тогда можно запутаться. Да и разработчик же разделил по какой-то причине? А meson.build не стал делить (возможно, по той простой причине, что он в 4 раза меньше, чем были Makefile.am в сумме).

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Есть два подхода, либо в каждой поддиректории проекта свой мейкфайл (и соответственно Makefile.am, его порождающий), либо один общий мейкфайл на весь проект. С размерами содержимого это мало связано

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.