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-1999 |
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 of the GNU General Public License Version 2 or later (the "GPL"), |
28 |
# or 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 |
ifdef JS_DIST |
41 |
DIST = $(JS_DIST) |
42 |
else |
43 |
DIST = $(DEPTH)/../../dist |
44 |
endif |
45 |
|
46 |
# Set os+release dependent make variables |
47 |
OS_ARCH := $(subst /,_,$(shell uname -s | sed /\ /s//_/)) |
48 |
|
49 |
# Attempt to differentiate between SunOS 5.4 and x86 5.4 |
50 |
OS_CPUARCH := $(shell uname -m) |
51 |
ifeq ($(OS_CPUARCH),i86pc) |
52 |
OS_RELEASE := $(shell uname -r)_$(OS_CPUARCH) |
53 |
else |
54 |
ifeq ($(OS_ARCH),AIX) |
55 |
OS_RELEASE := $(shell uname -v).$(shell uname -r) |
56 |
else |
57 |
OS_RELEASE := $(shell uname -r) |
58 |
endif |
59 |
endif |
60 |
ifeq ($(OS_ARCH),IRIX64) |
61 |
OS_ARCH := IRIX |
62 |
endif |
63 |
|
64 |
# Handle output from win32 unames other than Netscape's version |
65 |
ifeq (,$(filter-out Windows_95 Windows_98 CYGWIN_95-4.0 CYGWIN_98-4.10, $(OS_ARCH))) |
66 |
OS_ARCH := WIN95 |
67 |
endif |
68 |
ifeq ($(OS_ARCH),WIN95) |
69 |
OS_ARCH := WINNT |
70 |
OS_RELEASE := 4.0 |
71 |
endif |
72 |
ifeq ($(OS_ARCH), Windows_NT) |
73 |
OS_ARCH := WINNT |
74 |
OS_MINOR_RELEASE := $(shell uname -v) |
75 |
ifeq ($(OS_MINOR_RELEASE),00) |
76 |
OS_MINOR_RELEASE = 0 |
77 |
endif |
78 |
OS_RELEASE := $(OS_RELEASE).$(OS_MINOR_RELEASE) |
79 |
endif |
80 |
ifeq (CYGWIN_NT,$(findstring CYGWIN_NT,$(OS_ARCH))) |
81 |
OS_RELEASE := $(patsubst CYGWIN_NT-%,%,$(OS_ARCH)) |
82 |
OS_ARCH := WINNT |
83 |
endif |
84 |
ifeq ($(OS_ARCH), CYGWIN32_NT) |
85 |
OS_ARCH := WINNT |
86 |
endif |
87 |
ifeq (MINGW32_NT,$(findstring MINGW32_NT,$(OS_ARCH))) |
88 |
OS_RELEASE := $(patsubst MINGW32_NT-%,%,$(OS_ARCH)) |
89 |
OS_ARCH := WINNT |
90 |
endif |
91 |
|
92 |
# Virtually all Linux versions are identical. |
93 |
# Any distinctions are handled in linux.h |
94 |
ifeq ($(OS_ARCH),Linux) |
95 |
OS_CONFIG := Linux_All |
96 |
else |
97 |
ifeq ($(OS_ARCH),dgux) |
98 |
OS_CONFIG := dgux |
99 |
else |
100 |
ifeq ($(OS_ARCH),Darwin) |
101 |
OS_CONFIG := Darwin |
102 |
else |
103 |
ifeq ($(OS_ARCH),Darwin64) |
104 |
OS_CONFIG := Darwin64 |
105 |
else |
106 |
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE) |
107 |
endif |
108 |
endif |
109 |
endif |
110 |
endif |
111 |
|
112 |
ASFLAGS = |
113 |
DEFINES = |
114 |
|
115 |
ifeq ($(OS_ARCH), WINNT) |
116 |
INSTALL = nsinstall |
117 |
CP = cp |
118 |
else |
119 |
INSTALL = $(DIST)/bin/nsinstall |
120 |
CP = cp |
121 |
endif |
122 |
|
123 |
ifdef BUILD_OPT |
124 |
ifdef USE_MSVC |
125 |
OPTIMIZER = -O2 -GL |
126 |
INTERP_OPTIMIZER = -O2 -GL |
127 |
BUILTINS_OPTIMIZER = -O2 -GL |
128 |
LDFLAGS += -LTCG |
129 |
else |
130 |
OPTIMIZER = -Os -fstrict-aliasing -fno-exceptions -fno-rtti -Wstrict-aliasing=2 |
131 |
BUILTINS_OPTIMIZER = -O9 -fstrict-aliasing -fno-exceptions -fno-rtti |
132 |
INTERP_OPTIMIZER = -O3 -fstrict-aliasing -fno-exceptions -fno-rtti |
133 |
endif |
134 |
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(USER) |
135 |
OBJDIR_TAG = _OPT |
136 |
else |
137 |
ifdef USE_MSVC |
138 |
OPTIMIZER = -Zi |
139 |
INTERP_OPTIMIZER = -Zi |
140 |
BUILTINS_OPTIMIZER = $(INTERP_OPTIMIZER) |
141 |
else |
142 |
OPTIMIZER = -g3 -fstrict-aliasing -fno-exceptions -fno-rtti -Wstrict-aliasing=2 |
143 |
INTERP_OPTIMIZER = -g3 -fstrict-aliasing -fno-exceptions -fno-rtti |
144 |
BUILTINS_OPTIMIZER = $(INTERP_OPTIMIZER) |
145 |
endif |
146 |
DEFINES += -DDEBUG -DDEBUG_$(USER) |
147 |
OBJDIR_TAG = _DBG |
148 |
endif |
149 |
|
150 |
SO_SUFFIX = so |
151 |
|
152 |
NS_USE_NATIVE = 1 |
153 |
|
154 |
ifdef MOZ_OJI |
155 |
# Java stuff |
156 |
CLASSDIR = $(DEPTH)/liveconnect/classes |
157 |
JAVA_CLASSES = $(patsubst %.java,%.class,$(JAVA_SRCS)) |
158 |
TARGETS += $(addprefix $(CLASSDIR)/$(OBJDIR)/$(JARPATH)/, $(JAVA_CLASSES)) |
159 |
JAVAC = $(JDK)/bin/javac |
160 |
JAVAC_FLAGS = -classpath "$(CLASSPATH)" -d $(CLASSDIR)/$(OBJDIR) |
161 |
SEP = : |
162 |
CLASSPATH = $(JDK)/lib/classes.zip$(SEP)$(CLASSDIR)/$(OBJDIR) |
163 |
endif |
164 |
|
165 |
include $(DEPTH)/ref-config/$(OS_CONFIG).mk |
166 |
|
167 |
ifndef OBJ_SUFFIX |
168 |
ifdef USE_MSVC |
169 |
OBJ_SUFFIX = obj |
170 |
else |
171 |
OBJ_SUFFIX = o |
172 |
endif |
173 |
endif |
174 |
|
175 |
ifndef HOST_BIN_SUFFIX |
176 |
ifeq ($(OS_ARCH),WINNT) |
177 |
HOST_BIN_SUFFIX = .exe |
178 |
else |
179 |
HOST_BIN_SUFFIX = |
180 |
endif |
181 |
endif |
182 |
|
183 |
# Name of the binary code directories |
184 |
ifdef OBJROOT |
185 |
# prepend $(DEPTH) to the root unless it is an absolute path |
186 |
OBJDIR = $(if $(filter /%,$(OBJROOT)),$(OBJROOT),$(DEPTH)/$(OBJROOT)) |
187 |
else |
188 |
ifeq ($(DEPTH),.) |
189 |
OBJDIR = $(OS_CONFIG)$(OBJDIR_TAG).$(if $(BUILD_IDG),OBJD,OBJ) |
190 |
else |
191 |
OBJDIR = $(DEPTH)/$(OS_CONFIG)$(OBJDIR_TAG).$(if $(BUILD_IDG),OBJD,OBJ) |
192 |
endif |
193 |
endif |
194 |
|
195 |
VPATH = $(OBJDIR) |
196 |
|
197 |
LCJAR = js15lc30.jar |
198 |
|
199 |
# Library name |
200 |
LIBDIR := lib |
201 |
ifeq ($(CPU_ARCH), x86_64) |
202 |
LIBDIR := lib64 |
203 |
endif |
204 |
|