LINUX.ORG.RU

опять autotools


0

0

configure отрабатывает отлично, выполняю make и получаю следующее:

[milo@office-gw ~/make_test]$ make
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/milo/make_test/missing --run autoheader)
autoheader-2.62: `configure.ac' or `configure.in' is required
*** Error code 1

Stop in /home/milo/make_test.
хотя configure.ac в данной папке присутствует. gmake'ом собирается нормально. данная проблема возникает только на FreeBSD, на linux все в порядке. в чем проблема?? вот configure.ac:
AC_PREREQ([2.61])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE
AC_PROG_MAKE_SET
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC

# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h memory.h netinet/in.h stdint.h stdlib.h string.h strings.h sys/param.h sys/socket.h syslog.h unistd.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T

# Checks for library functions.
AC_FUNC_ERROR_AT_LINE
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([atexit inet_ntoa memmove memset setlocale socket strcasecmp strchr strerror strncasecmp strrchr])

AC_CONFIG_FILES([Makefile
		 src/Makefile
		 src/search_retriever/Makefile
		 src/parser/Makefile
		 src/crawler_master/Makefile
		 src/surfer_master/Makefile
		 src/surfer_slave/Makefile
		 src/crawler_slave/Makefile
		 src/index_builder/Makefile
		 src/updater_master/Makefile
		 src/updater_slave/Makefile
		 src/doc_manager/Makefile])
AC_CONFIG_SUBDIRS([src/search_retriever
		   src/parser
		   src/crawler_master
		   src/crawler_slave
		   src/surfer_master
		   src/surfer_slave
		   src/index_builder
		   src/updater_master/
		   src/updater_slave/
		   src/doc_manager])
AC_OUTPUT


Говорю же, хватит труп насиловать, только гемморой заработаете. Есть современные альтернативы cmake,scons

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

есть причины на то, чтобы заниматься именно autotools, во-первых (и в самых главных), это решение нашего мудрого руководства, во-вторых, необходимо выполнение configure-скрипта, на сколько я знаю, cmake не генерирует configure, а только Makefile.

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

тоже самое. к тому же, не у всех установлены эти еб...ие автотулз. процесс установки должен выглядеть: configure && make && make install

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

нет, не просто) такой опции нет у autoreconf, а во-вторых, я подозреваю, что косяк в autotools или make или у меня в генокоде. желательно чтоб третье...

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

нет, не просто) такой опции нет у autoreconf,

Пардон, конечно же 'autoreconf -i'

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

Это запросто.

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

нет, я нечто подобное делал еще на этапе automake -a -c. после make ошибка следующая:

[milo@office-gw ~/make_test]$ make
cd . && /bin/sh /home/milo/make_test/missing --run aclocal-1.10 
aclocal-1.10: `configure.ac' or `configure.in' is required
*** Error code 1

Stop in /home/milo/make_test.
но почему gmake'ом все собирается сразу, а под линуксом и простым make'ом?? не могу уже третий день разобраться с этим, а сроки поджимают уже...

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

> во-вторых, необходимо выполнение configure-скрипта, на сколько я знаю, cmake не генерирует configure, а только Makefile.

правильно, cmake сам создает конфигурацию без промежуточных костылей

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

разве autotools поддерживает что-то отличное от gmake ?

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

но почему gmake'ом все собирается сразу, а под линуксом и простым make'ом?? не могу уже третий день разобраться с этим, а сроки поджимают уже...

Потому что чудный гибкий bsd make сто лет как выкинули на задворки истории. И используется он сугубо сами знаете где. Не удивительно, что make-файлы, генерируемые autotools, заточены под GNU make.

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

начальство слушать ничего не хочет. пытался объяснить что срали все давно уже на этот make, но это отдельная история.

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

начальство слушать ничего не хочет. пытался объяснить что срали все давно уже на этот make, но это отдельная история.

Что именно не хочет слушать? Есть autotools есть GNU make. Они прекрасно работают в связке друг с другом. В чем собственно проблемы то :-?

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

видимо смущает то, что надо будет использовать команду gmake вместо make, хз. но мы отошли от темы.

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

видимо смущает то, что надо будет использовать команду gmake вместо make, хз. но мы отошли от темы.

Ничего не отошли.

gmake'ом собирается нормально. данная проблема возникает только на FreeBSD, на linux все в порядке. в чем проблема??

Ответ: Makefile генерируемый autotools не совместим с BSD make. Он в массе мест заточен под GNU make. И работать с BSD make то, что вышло из-под пера autotools не будет. В принципе. Решение проблемы может быть только одно: не пытаться собрать проект BSD make но собирать его GNU make. Другого сколь-нибудь разумного решения в поставленных условием рамках нет.

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

PS: Посмотрите на тот же pkgsrc. Все гнутые проекты сплошь и рядом собираются именно 3d party GNU make но отнюдь не родным BSD make. Что должно наверное наводить на мысли, если совсем уж лениво сравнить на BSD вывод man make && man gmake.

bibi
()
Ответ на: комментарий от milo

>но почему gmake'ом все собирается сразу, а под линуксом и простым make'ом?? не могу уже третий день разобраться с этим, а сроки поджимают уже...

Потому что во automake генерирует Makefile.in, пригодный для GNU make. В Linux make == GNU make. Во фре make != GNU make.

Все гнуто-автотулзовое во фре собирается gmake'ом, насколько мне известно.

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

> Все гнуто-автотулзовое во фре собирается gmake'ом, насколько мне известно.

Нет. Для автотулзового софта gmake используется в ~50% случаев, и по большей части по инерции. Скажем так, по умолчанию autocrap генерирует совместимые с BSD make мейкфайлы, а для потери совместимости надо специально приложить усилия.

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