1 # 2 # Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. 8 # 9 # This code is distributed in the hope that it will be useful, but WITHOUT 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 # version 2 for more details (a copy is included in the LICENSE file that 13 # accompanied this code). 14 # 15 # You should have received a copy of the GNU General Public License version 16 # 2 along with this work; if not, write to the Free Software Foundation, 17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 # 19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 # or visit www.oracle.com if you need additional information or have any 21 # questions. 22 # 23 # 24 25 #------------------------------------------------------------------------ 26 # CC, CXX & AS 27 28 # If a SPEC is not set already, then use these defaults. 29 ifeq ($(SPEC),) 30 CXX = CC 31 CC = cc 32 AS = $(CC) -c 33 34 HOSTCXX = $(CXX) 35 HOSTCC = $(CC) 36 endif 37 38 ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) 39 ARCHFLAG/i486 = -m32 40 ARCHFLAG/amd64 = -m64 41 42 CFLAGS += $(ARCHFLAG) 43 AOUT_FLAGS += $(ARCHFLAG) 44 LFLAGS += $(ARCHFLAG) 45 ASFLAGS += $(ARCHFLAG) 46 47 #------------------------------------------------------------------------ 48 # Compiler flags 49 50 # position-independent code 51 PICFLAG = -KPIC 52 53 CFLAGS += $(PICFLAG) 54 # no more exceptions 55 CFLAGS += -features=no%except 56 # Reduce code bloat by reverting back to 5.0 behavior for static initializers 57 CFLAGS += -features=no%split_init 58 # allow zero sized arrays 59 CFLAGS += -features=zla 60 61 # Use C++ Interpreter 62 ifdef CC_INTERP 63 CFLAGS += -DCC_INTERP 64 endif 65 66 # We don't need libCstd.so and librwtools7.so, only libCrun.so 67 CFLAGS += -library=Crun 68 LIBS += -lCrun 69 70 CFLAGS += -mt 71 LFLAGS += -mt 72 73 # Compiler warnings are treated as errors 74 #WARNINGS_ARE_ERRORS = -errwarn=%all 75 CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) 76 # Special cases 77 CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 78 79 # The flags to use for an Optimized build 80 OPT_CFLAGS+=-xO4 81 OPT_CFLAGS/NOOPT=-xO0 82 83 # Flags for creating the dependency files. 84 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) 85 DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) 86 endif 87 88 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp. 89 CFLAGS += -DDONT_USE_PRECOMPILED_HEADER 90 91 #------------------------------------------------------------------------ 92 # Linker flags 93 94 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. 95 MAPFLAG = -Wl,--version-script=FILENAME 96 97 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj 98 SONAMEFLAG = -h SONAME 99 100 # Build shared library 101 SHARED_FLAG = -G 102 103 #------------------------------------------------------------------------ 104 # Debug flags 105 DEBUG_CFLAGS += -g 106 FASTDEBUG_CFLAGS = -g0 107