1 # 2 # Copyright (c) 1999, 2012, 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. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # 27 # Makefile to specify compiler flags for programs and libraries 28 # targeted to Linux. Should not contain any rules. 29 # 30 # WARNING: This file is shared with other workspaces. 31 # So when it includes other files, it must use JDK_TOPDIR. 32 # 33 34 # Warning: the following variables are overriden by Defs.gmk. Set 35 # values will be silently ignored: 36 # CFLAGS (set $(OTHER_CFLAGS) instead) 37 # CPPFLAGS (set $(OTHER_CPPFLAGS) instead) 38 # CXXFLAGS (set $(OTHER_CXXFLAGS) instead) 39 # LDFLAGS (set $(OTHER_LDFLAGS) instead) 40 # LDLIBS (set $(EXTRA_LIBS) instead) 41 # LDLIBS_COMMON (set $(EXTRA_LIBS) instead) 42 43 # Get shared JDK settings 44 include $(JDK_MAKE_SHARED_DIR)/Defs.gmk 45 46 # Part of INCREMENTAL_BUILD mechanism. 47 # Compiler emits things like: path/file.o: file.h 48 # We want something like: relative_path/file.o relative_path/file.d: file.h 49 CC_DEPEND = -MM 50 CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g' 51 52 ifndef PLATFORM_SRC 53 PLATFORM_SRC = $(BUILDDIR)/../src/solaris 54 endif # PLATFORM_SRC 55 56 # Location of the various .properties files specific to Linux platform 57 ifndef PLATFORM_PROPERTIES 58 PLATFORM_PROPERTIES = $(BUILDDIR)/../src/solaris/lib 59 endif # PLATFORM_SRC 60 61 # Platform specific closed sources 62 ifndef OPENJDK 63 ifndef CLOSED_PLATFORM_SRC 64 CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris 65 endif 66 endif 67 68 # platform specific include files 69 PLATFORM_INCLUDE_NAME = $(PLATFORM) 70 PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME) 71 72 # suffix used for make dependencies files. 73 DEPEND_SUFFIX = d 74 # The suffix applied to the library name for FDLIBM 75 FDDLIBM_SUFFIX = a 76 # The suffix applied to scripts (.bat for windows, nothing for unix) 77 SCRIPT_SUFFIX = 78 # CC compiler object code output directive flag value 79 CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required! 80 CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required! 81 82 # The Full Debug Symbols (FDS) default for VARIANT == OPT builds is 83 # enabled with debug info files ZIP'ed to save space. For VARIANT != 84 # OPT builds, FDS is always enabled, after all a debug build without 85 # debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has 86 # meaning when FDS is enabled. 87 # 88 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be 89 # disabled for a VARIANT == OPT build. 90 # 91 # Note: Use of a different variable name for the FDS override option 92 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS 93 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass 94 # in options via environment variables, use of distinct variables 95 # prevents strange behaviours. For example, in a VARIANT != OPT build, 96 # the FULL_DEBUG_SYMBOLS environment variable will be 0, but the 97 # ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same 98 # variable name is used, then different values can be picked up by 99 # different parts of the build. Just to be clear, we only need two 100 # variable names because the incoming option value can be overridden 101 # in some situations, e.g., a VARIANT != OPT build. 102 103 ifeq ($(VARIANT), OPT) 104 FULL_DEBUG_SYMBOLS ?= 1 105 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) 106 else 107 # debug variants always get Full Debug Symbols (if available) 108 ENABLE_FULL_DEBUG_SYMBOLS = 1 109 endif 110 _JUNK_ := $(shell \ 111 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") 112 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 113 114 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 115 ifndef CROSS_COMPILE_ARCH 116 # Default OBJCOPY comes from GNU Binutils on Linux: 117 DEF_OBJCOPY=/usr/bin/objcopy 118 else 119 # Assume objcopy is part of the cross-compilation toolkit 120 DEF_OBJCOPY=$(COMPILER_PATH)/objcopy 121 endif 122 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 123 ifneq ($(ALT_OBJCOPY),) 124 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 125 # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path 126 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 127 endif 128 129 # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the 130 # JDK build to import .debuginfo or .diz files from the HotSpot build. 131 # However, adding FDS support to the JDK build will occur in phases 132 # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS 133 # and PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS) is used to indicate that a 134 # particular library or program supports FDS. 135 136 ifeq ($(OBJCOPY),) 137 _JUNK_ := $(shell \ 138 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files. You may need to set ALT_OBJCOPY.") 139 ENABLE_FULL_DEBUG_SYMBOLS=0 140 else 141 _JUNK_ := $(shell \ 142 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 143 144 # Library stripping policies for .debuginfo configs: 145 # all_strip - strips everything from the library 146 # min_strip - strips most stuff from the library; leaves minimum symbols 147 # no_strip - does not strip the library at all 148 # 149 # Oracle security policy requires "all_strip". A waiver was granted on 150 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. 151 # 152 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. 153 STRIP_POLICY ?= min_strip 154 155 _JUNK_ := $(shell \ 156 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 157 158 ZIP_DEBUGINFO_FILES ?= 1 159 160 _JUNK_ := $(shell \ 161 echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") 162 endif 163 endif 164 165 # 166 # Default optimization 167 # 168 169 ifndef OPTIMIZATION_LEVEL 170 ifeq ($(PRODUCT), java) 171 OPTIMIZATION_LEVEL = HIGHER 172 else 173 OPTIMIZATION_LEVEL = LOWER 174 endif 175 endif 176 ifndef FASTDEBUG_OPTIMIZATION_LEVEL 177 FASTDEBUG_OPTIMIZATION_LEVEL = LOWER 178 endif 179 180 CC_OPT/NONE = 181 CC_OPT/LOWER = -O2 182 CC_OPT/HIGHER = -O3 183 CC_OPT/HIGHEST = -O3 184 185 CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL)) 186 187 # For all platforms, do not omit the frame pointer register usage. 188 # We need this frame pointer to make it easy to walk the stacks. 189 # This should be the default on X86, but ia64 and amd64 may not have this 190 # as the default. 191 CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN 192 CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN 193 CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN 194 CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9 -D_BIG_ENDIAN 195 LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 196 CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 -D_BIG_ENDIAN 197 LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 198 CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN 199 CFLAGS_REQUIRED_ppc += -fsigned-char -D_BIG_ENDIAN 200 ifeq ($(ARCH),ppc64) 201 ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big) 202 CFLAGS_REQUIRED_ppc64 += -m64 -D_BIG_ENDIAN 203 LDFLAGS_COMMON_ppc64 += -m64 -L/lib64 -Wl,-melf64ppc 204 else ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),little) 205 CFLAGS_REQUIRED_ppc64 += -D_LITTLE_ENDIAN -DABI_ELFv2 206 else 207 $(error Expected big/little for ARCH=ppc64, got OPENJDK_TARGET_CPU_ENDIAN=$(OPENJDK_TARGET_CPU_ENDIAN)) 208 endif 209 endif 210 ifeq ($(ZERO_BUILD), true) 211 CFLAGS_REQUIRED = $(ZERO_ARCHFLAG) 212 ifeq ($(ZERO_ENDIANNESS), little) 213 CFLAGS_REQUIRED += -D_LITTLE_ENDIAN 214 endif 215 LDFLAGS_COMMON += $(ZERO_ARCHFLAG) 216 else 217 CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) 218 LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) 219 endif 220 # GCC 6 has more aggressive dead-store elimination which causes the VM to crash 221 # It also optimises away null pointer checks which are still needed. 222 # We turn both of these optimisations off. 223 ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 6 ),1) 224 CFLAGS_REQUIRED += -fno-delete-null-pointer-checks -fno-lifetime-dse 225 endif 226 227 # If this is a --hash-style=gnu system, use --hash-style=both 228 # The gnu .hash section won't work on some Linux systems like SuSE 10. 229 _HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu') 230 ifneq ($(_HAS_HASH_STYLE_GNU),) 231 LDFLAGS_HASH_STYLE = -Wl,--hash-style=both 232 endif 233 LDFLAGS_COMMON += $(LDFLAGS_HASH_STYLE) 234 235 # 236 # Selection of warning messages 237 # 238 GCC_INHIBIT = -Wno-unused -Wno-parentheses 239 GCC_STYLE = 240 GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT) 241 242 # 243 # Treat compiler warnings as errors, if warnings not allowed 244 # 245 ifeq ($(COMPILER_WARNINGS_FATAL),true) 246 GCC_WARNINGS += -Werror 247 endif 248 249 # 250 # Misc compiler options 251 # 252 ifneq ($(ARCH),ppc) 253 CFLAGS_COMMON = -fno-strict-aliasing 254 endif 255 PIC_CODE_LARGE = -fPIC 256 PIC_CODE_SMALL = -fpic 257 GLOBAL_KPIC = $(PIC_CODE_LARGE) 258 CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS) 259 ifeq ($(ARCH), amd64) 260 CFLAGS_COMMON += -pipe 261 endif 262 263 # Linux 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1 264 DEBUG_FLAG = -g 265 ifeq ($(FASTDEBUG), true) 266 ifeq ($(ARCH_DATA_MODEL), 64) 267 DEBUG_FLAG = -g1 268 endif 269 endif 270 271 # DEBUG_BINARIES overrides everything, use full -g debug information 272 ifeq ($(DEBUG_BINARIES), true) 273 DEBUG_FLAG = -g 274 CFLAGS_REQUIRED += $(DEBUG_FLAG) 275 endif 276 277 # If Full Debug Symbols is enabled, then we want the same debug and 278 # optimization flags as used by FASTDEBUG. 279 # 280 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 281 ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) 282 ifeq ($(VARIANT), OPT) 283 CC_OPT = $(DEBUG_FLAG) $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) 284 endif 285 endif 286 endif 287 288 CFLAGS_OPT = $(CC_OPT) 289 CFLAGS_DBG = $(DEBUG_FLAG) 290 CFLAGS_COMMON += $(CFLAGS_REQUIRED) 291 292 CXXFLAGS_COMMON = -std=gnu++98 $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS) 293 CXXFLAGS_OPT = $(CC_OPT) 294 CXXFLAGS_DBG = $(DEBUG_FLAG) 295 CXXFLAGS_COMMON += $(CFLAGS_REQUIRED) 296 297 # FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java 298 ifeq ($(FASTDEBUG), true) 299 CFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) 300 CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL)) 301 endif 302 303 CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"' 304 305 # Alpha arch does not like "alpha" defined (potential general arch cleanup issue here) 306 ifneq ($(ARCH),alpha) 307 CPP_ARCH_FLAGS += -D$(ARCH) 308 else 309 CPP_ARCH_FLAGS += -D_$(ARCH)_ 310 endif 311 312 CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -DLINUX $(VERSION_DEFINES) \ 313 -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT 314 315 ifeq ($(ARCH_DATA_MODEL), 64) 316 CPPFLAGS_COMMON += -D_LP64=1 317 endif 318 319 # turn on USE_PTHREADS 320 CPPFLAGS_COMMON += -DUSE_PTHREADS 321 322 CPPFLAGS_OPT = -DNDEBUG 323 CPPFLAGS_DBG = -DDEBUG 324 ifneq ($(PRODUCT), java) 325 CPPFLAGS_DBG += -DLOGGING 326 endif 327 328 ifdef LIBRARY 329 # Libraries need to locate other libraries at runtime, and you can tell 330 # a library where to look by way of the dynamic runpaths (RPATH or RUNPATH) 331 # buried inside the .so. The $ORIGIN says to look relative to where 332 # the library itself is and it can be followed with relative paths from 333 # that. By default we always look in $ORIGIN, optionally we add relative 334 # paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths. 335 # On Linux we add a flag -z origin, not sure if this is necessary, but 336 # doesn't seem to hurt. 337 # The environment variable LD_LIBRARY_PATH will over-ride these runpaths. 338 # Try: 'readelf -d lib*.so' to see these settings in a library. 339 # 340 Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin 341 Z_ORIGIN_FLAG/i586 = -Xlinker -z -Xlinker origin 342 Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin 343 Z_ORIGIN_FLAG/ia64 = -Xlinker -z -Xlinker origin 344 Z_ORIGIN_FLAG/arm = 345 Z_ORIGIN_FLAG/ppc = 346 Z_ORIGIN_FLAG/zero = -Xlinker -z -Xlinker origin 347 348 LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY)) 349 350 LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN 351 LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%) 352 353 endif 354 355 EXTRA_LIBS += -lc 356 357 LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs 358 LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) 359 360 # 361 # -L paths for finding and -ljava 362 # 363 LDFLAGS_OPT = -Xlinker -O1 364 LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH) 365 LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX) 366 367 # 368 # -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always 369 # statically link libgcc but will print a warning with the flag. We don't 370 # want the warning, so check gcc version first. 371 # 372 ifeq ($(CC_MAJORVER),3) 373 OTHER_LDFLAGS += -static-libgcc 374 endif 375 376 # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) 377 # (See Rules.gmk) The gcc 5 compiler might have an option for this? 378 AUTOMATIC_PCH_OPTION = 379 380 # 381 # Post Processing of libraries/executables 382 # 383 ifeq ($(VARIANT), OPT) 384 ifneq ($(NO_STRIP), true) 385 ifneq ($(DEBUG_BINARIES), true) 386 # Debug 'strip -g' leaves local function Elf symbols (better stack 387 # traces) 388 POST_STRIP_PROCESS = $(STRIP) -g 389 endif 390 endif 391 endif 392 393 # 394 # Use: ld $(LD_MAPFILE_FLAG) mapfile *.o 395 # 396 LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker 397 398 # 399 # Support for Quantify. 400 # 401 ifdef QUANTIFY 402 QUANTIFY_CMD = quantify 403 QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes 404 LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS) 405 endif 406 407 # 408 # Path and option to link against the VM, if you have to. Note that 409 # there are libraries that link against only -ljava, but they do get 410 # -L to the -ljvm, this is because -ljava depends on -ljvm, whereas 411 # the library itself should not. 412 # 413 VM_NAME = server 414 JVMLIB = -L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm 415 JAVALIB = -ljava $(JVMLIB) 416 417 # 418 # We want to privatize JVM symbols on Solaris. This is so the user can 419 # write a function called FindClass and this should not override the 420 # FindClass that is inside the JVM. At this point in time we are not 421 # concerned with other JNI libraries because we hope that there will 422 # not be as many clashes there. 423 # 424 PRIVATIZE_JVM_SYMBOLS = false 425 426 USE_PTHREADS = true 427 override ALT_CODESET_KEY = _NL_CTYPE_CODESET_NAME 428 override AWT_RUNPATH = 429 override HAVE_ALTZONE = false 430 override HAVE_FILIOH = false 431 override HAVE_GETHRTIME = false 432 override HAVE_GETHRVTIME = false 433 override HAVE_SIGIGNORE = true 434 override LEX_LIBRARY = -lfl 435 ifeq ($(STATIC_CXX),true) 436 override LIBCXX = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic 437 else 438 override LIBCXX = -lstdc++ 439 endif 440 override LIBPOSIX4 = 441 override LIBSOCKET = 442 override LIBNSL = 443 override LIBSCF = 444 override LIBTHREAD = 445 override LIBDL = -ldl 446 override MOOT_PRIORITIES = true 447 override NO_INTERRUPTIBLE_IO = true 448 ifeq ($(ARCH), $(findstring $(ARCH), amd64 ppc64)) 449 override OPENWIN_LIB = $(OPENWIN_HOME)/lib64 450 else 451 override OPENWIN_LIB = $(OPENWIN_HOME)/lib 452 endif 453 override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER 454 override SUN_CMM_SUBDIR = 455 override THREADS_FLAG = native 456 override USE_GNU_M4 = true 457 override USING_GNU_TAR = true 458 override WRITE_LIBVERSION = false 459 460 # USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the 461 # resulting resolved absolute name of the executable in the environment 462 # variable EXECNAME. That executable name is then used that to locate the 463 # installation area. 464 override USE_EXECNAME = true 465 466 # If your platform has DPS, it will have Type1 fonts too, in which case 467 # it is best to enable DPS support until such time as 2D's rasteriser 468 # can fully handle Type1 fonts in all cases. Default is "yes". 469 # HAVE_DPS should only be "no" if the platform has no DPS headers or libs 470 # DPS (Displayable PostScript) is available on Solaris machines 471 HAVE_DPS = no 472 473 # 474 # Japanese manpages 475 # 476 JA_SOURCE_ENCODING = eucJP 477 JA_TARGET_ENCODINGS = UTF-8 478 479 # Settings for the JDI - Serviceability Agent binding. 480 HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH) 481 SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX) 482 SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo 483 SA_DIZ_NAME = $(LIB_PREFIX)saproc.diz 484 485 # The JDI - Serviceability Agent binding is not currently supported 486 # on Linux-ia64. 487 ifeq ($(ARCH), ia64) 488 INCLUDE_SA = false 489 else 490 INCLUDE_SA = true 491 endif 492 493 ifdef CROSS_COMPILE_ARCH 494 # X11 headers are not under /usr/include 495 OTHER_CFLAGS += -I$(OPENWIN_HOME)/include 496 OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include 497 OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include 498 endif