Makefile: for some reason, -rdynamic is needed on some systems
[rofl0r-ixchat.git] / Makefile
blobda2f8fb419603f2b309c630e226df47a68200ed7
1 # Use config.mak to override any of the following variables.
2 # Do not make changes here.
5 exec_prefix = /usr/local
6 bindir = $(exec_prefix)/bin
8 prefix = /usr/local/
9 includedir = $(prefix)/include
10 libdir = $(prefix)/lib
12 SRCS = $(sort $(wildcard src/common/*.c))
13 SRCS_FE_GTK = $(sort $(wildcard src/fe-gtk/*.c))
14 SRCS_FE_TEXT = $(sort $(wildcard src/fe-text/*.c))
15 OBJS = $(SRCS:.c=.o)
16 OBJS_FE_GTK = $(SRCS_FE_GTK:.c=.o)
17 OBJS_FE_TEXT = $(SRCS_FE_TEXT:.c=.o)
19 CFLAGS += -Os
21 ALL_TOOLS=ixchat
23 PIXMAP=src/pixmaps/inline_pngs.h
24 _PNGS = message.png highlight.png fileoffer.png book.png hop.png op.png purple.png red.png voice.png
25 pixsrcdir=src/pixmaps
26 PNGS = $(pixsrcdir)/message.png $(pixsrcdir)/highlight.png $(pixsrcdir)/fileoffer.png \
27 $(pixsrcdir)/book.png $(pixsrcdir)/hop.png $(pixsrcdir)/op.png $(pixsrcdir)/purple.png \
28 $(pixsrcdir)/red.png $(pixsrcdir)/voice.png
30 PIXMAPLIST = traymsgpng $(pixsrcdir)/message.png \
31 trayhilightpng $(pixsrcdir)/highlight.png \
32 trayfilepng $(pixsrcdir)/fileoffer.png \
33 bookpng $(pixsrcdir)/book.png \
34 hoppng $(pixsrcdir)/hop.png \
35 oppng $(pixsrcdir)/op.png \
36 purplepng $(pixsrcdir)/purple.png \
37 redpng $(pixsrcdir)/red.png \
38 voicepng $(pixsrcdir)/voice.png \
39 xchatpng $(pixsrcdir)/../../xchat.png
41 PERL_HEADERS = plugins/perl/irc.pm.h plugins/perl/xchat.pm.h
42 PERL_HEADERS_INPUT = plugins/perl/lib/IRC.pm \
43 plugins/perl/lib/Xchat.pm \
44 plugins/perl/lib/Xchat/Embed.pm \
45 plugins/perl/lib/Xchat/List/Network.pm \
46 plugins/perl/lib/Xchat/List/Network/Entry.pm\
47 plugins/perl/lib/Xchat/List/Network/AutoJoin.pm
49 INSTALL_FLAGS=-D -m
51 -include config.mak
53 all: $(ALL_TOOLS) $(PLUGINS)
55 install: $(ALL_TOOLS:%=$(DESTDIR)$(bindir)/%) install-plugins
57 install-plugins: $(PLUGINS:%=$(DESTDIR)$(libdir)/xchat/plugins/%)
59 $(DESTDIR)$(libdir)/xchat/plugins/%: %
60 install -d $(DESTDIR)$(libdir)/xchat/plugins
61 install $(INSTALL_FLAGS) 644 $< $@
63 $(PERL_HEADERS): $(PERL_HEADERS_INPUT)
64 plugins/perl/generate_header
66 tcl.so: plugins/tcl/tcl.o
67 $(CC) $< -shared -rdynamic -o $@ $(LDFLAGS) $(TCL_LDFLAGS)
69 plugins/tcl/tcl.o: plugins/tcl/tclplugin.c
70 $(CC) $(CFLAGS) $(TCL_CFLAGS) -fPIC -c $< -o $@
72 python.so: plugins/python/python.o
73 $(CC) $< -shared -rdynamic -o $@ $(LDFLAGS) $(PY_LDFLAGS)
75 plugins/python/python.o: plugins/python/python.c
76 $(CC) $(CFLAGS) $(PY_CFLAGS) -fPIC -c $< -o $@
78 perl.so: plugins/perl/perl.o
79 $(CC) $< -shared -rdynamic -o $@ $(LDFLAGS) $(PERL_LDFLAGS)
81 plugins/perl/perl.o: plugins/perl/perl.c $(PERL_HEADERS)
82 $(CC) $(CFLAGS) $(PERL_CFLAGS) -fPIC -c $< -o $@
84 ixchat: $(OBJS) $(OBJS_FE_GTK)
85 $(CC) $(LDFLAGS) -rdynamic -o $@ $(OBJS) $(OBJS_FE_GTK)
87 ixchat-text: $(OBJS) $(OBJS_FE_TEXT)
88 $(CC) $(LDFLAGS) -rdynamic -o $@ $(OBJS) $(OBJS_FE_TEXT)
90 clean:
91 rm -f $(OBJS)
92 rm -f $(OBJS_FE_GTK)
93 rm -f $(OBJS_FE_TEXT)
94 rm -f $(PIXMAP)
95 rm -f $(ALL_TOOLS)
96 rm -f $(PERL_HEADERS)
97 rm -f $(PLUGINS)
98 rm -f plugins/perl/*.o
99 rm -f plugins/python/*.o
100 rm -f plugins/tcl/*.o
102 $(PIXMAP): $(PNGS)
103 $(PIXMAPCONVERT) --raw --build-list $(PIXMAPLIST) > $(PIXMAP)
105 %.o: %.c $(PIXMAP)
106 $(CC) $(CFLAGS) -c -o $@ $<
108 $(DESTDIR)$(bindir)/%: %
109 install -d $(DESTDIR)$(bindir)
110 install $(INSTALL_FLAGS) 755 $< $@
112 $(DESTDIR)$(prefix)/%: %
113 install $(INSTALL_FLAGS) 644 $< $@
115 .PHONY: all clean install