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