Mercurial > jemalloc
comparison Makefile.in.orig @ 0:9a44d900ee55
initial import
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 05 Oct 2009 16:06:43 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9a44d900ee55 |
---|---|
1 # | |
2 # ***** BEGIN LICENSE BLOCK ***** | |
3 # Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
4 # | |
5 # The contents of this file are subject to the Mozilla Public License Version | |
6 # 1.1 (the "License"); you may not use this file except in compliance with | |
7 # the License. You may obtain a copy of the License at | |
8 # http://www.mozilla.org/MPL/ | |
9 # | |
10 # Software distributed under the License is distributed on an "AS IS" basis, | |
11 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
12 # for the specific language governing rights and limitations under the | |
13 # License. | |
14 # | |
15 # The Original Code is mozilla.org code. | |
16 # | |
17 # The Initial Developer of the Original Code is | |
18 # Mozilla Foundation | |
19 # Portions created by the Initial Developer are Copyright (C) 2008 | |
20 # the Initial Developer. All Rights Reserved. | |
21 # | |
22 # Contributor(s): | |
23 # Ted Mielczarek <ted.mielczarek@gmail.com> | |
24 # | |
25 # Alternatively, the contents of this file may be used under the terms of | |
26 # either of the GNU General Public License Version 2 or later (the "GPL"), | |
27 # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
28 # in which case the provisions of the GPL or the LGPL are applicable instead | |
29 # of those above. If you wish to allow use of your version of this file only | |
30 # under the terms of either the GPL or the LGPL, and not to allow others to | |
31 # use your version of this file under the terms of the MPL, indicate your | |
32 # decision by deleting the provisions above and replace them with the notice | |
33 # and other provisions required by the GPL or the LGPL. If you do not delete | |
34 # the provisions above, a recipient may use your version of this file under | |
35 # the terms of any one of the MPL, the GPL or the LGPL. | |
36 # | |
37 # ***** END LICENSE BLOCK ***** | |
38 | |
39 DEPTH = ../.. | |
40 topsrcdir = @top_srcdir@ | |
41 srcdir = @srcdir@ | |
42 VPATH = @srcdir@ | |
43 | |
44 include $(DEPTH)/config/autoconf.mk | |
45 | |
46 MODULE = jemalloc | |
47 | |
48 # jemalloc.c properly uses 'static', so don't burden it with manually exposing | |
49 # symbols. | |
50 VISIBILITY_FLAGS= | |
51 | |
52 ifeq (WINCE,$(OS_TARGET)) | |
53 DEFINES+= -DMOZCE_SHUNT_H | |
54 endif | |
55 | |
56 ifeq (WINNT,$(OS_TARGET)) | |
57 # Two options for Windows, either you build the CRT from source, | |
58 # or you use a pre-built DLL. | |
59 ifneq (,$(WIN32_CRT_SRC_DIR)) | |
60 # Building the CRT from source | |
61 CRT_OBJ_DIR=./$(shell basename "$(WIN32_CRT_SRC_DIR)") | |
62 libs:: $(CRT_OBJ_DIR)/build/intel/mozcrt19.dll | |
63 $(INSTALL) $< $(FINAL_TARGET) | |
64 | |
65 # patch if necessary | |
66 $(CRT_OBJ_DIR)/jemalloc.c: $(srcdir)/crtsp1.diff | |
67 rm -rf $(CRT_OBJ_DIR) | |
68 cp -R "$(WIN32_CRT_SRC_DIR)" . | |
69 # per http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1189363&SiteID=1 | |
70 for i in dll mt xdll xmt; do \ | |
71 pushd $(CRT_OBJ_DIR)/intel/$${i}_lib && lib -extract:..\\build\\intel\\$${i}_obj\\unhandld.obj eh.lib && popd; \ | |
72 done | |
73 # truly awful | |
74 #XXX: get ed into mozillabuild, bug 415123 | |
75 $(PERL) $(srcdir)/apply-ed-patches.pl $(srcdir)/crtsp1.diff \ | |
76 $(CRT_OBJ_DIR) $(srcdir)/ed.exe | |
77 | |
78 $(CRT_OBJ_DIR)/build/intel/mozcrt19.dll: \ | |
79 $(CRT_OBJ_DIR)/jemalloc.c $(srcdir)/jemalloc.c $(srcdir)/jemalloc.h \ | |
80 $(srcdir)/ql.h $(srcdir)/qr.h $(srcdir)/rb.h | |
81 cp $(srcdir)/jemalloc.c $(srcdir)/jemalloc.h $(srcdir)/ql.h \ | |
82 $(srcdir)/qr.h $(srcdir)/rb.h $(CRT_OBJ_DIR) | |
83 # this pretty much sucks, but nmake and make don't play well together | |
84 $(PYTHON) $(srcdir)/build-crt.py $(CRT_OBJ_DIR) | |
85 #XXX: these don't link right for some reason | |
86 rm $(CRT_OBJ_DIR)/build/intel/{libcmt,libcpmt}.lib | |
87 else | |
88 # Using a pre-built DLL, so just install it. | |
89 libs:: $(WIN32_CUSTOM_CRT_DIR)/mozcrt19.dll | |
90 $(INSTALL) $< $(FINAL_TARGET) | |
91 endif | |
92 | |
93 else | |
94 | |
95 MODULE_OPTIMIZE_FLAGS = -O2 | |
96 ifeq ($(OS_ARCH),SunOS) | |
97 ifndef GNU_CC | |
98 MODULE_OPTIMIZE_FLAGS = -xO5 | |
99 endif | |
100 endif | |
101 | |
102 LIBRARY_NAME = jemalloc | |
103 | |
104 # Build jemalloc as a shared lib. This is mandatory for Darwin, since a library | |
105 # init function is used on that platform. | |
106 ifeq ($(OS_ARCH),Darwin) | |
107 FORCE_SHARED_LIB= 1 | |
108 else | |
109 DIST_INSTALL = 1 | |
110 FORCE_STATIC_LIB= 1 | |
111 endif | |
112 | |
113 CSRCS = \ | |
114 jemalloc.c \ | |
115 $(NULL) | |
116 | |
117 #XXX: PGO on Linux causes problems here | |
118 # See bug 419470 | |
119 NO_PROFILE_GUIDED_OPTIMIZE = 1 | |
120 endif | |
121 | |
122 include $(topsrcdir)/config/rules.mk | |
123 | |
124 ifeq (Darwin,$(OS_TARGET)) | |
125 LDFLAGS += -init _jemalloc_darwin_init | |
126 endif |