Home | History | Annotate | Download | only in coregrind
      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