Fix formatting.
[samba-gtk.git] / Makefile
1 include Makefile.settings
2
3 BINS = gwcrontab gwsam gwsvcctl 
4 SCRIPTS = gtkldb gepdump gregedit
5 gwcrontab_LIBS = $(DCERPC_ATSVC_LIBS)
6 CFLAGS = $(GTK_CFLAGS) $(TALLOC_CFLAGS) $(DCERPC_CFLAGS) $(GENSEC_CFLAGS) -I. -Wall
7 LIBS = $(GTK_LIBS) $(TALLOC_LIBS) $(DCERPC_LIBS) $(GENSEC_LIBS) $(DCERPC_SAMR_LIBS) $(TEVENT_LIBS)
8 # Should be determined by configure...
9 SHLIBEXT = so
10
11 LIB = libsamba-gtk.$(SHLIBEXT).0.0.1
12 MANPAGES = man/gepdump.1 man/gwcrontab.1 man/gwsvcctl.1 man/gregedit.1 man/gtkldb.1
13 HEADERS = $(wildcard common/*.h)
14 SOVERSION = 0
15 SONAME = libsamba-gtk.$(SHLIBEXT).$(SOVERSION)
16 PYMODULES = sambagtk.$(SHLIBEXT)
17
18 all:: $(BINS) $(LIB) $(SONAME) libsamba-gtk.$(SHLIBEXT) sambagtk.$(SHLIBEXT)
19
20 Makefile: Makefile.settings
21
22 install:: $(BINS) $(LIB) $(PYMODULES)
23         $(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(man1dir)
24         $(INSTALL) -m 0755 $(BINS) $(SCRIPTS) $(DESTDIR)$(bindir)
25         $(INSTALL) -m 0755 $(LIB) $(DESTDIR)$(libdir)
26         ln -fs $(LIB) $(DESTDIR)$(libdir)/libsamba-gtk.$(SHLIBEXT)
27         $(INSTALL) -d $(DESTDIR)$(pcdir)
28         $(INSTALL) -m 0644 gtksamba.pc $(DESTDIR)$(pcdir)
29         $(INSTALL) -d $(DESTDIR)$(appdir)
30         $(INSTALL) -m 0644 meta/* $(DESTDIR)$(appdir)
31         $(INSTALL) -d $(DESTDIR)$(includedir)
32         $(INSTALL) -m 0644 $(HEADERS) $(DESTDIR)$(includedir)
33         $(INSTALL) -d $(DESTDIR)$(pythondir)
34         $(INSTALL) -m 0755 sambagtk.$(SHLIBEXT) $(DESTDIR)$(pythondir)
35
36 install-doc:: doc
37         $(INSTALL) -m 0644 $(MANPAGES) $(DESTDIR)$(man1dir)
38
39 configure: configure.ac
40         autoreconf -i
41
42 check:: test
43
44 %.desktop-validate: %.desktop
45         $(DESKTOP_VALIDATE) $<
46
47 test:: $(patsubst %.desktop,%.desktop-validate,$(wildcard meta/*.desktop))
48
49 Makefile.settings: configure
50         ./configure
51
52 $(LIB): $(patsubst %.c, %.po, $(wildcard common/*.c))
53         $(CC) -Wl,-soname=$(SONAME) -shared -o $@ $^ $(LIBS)
54
55 $(SONAME): $(LIB)
56         ln -fs $< $@
57
58 libsamba-gtk.$(SHLIBEXT): $(LIB)
59         ln -fs $< $@
60
61 DEFS = `pkg-config --variable=defsdir pygtk-2.0`
62
63 python/sambagtk.c: python/sambagtk.defs python/sambagtk.override
64         pygtk-codegen-2.0 --prefix sambagtk \
65                 --register $(DEFS)/gdk-types.defs \
66                 --register $(DEFS)/gtk-types.defs \
67                 --override python/sambagtk.override \
68                 $< > $@
69
70 python/%.po: CFLAGS+=`$(PYTHON_CONFIG) --cflags` $(PYGTK_CFLAGS)
71
72 sambagtk.$(SHLIBEXT): python/sambagtk.po python/module.po $(LIB)
73         $(CC) -shared -o $@ $^ `$(PYTHON_CONFIG) --libs` $(PYGTK_LIBS)
74
75 %.o: %.c
76         $(CC) $(CFLAGS) -o $@ -c $<
77
78 %.po: %.c
79         $(CC) $(CFLAGS) -fPIC -o $@ -c $<
80
81 $(BINS): %: tools/%.o $(LIB)
82         $(CC) -o $@ $< $(LIB) $(LIBS) $($*_LIBS)
83
84 install::
85
86 clean::
87         rm -f $(BINS) $(LIB) *.$(SHLIBEXT) */*.o *.o */*.po *.po
88         rm -f python/sambagtk.c
89
90 distclean:: clean
91         rm -rf autom4te.cache
92         rm -f config.log config.cache config.status
93         rm -f Makefile.settings
94
95 dist:: configure distclean
96
97 doc:: $(MANPAGES)
98
99 DOCBOOK_MANPAGE_URL = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
100
101 .SUFFIXES: .1 .1.xml
102
103 .1.xml.1:
104         $(XSLTPROC) -o $@ $(DOCBOOK_MANPAGE_URL) $<
105
106 ctags:
107         ctags -R .