現在我終於得到xmonad與MATE DE很好地玩了,我雖然會嘗試將GNOME2/3/XFCE4 panel applet移交給mate,因爲MATE基本上是GNOME2。如果沒有正確評估語句(automake,makefile.am)
到目前爲止,我已經爲MATE添加了必要的依賴關係,ifdef等,並運行了一個顯示任何錯誤的Makefile文件。但是,運行make
會出現此錯誤:Makefile:770: *** missing separator. Stop.
這是我的Makefile:http://pastebin.com/bLF9TD4M。
下面是導致錯誤的部分:
從Makefile.am文件# $(applet_files): $(applet_files:.desktop=.desktop.in)
# $(SED) -e "s|\@PLUGIN_DIR\@|$(PLUGIN_DIR)|" $< > [email protected]
if PANEL_MATE
applet_files = org.mate.panel.XmonadLogApplet.panel-applet
$(applet_files): $(applet_files:.panel-applet=.panel-applet.in)
$(SED) -e "s|\@PLUGIN_DIR\@|$(PLUGIN_DIR)|" $< > [email protected]
else
applet_files = org.gnome.panel.XmonadLogApplet.panel-applet
$(applet_files): $(applet_files:.panel-applet=.panel-applet.in)
$(SED) -e "s|\@PLUGIN_DIR\@|$(PLUGIN_DIR)|" $< > [email protected]
endif
if !PANEL_MATE
servicedir = $(SESSION_BUS_SERVICES_DIR)
service_in_files = org.gnome.panel.applet.XmonadLogAppletFactory.service.in
service_DATA = $(service_in_files:.service.in=.service)
org.gnome.panel.applet.XmonadLogAppletFactory.service: $(service_in_files)
$(SED) -e "s|\@PLUGIN_DIR\@|$(PLUGIN_DIR)|" $< > [email protected]
else
servicedir = $(SESSION_BUS_SERVICES_DIR)
service_in_files = org.mate.panel.applet.XmonadLogAppletFactory.service.in
service_DATA = $(service_in_files:.service.in=.service)
org.mate.panel.applet.XmonadLogAppletFactory.service: $(service_in_files)
$(SED) -e "s|\@PLUGIN_DIR\@|$(PLUGIN_DIR)|" $< > [email protected]
endif
這些IF語句是左接管,他們不應該在這裏。如果我手動刪除if語句(保持培訓相關的東西在他們裏面),並運行make,我得到這個:
make all-am
make[1]: Entering directory `/home/ari/development/xmonad-log-applet'
gcc -DHAVE_CONFIG_H -I. -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT xmonad_log_applet-main.o -MD -MP -MF .deps/xmonad_log_applet-main.Tpo -c -o xmonad_log_applet-main.o `test -f 'main.c' || echo './'`main.c
main.c:15:21: fatal error: gtk/gtk.h: No such file or directory
compilation terminated.
make[1]: *** [xmonad_log_applet-main.o] Error 1
make[1]: Leaving directory `/home/ari/development/xmonad-log-applet'
make: *** [all] Error 2
這是我第一次真正使用makefile和automake的,所以任何幫助,將不勝感激。以下是我在github上的修改:https://github.com/geniass/xmonad-log-applet
您不能在Automake中的if塊中縮進代碼。你是否在刪除'if'語句時取消了縮進代碼? – ptomato
哦,如果你不能在可以解釋這個問題的塊中縮進。我想也許我正在使用一些不允許嵌套ifs的automake版本。在我使用它們之後,有一些重複的代碼,但至少它工作正常。無意地壓縮一切似乎也行得通。 – geniass
現在一切都很好,但隊友不會將applet識別爲有效的applet。去除壓痕工作。也許這應該被添加爲答案? – geniass