Вопрос к специалистам по automake. В Xorg есть драйвер карточек S3.
Когда переходили от системы сборки Imake, то потеряли при переходе
правила компиляции этого драйвера. А компилировался он хитро. Среди
исходных текстов есть такой файл s3_accel.c, который надо
компилировать дважды: один раз с переменной S3_NEWMMIO=1 и получить на
выходе, предположим, s3_newmmio.o, а другой раз -- с переменной
S3_NEWMMIO=0 и получить на выходе s3_pio.o. А потом надо эти два
объектника вместе с остальными вместе слинковать. Вот сколько не
бьюсь, не получается написать Makefile.am корректный. Получился пока
грязный хак. То есть я удалил из списка исходников s3_accel.c, а
правила компиляции просто методом китайских программистов "копипаст"
выдрал из уже сгенеренных Makefile.in для других файлов, что,
разумеется, некорректно. Но работает. Но так как мне надо патч на
freedesktop.org отправить, я не хочу хаки пубиковать. Вот мой вариант:
AM_CFLAGS = @XORG_CFLAGS@
s3_drv_la_LTLIBRARIES = s3_drv.la
s3_drv_la_LDFLAGS = -module -avoid-version
s3_drv_ladir = @moduledir@/drivers
s3_drv_la_SOURCES = \
newmmio.h \
s3_exa.c \
s3_bios.c \
s3_cursor.c \
s3_dga.c \
s3_driver.c \
s3.h \
s3_IBMRGB.c \
s3_reg.h \
s3_Ti.c \
s3_Trio64DAC.c \
s3_video.c
EXTRA_s3_drv_la_SOURCES = s3_accel.c
s3_drv_la_LIBADD = s3_accel_newmmio.lo s3_accel_pio.lo
s3_accel_newmmio.lo: s3_accel.c
if $(LTCOMPILE) -DS3_NEWMMIO=1 -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
s3_accel_pio.lo: s3_accel.c
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
Как сделать корректно? В Imake вообще хитро делалось. Там сначала этот
Imake генерил два разных исходника из одного при разных переменных
препроцессора, а потом уже компилил это все хозяйство. Спасибо!

Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Makefile.am (2003)
- Форум Как написать Makefile.am ( для владеющих AUTOTOOLS ) (2007)
- Форум Automake (2010)
- Форум automake (2003)
- Форум Automake (2004)
- Форум Makefile.am и субдиректория (2007)
- Форум Makefile.am shared library (2005)
- Форум версия automake (2007)
- Форум autoconf + automake (2001)
- Форум automake & autoconf (2005)