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 |
|
64 |
ifeq (gcc, $(CC)) |
65 |
# if using gcc on x86, check version for opt bug |
66 |
# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892) |
67 |
GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }') |
68 |
GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) ) |
69 |
|
70 |
ifeq (2.91.66, $(firstword $(GCC_LIST))) |
71 |
CFLAGS+= -DGCC_OPT_BUG |
72 |
endif # gcc 2.91.66 |
73 |
endif # gcc |
74 |
endif # 86 |
75 |
endif # !x86_64 |
76 |
|
77 |
ifeq ($(CPU_ARCH),x86_64) |
78 |
OS_CFLAGS += -DAVMPLUS_AMD64 -DAVMPLUS_64BIT -DAVMPLUS_UNIX -DAVMPLUS_LINUX |
79 |
NANOJIT_ARCH = i386 |
80 |
endif |
81 |
|
82 |
ifeq ($(CPU_ARCH),arm) |
83 |
OS_CFLAGS += -DAVMPLUS_ARM -DAVMPLUS_UNIX -DAVMPLUS_LINUX |
84 |
NANOJIT_ARCH = ARM |
85 |
endif |
86 |
|
87 |
GFX_ARCH = x |
88 |
|
89 |
OS_LIBS = -lm -lc |
90 |
|
91 |
ASFLAGS += -x assembler-with-cpp |
92 |
|
93 |
|
94 |
ifeq ($(CPU_ARCH),alpha) |
95 |
|
96 |
# Ask the C compiler on alpha linux to let us work with denormalized |
97 |
# double values, which are required by the ECMA spec. |
98 |
|
99 |
OS_CFLAGS += -mieee |
100 |
endif |
101 |
|
102 |
# Use the editline library to provide line-editing support. |
103 |
JS_EDITLINE = 1 |
104 |
|
105 |
ifeq ($(CPU_ARCH),x86_64) |
106 |
# Use VA_COPY() standard macro on x86-64 |
107 |
# FIXME: better use it everywhere |
108 |
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy |
109 |
endif |
110 |
|
111 |
ifeq ($(CPU_ARCH),x86_64) |
112 |
# We need PIC code for shared libraries |
113 |
# FIXME: better patch rules.mk & fdlibm/Makefile* |
114 |
OS_CFLAGS += -DPIC -fPIC |
115 |
endif |