1*c43cad87SWarner Losh# Clear out all vpaths, then set just one (default vpath) for the main build 2*c43cad87SWarner Losh# directory. 3*c43cad87SWarner Loshvpath 4*c43cad87SWarner Loshvpath % . 5*c43cad87SWarner Losh 6*c43cad87SWarner Losh# Clear the default suffixes, so that built-in rules are not used. 7*c43cad87SWarner Losh.SUFFIXES : 8*c43cad87SWarner Losh 9*c43cad87SWarner LoshSHELL := /bin/sh 10*c43cad87SWarner Losh 11*c43cad87SWarner LoshCC := @CC@ 12*c43cad87SWarner LoshCXX := @CXX@ 13*c43cad87SWarner Losh 14*c43cad87SWarner Losh# Configuration parameters. 15*c43cad87SWarner LoshDESTDIR = 16*c43cad87SWarner LoshBINDIR := $(DESTDIR)@BINDIR@ 17*c43cad87SWarner LoshINCLUDEDIR := $(DESTDIR)@INCLUDEDIR@ 18*c43cad87SWarner LoshLIBDIR := $(DESTDIR)@LIBDIR@ 19*c43cad87SWarner LoshDATADIR := $(DESTDIR)@DATADIR@ 20*c43cad87SWarner LoshMANDIR := $(DESTDIR)@MANDIR@ 21*c43cad87SWarner Loshsrcroot := @srcroot@ 22*c43cad87SWarner Loshobjroot := @objroot@ 23*c43cad87SWarner Loshabs_srcroot := @abs_srcroot@ 24*c43cad87SWarner Loshabs_objroot := @abs_objroot@ 25*c43cad87SWarner Losh 26*c43cad87SWarner Losh# Build parameters. 27*c43cad87SWarner LoshCPPFLAGS := @CPPFLAGS@ -I$(objroot)include -I$(srcroot)include 28*c43cad87SWarner LoshCONFIGURE_CFLAGS := @CONFIGURE_CFLAGS@ 29*c43cad87SWarner LoshSPECIFIED_CFLAGS := @SPECIFIED_CFLAGS@ 30*c43cad87SWarner LoshEXTRA_CFLAGS := @EXTRA_CFLAGS@ 31*c43cad87SWarner LoshCFLAGS := $(strip $(CONFIGURE_CFLAGS) $(SPECIFIED_CFLAGS) $(EXTRA_CFLAGS)) 32*c43cad87SWarner LoshCONFIGURE_CXXFLAGS := @CONFIGURE_CXXFLAGS@ 33*c43cad87SWarner LoshSPECIFIED_CXXFLAGS := @SPECIFIED_CXXFLAGS@ 34*c43cad87SWarner LoshEXTRA_CXXFLAGS := @EXTRA_CXXFLAGS@ 35*c43cad87SWarner LoshCXXFLAGS := $(strip $(CONFIGURE_CXXFLAGS) $(SPECIFIED_CXXFLAGS) $(EXTRA_CXXFLAGS)) 36*c43cad87SWarner LoshLDFLAGS := @LDFLAGS@ 37*c43cad87SWarner LoshEXTRA_LDFLAGS := @EXTRA_LDFLAGS@ 38*c43cad87SWarner LoshLIBS := @LIBS@ 39*c43cad87SWarner LoshRPATH_EXTRA := @RPATH_EXTRA@ 40*c43cad87SWarner LoshSO := @so@ 41*c43cad87SWarner LoshIMPORTLIB := @importlib@ 42*c43cad87SWarner LoshO := @o@ 43*c43cad87SWarner LoshA := @a@ 44*c43cad87SWarner LoshEXE := @exe@ 45*c43cad87SWarner LoshLIBPREFIX := @libprefix@ 46*c43cad87SWarner LoshREV := @rev@ 47*c43cad87SWarner Loshinstall_suffix := @install_suffix@ 48*c43cad87SWarner LoshABI := @abi@ 49*c43cad87SWarner LoshXSLTPROC := @XSLTPROC@ 50*c43cad87SWarner LoshXSLROOT := @XSLROOT@ 51*c43cad87SWarner LoshAUTOCONF := @AUTOCONF@ 52*c43cad87SWarner Losh_RPATH = @RPATH@ 53*c43cad87SWarner LoshRPATH = $(if $(1),$(call _RPATH,$(1))) 54*c43cad87SWarner Loshcfghdrs_in := $(addprefix $(srcroot),@cfghdrs_in@) 55*c43cad87SWarner Loshcfghdrs_out := @cfghdrs_out@ 56*c43cad87SWarner Loshcfgoutputs_in := $(addprefix $(srcroot),@cfgoutputs_in@) 57*c43cad87SWarner Loshcfgoutputs_out := @cfgoutputs_out@ 58*c43cad87SWarner Loshenable_autogen := @enable_autogen@ 59*c43cad87SWarner Loshenable_doc := @enable_doc@ 60*c43cad87SWarner Loshenable_shared := @enable_shared@ 61*c43cad87SWarner Loshenable_static := @enable_static@ 62*c43cad87SWarner Loshenable_prof := @enable_prof@ 63*c43cad87SWarner Loshenable_zone_allocator := @enable_zone_allocator@ 64*c43cad87SWarner Loshenable_experimental_smallocx := @enable_experimental_smallocx@ 65*c43cad87SWarner LoshMALLOC_CONF := @JEMALLOC_CPREFIX@MALLOC_CONF 66*c43cad87SWarner Loshlink_whole_archive := @link_whole_archive@ 67*c43cad87SWarner LoshDSO_LDFLAGS = @DSO_LDFLAGS@ 68*c43cad87SWarner LoshSOREV = @SOREV@ 69*c43cad87SWarner LoshPIC_CFLAGS = @PIC_CFLAGS@ 70*c43cad87SWarner LoshCTARGET = @CTARGET@ 71*c43cad87SWarner LoshLDTARGET = @LDTARGET@ 72*c43cad87SWarner LoshTEST_LD_MODE = @TEST_LD_MODE@ 73*c43cad87SWarner LoshMKLIB = @MKLIB@ 74*c43cad87SWarner LoshAR = @AR@ 75*c43cad87SWarner LoshARFLAGS = @ARFLAGS@ 76*c43cad87SWarner LoshDUMP_SYMS = @DUMP_SYMS@ 77*c43cad87SWarner LoshAWK := @AWK@ 78*c43cad87SWarner LoshCC_MM = @CC_MM@ 79*c43cad87SWarner LoshLM := @LM@ 80*c43cad87SWarner LoshINSTALL = @INSTALL@ 81*c43cad87SWarner Losh 82*c43cad87SWarner Loshifeq (macho, $(ABI)) 83*c43cad87SWarner LoshTEST_LIBRARY_PATH := DYLD_FALLBACK_LIBRARY_PATH="$(objroot)lib" 84*c43cad87SWarner Loshelse 85*c43cad87SWarner Loshifeq (pecoff, $(ABI)) 86*c43cad87SWarner LoshTEST_LIBRARY_PATH := PATH="$(PATH):$(objroot)lib" 87*c43cad87SWarner Loshelse 88*c43cad87SWarner LoshTEST_LIBRARY_PATH := 89*c43cad87SWarner Loshendif 90*c43cad87SWarner Loshendif 91*c43cad87SWarner Losh 92*c43cad87SWarner LoshLIBJEMALLOC := $(LIBPREFIX)jemalloc$(install_suffix) 93*c43cad87SWarner Losh 94*c43cad87SWarner Losh# Lists of files. 95*c43cad87SWarner LoshBINS := $(objroot)bin/jemalloc-config $(objroot)bin/jemalloc.sh $(objroot)bin/jeprof 96*c43cad87SWarner LoshC_HDRS := $(objroot)include/jemalloc/jemalloc$(install_suffix).h 97*c43cad87SWarner LoshC_SRCS := $(srcroot)src/jemalloc.c \ 98*c43cad87SWarner Losh $(srcroot)src/arena.c \ 99*c43cad87SWarner Losh $(srcroot)src/background_thread.c \ 100*c43cad87SWarner Losh $(srcroot)src/base.c \ 101*c43cad87SWarner Losh $(srcroot)src/bin.c \ 102*c43cad87SWarner Losh $(srcroot)src/bin_info.c \ 103*c43cad87SWarner Losh $(srcroot)src/bitmap.c \ 104*c43cad87SWarner Losh $(srcroot)src/buf_writer.c \ 105*c43cad87SWarner Losh $(srcroot)src/cache_bin.c \ 106*c43cad87SWarner Losh $(srcroot)src/ckh.c \ 107*c43cad87SWarner Losh $(srcroot)src/counter.c \ 108*c43cad87SWarner Losh $(srcroot)src/ctl.c \ 109*c43cad87SWarner Losh $(srcroot)src/decay.c \ 110*c43cad87SWarner Losh $(srcroot)src/div.c \ 111*c43cad87SWarner Losh $(srcroot)src/ecache.c \ 112*c43cad87SWarner Losh $(srcroot)src/edata.c \ 113*c43cad87SWarner Losh $(srcroot)src/edata_cache.c \ 114*c43cad87SWarner Losh $(srcroot)src/ehooks.c \ 115*c43cad87SWarner Losh $(srcroot)src/emap.c \ 116*c43cad87SWarner Losh $(srcroot)src/eset.c \ 117*c43cad87SWarner Losh $(srcroot)src/exp_grow.c \ 118*c43cad87SWarner Losh $(srcroot)src/extent.c \ 119*c43cad87SWarner Losh $(srcroot)src/extent_dss.c \ 120*c43cad87SWarner Losh $(srcroot)src/extent_mmap.c \ 121*c43cad87SWarner Losh $(srcroot)src/fxp.c \ 122*c43cad87SWarner Losh $(srcroot)src/san.c \ 123*c43cad87SWarner Losh $(srcroot)src/san_bump.c \ 124*c43cad87SWarner Losh $(srcroot)src/hook.c \ 125*c43cad87SWarner Losh $(srcroot)src/hpa.c \ 126*c43cad87SWarner Losh $(srcroot)src/hpa_hooks.c \ 127*c43cad87SWarner Losh $(srcroot)src/hpdata.c \ 128*c43cad87SWarner Losh $(srcroot)src/inspect.c \ 129*c43cad87SWarner Losh $(srcroot)src/large.c \ 130*c43cad87SWarner Losh $(srcroot)src/log.c \ 131*c43cad87SWarner Losh $(srcroot)src/malloc_io.c \ 132*c43cad87SWarner Losh $(srcroot)src/mutex.c \ 133*c43cad87SWarner Losh $(srcroot)src/nstime.c \ 134*c43cad87SWarner Losh $(srcroot)src/pa.c \ 135*c43cad87SWarner Losh $(srcroot)src/pa_extra.c \ 136*c43cad87SWarner Losh $(srcroot)src/pai.c \ 137*c43cad87SWarner Losh $(srcroot)src/pac.c \ 138*c43cad87SWarner Losh $(srcroot)src/pages.c \ 139*c43cad87SWarner Losh $(srcroot)src/peak_event.c \ 140*c43cad87SWarner Losh $(srcroot)src/prof.c \ 141*c43cad87SWarner Losh $(srcroot)src/prof_data.c \ 142*c43cad87SWarner Losh $(srcroot)src/prof_log.c \ 143*c43cad87SWarner Losh $(srcroot)src/prof_recent.c \ 144*c43cad87SWarner Losh $(srcroot)src/prof_stats.c \ 145*c43cad87SWarner Losh $(srcroot)src/prof_sys.c \ 146*c43cad87SWarner Losh $(srcroot)src/psset.c \ 147*c43cad87SWarner Losh $(srcroot)src/rtree.c \ 148*c43cad87SWarner Losh $(srcroot)src/safety_check.c \ 149*c43cad87SWarner Losh $(srcroot)src/sc.c \ 150*c43cad87SWarner Losh $(srcroot)src/sec.c \ 151*c43cad87SWarner Losh $(srcroot)src/stats.c \ 152*c43cad87SWarner Losh $(srcroot)src/sz.c \ 153*c43cad87SWarner Losh $(srcroot)src/tcache.c \ 154*c43cad87SWarner Losh $(srcroot)src/test_hooks.c \ 155*c43cad87SWarner Losh $(srcroot)src/thread_event.c \ 156*c43cad87SWarner Losh $(srcroot)src/ticker.c \ 157*c43cad87SWarner Losh $(srcroot)src/tsd.c \ 158*c43cad87SWarner Losh $(srcroot)src/witness.c 159*c43cad87SWarner Loshifeq ($(enable_zone_allocator), 1) 160*c43cad87SWarner LoshC_SRCS += $(srcroot)src/zone.c 161*c43cad87SWarner Loshendif 162*c43cad87SWarner Loshifeq ($(IMPORTLIB),$(SO)) 163*c43cad87SWarner LoshSTATIC_LIBS := $(objroot)lib/$(LIBJEMALLOC).$(A) 164*c43cad87SWarner Loshendif 165*c43cad87SWarner Loshifdef PIC_CFLAGS 166*c43cad87SWarner LoshSTATIC_LIBS += $(objroot)lib/$(LIBJEMALLOC)_pic.$(A) 167*c43cad87SWarner Loshelse 168*c43cad87SWarner LoshSTATIC_LIBS += $(objroot)lib/$(LIBJEMALLOC)_s.$(A) 169*c43cad87SWarner Loshendif 170*c43cad87SWarner LoshDSOS := $(objroot)lib/$(LIBJEMALLOC).$(SOREV) 171*c43cad87SWarner Loshifneq ($(SOREV),$(SO)) 172*c43cad87SWarner LoshDSOS += $(objroot)lib/$(LIBJEMALLOC).$(SO) 173*c43cad87SWarner Loshendif 174*c43cad87SWarner Loshifeq (1, $(link_whole_archive)) 175*c43cad87SWarner LoshLJEMALLOC := -Wl,--whole-archive -L$(objroot)lib -l$(LIBJEMALLOC) -Wl,--no-whole-archive 176*c43cad87SWarner Loshelse 177*c43cad87SWarner LoshLJEMALLOC := $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) 178*c43cad87SWarner Loshendif 179*c43cad87SWarner LoshPC := $(objroot)jemalloc.pc 180*c43cad87SWarner LoshDOCS_XML := $(objroot)doc/jemalloc$(install_suffix).xml 181*c43cad87SWarner LoshDOCS_HTML := $(DOCS_XML:$(objroot)%.xml=$(objroot)%.html) 182*c43cad87SWarner LoshDOCS_MAN3 := $(DOCS_XML:$(objroot)%.xml=$(objroot)%.3) 183*c43cad87SWarner LoshDOCS := $(DOCS_HTML) $(DOCS_MAN3) 184*c43cad87SWarner LoshC_TESTLIB_SRCS := $(srcroot)test/src/btalloc.c $(srcroot)test/src/btalloc_0.c \ 185*c43cad87SWarner Losh $(srcroot)test/src/btalloc_1.c $(srcroot)test/src/math.c \ 186*c43cad87SWarner Losh $(srcroot)test/src/mtx.c $(srcroot)test/src/sleep.c \ 187*c43cad87SWarner Losh $(srcroot)test/src/SFMT.c $(srcroot)test/src/test.c \ 188*c43cad87SWarner Losh $(srcroot)test/src/thd.c $(srcroot)test/src/timer.c 189*c43cad87SWarner Loshifeq (1, $(link_whole_archive)) 190*c43cad87SWarner LoshC_UTIL_INTEGRATION_SRCS := 191*c43cad87SWarner LoshC_UTIL_CPP_SRCS := 192*c43cad87SWarner Loshelse 193*c43cad87SWarner LoshC_UTIL_INTEGRATION_SRCS := $(srcroot)src/nstime.c $(srcroot)src/malloc_io.c \ 194*c43cad87SWarner Losh $(srcroot)src/ticker.c 195*c43cad87SWarner LoshC_UTIL_CPP_SRCS := $(srcroot)src/nstime.c $(srcroot)src/malloc_io.c 196*c43cad87SWarner Loshendif 197*c43cad87SWarner LoshTESTS_UNIT := \ 198*c43cad87SWarner Losh $(srcroot)test/unit/a0.c \ 199*c43cad87SWarner Losh $(srcroot)test/unit/arena_decay.c \ 200*c43cad87SWarner Losh $(srcroot)test/unit/arena_reset.c \ 201*c43cad87SWarner Losh $(srcroot)test/unit/atomic.c \ 202*c43cad87SWarner Losh $(srcroot)test/unit/background_thread.c \ 203*c43cad87SWarner Losh $(srcroot)test/unit/background_thread_enable.c \ 204*c43cad87SWarner Losh $(srcroot)test/unit/base.c \ 205*c43cad87SWarner Losh $(srcroot)test/unit/batch_alloc.c \ 206*c43cad87SWarner Losh $(srcroot)test/unit/binshard.c \ 207*c43cad87SWarner Losh $(srcroot)test/unit/bitmap.c \ 208*c43cad87SWarner Losh $(srcroot)test/unit/bit_util.c \ 209*c43cad87SWarner Losh $(srcroot)test/unit/buf_writer.c \ 210*c43cad87SWarner Losh $(srcroot)test/unit/cache_bin.c \ 211*c43cad87SWarner Losh $(srcroot)test/unit/ckh.c \ 212*c43cad87SWarner Losh $(srcroot)test/unit/counter.c \ 213*c43cad87SWarner Losh $(srcroot)test/unit/decay.c \ 214*c43cad87SWarner Losh $(srcroot)test/unit/div.c \ 215*c43cad87SWarner Losh $(srcroot)test/unit/double_free.c \ 216*c43cad87SWarner Losh $(srcroot)test/unit/edata_cache.c \ 217*c43cad87SWarner Losh $(srcroot)test/unit/emitter.c \ 218*c43cad87SWarner Losh $(srcroot)test/unit/extent_quantize.c \ 219*c43cad87SWarner Losh ${srcroot}test/unit/fb.c \ 220*c43cad87SWarner Losh $(srcroot)test/unit/fork.c \ 221*c43cad87SWarner Losh ${srcroot}test/unit/fxp.c \ 222*c43cad87SWarner Losh ${srcroot}test/unit/san.c \ 223*c43cad87SWarner Losh ${srcroot}test/unit/san_bump.c \ 224*c43cad87SWarner Losh $(srcroot)test/unit/hash.c \ 225*c43cad87SWarner Losh $(srcroot)test/unit/hook.c \ 226*c43cad87SWarner Losh $(srcroot)test/unit/hpa.c \ 227*c43cad87SWarner Losh $(srcroot)test/unit/hpa_background_thread.c \ 228*c43cad87SWarner Losh $(srcroot)test/unit/hpdata.c \ 229*c43cad87SWarner Losh $(srcroot)test/unit/huge.c \ 230*c43cad87SWarner Losh $(srcroot)test/unit/inspect.c \ 231*c43cad87SWarner Losh $(srcroot)test/unit/junk.c \ 232*c43cad87SWarner Losh $(srcroot)test/unit/junk_alloc.c \ 233*c43cad87SWarner Losh $(srcroot)test/unit/junk_free.c \ 234*c43cad87SWarner Losh $(srcroot)test/unit/log.c \ 235*c43cad87SWarner Losh $(srcroot)test/unit/mallctl.c \ 236*c43cad87SWarner Losh $(srcroot)test/unit/malloc_conf_2.c \ 237*c43cad87SWarner Losh $(srcroot)test/unit/malloc_io.c \ 238*c43cad87SWarner Losh $(srcroot)test/unit/math.c \ 239*c43cad87SWarner Losh $(srcroot)test/unit/mpsc_queue.c \ 240*c43cad87SWarner Losh $(srcroot)test/unit/mq.c \ 241*c43cad87SWarner Losh $(srcroot)test/unit/mtx.c \ 242*c43cad87SWarner Losh $(srcroot)test/unit/nstime.c \ 243*c43cad87SWarner Losh $(srcroot)test/unit/oversize_threshold.c \ 244*c43cad87SWarner Losh $(srcroot)test/unit/pa.c \ 245*c43cad87SWarner Losh $(srcroot)test/unit/pack.c \ 246*c43cad87SWarner Losh $(srcroot)test/unit/pages.c \ 247*c43cad87SWarner Losh $(srcroot)test/unit/peak.c \ 248*c43cad87SWarner Losh $(srcroot)test/unit/ph.c \ 249*c43cad87SWarner Losh $(srcroot)test/unit/prng.c \ 250*c43cad87SWarner Losh $(srcroot)test/unit/prof_accum.c \ 251*c43cad87SWarner Losh $(srcroot)test/unit/prof_active.c \ 252*c43cad87SWarner Losh $(srcroot)test/unit/prof_gdump.c \ 253*c43cad87SWarner Losh $(srcroot)test/unit/prof_hook.c \ 254*c43cad87SWarner Losh $(srcroot)test/unit/prof_idump.c \ 255*c43cad87SWarner Losh $(srcroot)test/unit/prof_log.c \ 256*c43cad87SWarner Losh $(srcroot)test/unit/prof_mdump.c \ 257*c43cad87SWarner Losh $(srcroot)test/unit/prof_recent.c \ 258*c43cad87SWarner Losh $(srcroot)test/unit/prof_reset.c \ 259*c43cad87SWarner Losh $(srcroot)test/unit/prof_stats.c \ 260*c43cad87SWarner Losh $(srcroot)test/unit/prof_tctx.c \ 261*c43cad87SWarner Losh $(srcroot)test/unit/prof_thread_name.c \ 262*c43cad87SWarner Losh $(srcroot)test/unit/prof_sys_thread_name.c \ 263*c43cad87SWarner Losh $(srcroot)test/unit/psset.c \ 264*c43cad87SWarner Losh $(srcroot)test/unit/ql.c \ 265*c43cad87SWarner Losh $(srcroot)test/unit/qr.c \ 266*c43cad87SWarner Losh $(srcroot)test/unit/rb.c \ 267*c43cad87SWarner Losh $(srcroot)test/unit/retained.c \ 268*c43cad87SWarner Losh $(srcroot)test/unit/rtree.c \ 269*c43cad87SWarner Losh $(srcroot)test/unit/safety_check.c \ 270*c43cad87SWarner Losh $(srcroot)test/unit/sc.c \ 271*c43cad87SWarner Losh $(srcroot)test/unit/sec.c \ 272*c43cad87SWarner Losh $(srcroot)test/unit/seq.c \ 273*c43cad87SWarner Losh $(srcroot)test/unit/SFMT.c \ 274*c43cad87SWarner Losh $(srcroot)test/unit/size_check.c \ 275*c43cad87SWarner Losh $(srcroot)test/unit/size_classes.c \ 276*c43cad87SWarner Losh $(srcroot)test/unit/slab.c \ 277*c43cad87SWarner Losh $(srcroot)test/unit/smoothstep.c \ 278*c43cad87SWarner Losh $(srcroot)test/unit/spin.c \ 279*c43cad87SWarner Losh $(srcroot)test/unit/stats.c \ 280*c43cad87SWarner Losh $(srcroot)test/unit/stats_print.c \ 281*c43cad87SWarner Losh $(srcroot)test/unit/sz.c \ 282*c43cad87SWarner Losh $(srcroot)test/unit/tcache_max.c \ 283*c43cad87SWarner Losh $(srcroot)test/unit/test_hooks.c \ 284*c43cad87SWarner Losh $(srcroot)test/unit/thread_event.c \ 285*c43cad87SWarner Losh $(srcroot)test/unit/ticker.c \ 286*c43cad87SWarner Losh $(srcroot)test/unit/tsd.c \ 287*c43cad87SWarner Losh $(srcroot)test/unit/uaf.c \ 288*c43cad87SWarner Losh $(srcroot)test/unit/witness.c \ 289*c43cad87SWarner Losh $(srcroot)test/unit/zero.c \ 290*c43cad87SWarner Losh $(srcroot)test/unit/zero_realloc_abort.c \ 291*c43cad87SWarner Losh $(srcroot)test/unit/zero_realloc_free.c \ 292*c43cad87SWarner Losh $(srcroot)test/unit/zero_realloc_alloc.c \ 293*c43cad87SWarner Losh $(srcroot)test/unit/zero_reallocs.c 294*c43cad87SWarner Loshifeq (@enable_prof@, 1) 295*c43cad87SWarner LoshTESTS_UNIT += \ 296*c43cad87SWarner Losh $(srcroot)test/unit/arena_reset_prof.c \ 297*c43cad87SWarner Losh $(srcroot)test/unit/batch_alloc_prof.c 298*c43cad87SWarner Loshendif 299*c43cad87SWarner LoshTESTS_INTEGRATION := $(srcroot)test/integration/aligned_alloc.c \ 300*c43cad87SWarner Losh $(srcroot)test/integration/allocated.c \ 301*c43cad87SWarner Losh $(srcroot)test/integration/extent.c \ 302*c43cad87SWarner Losh $(srcroot)test/integration/malloc.c \ 303*c43cad87SWarner Losh $(srcroot)test/integration/mallocx.c \ 304*c43cad87SWarner Losh $(srcroot)test/integration/MALLOCX_ARENA.c \ 305*c43cad87SWarner Losh $(srcroot)test/integration/overflow.c \ 306*c43cad87SWarner Losh $(srcroot)test/integration/posix_memalign.c \ 307*c43cad87SWarner Losh $(srcroot)test/integration/rallocx.c \ 308*c43cad87SWarner Losh $(srcroot)test/integration/sdallocx.c \ 309*c43cad87SWarner Losh $(srcroot)test/integration/slab_sizes.c \ 310*c43cad87SWarner Losh $(srcroot)test/integration/thread_arena.c \ 311*c43cad87SWarner Losh $(srcroot)test/integration/thread_tcache_enabled.c \ 312*c43cad87SWarner Losh $(srcroot)test/integration/xallocx.c 313*c43cad87SWarner Loshifeq (@enable_experimental_smallocx@, 1) 314*c43cad87SWarner LoshTESTS_INTEGRATION += \ 315*c43cad87SWarner Losh $(srcroot)test/integration/smallocx.c 316*c43cad87SWarner Loshendif 317*c43cad87SWarner Loshifeq (@enable_cxx@, 1) 318*c43cad87SWarner LoshCPP_SRCS := $(srcroot)src/jemalloc_cpp.cpp 319*c43cad87SWarner LoshTESTS_INTEGRATION_CPP := $(srcroot)test/integration/cpp/basic.cpp \ 320*c43cad87SWarner Losh $(srcroot)test/integration/cpp/infallible_new_true.cpp \ 321*c43cad87SWarner Losh $(srcroot)test/integration/cpp/infallible_new_false.cpp 322*c43cad87SWarner Loshelse 323*c43cad87SWarner LoshCPP_SRCS := 324*c43cad87SWarner LoshTESTS_INTEGRATION_CPP := 325*c43cad87SWarner Loshendif 326*c43cad87SWarner LoshTESTS_ANALYZE := $(srcroot)test/analyze/prof_bias.c \ 327*c43cad87SWarner Losh $(srcroot)test/analyze/rand.c \ 328*c43cad87SWarner Losh $(srcroot)test/analyze/sizes.c 329*c43cad87SWarner LoshTESTS_STRESS := $(srcroot)test/stress/batch_alloc.c \ 330*c43cad87SWarner Losh $(srcroot)test/stress/fill_flush.c \ 331*c43cad87SWarner Losh $(srcroot)test/stress/hookbench.c \ 332*c43cad87SWarner Losh $(srcroot)test/stress/large_microbench.c \ 333*c43cad87SWarner Losh $(srcroot)test/stress/mallctl.c \ 334*c43cad87SWarner Losh $(srcroot)test/stress/microbench.c 335*c43cad87SWarner Losh 336*c43cad87SWarner Losh 337*c43cad87SWarner LoshTESTS := $(TESTS_UNIT) $(TESTS_INTEGRATION) $(TESTS_INTEGRATION_CPP) \ 338*c43cad87SWarner Losh $(TESTS_ANALYZE) $(TESTS_STRESS) 339*c43cad87SWarner Losh 340*c43cad87SWarner LoshPRIVATE_NAMESPACE_HDRS := $(objroot)include/jemalloc/internal/private_namespace.h $(objroot)include/jemalloc/internal/private_namespace_jet.h 341*c43cad87SWarner LoshPRIVATE_NAMESPACE_GEN_HDRS := $(PRIVATE_NAMESPACE_HDRS:%.h=%.gen.h) 342*c43cad87SWarner LoshC_SYM_OBJS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.sym.$(O)) 343*c43cad87SWarner LoshC_SYMS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.sym) 344*c43cad87SWarner LoshC_OBJS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.$(O)) 345*c43cad87SWarner LoshCPP_OBJS := $(CPP_SRCS:$(srcroot)%.cpp=$(objroot)%.$(O)) 346*c43cad87SWarner LoshC_PIC_OBJS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.pic.$(O)) 347*c43cad87SWarner LoshCPP_PIC_OBJS := $(CPP_SRCS:$(srcroot)%.cpp=$(objroot)%.pic.$(O)) 348*c43cad87SWarner LoshC_JET_SYM_OBJS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.jet.sym.$(O)) 349*c43cad87SWarner LoshC_JET_SYMS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.jet.sym) 350*c43cad87SWarner LoshC_JET_OBJS := $(C_SRCS:$(srcroot)%.c=$(objroot)%.jet.$(O)) 351*c43cad87SWarner LoshC_TESTLIB_UNIT_OBJS := $(C_TESTLIB_SRCS:$(srcroot)%.c=$(objroot)%.unit.$(O)) 352*c43cad87SWarner LoshC_TESTLIB_INTEGRATION_OBJS := $(C_TESTLIB_SRCS:$(srcroot)%.c=$(objroot)%.integration.$(O)) 353*c43cad87SWarner LoshC_UTIL_INTEGRATION_OBJS := $(C_UTIL_INTEGRATION_SRCS:$(srcroot)%.c=$(objroot)%.integration.$(O)) 354*c43cad87SWarner LoshC_TESTLIB_ANALYZE_OBJS := $(C_TESTLIB_SRCS:$(srcroot)%.c=$(objroot)%.analyze.$(O)) 355*c43cad87SWarner LoshC_TESTLIB_STRESS_OBJS := $(C_TESTLIB_SRCS:$(srcroot)%.c=$(objroot)%.stress.$(O)) 356*c43cad87SWarner LoshC_TESTLIB_OBJS := $(C_TESTLIB_UNIT_OBJS) $(C_TESTLIB_INTEGRATION_OBJS) \ 357*c43cad87SWarner Losh $(C_UTIL_INTEGRATION_OBJS) $(C_TESTLIB_ANALYZE_OBJS) \ 358*c43cad87SWarner Losh $(C_TESTLIB_STRESS_OBJS) 359*c43cad87SWarner Losh 360*c43cad87SWarner LoshTESTS_UNIT_OBJS := $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%.$(O)) 361*c43cad87SWarner LoshTESTS_INTEGRATION_OBJS := $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%.$(O)) 362*c43cad87SWarner LoshTESTS_INTEGRATION_CPP_OBJS := $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%.$(O)) 363*c43cad87SWarner LoshTESTS_ANALYZE_OBJS := $(TESTS_ANALYZE:$(srcroot)%.c=$(objroot)%.$(O)) 364*c43cad87SWarner LoshTESTS_STRESS_OBJS := $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%.$(O)) 365*c43cad87SWarner LoshTESTS_OBJS := $(TESTS_UNIT_OBJS) $(TESTS_INTEGRATION_OBJS) $(TESTS_ANALYZE_OBJS) \ 366*c43cad87SWarner Losh $(TESTS_STRESS_OBJS) 367*c43cad87SWarner LoshTESTS_CPP_OBJS := $(TESTS_INTEGRATION_CPP_OBJS) 368*c43cad87SWarner Losh 369*c43cad87SWarner Losh.PHONY: all dist build_doc_html build_doc_man build_doc 370*c43cad87SWarner Losh.PHONY: install_bin install_include install_lib 371*c43cad87SWarner Losh.PHONY: install_doc_html install_doc_man install_doc install 372*c43cad87SWarner Losh.PHONY: tests check clean distclean relclean 373*c43cad87SWarner Losh 374*c43cad87SWarner Losh.SECONDARY : $(PRIVATE_NAMESPACE_GEN_HDRS) $(TESTS_OBJS) $(TESTS_CPP_OBJS) 375*c43cad87SWarner Losh 376*c43cad87SWarner Losh# Default target. 377*c43cad87SWarner Loshall: build_lib 378*c43cad87SWarner Losh 379*c43cad87SWarner Loshdist: build_doc 380*c43cad87SWarner Losh 381*c43cad87SWarner Losh$(objroot)doc/%$(install_suffix).html : $(objroot)doc/%.xml $(srcroot)doc/stylesheet.xsl $(objroot)doc/html.xsl 382*c43cad87SWarner Loshifneq ($(XSLROOT),) 383*c43cad87SWarner Losh $(XSLTPROC) -o $@ $(objroot)doc/html.xsl $< 384*c43cad87SWarner Loshelse 385*c43cad87SWarner Loshifeq ($(wildcard $(DOCS_HTML)),) 386*c43cad87SWarner Losh @echo "<p>Missing xsltproc. Doc not built.</p>" > $@ 387*c43cad87SWarner Loshendif 388*c43cad87SWarner Losh @echo "Missing xsltproc. "$@" not (re)built." 389*c43cad87SWarner Loshendif 390*c43cad87SWarner Losh 391*c43cad87SWarner Losh$(objroot)doc/%$(install_suffix).3 : $(objroot)doc/%.xml $(srcroot)doc/stylesheet.xsl $(objroot)doc/manpages.xsl 392*c43cad87SWarner Loshifneq ($(XSLROOT),) 393*c43cad87SWarner Losh $(XSLTPROC) -o $@ $(objroot)doc/manpages.xsl $< 394*c43cad87SWarner Losh# The -o option (output filename) of xsltproc may not work (it uses the 395*c43cad87SWarner Losh# <refname> in the .xml file). Manually add the suffix if so. 396*c43cad87SWarner Losh ifneq ($(install_suffix),) 397*c43cad87SWarner Losh @if [ -f $(objroot)doc/jemalloc.3 ]; then \ 398*c43cad87SWarner Losh mv $(objroot)doc/jemalloc.3 $(objroot)doc/jemalloc$(install_suffix).3 ; \ 399*c43cad87SWarner Losh fi 400*c43cad87SWarner Losh endif 401*c43cad87SWarner Loshelse 402*c43cad87SWarner Loshifeq ($(wildcard $(DOCS_MAN3)),) 403*c43cad87SWarner Losh @echo "Missing xsltproc. Doc not built." > $@ 404*c43cad87SWarner Loshendif 405*c43cad87SWarner Losh @echo "Missing xsltproc. "$@" not (re)built." 406*c43cad87SWarner Loshendif 407*c43cad87SWarner Losh 408*c43cad87SWarner Loshbuild_doc_html: $(DOCS_HTML) 409*c43cad87SWarner Loshbuild_doc_man: $(DOCS_MAN3) 410*c43cad87SWarner Loshbuild_doc: $(DOCS) 411*c43cad87SWarner Losh 412*c43cad87SWarner Losh# 413*c43cad87SWarner Losh# Include generated dependency files. 414*c43cad87SWarner Losh# 415*c43cad87SWarner Loshifdef CC_MM 416*c43cad87SWarner Losh-include $(C_SYM_OBJS:%.$(O)=%.d) 417*c43cad87SWarner Losh-include $(C_OBJS:%.$(O)=%.d) 418*c43cad87SWarner Losh-include $(CPP_OBJS:%.$(O)=%.d) 419*c43cad87SWarner Losh-include $(C_PIC_OBJS:%.$(O)=%.d) 420*c43cad87SWarner Losh-include $(CPP_PIC_OBJS:%.$(O)=%.d) 421*c43cad87SWarner Losh-include $(C_JET_SYM_OBJS:%.$(O)=%.d) 422*c43cad87SWarner Losh-include $(C_JET_OBJS:%.$(O)=%.d) 423*c43cad87SWarner Losh-include $(C_TESTLIB_OBJS:%.$(O)=%.d) 424*c43cad87SWarner Losh-include $(TESTS_OBJS:%.$(O)=%.d) 425*c43cad87SWarner Losh-include $(TESTS_CPP_OBJS:%.$(O)=%.d) 426*c43cad87SWarner Loshendif 427*c43cad87SWarner Losh 428*c43cad87SWarner Losh$(C_SYM_OBJS): $(objroot)src/%.sym.$(O): $(srcroot)src/%.c 429*c43cad87SWarner Losh$(C_SYM_OBJS): CPPFLAGS += -DJEMALLOC_NO_PRIVATE_NAMESPACE 430*c43cad87SWarner Losh$(C_SYMS): $(objroot)src/%.sym: $(objroot)src/%.sym.$(O) 431*c43cad87SWarner Losh$(C_OBJS): $(objroot)src/%.$(O): $(srcroot)src/%.c 432*c43cad87SWarner Losh$(CPP_OBJS): $(objroot)src/%.$(O): $(srcroot)src/%.cpp 433*c43cad87SWarner Losh$(C_PIC_OBJS): $(objroot)src/%.pic.$(O): $(srcroot)src/%.c 434*c43cad87SWarner Losh$(C_PIC_OBJS): CFLAGS += $(PIC_CFLAGS) 435*c43cad87SWarner Losh$(CPP_PIC_OBJS): $(objroot)src/%.pic.$(O): $(srcroot)src/%.cpp 436*c43cad87SWarner Losh$(CPP_PIC_OBJS): CXXFLAGS += $(PIC_CFLAGS) 437*c43cad87SWarner Losh$(C_JET_SYM_OBJS): $(objroot)src/%.jet.sym.$(O): $(srcroot)src/%.c 438*c43cad87SWarner Losh$(C_JET_SYM_OBJS): CPPFLAGS += -DJEMALLOC_JET -DJEMALLOC_NO_PRIVATE_NAMESPACE 439*c43cad87SWarner Losh$(C_JET_SYMS): $(objroot)src/%.jet.sym: $(objroot)src/%.jet.sym.$(O) 440*c43cad87SWarner Losh$(C_JET_OBJS): $(objroot)src/%.jet.$(O): $(srcroot)src/%.c 441*c43cad87SWarner Losh$(C_JET_OBJS): CPPFLAGS += -DJEMALLOC_JET 442*c43cad87SWarner Losh$(C_TESTLIB_UNIT_OBJS): $(objroot)test/src/%.unit.$(O): $(srcroot)test/src/%.c 443*c43cad87SWarner Losh$(C_TESTLIB_UNIT_OBJS): CPPFLAGS += -DJEMALLOC_UNIT_TEST 444*c43cad87SWarner Losh$(C_TESTLIB_INTEGRATION_OBJS): $(objroot)test/src/%.integration.$(O): $(srcroot)test/src/%.c 445*c43cad87SWarner Losh$(C_TESTLIB_INTEGRATION_OBJS): CPPFLAGS += -DJEMALLOC_INTEGRATION_TEST 446*c43cad87SWarner Losh$(C_UTIL_INTEGRATION_OBJS): $(objroot)src/%.integration.$(O): $(srcroot)src/%.c 447*c43cad87SWarner Losh$(C_TESTLIB_ANALYZE_OBJS): $(objroot)test/src/%.analyze.$(O): $(srcroot)test/src/%.c 448*c43cad87SWarner Losh$(C_TESTLIB_ANALYZE_OBJS): CPPFLAGS += -DJEMALLOC_ANALYZE_TEST 449*c43cad87SWarner Losh$(C_TESTLIB_STRESS_OBJS): $(objroot)test/src/%.stress.$(O): $(srcroot)test/src/%.c 450*c43cad87SWarner Losh$(C_TESTLIB_STRESS_OBJS): CPPFLAGS += -DJEMALLOC_STRESS_TEST -DJEMALLOC_STRESS_TESTLIB 451*c43cad87SWarner Losh$(C_TESTLIB_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include 452*c43cad87SWarner Losh$(TESTS_UNIT_OBJS): CPPFLAGS += -DJEMALLOC_UNIT_TEST 453*c43cad87SWarner Losh$(TESTS_INTEGRATION_OBJS): CPPFLAGS += -DJEMALLOC_INTEGRATION_TEST 454*c43cad87SWarner Losh$(TESTS_INTEGRATION_CPP_OBJS): CPPFLAGS += -DJEMALLOC_INTEGRATION_CPP_TEST 455*c43cad87SWarner Losh$(TESTS_ANALYZE_OBJS): CPPFLAGS += -DJEMALLOC_ANALYZE_TEST 456*c43cad87SWarner Losh$(TESTS_STRESS_OBJS): CPPFLAGS += -DJEMALLOC_STRESS_TEST 457*c43cad87SWarner Losh$(TESTS_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.c 458*c43cad87SWarner Losh$(TESTS_CPP_OBJS): $(objroot)test/%.$(O): $(srcroot)test/%.cpp 459*c43cad87SWarner Losh$(TESTS_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include 460*c43cad87SWarner Losh$(TESTS_CPP_OBJS): CPPFLAGS += -I$(srcroot)test/include -I$(objroot)test/include 461*c43cad87SWarner Loshifneq ($(IMPORTLIB),$(SO)) 462*c43cad87SWarner Losh$(CPP_OBJS) $(C_SYM_OBJS) $(C_OBJS) $(C_JET_SYM_OBJS) $(C_JET_OBJS): CPPFLAGS += -DDLLEXPORT 463*c43cad87SWarner Loshendif 464*c43cad87SWarner Losh 465*c43cad87SWarner Losh# Dependencies. 466*c43cad87SWarner Loshifndef CC_MM 467*c43cad87SWarner LoshHEADER_DIRS = $(srcroot)include/jemalloc/internal \ 468*c43cad87SWarner Losh $(objroot)include/jemalloc $(objroot)include/jemalloc/internal 469*c43cad87SWarner LoshHEADERS = $(filter-out $(PRIVATE_NAMESPACE_HDRS),$(wildcard $(foreach dir,$(HEADER_DIRS),$(dir)/*.h))) 470*c43cad87SWarner Losh$(C_SYM_OBJS) $(C_OBJS) $(CPP_OBJS) $(C_PIC_OBJS) $(CPP_PIC_OBJS) $(C_JET_SYM_OBJS) $(C_JET_OBJS) $(C_TESTLIB_OBJS) $(TESTS_OBJS) $(TESTS_CPP_OBJS): $(HEADERS) 471*c43cad87SWarner Losh$(TESTS_OBJS) $(TESTS_CPP_OBJS): $(objroot)test/include/test/jemalloc_test.h 472*c43cad87SWarner Loshendif 473*c43cad87SWarner Losh 474*c43cad87SWarner Losh$(C_OBJS) $(CPP_OBJS) $(C_PIC_OBJS) $(CPP_PIC_OBJS) $(C_TESTLIB_INTEGRATION_OBJS) $(C_UTIL_INTEGRATION_OBJS) $(TESTS_INTEGRATION_OBJS) $(TESTS_INTEGRATION_CPP_OBJS): $(objroot)include/jemalloc/internal/private_namespace.h 475*c43cad87SWarner Losh$(C_JET_OBJS) $(C_TESTLIB_UNIT_OBJS) $(C_TESTLIB_ANALYZE_OBJS) $(C_TESTLIB_STRESS_OBJS) $(TESTS_UNIT_OBJS) $(TESTS_ANALYZE_OBJS) $(TESTS_STRESS_OBJS): $(objroot)include/jemalloc/internal/private_namespace_jet.h 476*c43cad87SWarner Losh 477*c43cad87SWarner Losh$(C_SYM_OBJS) $(C_OBJS) $(C_PIC_OBJS) $(C_JET_SYM_OBJS) $(C_JET_OBJS) $(C_TESTLIB_OBJS) $(TESTS_OBJS): %.$(O): 478*c43cad87SWarner Losh @mkdir -p $(@D) 479*c43cad87SWarner Losh $(CC) $(CFLAGS) -c $(CPPFLAGS) $(CTARGET) $< 480*c43cad87SWarner Loshifdef CC_MM 481*c43cad87SWarner Losh @$(CC) -MM $(CPPFLAGS) -MT $@ -o $(@:%.$(O)=%.d) $< 482*c43cad87SWarner Loshendif 483*c43cad87SWarner Losh 484*c43cad87SWarner Losh$(C_SYMS): %.sym: 485*c43cad87SWarner Losh @mkdir -p $(@D) 486*c43cad87SWarner Losh $(DUMP_SYMS) $< | $(AWK) -f $(objroot)include/jemalloc/internal/private_symbols.awk > $@ 487*c43cad87SWarner Losh 488*c43cad87SWarner Losh$(C_JET_SYMS): %.sym: 489*c43cad87SWarner Losh @mkdir -p $(@D) 490*c43cad87SWarner Losh $(DUMP_SYMS) $< | $(AWK) -f $(objroot)include/jemalloc/internal/private_symbols_jet.awk > $@ 491*c43cad87SWarner Losh 492*c43cad87SWarner Losh$(objroot)include/jemalloc/internal/private_namespace.gen.h: $(C_SYMS) 493*c43cad87SWarner Losh $(SHELL) $(srcroot)include/jemalloc/internal/private_namespace.sh $^ > $@ 494*c43cad87SWarner Losh 495*c43cad87SWarner Losh$(objroot)include/jemalloc/internal/private_namespace_jet.gen.h: $(C_JET_SYMS) 496*c43cad87SWarner Losh $(SHELL) $(srcroot)include/jemalloc/internal/private_namespace.sh $^ > $@ 497*c43cad87SWarner Losh 498*c43cad87SWarner Losh%.h: %.gen.h 499*c43cad87SWarner Losh @if ! `cmp -s $< $@` ; then echo "cp $< $@"; cp $< $@ ; fi 500*c43cad87SWarner Losh 501*c43cad87SWarner Losh$(CPP_OBJS) $(CPP_PIC_OBJS) $(TESTS_CPP_OBJS): %.$(O): 502*c43cad87SWarner Losh @mkdir -p $(@D) 503*c43cad87SWarner Losh $(CXX) $(CXXFLAGS) -c $(CPPFLAGS) $(CTARGET) $< 504*c43cad87SWarner Loshifdef CC_MM 505*c43cad87SWarner Losh @$(CXX) -MM $(CPPFLAGS) -MT $@ -o $(@:%.$(O)=%.d) $< 506*c43cad87SWarner Loshendif 507*c43cad87SWarner Losh 508*c43cad87SWarner Loshifneq ($(SOREV),$(SO)) 509*c43cad87SWarner Losh%.$(SO) : %.$(SOREV) 510*c43cad87SWarner Losh @mkdir -p $(@D) 511*c43cad87SWarner Losh ln -sf $(<F) $@ 512*c43cad87SWarner Loshendif 513*c43cad87SWarner Losh 514*c43cad87SWarner Losh$(objroot)lib/$(LIBJEMALLOC).$(SOREV) : $(if $(PIC_CFLAGS),$(C_PIC_OBJS),$(C_OBJS)) $(if $(PIC_CFLAGS),$(CPP_PIC_OBJS),$(CPP_OBJS)) 515*c43cad87SWarner Losh @mkdir -p $(@D) 516*c43cad87SWarner Losh $(CC) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS) 517*c43cad87SWarner Losh 518*c43cad87SWarner Losh$(objroot)lib/$(LIBJEMALLOC)_pic.$(A) : $(C_PIC_OBJS) $(CPP_PIC_OBJS) 519*c43cad87SWarner Losh$(objroot)lib/$(LIBJEMALLOC).$(A) : $(C_OBJS) $(CPP_OBJS) 520*c43cad87SWarner Losh$(objroot)lib/$(LIBJEMALLOC)_s.$(A) : $(C_OBJS) $(CPP_OBJS) 521*c43cad87SWarner Losh 522*c43cad87SWarner Losh$(STATIC_LIBS): 523*c43cad87SWarner Losh @mkdir -p $(@D) 524*c43cad87SWarner Losh $(AR) $(ARFLAGS)@AROUT@ $+ 525*c43cad87SWarner Losh 526*c43cad87SWarner Losh$(objroot)test/unit/%$(EXE): $(objroot)test/unit/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_UNIT_OBJS) 527*c43cad87SWarner Losh @mkdir -p $(@D) 528*c43cad87SWarner Losh $(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(LDFLAGS) $(filter-out -lm,$(LIBS)) $(LM) $(EXTRA_LDFLAGS) 529*c43cad87SWarner Losh 530*c43cad87SWarner Losh$(objroot)test/integration/%$(EXE): $(objroot)test/integration/%.$(O) $(C_TESTLIB_INTEGRATION_OBJS) $(C_UTIL_INTEGRATION_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) 531*c43cad87SWarner Losh @mkdir -p $(@D) 532*c43cad87SWarner Losh $(CC) $(TEST_LD_MODE) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(LJEMALLOC) $(LDFLAGS) $(filter-out -lm,$(filter -lrt -pthread -lstdc++,$(LIBS))) $(LM) $(EXTRA_LDFLAGS) 533*c43cad87SWarner Losh 534*c43cad87SWarner Losh$(objroot)test/integration/cpp/%$(EXE): $(objroot)test/integration/cpp/%.$(O) $(C_TESTLIB_INTEGRATION_OBJS) $(C_UTIL_INTEGRATION_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) 535*c43cad87SWarner Losh @mkdir -p $(@D) 536*c43cad87SWarner Losh $(CXX) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(LDFLAGS) $(filter-out -lm,$(LIBS)) -lm $(EXTRA_LDFLAGS) 537*c43cad87SWarner Losh 538*c43cad87SWarner Losh$(objroot)test/analyze/%$(EXE): $(objroot)test/analyze/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_ANALYZE_OBJS) 539*c43cad87SWarner Losh @mkdir -p $(@D) 540*c43cad87SWarner Losh $(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(LDFLAGS) $(filter-out -lm,$(LIBS)) $(LM) $(EXTRA_LDFLAGS) 541*c43cad87SWarner Losh 542*c43cad87SWarner Losh$(objroot)test/stress/%$(EXE): $(objroot)test/stress/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_STRESS_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) 543*c43cad87SWarner Losh @mkdir -p $(@D) 544*c43cad87SWarner Losh $(CC) $(TEST_LD_MODE) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(LDFLAGS) $(filter-out -lm,$(LIBS)) $(LM) $(EXTRA_LDFLAGS) 545*c43cad87SWarner Losh 546*c43cad87SWarner Loshbuild_lib_shared: $(DSOS) 547*c43cad87SWarner Loshbuild_lib_static: $(STATIC_LIBS) 548*c43cad87SWarner Loshifeq ($(enable_shared), 1) 549*c43cad87SWarner Loshbuild_lib: build_lib_shared 550*c43cad87SWarner Loshendif 551*c43cad87SWarner Loshifeq ($(enable_static), 1) 552*c43cad87SWarner Loshbuild_lib: build_lib_static 553*c43cad87SWarner Loshendif 554*c43cad87SWarner Losh 555*c43cad87SWarner Loshinstall_bin: 556*c43cad87SWarner Losh $(INSTALL) -d $(BINDIR) 557*c43cad87SWarner Losh @for b in $(BINS); do \ 558*c43cad87SWarner Losh $(INSTALL) -v -m 755 $$b $(BINDIR); \ 559*c43cad87SWarner Loshdone 560*c43cad87SWarner Losh 561*c43cad87SWarner Loshinstall_include: 562*c43cad87SWarner Losh $(INSTALL) -d $(INCLUDEDIR)/jemalloc 563*c43cad87SWarner Losh @for h in $(C_HDRS); do \ 564*c43cad87SWarner Losh $(INSTALL) -v -m 644 $$h $(INCLUDEDIR)/jemalloc; \ 565*c43cad87SWarner Loshdone 566*c43cad87SWarner Losh 567*c43cad87SWarner Loshinstall_lib_shared: $(DSOS) 568*c43cad87SWarner Losh $(INSTALL) -d $(LIBDIR) 569*c43cad87SWarner Losh $(INSTALL) -v -m 755 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(LIBDIR) 570*c43cad87SWarner Loshifneq ($(SOREV),$(SO)) 571*c43cad87SWarner Losh ln -sf $(LIBJEMALLOC).$(SOREV) $(LIBDIR)/$(LIBJEMALLOC).$(SO) 572*c43cad87SWarner Loshendif 573*c43cad87SWarner Losh 574*c43cad87SWarner Loshinstall_lib_static: $(STATIC_LIBS) 575*c43cad87SWarner Losh $(INSTALL) -d $(LIBDIR) 576*c43cad87SWarner Losh @for l in $(STATIC_LIBS); do \ 577*c43cad87SWarner Losh $(INSTALL) -v -m 755 $$l $(LIBDIR); \ 578*c43cad87SWarner Loshdone 579*c43cad87SWarner Losh 580*c43cad87SWarner Loshinstall_lib_pc: $(PC) 581*c43cad87SWarner Losh $(INSTALL) -d $(LIBDIR)/pkgconfig 582*c43cad87SWarner Losh @for l in $(PC); do \ 583*c43cad87SWarner Losh $(INSTALL) -v -m 644 $$l $(LIBDIR)/pkgconfig; \ 584*c43cad87SWarner Loshdone 585*c43cad87SWarner Losh 586*c43cad87SWarner Loshifeq ($(enable_shared), 1) 587*c43cad87SWarner Loshinstall_lib: install_lib_shared 588*c43cad87SWarner Loshendif 589*c43cad87SWarner Loshifeq ($(enable_static), 1) 590*c43cad87SWarner Loshinstall_lib: install_lib_static 591*c43cad87SWarner Loshendif 592*c43cad87SWarner Loshinstall_lib: install_lib_pc 593*c43cad87SWarner Losh 594*c43cad87SWarner Loshinstall_doc_html: build_doc_html 595*c43cad87SWarner Losh $(INSTALL) -d $(DATADIR)/doc/jemalloc$(install_suffix) 596*c43cad87SWarner Losh @for d in $(DOCS_HTML); do \ 597*c43cad87SWarner Losh $(INSTALL) -v -m 644 $$d $(DATADIR)/doc/jemalloc$(install_suffix); \ 598*c43cad87SWarner Loshdone 599*c43cad87SWarner Losh 600*c43cad87SWarner Loshinstall_doc_man: build_doc_man 601*c43cad87SWarner Losh $(INSTALL) -d $(MANDIR)/man3 602*c43cad87SWarner Losh @for d in $(DOCS_MAN3); do \ 603*c43cad87SWarner Losh $(INSTALL) -v -m 644 $$d $(MANDIR)/man3; \ 604*c43cad87SWarner Loshdone 605*c43cad87SWarner Losh 606*c43cad87SWarner Loshinstall_doc: install_doc_html install_doc_man 607*c43cad87SWarner Losh 608*c43cad87SWarner Loshinstall: install_bin install_include install_lib 609*c43cad87SWarner Losh 610*c43cad87SWarner Loshifeq ($(enable_doc), 1) 611*c43cad87SWarner Loshinstall: install_doc 612*c43cad87SWarner Loshendif 613*c43cad87SWarner Losh 614*c43cad87SWarner Loshuninstall_bin: 615*c43cad87SWarner Losh $(RM) -v $(foreach b,$(notdir $(BINS)),$(BINDIR)/$(b)) 616*c43cad87SWarner Losh 617*c43cad87SWarner Loshuninstall_include: 618*c43cad87SWarner Losh $(RM) -v $(foreach h,$(notdir $(C_HDRS)),$(INCLUDEDIR)/jemalloc/$(h)) 619*c43cad87SWarner Losh rmdir -v $(INCLUDEDIR)/jemalloc 620*c43cad87SWarner Losh 621*c43cad87SWarner Loshuninstall_lib_shared: 622*c43cad87SWarner Losh $(RM) -v $(LIBDIR)/$(LIBJEMALLOC).$(SOREV) 623*c43cad87SWarner Loshifneq ($(SOREV),$(SO)) 624*c43cad87SWarner Losh $(RM) -v $(LIBDIR)/$(LIBJEMALLOC).$(SO) 625*c43cad87SWarner Loshendif 626*c43cad87SWarner Losh 627*c43cad87SWarner Loshuninstall_lib_static: 628*c43cad87SWarner Losh $(RM) -v $(foreach l,$(notdir $(STATIC_LIBS)),$(LIBDIR)/$(l)) 629*c43cad87SWarner Losh 630*c43cad87SWarner Loshuninstall_lib_pc: 631*c43cad87SWarner Losh $(RM) -v $(foreach p,$(notdir $(PC)),$(LIBDIR)/pkgconfig/$(p)) 632*c43cad87SWarner Losh 633*c43cad87SWarner Loshifeq ($(enable_shared), 1) 634*c43cad87SWarner Loshuninstall_lib: uninstall_lib_shared 635*c43cad87SWarner Loshendif 636*c43cad87SWarner Loshifeq ($(enable_static), 1) 637*c43cad87SWarner Loshuninstall_lib: uninstall_lib_static 638*c43cad87SWarner Loshendif 639*c43cad87SWarner Loshuninstall_lib: uninstall_lib_pc 640*c43cad87SWarner Losh 641*c43cad87SWarner Loshuninstall_doc_html: 642*c43cad87SWarner Losh $(RM) -v $(foreach d,$(notdir $(DOCS_HTML)),$(DATADIR)/doc/jemalloc$(install_suffix)/$(d)) 643*c43cad87SWarner Losh rmdir -v $(DATADIR)/doc/jemalloc$(install_suffix) 644*c43cad87SWarner Losh 645*c43cad87SWarner Loshuninstall_doc_man: 646*c43cad87SWarner Losh $(RM) -v $(foreach d,$(notdir $(DOCS_MAN3)),$(MANDIR)/man3/$(d)) 647*c43cad87SWarner Losh 648*c43cad87SWarner Loshuninstall_doc: uninstall_doc_html uninstall_doc_man 649*c43cad87SWarner Losh 650*c43cad87SWarner Loshuninstall: uninstall_bin uninstall_include uninstall_lib 651*c43cad87SWarner Losh 652*c43cad87SWarner Loshifeq ($(enable_doc), 1) 653*c43cad87SWarner Loshuninstall: uninstall_doc 654*c43cad87SWarner Loshendif 655*c43cad87SWarner Losh 656*c43cad87SWarner Loshtests_unit: $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%$(EXE)) 657*c43cad87SWarner Loshtests_integration: $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%$(EXE)) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%$(EXE)) 658*c43cad87SWarner Loshtests_analyze: $(TESTS_ANALYZE:$(srcroot)%.c=$(objroot)%$(EXE)) 659*c43cad87SWarner Loshtests_stress: $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%$(EXE)) 660*c43cad87SWarner Loshtests: tests_unit tests_integration tests_analyze tests_stress 661*c43cad87SWarner Losh 662*c43cad87SWarner Loshcheck_unit_dir: 663*c43cad87SWarner Losh @mkdir -p $(objroot)test/unit 664*c43cad87SWarner Loshcheck_integration_dir: 665*c43cad87SWarner Losh @mkdir -p $(objroot)test/integration 666*c43cad87SWarner Loshanalyze_dir: 667*c43cad87SWarner Losh @mkdir -p $(objroot)test/analyze 668*c43cad87SWarner Loshstress_dir: 669*c43cad87SWarner Losh @mkdir -p $(objroot)test/stress 670*c43cad87SWarner Loshcheck_dir: check_unit_dir check_integration_dir 671*c43cad87SWarner Losh 672*c43cad87SWarner Loshcheck_unit: tests_unit check_unit_dir 673*c43cad87SWarner Losh $(SHELL) $(objroot)test/test.sh $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%) 674*c43cad87SWarner Loshcheck_integration_prof: tests_integration check_integration_dir 675*c43cad87SWarner Loshifeq ($(enable_prof), 1) 676*c43cad87SWarner Losh $(MALLOC_CONF)="prof:true" $(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%) 677*c43cad87SWarner Losh $(MALLOC_CONF)="prof:true,prof_active:false" $(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%) 678*c43cad87SWarner Loshendif 679*c43cad87SWarner Loshcheck_integration_decay: tests_integration check_integration_dir 680*c43cad87SWarner Losh $(MALLOC_CONF)="dirty_decay_ms:-1,muzzy_decay_ms:-1" $(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%) 681*c43cad87SWarner Losh $(MALLOC_CONF)="dirty_decay_ms:0,muzzy_decay_ms:0" $(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%) 682*c43cad87SWarner Loshcheck_integration: tests_integration check_integration_dir 683*c43cad87SWarner Losh $(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%) $(TESTS_INTEGRATION_CPP:$(srcroot)%.cpp=$(objroot)%) 684*c43cad87SWarner Loshanalyze: tests_analyze analyze_dir 685*c43cad87SWarner Loshifeq ($(enable_prof), 1) 686*c43cad87SWarner Losh $(MALLOC_CONF)="prof:true" $(SHELL) $(objroot)test/test.sh $(TESTS_ANALYZE:$(srcroot)%.c=$(objroot)%) 687*c43cad87SWarner Loshelse 688*c43cad87SWarner Losh $(SHELL) $(objroot)test/test.sh $(TESTS_ANALYZE:$(srcroot)%.c=$(objroot)%) 689*c43cad87SWarner Loshendif 690*c43cad87SWarner Loshstress: tests_stress stress_dir 691*c43cad87SWarner Losh $(SHELL) $(objroot)test/test.sh $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%) 692*c43cad87SWarner Loshcheck: check_unit check_integration check_integration_decay check_integration_prof 693*c43cad87SWarner Losh 694*c43cad87SWarner Loshclean: 695*c43cad87SWarner Losh rm -f $(PRIVATE_NAMESPACE_HDRS) 696*c43cad87SWarner Losh rm -f $(PRIVATE_NAMESPACE_GEN_HDRS) 697*c43cad87SWarner Losh rm -f $(C_SYM_OBJS) 698*c43cad87SWarner Losh rm -f $(C_SYMS) 699*c43cad87SWarner Losh rm -f $(C_OBJS) 700*c43cad87SWarner Losh rm -f $(CPP_OBJS) 701*c43cad87SWarner Losh rm -f $(C_PIC_OBJS) 702*c43cad87SWarner Losh rm -f $(CPP_PIC_OBJS) 703*c43cad87SWarner Losh rm -f $(C_JET_SYM_OBJS) 704*c43cad87SWarner Losh rm -f $(C_JET_SYMS) 705*c43cad87SWarner Losh rm -f $(C_JET_OBJS) 706*c43cad87SWarner Losh rm -f $(C_TESTLIB_OBJS) 707*c43cad87SWarner Losh rm -f $(C_SYM_OBJS:%.$(O)=%.d) 708*c43cad87SWarner Losh rm -f $(C_OBJS:%.$(O)=%.d) 709*c43cad87SWarner Losh rm -f $(CPP_OBJS:%.$(O)=%.d) 710*c43cad87SWarner Losh rm -f $(C_PIC_OBJS:%.$(O)=%.d) 711*c43cad87SWarner Losh rm -f $(CPP_PIC_OBJS:%.$(O)=%.d) 712*c43cad87SWarner Losh rm -f $(C_JET_SYM_OBJS:%.$(O)=%.d) 713*c43cad87SWarner Losh rm -f $(C_JET_OBJS:%.$(O)=%.d) 714*c43cad87SWarner Losh rm -f $(C_TESTLIB_OBJS:%.$(O)=%.d) 715*c43cad87SWarner Losh rm -f $(TESTS_OBJS:%.$(O)=%$(EXE)) 716*c43cad87SWarner Losh rm -f $(TESTS_OBJS) 717*c43cad87SWarner Losh rm -f $(TESTS_OBJS:%.$(O)=%.d) 718*c43cad87SWarner Losh rm -f $(TESTS_OBJS:%.$(O)=%.out) 719*c43cad87SWarner Losh rm -f $(TESTS_CPP_OBJS:%.$(O)=%$(EXE)) 720*c43cad87SWarner Losh rm -f $(TESTS_CPP_OBJS) 721*c43cad87SWarner Losh rm -f $(TESTS_CPP_OBJS:%.$(O)=%.d) 722*c43cad87SWarner Losh rm -f $(TESTS_CPP_OBJS:%.$(O)=%.out) 723*c43cad87SWarner Losh rm -f $(DSOS) $(STATIC_LIBS) 724*c43cad87SWarner Losh 725*c43cad87SWarner Loshdistclean: clean 726*c43cad87SWarner Losh rm -f $(objroot)bin/jemalloc-config 727*c43cad87SWarner Losh rm -f $(objroot)bin/jemalloc.sh 728*c43cad87SWarner Losh rm -f $(objroot)bin/jeprof 729*c43cad87SWarner Losh rm -f $(objroot)config.log 730*c43cad87SWarner Losh rm -f $(objroot)config.status 731*c43cad87SWarner Losh rm -f $(objroot)config.stamp 732*c43cad87SWarner Losh rm -f $(cfghdrs_out) 733*c43cad87SWarner Losh rm -f $(cfgoutputs_out) 734*c43cad87SWarner Losh 735*c43cad87SWarner Loshrelclean: distclean 736*c43cad87SWarner Losh rm -f $(objroot)configure 737*c43cad87SWarner Losh rm -f $(objroot)VERSION 738*c43cad87SWarner Losh rm -f $(DOCS_HTML) 739*c43cad87SWarner Losh rm -f $(DOCS_MAN3) 740*c43cad87SWarner Losh 741*c43cad87SWarner Losh#=============================================================================== 742*c43cad87SWarner Losh# Re-configuration rules. 743*c43cad87SWarner Losh 744*c43cad87SWarner Loshifeq ($(enable_autogen), 1) 745*c43cad87SWarner Losh$(srcroot)configure : $(srcroot)configure.ac 746*c43cad87SWarner Losh cd ./$(srcroot) && $(AUTOCONF) 747*c43cad87SWarner Losh 748*c43cad87SWarner Losh$(objroot)config.status : $(srcroot)configure 749*c43cad87SWarner Losh ./$(objroot)config.status --recheck 750*c43cad87SWarner Losh 751*c43cad87SWarner Losh$(srcroot)config.stamp.in : $(srcroot)configure.ac 752*c43cad87SWarner Losh echo stamp > $(srcroot)config.stamp.in 753*c43cad87SWarner Losh 754*c43cad87SWarner Losh$(objroot)config.stamp : $(cfgoutputs_in) $(cfghdrs_in) $(srcroot)configure 755*c43cad87SWarner Losh ./$(objroot)config.status 756*c43cad87SWarner Losh @touch $@ 757*c43cad87SWarner Losh 758*c43cad87SWarner Losh# There must be some action in order for make to re-read Makefile when it is 759*c43cad87SWarner Losh# out of date. 760*c43cad87SWarner Losh$(cfgoutputs_out) $(cfghdrs_out) : $(objroot)config.stamp 761*c43cad87SWarner Losh @true 762*c43cad87SWarner Loshendif 763