Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / profiler / Makefile.am
1 if HAVE_ZLIB
2 Z_LIBS= -lz
3 else
4 Z_LIBS=
5 endif
6
7 AM_CPPFLAGS = \
8         -DSUPPRESSION_DIR=\""$(datadir)/mono-$(API_VER)/mono/profiler"\"        \
9         -I$(top_srcdir)         \
10         $(GLIB_CFLAGS)
11
12 if !HOST_WIN32
13 if !DISABLE_LIBRARIES
14 if !DISABLE_PROFILER
15 bin_PROGRAMS = mprof-report
16
17 if HAVE_VTUNE
18 vtune_libs = libmono-profiler-vtune.la libmono-profiler-vtune-static.la
19 endif
20
21 lib_LTLIBRARIES = \
22         libmono-profiler-aot.la \
23         libmono-profiler-aot-static.la \
24         libmono-profiler-iomap.la \
25         libmono-profiler-iomap-static.la \
26         libmono-profiler-log.la \
27         libmono-profiler-log-static.la \
28         libmono-profiler-coverage.la \
29         libmono-profiler-coverage-static.la \
30         $(vtune_libs)
31
32 suppressiondir = $(datadir)/mono-$(API_VER)/mono/profiler
33 suppression_DATA = mono-profiler-log.suppression
34
35 if HOST_DARWIN
36 if BITCODE
37 prof_ldflags = -no-undefined
38 else
39 prof_ldflags = -Wl,-undefined -Wl,suppress -Wl,-flat_namespace
40 endif
41 endif
42
43 if TARGET_OSX
44 libmono_dep =
45 else
46 libmono_dep = $(monodir)/mono/mini/$(LIBMONO_LA)
47 endif
48
49 if HOST_ANDROID
50 prof_ldflags = -avoid-version
51 endif
52
53 # FIXME fix the profiler tests to work with coop.
54 if !ENABLE_COOP
55 check_targets = testlog
56 endif
57
58 endif
59 endif
60 endif
61
62 monodir=$(top_builddir)
63
64 # The log profiler uses eglib functions, so it needs to be linked against
65 # libeglib in shared mode, but not in static mode, since that would
66 # leads to duplicate symbols when it is linked into an app which
67 # also uses eglib (e.g. the runtime). Automake doesn't support this
68 # functionality, so create a separate static version of the library.
69
70 libmono_profiler_aot_la_SOURCES = aot.c
71 libmono_profiler_aot_la_LIBADD =  $(libmono_dep) $(GLIB_LIBS) $(LIBICONV)
72 libmono_profiler_aot_la_LDFLAGS = $(prof_ldflags)
73 libmono_profiler_aot_static_la_SOURCES = aot.c
74 libmono_profiler_aot_static_la_LDFLAGS = -static
75
76 libmono_profiler_iomap_la_SOURCES = iomap.c
77 libmono_profiler_iomap_la_LIBADD = $(libmono_dep) $(GLIB_LIBS) $(LIBICONV)
78 libmono_profiler_iomap_la_LDFLAGS = $(prof_ldflags)
79 libmono_profiler_iomap_static_la_SOURCES = iomap.c
80 libmono_profiler_iomap_static_la_LDFLAGS = -static
81
82 libmono_profiler_log_la_SOURCES = log.c log-args.c
83 libmono_profiler_log_la_LIBADD = $(libmono_dep) $(GLIB_LIBS) $(Z_LIBS)
84 libmono_profiler_log_la_LDFLAGS = $(prof_ldflags)
85 libmono_profiler_log_static_la_SOURCES = log.c log-args.c
86 libmono_profiler_log_static_la_LDFLAGS = -static
87
88 libmono_profiler_coverage_la_SOURCES = coverage.c
89 libmono_profiler_coverage_la_LIBADD = $(libmono_dep) $(GLIB_LIBS) $(Z_LIBS)
90 libmono_profiler_coverage_la_LDFLAGS = $(prof_ldflags)
91 libmono_profiler_coverage_static_la_SOURCES = coverage.c
92 libmono_profiler_coverage_static_la_LDFLAGS = -static
93
94 if HAVE_VTUNE
95 libmono_profiler_vtune_la_SOURCES = vtune.c
96 libmono_profiler_vtune_la_CFLAGS = $(VTUNE_CFLAGS)
97 libmono_profiler_vtune_la_LIBADD = $(VTUNE_LIBS) $(LIBMONO) $(GLIB_LIBS) $(LIBICONV)
98 libmono_profiler_vtune_la_LDFLAGS = $(prof_ldflags)
99 libmono_profiler_vtune_static_la_SOURCES = vtune.c
100 libmono_profiler_vtune_static_la_LDFLAGS = -static
101 libmono_profiler_vtune_static_la_CFLAGS = $(VTUNE_CFLAGS)
102 libmono_profiler_vtune_static_la_LIBADD = $(VTUNE_LIBS)
103 endif
104
105 mprof_report_SOURCES = mprof-report.c
106 mprof_report_LDADD = $(Z_LIBS) $(GLIB_LIBS) $(LIBICONV)
107
108 PLOG_TESTS_SRC=test-alloc.cs test-busy.cs test-monitor.cs test-excleave.cs \
109         test-heapshot.cs test-traces.cs
110 PLOG_TESTS=$(PLOG_TESTS_SRC:.cs=.exe)
111
112 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
113
114 TOOLS_RUNTIME = MONO_PATH=$(mcs_topdir)/class/lib/build $(top_builddir)/runtime/mono-wrapper
115 MCS = $(TOOLS_RUNTIME) $(CSC) -lib:$(CLASS) -unsafe -nologo -noconfig -nowarn:0162 -nowarn:0168 -nowarn:0219 -debug:portable
116
117 %.exe: %.cs
118         $(MCS) -out:$@ $<
119
120 testlog: $(PLOG_TESTS)
121         MONO_PATH=$(CLASS) perl $(srcdir)/ptestrunner.pl $(top_builddir)
122
123 check-local: $(check_targets)
124
125 EXTRA_DIST=log.h \
126         aot.h \
127         $(PLOG_TESTS_SRC) \
128         ptestrunner.pl \
129         $(suppression_DATA)