URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6609
[ Назад ]

Исходное сообщение
"autotools vs. FreeBSD"

Отправлено mirya , 17-Июл-07 19:24 
Есть FreeBSD6.2, на которой я пытаюсь с пом. GNU autotools собрать некий shared library (.so). Пользуясь один из тюториалов, сооружаю такой configure.in:

AC_INIT(libfoobar.c)
AM_INIT_AUTOMAKE(libfoobar,0.0.1)
AM_PROG_LIBTOOL
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_RANLIB
AC_OUTPUT(Makefile)

далее скармливаю его:

$ aclocal19
aclocal:configure.in:3: warning: macro `AM_PROG_LIBTOOL' not found in library
$ autoconf
configure.in:3: error: possibly undefined macro: AM_PROG_LIBTOOL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

Собсно на этом затык. Кто знаком с автотулз - помогите


Содержание

Сообщения в этом обсуждении
"autotools vs. FreeBSD"
Отправлено Andrew Kolchoogin , 17-Июл-07 20:14 
>далее скармливаю его:
>
>$ aclocal19
>aclocal:configure.in:3: warning: macro `AM_PROG_LIBTOOL' not found in library
    Э-э-э-э-э, мамо, а 'libtoolize' где?

"autotools vs. FreeBSD"
Отправлено mirya , 17-Июл-07 20:50 
>    Э-э-э-э-э, мамо, а 'libtoolize' где?

В каком месте его запускать? И есть ли некий канонический пример для сборки простой shared library?


"autotools vs. FreeBSD"
Отправлено vic , 17-Июл-07 21:08 
>>    Э-э-э-э-э, мамо, а 'libtoolize' где?
>
>В каком месте его запускать? И есть ли некий канонический пример для
>сборки простой shared library?

запускать в каталоге проекта.

макрос с ranlib кстати устарел.


"autotools vs. FreeBSD"
Отправлено elvenic , 17-Июл-07 22:04 
>>    Э-э-э-э-э, мамо, а 'libtoolize' где?
>
>В каком месте его запускать?

Вот у меня есть такой shell скрипт, reconf.sh называется, который лежит в корневом каталоге сорсов моего проекта, и который я запускаю каждый раз когда мне надо /.configure запустить:

8<------------reconf.sh-------------------

#!/bin/sh
rm -f config.cache
echo "- aclocal."
aclocal -I m4
echo "- libtoolize."
libtoolize --copy --force
echo "- autoconf."
autoconf
echo "- autoheader."
autoheader
echo "- automake."
automake --foreign --add-missing --copy
echo "- ./configure."
./configure

8<----------------------------------------

И есть ли некий канонический пример для
>сборки простой shared library?



"autotools vs. FreeBSD"
Отправлено anonymous , 19-Июл-07 21:56 
>Вот у меня есть такой shell скрипт, reconf.sh называется,

autoreconf?


"autotools vs. FreeBSD"
Отправлено elvenic , 19-Июл-07 23:22 
>>Вот у меня есть такой shell скрипт, reconf.sh называется,
>
>autoreconf?

Ну вообще то да, autoreconf то же самое делает.

Просто свой reconf.sh я написал еще до того как товарищи из GNU выпустили autoreconf - так он у меня по проектам и кочует, с минимальными изменениями :)

А свой скрипт я тут привел для того чтобы наглядно показать где именно в последовательности вызовов autotools нужно вызывать libtoolize.



"autotools vs. FreeBSD"
Отправлено andrey , 18-Июл-07 02:56 
>>    Э-э-э-э-э, мамо, а 'libtoolize' где?
>
>В каком месте его запускать? И есть ли некий канонический пример для
>сборки простой shared library?


в небольших проектах нужен небольшой makefile:

TARGET = libproject
LIBS = -lextlib
CFLAGS = -O2 -Wall

CC = g++

all: $(TARGET).so $(TARGET).a

$(TARGET).so: $(patsubst %.cpp, %.o, $(wildcard *.cpp))
        $(CC) -shared -fPIC -o $@ $^ $(LIBS)

$(TARGET).a: $(patsubst %.cpp, %.o, $(wildcard *.cpp))
        ar rvs $@ $^

%.o: %.cpp
        $(CC) -c -MD $< $(CFLAGS)

include $(wildcard *.d)

.PHONY: clean

clean:
        rm -f *.a
        rm -f *.so
        rm -f *.d
        rm -f *.o


"autotools vs. FreeBSD"
Отправлено Аноним , 19-Июл-07 17:21 
Выкидывай autotools, это морально устаревшее ублюдство.

Юзай scons или cmake, документация на их сайтах с примерами. Для твоих целей надо будет написать максимум 5 строчек.



"autotools vs. FreeBSD"
Отправлено stolik , 21-Июл-07 02:52 
>Выкидывай autotools, это морально устаревшее ублюдство.
>
>Юзай scons или cmake, документация на их сайтах с примерами. Для твоих
>целей надо будет написать максимум 5 строчек.

Это как Вы выражаетесь "ублюдство" заткнет Ваши мейки шмейки и кумейки. А если не умеем пользоваться то не надо пороть глупости(хотя теперь понятно почему Вы записались под анонимом) а лучше бы взяли и почитали бы документацию GNU Autotool. Прежде чем говорить, надо хотя бы немного знать


"autotools vs. FreeBSD"
Отправлено iTux , 20-Дек-11 12:04 
Ахха, соберите CMAKE'ом netatalk из гит репы для опенка :)