]> granicus.if.org Git - strace/blob - Makefile.am
ioctlsort: rewrite build rules using noinst_PROGRAMS
[strace] / Makefile.am
1 # Automake input for strace.
2
3 SUBDIRS = tests
4
5 bin_PROGRAMS = strace
6 man_MANS = strace.1
7 bin_SCRIPTS = strace-graph strace-log-merge
8
9 OS              = linux
10 # ARCH is `i386', `m68k', `sparc', etc.
11 ARCH            = @arch@
12
13 ACLOCAL_AMFLAGS = -I m4
14 AM_CFLAGS = $(WARN_CFLAGS)
15 AM_CPPFLAGS = -I$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS) -I$(builddir)/$(OS)
16
17 include xlat/Makemodule.am
18
19 strace_SOURCES =        \
20         aio.c           \
21         bjm.c           \
22         block.c         \
23         count.c         \
24         desc.c          \
25         dirent.c        \
26         fanotify.c      \
27         file.c          \
28         inotify.c       \
29         io.c            \
30         ioctl.c         \
31         ioprio.c        \
32         ipc.c           \
33         kexec.c         \
34         keyctl.c        \
35         ldt.c           \
36         loop.c          \
37         mem.c           \
38         mtd.c           \
39         net.c           \
40         pathtrace.c     \
41         process.c       \
42         ptp.c           \
43         quota.c         \
44         reboot.c        \
45         resource.c      \
46         scsi.c          \
47         signal.c        \
48         sock.c          \
49         socketutils.c   \
50         statfs.c        \
51         strace.c        \
52         stream.c        \
53         syscall.c       \
54         sysinfo.c       \
55         system.c        \
56         term.c          \
57         time.c          \
58         util.c          \
59         v4l2.c          \
60         vsprintf.c
61
62 if USE_LIBUNWIND
63 strace_SOURCES += unwind.c
64 strace_CPPFLAGS = $(AM_CPPFLAGS) $(libunwind_CPPFLAGS)
65 strace_LDFLAGS = $(libunwind_LDFLAGS)
66 strace_LDADD = $(libunwind_LIBS)
67 else
68 strace_CPPFLAGS = $(AM_CPPFLAGS)
69 endif
70
71 noinst_HEADERS = defs.h
72 # Enable this to get link map generated
73 #strace_CFLAGS = $(AM_CFLAGS) -Wl,-Map=strace.mapfile
74
75 EXTRA_DIST =                            \
76         $(man_MANS)                     \
77         .version                        \
78         COPYING                         \
79         CREDITS                         \
80         ChangeLog                       \
81         ChangeLog-CVS                   \
82         README-linux                    \
83         README-linux-ptrace             \
84         debian/changelog                \
85         debian/compat                   \
86         debian/control                  \
87         debian/copyright                \
88         debian/rules                    \
89         debian/source/format            \
90         debian/strace-udeb.install      \
91         debian/strace.docs              \
92         debian/strace.examples          \
93         debian/strace.install           \
94         debian/strace.manpages          \
95         debian/strace64.install         \
96         debian/strace64.manpages        \
97         debian/watch                    \
98         errnoent.sh                     \
99         ioctlsort.c                     \
100         linux/aarch64/errnoent1.h       \
101         linux/aarch64/ioctlent.h.in     \
102         linux/aarch64/ioctlent1.h       \
103         linux/aarch64/signalent1.h      \
104         linux/aarch64/syscallent.h      \
105         linux/aarch64/syscallent1.h     \
106         linux/alpha/errnoent.h          \
107         linux/alpha/ioctlent.h.in       \
108         linux/alpha/signalent.h         \
109         linux/alpha/syscallent.h        \
110         linux/arc/ioctlent.h.in         \
111         linux/arc/syscallent.h          \
112         linux/arm/ioctlent.h.in         \
113         linux/arm/syscallent.h          \
114         linux/avr32/ioctlent.h.in       \
115         linux/avr32/syscallent.h        \
116         linux/bfin/ioctlent.h.in        \
117         linux/bfin/syscallent.h         \
118         linux/dummy.h                   \
119         linux/errnoent.h                \
120         linux/fanotify.h                \
121         linux/hppa/errnoent.h           \
122         linux/hppa/ioctlent.h.in        \
123         linux/hppa/signalent.h          \
124         linux/hppa/syscallent.h         \
125         linux/i386/ioctlent.h.in        \
126         linux/i386/syscallent.h         \
127         linux/ia64/ioctlent.h.in        \
128         linux/ia64/signalent.h          \
129         linux/ia64/syscallent.h         \
130         linux/inet_diag.h               \
131         linux/inotify.h                 \
132         linux/ioctlent.h.in             \
133         linux/ioctlent.sh               \
134         linux/kexec.h                   \
135         linux/keyctl.h                  \
136         linux/m68k/ioctlent.h.in        \
137         linux/m68k/syscallent.h         \
138         linux/metag/ioctlent.h.in       \
139         linux/metag/syscallent.h        \
140         linux/microblaze/ioctlent.h.in  \
141         linux/microblaze/syscallent.h   \
142         linux/mips/errnoent.h           \
143         linux/mips/ioctlent.h.in        \
144         linux/mips/ioctlent.sh          \
145         linux/mips/signalent.h          \
146         linux/mips/syscallent-compat.h  \
147         linux/mips/syscallent-n32.h     \
148         linux/mips/syscallent-n64.h     \
149         linux/mips/syscallent-o32.h     \
150         linux/mips/syscallent.h         \
151         linux/mtd-abi.h                 \
152         linux/or1k/ioctlent.h.in        \
153         linux/or1k/syscallent.h         \
154         linux/personality.h             \
155         linux/powerpc/errnoent1.h       \
156         linux/powerpc/ioctlent.h.in     \
157         linux/powerpc/ioctlent1.h       \
158         linux/powerpc/signalent1.h      \
159         linux/powerpc/syscallent.h      \
160         linux/powerpc/syscallent1.h     \
161         linux/ptp_clock.h               \
162         linux/reboot.h                  \
163         linux/s390/ioctlent.h.in        \
164         linux/s390/syscallent.h         \
165         linux/s390x/ioctlent.h.in       \
166         linux/s390x/syscallent.h        \
167         linux/sh/ioctlent.h.in          \
168         linux/sh/syscallent.h           \
169         linux/sh64/ioctlent.h.in        \
170         linux/sh64/syscallent.h         \
171         linux/signalent.h               \
172         linux/sock_diag.h               \
173         linux/sparc/dummy2.h            \
174         linux/sparc/errnoent.h          \
175         linux/sparc/errnoent1.h         \
176         linux/sparc/gen.pl              \
177         linux/sparc/ioctlent.h.in       \
178         linux/sparc/ioctlent1.h         \
179         linux/sparc/signalent.h         \
180         linux/sparc/signalent1.h        \
181         linux/sparc/syscall1.h          \
182         linux/sparc/syscallent.h        \
183         linux/sparc/syscallent1.h       \
184         linux/sparc64/dummy2.h          \
185         linux/sparc64/errnoent.h        \
186         linux/sparc64/errnoent1.h       \
187         linux/sparc64/errnoent2.h       \
188         linux/sparc64/ioctlent.h.in     \
189         linux/sparc64/ioctlent1.h       \
190         linux/sparc64/ioctlent2.h       \
191         linux/sparc64/signalent.h       \
192         linux/sparc64/signalent1.h      \
193         linux/sparc64/signalent2.h      \
194         linux/sparc64/syscall1.h        \
195         linux/sparc64/syscallent.h      \
196         linux/sparc64/syscallent1.h     \
197         linux/sparc64/syscallent2.h     \
198         linux/subcall.h                 \
199         linux/syscall.h                 \
200         linux/tile/errnoent1.h          \
201         linux/tile/ioctlent.h.in        \
202         linux/tile/ioctlent1.h          \
203         linux/tile/signalent1.h         \
204         linux/tile/syscallent.h         \
205         linux/tile/syscallent1.h        \
206         linux/ubi-user.h                \
207         linux/x32/errnoent.h            \
208         linux/x32/errnoent1.h           \
209         linux/x32/ioctlent.h.in         \
210         linux/x32/ioctlent1.h           \
211         linux/x32/signalent.h           \
212         linux/x32/signalent1.h          \
213         linux/x32/syscallent.h          \
214         linux/x32/syscallent1.h         \
215         linux/x86_64/errnoent1.h        \
216         linux/x86_64/errnoent2.h        \
217         linux/x86_64/gentab.pl          \
218         linux/x86_64/ioctlent.h.in      \
219         linux/x86_64/ioctlent1.h        \
220         linux/x86_64/ioctlent2.h        \
221         linux/x86_64/signalent1.h       \
222         linux/x86_64/signalent2.h       \
223         linux/x86_64/syscallent.h       \
224         linux/x86_64/syscallent1.h      \
225         linux/x86_64/syscallent2.h      \
226         linux/xtensa/ioctlent.h.in      \
227         linux/xtensa/syscallent.h       \
228         signalent.sh                    \
229         strace-graph                    \
230         strace-log-merge                \
231         strace.spec                     \
232         syscallent.sh                   \
233         $(XLAT_INPUT_FILES)             \
234         $(XLAT_HEADER_FILES)            \
235         xlat/gen.sh                     \
236         xlate.el
237
238 .PHONY: srpm
239 srpm: dist-xz
240         rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.xz
241
242 BUILT_SOURCES = .version
243
244 $(srcdir)/.version:
245         $(AM_V_GEN)echo $(VERSION) > $@-t && mv $@-t $@
246
247 dist-hook:
248         $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
249
250 today = $(shell date +%Y-%m-%d)
251 version_regexp = $(subst .,\.,$(VERSION))
252 news_check_regexp = 'Noteworthy changes in release $(version_regexp) ($(today))'
253
254 news-check: NEWS
255         $(AM_V_GEN)if head -1 $< |                              \
256           grep -x $(news_check_regexp) >/dev/null; then         \
257                 :;                                              \
258         else                                                    \
259                 echo >&2 '$<: check failed';                    \
260                 exit 1;                                         \
261         fi
262
263 ioctlent_h = $(builddir)/$(OS)/ioctlent.h
264 BUILT_SOURCES += $(ioctlent_h)
265 CLEANFILES = $(ioctlent_h)
266 ioctlent_h_deps = $(srcdir)/$(OS)/ioctlent.h.in $(srcdir)/$(OS)/$(ARCH)/ioctlent.h.in
267 $(ioctlent_h): $(top_builddir)/config.status $(ioctlent_h_deps)
268         $(MKDIR_P) $(builddir)/$(OS)
269         cat $(ioctlent_h_deps) | \
270                 $(COMPILE) -E -P - | \
271                 sed 's/^\([[:space:]]*{\)"[^"]\+",[[:space:]]*/\1/' | \
272                 LC_ALL=C sort -u -k2,2 -k1,1 > $@
273
274 if MAINTAINER_MODE
275
276 gen_changelog_start_date = 2009-07-08 20:00
277 $(srcdir)/ChangeLog: $(srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \
278                      $(srcdir)/.version
279         @rm -f $@.new
280         (cd $(srcdir); \
281          ./gitlog-to-changelog --append-dot \
282            --since='$(gen_changelog_start_date)'; \
283          echo; echo; echo 'See ChangeLog-CVS for older changes.' \
284         ) > $@.new
285         chmod 444 $@.new
286         mv -f $@.new $@
287
288 $(srcdir)/CREDITS: $(srcdir)/CREDITS.in $(srcdir)/.mailmap \
289                    $(srcdir)/Makefile.in $(srcdir)/.version
290         $(AM_V_GEN)                                                     \
291         (                                                               \
292           cd $(srcdir);                                                 \
293           sed '/^##/,$$d' CREDITS.in;                                   \
294           { sed -n '1,/^##>/d; s/  \+/\t/; s/^./&/p' CREDITS.in;        \
295             git log --pretty=format:'%aN        %aE';                   \
296           } | LC_ALL=C sort -u                                          \
297             | awk -F'\t' '{printf("\t%s <%s>\n",$$1,$$2)}';             \
298         ) > $@-t && mv $@-t $@
299
300 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
301
302 INCLUDEDIR = /usr/include
303 KERNEL_RELEASE = $(shell uname -r)
304 # Candidates for the kernel headers tree.
305 KERNEL_INCLUDE = \
306         /lib/modules/$(KERNEL_RELEASE)/build/include \
307         /usr/src/linux-$(KERNEL_RELEASE)/include \
308         $(INCLUDEDIR)
309 IOCTLDIR = $(shell find $(KERNEL_INCLUDE) -maxdepth 0 -type d -print -quit 2>/dev/null)
310 IOCTLASM = $(INCLUDEDIR)/asm
311
312 noinst_PROGRAMS = ioctlsort
313 ioctlsort_SOURCES = ioctlsort.c
314 nodist_ioctlsort_SOURCES = ioctls.h ioctldefs.h
315 CLEANFILES += $(nodist_ioctlsort_SOURCES)
316 ioctlsort.$(OBJEXT): $(nodist_ioctlsort_SOURCES)
317 ioctls.h: $(srcdir)/linux/ioctlent.sh
318         $(SHELL) $< $(IOCTLDIR) $(IOCTLASM)
319 ioctldefs.h: ioctls.h ;
320
321 ioctlent_h_in = linux/ioctlent.h.in
322 BUILT_SOURCES += $(ioctlent_h_in)
323 $(srcdir)/$(ioctlent_h_in): ioctlsort
324         $(<D)/$(<F) > $@
325
326 endif