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 6include $(top_srcdir)/Makefile.all.am 7 8#---------------------------------------------------------------------------- 9# Basics, flags 10#---------------------------------------------------------------------------- 11 12AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \ 13 -I$(top_srcdir)/coregrind \ 14 -DVG_LIBDIR="\"$(pkglibdir)"\" \ 15 -DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\"" 16if VGCONF_HAVE_PLATFORM_SEC 17AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \ 18 -I$(top_srcdir)/coregrind \ 19 -DVG_LIBDIR="\"$(pkglibdir)"\" \ 20 -DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\"" 21endif 22 23 24EXTRA_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 32bin_PROGRAMS = \ 33 valgrind \ 34 no_op_client_for_valgrind 35 36if VGCONF_OS_IS_LINUX 37valgrind_SOURCES = \ 38 launcher-linux.c \ 39 m_debuglog.c 40endif 41if VGCONF_OS_IS_AIX5 42valgrind_SOURCES = \ 43 launcher-aix5.c \ 44 m_debuglog.c \ 45 m_vkiscnums.c 46endif 47if VGCONF_OS_IS_DARWIN 48valgrind_SOURCES = \ 49 launcher-darwin.c \ 50 m_debuglog.c 51endif 52 53valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) 54valgrind_CFLAGS = $(AM_CFLAGS_PRI) 55valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) 56valgrind_LDFLAGS = $(AM_CFLAGS_PRI) 57if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN 58valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress 59endif 60 61no_op_client_for_valgrind_SOURCES = no_op_client_for_valgrind.c 62no_op_client_for_valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) 63no_op_client_for_valgrind_CFLAGS = $(AM_CFLAGS_PRI) 64no_op_client_for_valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) 65no_op_client_for_valgrind_LDFLAGS = $(AM_CFLAGS_PRI) 66if VGCONF_PLATFORMS_INCLUDE_X86_DARWIN 67no_op_client_for_valgrind_LDFLAGS += -Wl,-read_only_relocs -Wl,suppress 68endif 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# 91mach_user_srcs = 92mach_server_srcs = 93mach_hdrs = 94mach_defs = 95if VGCONF_OS_IS_DARWIN 96mach_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 101mach_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 106mach_hdrs += \ 107 m_mach/mach_vm.h \ 108 m_mach/task.h \ 109 m_mach/thread_act.h \ 110 m_mach/vm_map.h 111mach_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 116endif 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 131noinst_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 220BUILT_SOURCES = $(mach_user_srcs) 221CLEANFILES = $(mach_user_srcs) $(mach_server_srcs) $(mach_hdrs) 222 223pkglib_LIBRARIES = libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a 224if VGCONF_HAVE_PLATFORM_SEC 225pkglib_LIBRARIES += libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a 226endif 227 228COREGRIND_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 346libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 347 $(COREGRIND_SOURCES_COMMON) 348nodist_libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 349 $(BUILT_SOURCES) 350libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 351 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 352libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 353 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 354libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CCASFLAGS = \ 355 $(AM_CCASFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 356if VGCONF_HAVE_PLATFORM_SEC 357libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 358 $(COREGRIND_SOURCES_COMMON) 359nodist_libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 360 $(BUILT_SOURCES) 361libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 362 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 363libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 364 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 365libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CCASFLAGS = \ 366 $(AM_CCASFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 367endif 368 369libcoregrind_ppc32_aix5_a_AR = $(AR) -X32 cru 370libcoregrind_ppc64_aix5_a_AR = $(AR) -X64 cru 371 372#---------------------------------------------------------------------------- 373# libreplacemalloc_toolpreload-<platform>.a 374#---------------------------------------------------------------------------- 375 376pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a 377if VGCONF_HAVE_PLATFORM_SEC 378pkglib_LIBRARIES += libreplacemalloc_toolpreload-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a 379endif 380 381libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 382 m_replacemalloc/vg_replace_malloc.c 383libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 384 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 385libreplacemalloc_toolpreload_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 386 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) 387if VGCONF_HAVE_PLATFORM_SEC 388libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 389 m_replacemalloc/vg_replace_malloc.c 390libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 391 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 392libreplacemalloc_toolpreload_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 393 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) 394endif 395 396# Special AR for AIX. 397libreplacemalloc_toolpreload_ppc32_aix5_a_AR = $(AR) -X32 cru 398libreplacemalloc_toolpreload_ppc64_aix5_a_AR = $(AR) -X64 cru 399 400#---------------------------------------------------------------------------- 401# vgpreload_core-<platform>.a 402#---------------------------------------------------------------------------- 403 404noinst_PROGRAMS = vgpreload_core-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so 405if VGCONF_HAVE_PLATFORM_SEC 406noinst_PROGRAMS += vgpreload_core-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so 407endif 408 409if VGCONF_OS_IS_DARWIN 410noinst_DSYMS = $(noinst_PROGRAMS) 411endif 412 413vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c 414vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = \ 415 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 416vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \ 417 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(AM_CFLAGS_PIC) 418vgpreload_core_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = \ 419 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) 420if VGCONF_HAVE_PLATFORM_SEC 421vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = vg_preloaded.c 422vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = \ 423 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 424vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \ 425 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(AM_CFLAGS_PIC) 426vgpreload_core_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = \ 427 $(PRELOAD_LDFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) 428endif 429 430#---------------------------------------------------------------------------- 431# General stuff 432#---------------------------------------------------------------------------- 433 434all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS 435 436clean-local: clean-noinst_DSYMS 437 438install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS 439 440