Вопрос к специалистам по 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 генерил два разных исходника из одного при разных переменных препроцессора, а потом уже компилил это все хозяйство. Спасибо!
![](/photos/6670:-160711777.png)
Ответ на:
комментарий
от Zubok
![](/img/p.gif)
Ответ на:
комментарий
от anonymous
![](/photos/6670:-160711777.png)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Makefile.am (2003)
- Форум Как написать Makefile.am ( для владеющих AUTOTOOLS ) (2007)
- Форум Automake (2010)
- Форум Automake (2004)
- Форум automake (2003)
- Форум Makefile.am и субдиректория (2007)
- Форум Makefile.am shared library (2005)
- Форум autoconf + automake (2001)
- Форум autoconf/automake (2004)
- Форум версия automake (2007)