]>
Commit | Line | Data |
---|---|---|
bfff8b1b | 1 | # Copyright (C) 1995-2017 Free Software Foundation, Inc. |
11c981a9 RM |
2 | # This file is part of the GNU C Library. |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
5 | # modify it under the terms of the GNU Lesser General Public |
6 | # License as published by the Free Software Foundation; either | |
7 | # version 2.1 of the License, or (at your option) any later version. | |
11c981a9 RM |
8 | |
9 | # The GNU C Library is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
11c981a9 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | # License along with the GNU C Library; if not, see |
16 | # <http://www.gnu.org/licenses/>. | |
11c981a9 RM |
17 | |
18 | # | |
19 | # Sub-makefile for gmon portion of the library. | |
20 | # | |
21 | subdir := gmon | |
22 | ||
a5f891ac JM |
23 | include ../Makeconfig |
24 | ||
a341068d | 25 | headers := sys/gmon.h sys/gmon_out.h sys/profil.h |
7ed87317 | 26 | routines := gmon mcount profil sprofil prof-freq |
0e043598 | 27 | |
6014c65d | 28 | tests = tst-sprofil tst-gmon |
9f0d7b6d UD |
29 | ifeq ($(build-profile),yes) |
30 | tests += tst-profile-static | |
31 | tests-static += tst-profile-static | |
32 | ||
33 | LDFLAGS-tst-profile-static = -profile | |
34 | endif | |
11c981a9 | 35 | |
d99d7e26 RM |
36 | # The mcount code won't work without a frame pointer. |
37 | CFLAGS-mcount.c := -fno-omit-frame-pointer | |
38 | ||
0c251257 | 39 | CFLAGS-tst-gmon.c := -fno-omit-frame-pointer -pg |
6014c65d FW |
40 | LDFLAGS-tst-gmon := $(no-pie-ldflag) |
41 | CRT-tst-gmon := $(csu-objpfx)gcrt1.o | |
42 | tst-gmon-ENV := GMON_OUT_PREFIX=$(objpfx)tst-gmon.data | |
6b11a6ad | 43 | ifeq ($(run-built-tests),yes) |
6014c65d | 44 | tests-special += $(objpfx)tst-gmon-gprof.out |
6b11a6ad | 45 | endif |
6014c65d | 46 | |
d7d06f79 UD |
47 | include ../Rules |
48 | ||
d99d7e26 | 49 | # We cannot compile mcount.c with -pg because that would |
6d52618b | 50 | # create recursive calls. Just copy the normal static object. |
92777700 RM |
51 | # On systems where `profil' is not a system call, the same |
52 | # problem exists for the internal functions in profil.c. | |
53 | ||
87a07a43 | 54 | noprof := mcount $(sysdep_noprof) |
92777700 | 55 | ifeq (,$(filter profil,$(unix-syscalls))) |
4c48b267 | 56 | noprof += profil sprofil |
92777700 RM |
57 | endif |
58 | ||
40a55d20 | 59 | $(noprof:%=$(objpfx)%.op): %.op: %.o |
d99d7e26 RM |
60 | rm -f $@ |
61 | ln $< $@ | |
6014c65d FW |
62 | |
63 | # GMON_OUTPUT_PREFIX only sets the output prefix. The actual file | |
64 | # name contains the PID as well. | |
65 | $(objpfx)tst-gmon.out: clean-tst-gmon-data | |
66 | clean-tst-gmon-data: | |
67 | rm -f $(objpfx)tst-gmon.data.* | |
68 | ||
69 | $(objpfx)tst-gmon-gprof.out: tst-gmon-gprof.sh $(objpfx)tst-gmon.out | |
70 | $(SHELL) $< $(GPROF) $(objpfx)tst-gmon $(objpfx)tst-gmon.data.* > $@; \ | |
71 | $(evaluate-test) |