2012-12-20 64 views
0

現在我終於得到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

+2

您不能在Automake中的if塊中縮進代碼。你是否在刪除'if'語句時取消了縮進代碼? – ptomato

+0

哦,如果你不能在可以解釋這個問題的塊中縮進。我想也許我正在使用一些不允許嵌套ifs的automake版本。在我使用它們之後,有一些重複的代碼,但至少它工作正常。無意地壓縮一切似乎也行得通。 – geniass

+0

現在一切都很好,但隊友不會將applet識別爲有效的applet。去除壓痕工作。也許這應該被添加爲答案? – geniass

回答

0

您不能在Automake中的if塊內縮進代碼。 (Makefiles對縮進比較敏感。)