Print filename of failed plugin
[geany-mirror.git] / plugins / Makefile.am
blob22a9432a872f98084131af0dc811bb52ac2e41f2
1 # Adapted from Pidgin's plugins/Makefile.am, thanks
3 EXTRA_DIST = \
4         makefile.win32 \
5         genapi.py
7 plugindir = $(libdir)/geany
9 plugins_includedir = $(includedir)/geany
10 plugins_include_HEADERS = \
11         geanyplugin.h \
12         geanyfunctions.h
14 # systems without python should continue to build OK
15 geanyfunctions.h: genapi.py ../src/plugins.c
16         python genapi.py || true
18 all: geanyfunctions.h
21 demoplugin_la_LDFLAGS    = -module -avoid-version
22 classbuilder_la_LDFLAGS  = -module -avoid-version
23 htmlchars_la_LDFLAGS     = -module -avoid-version
24 export_la_LDFLAGS        = -module -avoid-version
25 saveactions_la_LDFLAGS   = -module -avoid-version
26 filebrowser_la_LDFLAGS   = -module -avoid-version
27 splitwindow_la_LDFLAGS   = -module -avoid-version
29 if PLUGINS
31 if MINGW
32 # build Geany for Windows on non-Windows systems (cross-compile)
33 # (this is a little hack'ish and surely can be improved)
34 DLL_LD_FLAGS = -module -avoid-version
35 MINGW_CFLAGS = \
36                         -DGEANY_DATADIR=\"data\" \
37                         -DHAVE_CONFIG_H \
38                         -DGTK \
39                         -I$(top_srcdir) \
40                         -I$(top_srcdir)/src \
41                         -I$(top_srcdir)/tagmanager/src \
42                         -I$(top_srcdir)/scintilla/include \
43                         $(GTK_CFLAGS) \
44                         $(PLUGIN_CFLAGS)
46 .PHONY: all clean
48 all-local: \
49         classbuilder.dll \
50         htmlchars.dll \
51         export.dll \
52         saveactions.dll \
53         splitwindow.dll \
54         filebrowser.dll
56 .c.dll:
57         $(CC) $(MINGW_CFLAGS) -o $@.o -c $<
58         $(CC) -shared $@.o $(GTK_LIBS) $(DLL_LD_FLAGS) -o $@
60 clean:
61         rm -f *.o *.dll
63 else
65 # Plugins to be installed
66 plugin_LTLIBRARIES = \
67         classbuilder.la \
68         htmlchars.la \
69         export.la \
70         saveactions.la \
71         filebrowser.la \
72         splitwindow.la
74 # Plugins not to be installed
75 noinst_LTLIBRARIES = \
76         demoplugin.la
78 demoplugin_la_SOURCES    = demoplugin.c
79 classbuilder_la_SOURCES  = classbuilder.c
80 htmlchars_la_SOURCES     = htmlchars.c
81 export_la_SOURCES        = export.c
82 saveactions_la_SOURCES   = saveactions.c
83 filebrowser_la_SOURCES   = filebrowser.c
84 splitwindow_la_SOURCES   = splitwindow.c
86 demoplugin_la_CFLAGS    = -DG_LOG_DOMAIN=\""Demoplugin"\"
87 classbuilder_la_CFLAGS  = -DG_LOG_DOMAIN=\""Classbuilder"\"
88 htmlchars_la_CFLAGS     = -DG_LOG_DOMAIN=\""HTMLChars"\"
89 export_la_CFLAGS        = -DG_LOG_DOMAIN=\""Export"\"
90 saveactions_la_CFLAGS   = -DG_LOG_DOMAIN=\""SaveActions"\"
91 filebrowser_la_CFLAGS   = -DG_LOG_DOMAIN=\""FileBrowser"\"
92 splitwindow_la_CFLAGS   = -DG_LOG_DOMAIN=\""SplitWindow"\"
94 demoplugin_la_LIBADD    = $(GTK_LIBS)
95 classbuilder_la_LIBADD  = $(GTK_LIBS)
96 htmlchars_la_LIBADD     = $(GTK_LIBS)
97 export_la_LIBADD        = $(GTK_LIBS) -lm
98 saveactions_la_LIBADD   = $(GTK_LIBS)
99 filebrowser_la_LIBADD   = $(GTK_LIBS)
100 splitwindow_la_LIBADD   = $(GTK_LIBS)
102 endif # MINGW
103 endif # PLUGINS
105 AM_CPPFLAGS = \
106         -DDATADIR=\"$(datadir)\" \
107         -DGTK \
108         -I$(top_srcdir)/src \
109         -I$(top_srcdir)/tagmanager/src \
110         -I$(top_srcdir)/scintilla/include \
111         $(GTK_CFLAGS) \
112         $(PLUGIN_CFLAGS)
115 # This part allows people to build their own plugins in here.
116 # Yes, it's a mess.
118 SUFFIXES = .c .so
119 .c.so:
120         $(LIBTOOL) --mode=compile $(CC) -DHAVE_CONFIG_H -I$(top_srcdir) $(AM_CPPFLAGS) $(CFLAGS) -c $< -o tmp$@.lo $(PLUGIN_CFLAGS)
121         $(LIBTOOL) --mode=link    $(CC) $(CFLAGS) -o libtmp$@.la -rpath $(plugindir) tmp$@.lo $(LIBS) $(LDFLAGS) -module -avoid-version $(PLUGIN_LIBS)
122         @rm -f tmp$@.lo tmp$@.o libtmp$@.la
123         @cp .libs/libtmp$@.so* $@
124         @rm -f .libs/libtmp$@.*