1*0f155d76SJim Jagielski#************************************************************** 2*0f155d76SJim Jagielski# 3*0f155d76SJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*0f155d76SJim Jagielski# or more contributor license agreements. See the NOTICE file 5*0f155d76SJim Jagielski# distributed with this work for additional information 6*0f155d76SJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*0f155d76SJim Jagielski# to you under the Apache License, Version 2.0 (the 8*0f155d76SJim Jagielski# "License"); you may not use this file except in compliance 9*0f155d76SJim Jagielski# with the License. You may obtain a copy of the License at 10*0f155d76SJim Jagielski# 11*0f155d76SJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*0f155d76SJim Jagielski# 13*0f155d76SJim Jagielski# Unless required by applicable law or agreed to in writing, 14*0f155d76SJim Jagielski# software distributed under the License is distributed on an 15*0f155d76SJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*0f155d76SJim Jagielski# KIND, either express or implied. See the License for the 17*0f155d76SJim Jagielski# specific language governing permissions and limitations 18*0f155d76SJim Jagielski# under the License. 19*0f155d76SJim Jagielski# 20*0f155d76SJim Jagielski 21*0f155d76SJim Jagielski 22*0f155d76SJim JagielskiPRJ=. 23*0f155d76SJim Jagielski 24*0f155d76SJim JagielskiPRJNAME=so_jemalloc 25*0f155d76SJim JagielskiTARGET=so_jemalloc 26*0f155d76SJim Jagielski 27*0f155d76SJim Jagielski# --- Settings ----------------------------------------------------- 28*0f155d76SJim Jagielski 29*0f155d76SJim Jagielski.INCLUDE : settings.mk 30*0f155d76SJim Jagielski 31*0f155d76SJim Jagielski.IF "$(ENABLE_JEMALLOC)" != "YES" 32*0f155d76SJim Jagielskiall: 33*0f155d76SJim Jagielski @echo "jemalloc is not enabled; configure with --enable-jemalloc to build it." 34*0f155d76SJim Jagielski.ENDIF 35*0f155d76SJim Jagielski 36*0f155d76SJim Jagielski# --- Files -------------------------------------------------------- 37*0f155d76SJim Jagielski 38*0f155d76SJim JagielskiTARFILE_NAME=jemalloc-5.4.0 39*0f155d76SJim JagielskiTARFILE_MD5=e9abfa20270beb35e54043240ba37369 40*0f155d76SJim Jagielski 41*0f155d76SJim JagielskiCONFIGURE_DIR=.$/ 42*0f155d76SJim JagielskiCONFIGURE_ACTION=.$/configure 43*0f155d76SJim JagielskiCONFIGURE_FLAGS=--disable-static --disable-cxx --disable-doc 44*0f155d76SJim JagielskiCONFIGURE_FLAGS+=CC="$(CC) $(ARCH_FLAGS)" 45*0f155d76SJim Jagielski 46*0f155d76SJim Jagielski.IF "$(OS)"=="LINUX" 47*0f155d76SJim Jagielski# libjemalloc is loaded together with libraries that dlopen() it late, which 48*0f155d76SJim Jagielski# the initial-exec TLS model does not allow. 49*0f155d76SJim JagielskiCONFIGURE_FLAGS+=--disable-initial-exec-tls 50*0f155d76SJim Jagielski.IF "$(CPUNAME)"=="AARCH64" 51*0f155d76SJim Jagielski# Linux/arm64 kernels come with 4K, 16K or 64K pages; 64K covers all of them. 52*0f155d76SJim JagielskiCONFIGURE_FLAGS+=--with-lg-page=16 53*0f155d76SJim Jagielski.ENDIF 54*0f155d76SJim Jagielski.ENDIF 55*0f155d76SJim Jagielski 56*0f155d76SJim JagielskiBUILD_DIR=$(CONFIGURE_DIR) 57*0f155d76SJim JagielskiBUILD_ACTION=$(GNUMAKE) build_lib_shared 58*0f155d76SJim JagielskiBUILD_FLAGS+= -j$(EXTMAXPROCESS) 59*0f155d76SJim Jagielski 60*0f155d76SJim Jagielski.IF "$(OS)"=="MACOSX" 61*0f155d76SJim JagielskiOUT2LIB=lib$/libjemalloc.2.dylib 62*0f155d76SJim Jagielski.ELSE 63*0f155d76SJim JagielskiOUT2LIB=lib$/libjemalloc.so.2 64*0f155d76SJim Jagielski.ENDIF 65*0f155d76SJim Jagielski 66*0f155d76SJim Jagielski# --- Targets ------------------------------------------------------ 67*0f155d76SJim Jagielski 68*0f155d76SJim Jagielski.INCLUDE : set_ext.mk 69*0f155d76SJim Jagielski.INCLUDE : target.mk 70*0f155d76SJim Jagielski.INCLUDE : tg_ext.mk 71