1 2 # Be very careful when renaming any files, targets, whatever, in this 3 # Makefile. Various parts of the system rely on these names having 4 # particular forms. 5 6 include $(top_srcdir)/Makefile.all.am 7 8 #---------------------------------------------------------------------------- 9 # Basics, flags 10 #---------------------------------------------------------------------------- 11 12 AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \ 13 -I$(top_srcdir)/coregrind \ 14 -DVG_LIBDIR="\"$(pkglibdir)"\" \ 15 -DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\"" 16 if VGCONF_HAVE_PLATFORM_SEC 17 AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \ 18 -I$(top_srcdir)/coregrind \ 19 -DVG_LIBDIR="\"$(pkglibdir)"\" \ 20 -DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\"" 21 endif 22 23 24 EXTRA_DIST = \ 25 m_debuginfo/UNUSED_STABS.txt \ 26 m_debuginfo/README.txt 27 28 #---------------------------------------------------------------------------- 29 # The launcher. Built for the primary target only. 30 #---------------------------------------------------------------------------- 31 32 bin_PROGRAMS = \ 33 valgrind \ 34 no_op_client_for_valgrind 35 36 if VGCONF_OS_IS_LINUX 37 valgrind_SOURCES = \ 38 launcher-linux.c \ 39 m_debuglog.c 40 endif 41 if VGCONF_OS_IS_AIX5 42 valgrind_SOURCES = \ 43 launcher-aix5.c \ 44 m_debuglog.c \ 45 m_vkiscnums.c 46 endif 47 if VGCONF_OS_IS_DARWIN 48 valgrind_SOURCES = \ 49 launcher-darwin.c \ 50 m_debuglog.c 51 endif 52 53 valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) 54 valgrind_CFLAGS = $(AM_CFLAGS_PRI) 55 valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) 56 valgrind_LDFLAGS = $(AM_CFLAGS_PRI) 57 if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN 58 valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress 59 endif 60 61 no_op_client_for_valgrind_SOURCES = no_op_client_for_valgrind.c 62 no_op_client_for_valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) 63 no_op_client_for_valgrind_CFLAGS = $(AM_CFLAGS_PRI) 64 no_op_client_for_valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) 65 no_op_client_for_valgrind_LDFLAGS = $(AM_CFLAGS_PRI) 66 if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN 67 no_op_client_for_valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress 68 endif 69 70 #---------------------------------------------------------------------------- 71 # Darwin Mach stuff 72 #---------------------------------------------------------------------------- 73 74 # Mach RPC interface definitions 75 # Here are some more .defs files that are not used, but could be in the 76 # future: 77 # clock.defs \ 78 # clock_priv.defs \ 79 # clock_reply.defs \ 80 # exc.defs \ 81 # host_priv.defs \ 82 # host_security.defs \ 83 # ledger.defs \ 84 # lock_set.defs \ 85 # mach_host.defs \ 86 # mach_port.defs \ 87 # notify.defs \ 88 # processor.defs \ 89 # processor_set.defs \ 90 # 91 mach_user_srcs = 92 mach_server_srcs = 93 mach_hdrs = 94 mach_defs = 95 if VGCONF_OS_IS_DARWIN 96 mach_user_srcs += \ 97 m_mach/mach_vmUser.c \ 98 m_mach/taskUser.c \ 99 m_mach/thread_actUser.c \ 100 m_mach/vm_mapUser.c 101 mach_server_srcs += \ 102 m_mach/mach_vmServer.c \ 103 m_mach/taskServer.c \ 104 m_mach/thread_actServer.c \ 105 m_mach/vm_mapServer.c 106 mach_hdrs += \ 107 m_mach/mach_vm.h \ 108 m_mach/task.h \ 109 m_mach/thread_act.h \ 110 m_mach/vm_map.h 111 mach_defs += \ 112 /usr/include/mach/mach_vm.defs \ 113 /usr/include/mach/task.defs \ 114 /usr/include/mach/thread_act.defs \ 115 /usr/include/mach/vm_map.defs 116 endif 117 118 # Be careful w.r.t. parallel builds. See section 27.9 of the automake info 119 # page, "Handling Tools that Produce many Outputs". 120 $(abs_builddir)/m_mach: 121 mkdir -p $@ 122 $(mach_user_srcs): $(mach_defs) $(abs_builddir)/m_mach 123 (cd m_mach && mig $(mach_defs)) 124 $(mach_hdrs): $(mach_defs) $(mach_user_srcs) $(abs_builddir)/m_mach 125 (cd m_mach && mig $(mach_defs)) 126 127 #---------------------------------------------------------------------------- 128 # Headers 129 #---------------------------------------------------------------------------- 130 131 noinst_HEADERS = \ 132 launcher-aix5-bootblock.h \ 133 pub_core_aspacehl.h \ 134 pub_core_aspacemgr.h \ 135 pub_core_basics.h \ 136 pub_core_basics_asm.h \ 137 pub_core_clientstate.h \ 138 pub_core_clreq.h \ 139 pub_core_commandline.h \ 140 pub_core_coredump.h \ 141 pub_core_cpuid.h \ 142 pub_core_debuginfo.h \ 143 pub_core_debugger.h \ 144 pub_core_debuglog.h \ 145 pub_core_demangle.h \ 146 pub_core_dispatch.h \ 147 pub_core_dispatch_asm.h \ 148 pub_core_errormgr.h \ 149 pub_core_execontext.h \ 150 pub_core_hashtable.h \ 151 pub_core_initimg.h \ 152 pub_core_libcbase.h \ 153 pub_core_libcassert.h \ 154 pub_core_libcfile.h \ 155 pub_core_libcprint.h \ 156 pub_core_libcproc.h \ 157 pub_core_libcsignal.h \ 158 pub_core_mach.h \ 159 pub_core_machine.h \ 160 pub_core_mallocfree.h \ 161 pub_core_options.h \ 162 pub_core_oset.h \ 163 pub_core_redir.h \ 164 pub_core_replacemalloc.h\ 165 pub_core_scheduler.h \ 166 pub_core_seqmatch.h \ 167 pub_core_sigframe.h \ 168 pub_core_signals.h \ 169 pub_core_sparsewa.h \ 170 pub_core_stacks.h \ 171 pub_core_stacktrace.h \ 172 pub_core_syscall.h \ 173 pub_core_syswrap.h \ 174 pub_core_threadstate.h \ 175 pub_core_tooliface.h \ 176 pub_core_trampoline.h \ 177 pub_core_translate.h \ 178 pub_core_transtab.h \ 179 pub_core_transtab_asm.h \ 180 pub_core_ume.h \ 181 pub_core_vki.h \ 182 pub_core_vkiscnums.h \ 183 pub_core_vkiscnums_asm.h\ 184 pub_core_wordfm.h \ 185 pub_core_xarray.h \ 186 m_aspacemgr/priv_aspacemgr.h \ 187 m_debuginfo/priv_misc.h \ 188 m_debuginfo/priv_storage.h \ 189 m_debuginfo/priv_tytypes.h \ 190 m_debuginfo/priv_readstabs.h \ 191 m_debuginfo/priv_readpdb.h \ 192 m_debuginfo/priv_d3basics.h \ 193 m_debuginfo/priv_readdwarf.h \ 194 m_debuginfo/priv_readdwarf3.h \ 195 m_debuginfo/priv_readelf.h \ 196 m_debuginfo/priv_readmacho.h \ 197 m_debuginfo/priv_readxcoff.h \ 198 m_demangle/ansidecl.h \ 199 m_demangle/cp-demangle.h \ 200 m_demangle/dyn-string.h \ 201 m_demangle/demangle.h \ 202 m_demangle/safe-ctype.h \ 203 m_demangle/vg_libciface.h \ 204 m_initimg/priv_initimg_pathscan.h \ 205 m_initimg/simple_huffman.c \ 206 m_scheduler/priv_sema.h \ 207 m_syswrap/priv_types_n_macros.h \ 208 m_syswrap/priv_syswrap-generic.h \ 209 m_syswrap/priv_syswrap-linux.h \ 210 m_syswrap/priv_syswrap-linux-variants.h \ 211 m_syswrap/priv_syswrap-aix5.h \ 212 m_syswrap/priv_syswrap-darwin.h \ 213 m_syswrap/priv_syswrap-main.h \ 214 m_ume/priv_ume.h 215 216 #---------------------------------------------------------------------------- 217 # libcoregrind-<platform>.a 218 #---------------------------------------------------------------------------- 219 220 BUILT_SOURCES = $(mach_user_srcs) 221 CLEANFILES = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs) 222 223 pkglib_LIBRARIES = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a 224 if VGCONF_HAVE_PLATFORM_SEC 225 pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a 226 endif 227 228 COREGRIND_SOURCES_COMMON = \ 229 m_commandline.c \ 230 m_clientstate.c \ 231 m_cpuid.S \ 232 m_debugger.c \ 233 m_debuglog.c \ 234 m_errormgr.c \ 235 m_execontext.c \ 236 m_hashtable.c \ 237 m_libcbase.c \ 238 m_libcassert.c \ 239 m_libcfile.c \ 240 m_libcprint.c \ 241 m_libcproc.c \ 242 m_libcsignal.c \ 243 m_machine.c \ 244 m_main.c \ 245 m_mallocfree.c \ 246 m_options.c \ 247 m_oset.c \ 248 m_redir.c \ 249 m_seqmatch.c \ 250 m_signals.c \ 251 m_sparsewa.c \ 252 m_stacks.c \ 253 m_stacktrace.c \ 254 m_syscall.c \ 255 m_threadstate.c \ 256 m_tooliface.c \ 257 m_trampoline.S \ 258 m_translate.c \ 259 m_transtab.c \ 260 m_vki.c \ 261 m_vkiscnums.c \ 262 m_wordfm.c \ 263 m_xarray.c \ 264 m_aspacehl.c \ 265 m_aspacemgr/aspacemgr-common.c \ 266 m_aspacemgr/aspacemgr-linux.c \ 267 m_aspacemgr/aspacemgr-aix5.c \ 268 m_coredump/coredump-elf.c \ 269 m_coredump/coredump-macho.c \ 270 m_coredump/coredump-xcoff.c \ 271 m_debuginfo/misc.c \ 272 m_debuginfo/d3basics.c \ 273 m_debuginfo/debuginfo.c \ 274 m_debuginfo/readdwarf.c \ 275 m_debuginfo/readdwarf3.c \ 276 m_debuginfo/readelf.c \ 277 m_debuginfo/readmacho.c \ 278 m_debuginfo/readpdb.c \ 279 m_debuginfo/readstabs.c \ 280 m_debuginfo/readxcoff.c \ 281 m_debuginfo/storage.c \ 282 m_debuginfo/tytypes.c \ 283 m_demangle/cp-demangle.c \ 284 m_demangle/cplus-dem.c \ 285 m_demangle/demangle.c \ 286 m_demangle/dyn-string.c \ 287 m_demangle/safe-ctype.c \ 288 m_dispatch/dispatch-x86-linux.S \ 289 m_dispatch/dispatch-amd64-linux.S \ 290 m_dispatch/dispatch-ppc32-linux.S \ 291 m_dispatch/dispatch-ppc64-linux.S \ 292 m_dispatch/dispatch-arm-linux.S \ 293 m_dispatch/dispatch-ppc32-aix5.S \ 294 m_dispatch/dispatch-ppc64-aix5.S \ 295 m_dispatch/dispatch-x86-darwin.S \ 296 m_dispatch/dispatch-amd64-darwin.S \ 297 m_initimg/initimg-linux.c \ 298 m_initimg/initimg-aix5.c \ 299 m_initimg/initimg-darwin.c \ 300 m_initimg/initimg-pathscan.c \ 301 m_mach/mach_basics.c \ 302 m_mach/mach_msg.c \ 303 m_mach/mach_traps-x86-darwin.S \ 304 m_mach/mach_traps-amd64-darwin.S \ 305 m_replacemalloc/replacemalloc_core.c \ 306 m_scheduler/scheduler.c \ 307 m_scheduler/sema.c \ 308 m_sigframe/sigframe-x86-linux.c \ 309 m_sigframe/sigframe-amd64-linux.c \ 310 m_sigframe/sigframe-ppc32-linux.c \ 311 m_sigframe/sigframe-ppc64-linux.c \ 312 m_sigframe/sigframe-arm-linux.c \ 313 m_sigframe/sigframe-ppc32-aix5.c \ 314 m_sigframe/sigframe-ppc64-aix5.c \ 315 m_sigframe/sigframe-x86-darwin.c \ 316 m_sigframe/sigframe-amd64-darwin.c \ 317 m_syswrap/syscall-x86-linux.S \ 318 m_syswrap/syscall-amd64-linux.S \ 319 m_syswrap/syscall-ppc32-linux.S \ 320 m_syswrap/syscall-ppc64-linux.S \ 321 m_syswrap/syscall-arm-linux.S \ 322 m_syswrap/syscall-ppc32-aix5.S \ 323 m_syswrap/syscall-ppc64-aix5.S \ 324 m_syswrap/syscall-x86-darwin.S \ 325 m_syswrap/syscall-amd64-darwin.S \ 326 m_syswrap/syswrap-main.c \ 327 m_syswrap/syswrap-generic.c \ 328 m_syswrap/syswrap-linux.c \ 329 m_syswrap/syswrap-linux-variants.c \ 330 m_syswrap/syswrap-aix5.c \ 331 m_syswrap/syswrap-darwin.c \ 332 m_syswrap/syswrap-x86-linux.c \ 333 m_syswrap/syswrap-amd64-linux.c \ 334 m_syswrap/syswrap-ppc32-linux.c \ 335 m_syswrap/syswrap-ppc64-linux.c \ 336 m_syswrap/syswrap-arm-linux.c \ 337 m_syswrap/syswrap-ppc32-aix5.c \ 338 m_syswrap/syswrap-ppc64-aix5.c \ 339 m_syswrap/syswrap-x86-darwin.c \ 340 m_syswrap/syswrap-amd64-darwin.c \ 341 m_ume/elf.c \ 342 m_ume/macho.c \ 343 m_ume/main.c \ 344 m_ume/script.c 345 346 libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 347 $(COREGRIND_SOURCES_COMMON) 348 nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 349 $(BUILT_SOURCES) 350 libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 351 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 352 libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 353 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 354 libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \ 355 $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 356 if VGCONF_HAVE_PLATFORM_SEC 357 libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 358 $(COREGRIND_SOURCES_COMMON) 359 nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 360 $(BUILT_SOURCES) 361 libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 362 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 363 libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 364 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 365 libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \ 366 $(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 367 endif 368 369 libcoregrind_ppc32_aix5_a_AR = $(AR) -X32 cru 370 libcoregrind_ppc64_aix5_a_AR = $(AR) -X64 cru 371 372 #---------------------------------------------------------------------------- 373 # libreplacemalloc_toolpreload-<platform>.a 374 #---------------------------------------------------------------------------- 375 376 pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a 377 if VGCONF_HAVE_PLATFORM_SEC 378 pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a 379 endif 380 381 libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 382 m_replacemalloc/vg_replace_malloc.c 383 libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 384 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 385 libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 386 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) 387 if VGCONF_HAVE_PLATFORM_SEC 388 libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 389 m_replacemalloc/vg_replace_malloc.c 390 libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 391 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 392 libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 393 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) 394 endif 395 396 # Special AR for AIX. 397 libreplacemalloc_toolpreload_ppc32_aix5_a_AR = $(AR) -X32 cru 398 libreplacemalloc_toolpreload_ppc64_aix5_a_AR = $(AR) -X64 cru 399 400 #---------------------------------------------------------------------------- 401 # vgpreload_core-<platform>.a 402 #---------------------------------------------------------------------------- 403 404 noinst_PROGRAMS = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so 405 if VGCONF_HAVE_PLATFORM_SEC 406 noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so 407 endif 408 409 if VGCONF_OS_IS_DARWIN 410 noinst_DSYMS = $(noinst_PROGRAMS) 411 endif 412 413 vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c 414 vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \ 415 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 416 vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \ 417 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) 418 vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \ 419 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 420 if VGCONF_HAVE_PLATFORM_SEC 421 vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c 422 vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \ 423 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 424 vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \ 425 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) 426 vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \ 427 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 428 endif 429 430 #---------------------------------------------------------------------------- 431 # General stuff 432 #---------------------------------------------------------------------------- 433 434 all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS 435 436 clean-local: clean-noinst_DSYMS 437 438 install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS 439 440