]> Pileus Git - ~andy/gtk/blob - Makefile.am
Add a rule to generate ChangeLog
[~andy/gtk] / Makefile.am
1 ## Makefile.am for GTK+
2 include $(top_srcdir)/Makefile.decl
3
4 SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
5 SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
6
7 # require automake 1.4
8 AUTOMAKE_OPTIONS = 1.7
9
10 EXTRA_DIST +=                   \
11         HACKING                 \
12         makecopyright           \
13         NEWS.pre-1-0            \
14         ChangeLog.pre-1-0       \
15         ChangeLog.pre-1-2       \
16         ChangeLog.pre-2-0       \
17         ChangeLog.pre-2-2       \
18         ChangeLog.pre-2-4       \
19         ChangeLog.pre-2-6       \
20         ChangeLog.pre-2-8       \
21         ChangeLog.pre-2-10      \
22         ChangeLog.pre-2-12      \
23         ChangeLog.pre-2-14      \
24         ChangeLog.pre-2-16      \
25         ChangeLog.gtk-async-file-chooser        \
26         ChangeLog.gtk-printing  \
27         README.commits  \
28         README.win32            \
29         config.h.win32          \
30         makefile.msc    \
31         gtk-zip.sh.in           \
32         sanitize-la.sh          \
33         po/README.translators   \
34         po/po2tbl.sed.in        \
35         examples/aspectframe/Makefile  \
36         examples/aspectframe/aspectframe.c  \
37         examples/Makefile  \
38         examples/README.1ST  \
39         examples/extract.awk  \
40         examples/extract.sh  \
41         examples/arrow/Makefile \
42         examples/arrow/arrow.c  \
43         examples/base/Makefile  \
44         examples/base/base.c  \
45         examples/buttonbox/Makefile \
46         examples/buttonbox/buttonbox.c  \
47         examples/buttons/Makefile  \
48         examples/buttons/buttons.c  \
49         examples/buttons/info.xpm  \
50         examples/calendar/Makefile  \
51         examples/calendar/calendar.c  \
52         examples/clist/Makefile  \
53         examples/clist/clist.c  \
54         examples/entry/Makefile  \
55         examples/entry/entry.c  \
56         examples/eventbox/Makefile  \
57         examples/eventbox/eventbox.c  \
58         examples/filesel/Makefile  \
59         examples/filesel/filesel.c  \
60         examples/gtkdial/Makefile  \
61         examples/gtkdial/dial_test.c  \
62         examples/gtkdial/gtkdial.c  \
63         examples/gtkdial/gtkdial.h  \
64         examples/helloworld/Makefile  \
65         examples/helloworld/helloworld.c  \
66         examples/helloworld2/Makefile  \
67         examples/helloworld2/helloworld2.c  \
68         examples/label/Makefile \
69         examples/label/label.c  \
70         examples/list/Makefile  \
71         examples/list/list.c  \
72         examples/menu/Makefile  \
73         examples/menu/menu.c  \
74         examples/menu/itemfactory.c  \
75         examples/notebook/Makefile  \
76         examples/notebook/notebook.c  \
77         examples/packbox/Makefile  \
78         examples/packbox/packbox.c  \
79         examples/paned/Makefile  \
80         examples/paned/paned.c  \
81         examples/pixmap/Makefile  \
82         examples/pixmap/pixmap.c  \
83         examples/progressbar/Makefile  \
84         examples/progressbar/progressbar.c  \
85         examples/radiobuttons/Makefile  \
86         examples/radiobuttons/radiobuttons.c  \
87         examples/rangewidgets/Makefile  \
88         examples/rangewidgets/rangewidgets.c  \
89         examples/rulers/Makefile  \
90         examples/rulers/rulers.c  \
91         examples/scribble-simple/Makefile  \
92         examples/scribble-simple/scribble-simple.c  \
93         examples/scribble-xinput/Makefile       \
94         examples/scribble-xinput/scribble-xinput.c      \
95         examples/scrolledwin/Makefile  \
96         examples/scrolledwin/scrolledwin.c  \
97         examples/selection/Makefile  \
98         examples/selection/gettargets.c  \
99         examples/selection/setselection.c  \
100         examples/statusbar/Makefile  \
101         examples/statusbar/statusbar.c  \
102         examples/table/Makefile  \
103         examples/table/table.c  \
104         examples/text/Makefile  \
105         examples/text/text.c  \
106         examples/tictactoe/Makefile  \
107         examples/tictactoe/tictactoe.c  \
108         examples/tictactoe/tictactoe.h  \
109         examples/tictactoe/ttt_test.c  \
110         examples/tree/Makefile  \
111         examples/tree/tree.c  \
112         examples/wheelbarrow/Makefile  \
113         examples/wheelbarrow/wheelbarrow.c  \
114         examples/fixed/fixed.c  \
115         examples/fixed/Makefile  \
116         examples/frame/frame.c  \
117         examples/frame/Makefile  \
118         examples/spinbutton/spinbutton.c  \
119         examples/spinbutton/Makefile  \
120         examples/find-examples.sh
121
122 GDKTARGET=@gdktarget@
123
124 ## Copy .pc files to target-specific names
125 gtk+-$(GDKTARGET)-2.0.pc: gtk+-2.0.pc
126         rm -f gtk+-$(GDKTARGET)-2.0.pc && \
127         cp gtk+-2.0.pc gtk+-$(GDKTARGET)-2.0.pc
128
129 gdk-$(GDKTARGET)-2.0.pc: gdk-2.0.pc
130         rm -f gdk-$(GDKTARGET)-2.0.pc && \
131         cp gdk-2.0.pc gdk-$(GDKTARGET)-2.0.pc
132
133 gtk+-$(GDKTARGET)-2.0-uninstalled.pc: gtk+-2.0-uninstalled.pc
134         rm -f gtk+-$(GDKTARGET)-2.0-uninstalled.pc && \
135         cp gtk+-2.0-uninstalled.pc gtk+-$(GDKTARGET)-2.0-uninstalled.pc
136
137 gdk-$(GDKTARGET)-2.0-uninstalled.pc: gdk-2.0-uninstalled.pc
138         rm -f gdk-$(GDKTARGET)-2.0-uninstalled.pc && \
139         cp gdk-2.0-uninstalled.pc gdk-$(GDKTARGET)-2.0-uninstalled.pc
140
141 pkgconfigdir = $(libdir)/pkgconfig
142 pkgconfig_DATA= gdk-pixbuf-2.0.pc gdk-$(GDKTARGET)-2.0.pc gtk+-$(GDKTARGET)-2.0.pc gail.pc
143
144 if OS_UNIX
145 pkgconfig_DATA += gtk+-unix-print-2.0.pc
146 endif
147
148 DISTCLEANFILES =                                \
149         gtk+-unix-print-2.0.pc                  \
150         gtk+-$(GDKTARGET)-2.0.pc                \
151         gdk-$(GDKTARGET)-2.0.pc                 \
152         gail.pc                                 \
153         gtk+-$(GDKTARGET)-2.0-uninstalled.pc    \
154         gdk-$(GDKTARGET)-2.0-uninstalled.pc     \
155         gail-uninstalled.pc                     \
156         config.lt
157
158 ChangeLog:
159         @echo Creating $@
160         @if test -d "$(srcdir)/.git"; then \
161           (GIT_DIR=$(top_srcdir)/.git ./missing --run git log GTK_2_16_0^^.. --stat) | fmt --split-only > $@.tmp \
162           && mv -f $@.tmp $@ \
163           || ($(RM) $@.tmp; \
164               echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
165               (test -f $@ || echo git-log is required to generate this file >> $@)); \
166         else \
167           test -f $@ || \
168           (echo A git checkout and git-log is required to generate ChangeLog >&2 && \
169           echo A git checkout and git-log is required to generate this file >> $@); \
170         fi
171
172 ## copy the default target for this platform to gdk-2.0.pc and gtk+-2.0.pc
173 DEFAULT_GDKTARGET=x11
174 install-data-hook:
175         (cd $(DESTDIR)$(pkgconfigdir) && \
176          test -f gdk-$(DEFAULT_GDKTARGET)-2.0.pc && \
177          test -f gtk+-$(DEFAULT_GDKTARGET)-2.0.pc && \
178          rm -f gdk-2.0.pc && cp -f gdk-$(DEFAULT_GDKTARGET)-2.0.pc gdk-2.0.pc && \
179          rm -f gtk+-2.0.pc && cp -f gtk+-$(DEFAULT_GDKTARGET)-2.0.pc gtk+-2.0.pc) || \
180         (cd $(DESTDIR)$(pkgconfigdir) && \
181          rm -f gdk-2.0.pc && cp -f gdk-$(GDKTARGET)-2.0.pc gdk-2.0.pc && \
182          rm -f gtk+-2.0.pc && cp -f gtk+-$(GDKTARGET)-2.0.pc gtk+-2.0.pc)
183
184 uninstall-local:
185         rm -f $(DESTDIR)$(pkgconfigdir)/gdk-2.0.pc
186         rm -f $(DESTDIR)$(pkgconfigdir)/gtk+-2.0.pc
187
188 dist-hook:
189         if test -f $(srcdir)/INSTALL.in && test -f $(srcdir)/README.in ; then \
190              CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
191              CONFIG_HEADERS= \
192              $(SHELL) config.status \
193              && cp INSTALL README $(distdir) ; \
194         fi
195
196 .PHONY: files release sanity snapshot ChangeLog
197
198 files:
199         @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
200           echo $$p; \
201         done
202         @for subdir in $(SUBDIRS); do \
203           files=`cd $$subdir; $(MAKE) files | grep -v "make\[[1-9]\]"`; \
204           for file in $$files; do \
205             echo $$subdir/$$file; \
206           done; \
207         done
208
209 release:
210         rm -rf .deps */.deps
211         $(MAKE) distcheck
212
213 sanity:
214         ./sanity_check $(VERSION)
215
216
217 snapshot:
218         $(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
219
220 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man --disable-rebuilds