xref: /trunk/main/jemalloc/makefile.mk (revision 0f155d76b3fa3703e54ee72457a8422ca7d11b60)
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