LINUX.ORG.RU

Создание нового пакета

 


0

2

Привет. Нубский вопрос. Например, хочу новый проект, копирую шаблонные файлы (например, в /tmp/1/2) configure.ac, Makefile.am, NEWS, README, AUTHORS, ChangeLog. Запускаю autoreconf –install –symlink (передаёт в automake опцию –add-missing). Проблема в том, что если где-то перед директорией «2» уже есть autotools хозяйство, automake добавляет не все файлы (например, нет install-sh), т.е. этот новый проект получается «связанным» с родительским. Как создать новый, самостоятельный проект несмотря ни на что (содержимое родительских директорий)?
Факт «связанности» проектов просматривается через итоговой Makefile, там есть:

$(top_srcdir)/../depcomp $(top_srcdir)/../install-sh

Наверное очень тупой вопрос, но совсем не могу допереть сам )). Я могу, конечно, создавать проект в «свободной» директории, но хочется разобраться.

★★
Ответ на: комментарий от pavlick

ну или в отдельной директории делать, или искать в документации на тему такого поведения

Стоп, а шаблонные файлы ты откуда копируешь, внутри там что написано? Может там переменные на родительскую директорию указывают

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

configure.ac

AC_PREREQ([2.69])
AC_INIT([MY_PKG_NAME], [0.0.1], [jjj_jdddd-qwej])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([main.cc])
AC_CONFIG_HEADERS([config.h])

AC_PROG_CXX

AC_CONFIG_FILES([Makefile])
AC_OUTPUT

Makefile.am

bin_PROGRAMS = main
main_SOURCES = main.cc

остальное пустое.

pavlick ★★
() автор топика

Например, хочу новый проект

В этом треде уже 5 комментов и до сих пор ни одного совета перейти на CMake или meson.

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

Не влияет.
Ну в общем я вроде понял, проект может содержать несколько configure. Autoconf доки:

4.12 Configuring Other Packages in Subdirectories

In most situations, calling AC_OUTPUT is sufficient to produce makefiles in subdirectories. However, configure scripts that control more than one independent package can use AC_CONFIG_SUBDIRS to run configure scripts for other packages in subdirectories. 

Тогда такое поведение можно понять.

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

А зачем? Autotools максимально соблюдают стандарты, да и нормальный там синтаксис. Юзать CMake и получить кучу абстракций над компилятором? Ради чего? Собрать helo world для виндузятников? Им нужно цветасто-гуястое гов.., нормальный софт им не зайдёт )). Для них можно в вебе сделать.

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

Поддерживаю. autotools мощная штука. Если вкурить мануалы, очень приятно с ней дело иметь. cmake только при сборке хелло ворлда выглядит приемлемо.

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

Вроде gcc так собирается, там в каждом отдельном подкаталоге вложенная configure.

Deleted
()

ты ему symlink указал - вон он и линкует к уже существующим, первым найденным (ну или какой там у него алгоритм).

Iron_Bug ★★★★★
()

autoconf manual, 4.4 Finding configure Input:

 — Macro: AC_CONFIG_AUX_DIR (dir)
    Use the auxiliary build tools (e.g., install-sh, config.sub, config.guess, Cygnus configure, Automake and Libtool scripts, etc.) that are in directory dir. These are auxiliary files used in configuration. dir can be either absolute or relative to srcdir. The default is srcdir or srcdir/.. or srcdir/../.., whichever is the first that contains install-sh.
pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.