Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / ref-config / Linux_All.mk
1 # -*- Mode: makefile -*-
2 #
3 # ***** BEGIN LICENSE BLOCK *****
4 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 #
6 # The contents of this file are subject to the Mozilla Public License Version
7 # 1.1 (the "License"); you may not use this file except in compliance with
8 # the License. You may obtain a copy of the License at
9 # http://www.mozilla.org/MPL/
10 #
11 # Software distributed under the License is distributed on an "AS IS" basis,
12 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 # for the specific language governing rights and limitations under the
14 # License.
15 #
16 # The Original Code is Mozilla Communicator client code, released
17 # March 31, 1998.
18 #
19 # The Initial Developer of the Original Code is
20 # Netscape Communications Corporation.
21 # Portions created by the Initial Developer are Copyright (C) 1998
22 # the Initial Developer. All Rights Reserved.
23 #
24 # Contributor(s):
25 #
26 # Alternatively, the contents of this file may be used under the terms of
27 # either the GNU General Public License Version 2 or later (the "GPL"), or
28 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 # in which case the provisions of the GPL or the LGPL are applicable instead
30 # of those above. If you wish to allow use of your version of this file only
31 # under the terms of either the GPL or the LGPL, and not to allow others to
32 # use your version of this file under the terms of the MPL, indicate your
33 # decision by deleting the provisions above and replace them with the notice
34 # and other provisions required by the GPL or the LGPL. If you do not delete
35 # the provisions above, a recipient may use your version of this file under
36 # the terms of any one of the MPL, the GPL or the LGPL.
37 #
38 # ***** END LICENSE BLOCK *****
39
40 #
41 # Config for all versions of Linux
42 #
43
44 CC = gcc
45 CCC = g++
46 LD = g++
47 CFLAGS +=  -Wall -Wno-format -MMD
48 OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DLINUX
49
50 RANLIB = echo
51 MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
52
53 #.c.o:
54 #      $(CC) -c -MD $*.d $(CFLAGS) $<
55
56 CPU_ARCH = $(shell uname -m)
57 # don't filter in x86-64 architecture
58 ifneq (x86_64,$(CPU_ARCH))
59 ifeq (86,$(findstring 86,$(CPU_ARCH)))
60 CPU_ARCH = x86
61 OS_CFLAGS += -DX86_LINUX -DAVMPLUS_IA32 -DAVMPLUS_UNIX -DAVMPLUS_LINUX
62 NANOJIT_ARCH = i386
63 endif # 86
64 endif # !x86_64
65
66 #JIT disabled until x64 port is cleaned up
67 #ifeq ($(CPU_ARCH),x86_64)
68 #OS_CFLAGS += -DAVMPLUS_AMD64 -DAVMPLUS_64BIT -DAVMPLUS_UNIX -DAVMPLUS_LINUX
69 #NANOJIT_ARCH = i386
70 #endif
71
72 ifeq ($(CPU_ARCH),arm)
73 OS_CFLAGS += -DAVMPLUS_ARM -DAVMPLUS_UNIX -DAVMPLUS_LINUX
74 NANOJIT_ARCH = ARM
75 endif
76
77 GFX_ARCH = x
78
79 OS_LIBS = -lm -lc
80
81 ASFLAGS += -x assembler-with-cpp
82
83
84 ifeq ($(CPU_ARCH),alpha)
85
86 # Ask the C compiler on alpha linux to let us work with denormalized
87 # double values, which are required by the ECMA spec.
88
89 OS_CFLAGS += -mieee
90 endif
91
92 # Use the editline library to provide line-editing support.
93 JS_EDITLINE = 1
94
95 ifeq ($(CPU_ARCH),x86_64)
96 # Use VA_COPY() standard macro on x86-64
97 # FIXME: better use it everywhere
98 OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
99 endif
100
101 ifeq ($(CPU_ARCH),x86_64)
102 # We need PIC code for shared libraries
103 # FIXME: better patch rules.mk & fdlibm/Makefile*
104 OS_CFLAGS += -DPIC -fPIC
105 endif