LINUX.ORG.RU

Помогите разобраться с automake


0

1

Есть необходимость поправить Makefile.am в проекте xfce-cpufreq-plugin. Но никак не соображу как. Нужно, чтобы перед тем, как начиналась сборка бинарников из сишных исходников создавался файл freqset.h и в этом файл определялось мокроопеределение #define FREQSETDIR $(plugindir). Имеется в виду, чтобы подставлялось значение переменной plugindir, которая задается в Makefile.am.

Вот оригинальный Makefile.am


plugindir = $(libexecdir)/xfce4/panel-plugins
plugin_PROGRAMS = xfce4-cpufreq-plugin

xfce4_cpufreq_plugin_CFLAGS =					\
	-I$(top_srcdir)						\
	@LIBXFCE4PANEL_CFLAGS@					\
	@LIBXFCE4UTIL_CFLAGS@					\
	@LIBXFCEGUI4_CFLAGS@					\
	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"

xfce4_cpufreq_plugin_LDADD =					\
	@LIBXFCE4PANEL_LIBS@					\
	@LIBXFCE4UTIL_LIBS@					\
	@LIBXFCEGUI4_LIBS@

xfce4_cpufreq_plugin_SOURCES =					\
	xfce4-cpufreq-plugin.h					\
	xfce4-cpufreq-plugin.c					\
	xfce4-cpufreq-linux.h					\
	xfce4-cpufreq-linux.c					\
	xfce4-cpufreq-configure.h				\
	xfce4-cpufreq-configure.c				\
	xfce4-cpufreq-overview.h				\
	xfce4-cpufreq-overview.c				\
	xfce4-cpufreq-utils.h					\
	xfce4-cpufreq-utils.c
	
desktop_in_in_files = xfce4-cpufreq-plugin.desktop.in.in
desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
	
desktopdir = $(datadir)/xfce4/panel-plugins
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@

EXTRA_DIST = 								\
	$(desktop_in_in_files)

DISTCLEANFILES =							\
	$(desktop_DATA) $(desktop_in_files)
	
# get full path into .desktop file
%.desktop.in: %.desktop.in.in
	sed -e "s^@PLUGIN_PATH@^$(libexecdir)/xfce4/panel-plugins^"	\
		$< > $@

Понимаю, что по аналогии нужно задать что-то типа: sed -e «s^@PLUGIN_PATH@^$(libexecdir)/xfce4/panel-plugins^» \ $< > $@

но только для freqset.h freqset.h.in (или просто через echo без sed и шаблона). Но никак не могу понять, как правильно задать цель. И по поводу % в исходном Makefile.am тоже хотелось бы услышать разъяснения. Спасибо.

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

Если речь про AC_DEFINE_UNQUOTED, то пробовал. Значение макросу не присваивается. Может потому, что configure.aс в корневом каталоге проекта, а plugindir определяется в Makefile.am в подкаталоге. А libexecdir определена в configure.aс?

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