1 /*
   2  * Copyright (c) 2013, 2015, 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 ext.ARMV6SF = [:]
  27 def crossLibsPackage="armv6sf-02"
  28 
  29 // Define the location of the sdk and toolchain
  30 def sdk=file("${rootProject.CROSS_TOOLS_DIR}/${crossLibsPackage}")
  31 
  32 def compilerHome
  33 def compilerPrefix
  34 if (IS_LINUX) {
  35     fetchExternalTools('ARMV6SF',
  36             ["${crossLibsPackage}.tgz",
  37              "arm-linaro-4.7.tgz" ],
  38             rootProject.CROSS_TOOLS_DIR,
  39             rootProject.IS_IMPORT_CROSS_TOOLS)
  40 
  41     compilerHome=file("${rootProject.CROSS_TOOLS_DIR}/arm-linaro-4.7")
  42     compilerPrefix="arm-linux-gnueabi-"
  43 }
  44 
  45 if (rootProject.hasProperty("ARMV6SF_COMPILER")) {
  46     logger.quiet "Using alternate ARMV6SF_COMPILER $rootProject.ARMV6SF_COMPILER"
  47     compilerHome=file(rootProject.ARMV6SF_COMPILER);
  48 }
  49 if (rootProject.hasProperty("ARMV6SF_COMPILER_PREFIX")) {
  50     logger.quiet "Using alternate ARMV6SF_COMPILER_PREFIX $rootProject.ARMV6SF_COMPILER_PREFIX"
  51     compilerPrefix="${rootProject.ARMV6SF_COMPILER_PREFIX}"
  52 }
  53 def jniPlatform
  54 if (IS_LINUX) {
  55     jniPlatform="linux"
  56 } else if (IS_MAC) {
  57     jniPlatform="darwin"
  58 } else {
  59     fail "armv6sf Cannot build on this platform"
  60     return;
  61 }
  62 
  63 def compiler = file("$compilerHome/bin/${compilerPrefix}gcc").getAbsolutePath()
  64 def linker = file("$compilerHome/bin/${compilerPrefix}g++").getAbsolutePath()
  65 
  66 // Declare whether this particular target file applies to the current system
  67 ARMV6SF.canBuild = (IS_LINUX || IS_MAC) && compilerHome.exists() && sdk.exists()
  68 if (!ARMV6SF.canBuild) {
  69     if (!compilerHome.exists()) println "ERROR: Missing compiler $compilerHome"
  70     if (!sdk.exists()) println "ERROR: Missing sdk $sdk"
  71     fail("armv6sf missing required tools")
  72 }
  73 
  74 // Lambda for naming the generated libs
  75 ARMV6SF.library = { name -> return "lib${name}.so" as String }
  76 
  77 ARMV6SF.compileSwing = false;
  78 ARMV6SF.compileSWT = false;
  79 ARMV6SF.compileFXPackager = false;
  80 ARMV6SF.compileWebnodeNative = false;
  81 
  82 ARMV6SF.includeLens = false
  83 ARMV6SF.includeMonocle = true
  84 ARMV6SF.includeNull3d = true
  85 ARMV6SF.includeEGL = true
  86 ARMV6SF.includeSwing = false
  87 ARMV6SF.includeSWT = false
  88 ARMV6SF.includeGTK = true
  89 
  90 ARMV6SF.javafxPlatformDefault="monocle"
  91 
  92 // Libraries end up in the sdk/rt/lib/arm directory for arm builds
  93 ARMV6SF.arch = "arm"
  94 ARMV6SF.libDest = "lib/arm"
  95 
  96 def commonFlags = [
  97         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
  98         "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
  99 // Specify the compilation parameters and link parameters
 100 def ccFlags = [
 101         commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/$jniPlatform", "-c",
 102         IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
 103 //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
 104 def linkFlags = ["-shared", commonFlags].flatten()
 105 
 106 // Specify the compilation parameters and link parameters
 107 def extraCFlags = [
 108         "-I", "-L",
 109         ccFlags,
 110         "-march=armv6", "-mfloat-abi=softfp", "-mfpu=vfp",
 111         "-I$sdk/usr/include",
 112         "-D_GNU_SOURCE", "-DOMAP3"].flatten();
 113 
 114 //See if we should build for imx6
 115 def imxHeader=file("$sdk/usr/include/linux/mxcfb.h")
 116 if (imxHeader.exists()) {
 117         extraCFlags = [extraCFlags,"-DIMX6_PLATFORM"].flatten();
 118 }
 119 
 120 def extraLFlags = [
 121         "-I", "-L",
 122         linkFlags,
 123         "-L$sdk/usr/lib",
 124         "-L$sdk/usr/lib/arm-linux-gnueabi",
 125         "-L$sdk/lib/arm-linux-gnueabi"
 126         ].flatten()
 127 
 128 def x11CFlags = [extraCFlags, "-DUSE_XSHM"].flatten()
 129 def x11LFlags = [extraLFlags, "-lX11", "-lXext"].flatten()
 130 def eglCFlags = [extraCFlags].flatten()
 131 def eglLFlags = [extraLFlags].flatten()
 132 def dfbCFlags = ["-I$sdk/usr/include/directfb"]
 133 def dfbLFlags = ["-ldl"]
 134 // TODO dfb.args=disable-module=ps2mouse,disable-module=keyboard
 135 
 136 def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten()
 137 def monocleCFlags = [
 138         extraCFlags,
 139         "-Werror",
 140         "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten();
 141 def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten()
 142 def glassCFlags = ["-ffast-math"]
 143 def glassLFlags = []
 144 
 145 def fontCFlags = [extraCFlags].flatten()
 146 def fontLFlags = [extraLFlags].flatten()
 147 
 148 def iioCFlags = [extraCFlags].flatten()
 149 def iioLFlags = [extraLFlags].flatten()
 150 
 151 def es2CFlags = [extraCFlags].flatten()
 152 def es2LFlags = [extraLFlags, eglLFlags].flatten()
 153 
 154 def es2EglfbCFlags = [extraCFlags, eglCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 155 def es2EglfbLFlags = [extraLFlags, eglLFlags].flatten()
 156 def es2MonocleCFlags = [extraCFlags, eglCFlags, "-DIS_EGLFB", "-DLINUX"].flatten()
 157 def es2MonocleFlags = [extraLFlags, eglLFlags].flatten()
 158 
 159 def es2X11CFlags = [extraCFlags, eglCFlags, x11CFlags, "-DDEBUG", "-DIS_EGLX11", "-DLINUX"].flatten()
 160 def es2X11LFlags = [extraLFlags, x11LFlags, eglLFlags, "-lXdmcp", "-lXau"].flatten()
 161 
 162 def prismSWCFlags = [extraCFlags].flatten()
 163 def prismSWLFlags = [extraLFlags].flatten()
 164 
 165 def mediaCFlags = [extraCFlags,
 166     "-I$sdk/usr/include/gstreamer-0.10",
 167     "-I$sdk/usr/include/glib-2.0",
 168     "-I$sdk/usr/lib/arm-linux-gnueabi/glib-2.0/include",
 169     "-DENABLE_NATIVE_SOURCE=1", "-DENABLE_GST_FFMPEG=1"].flatten()
 170 def mediaLFlags = [extraLFlags, "-lgstreamer-0.10", "-lgstapp-0.10",
 171     "-lgstbase-0.10", "-lglib-2.0", "-lgobject-2.0", "-lgmodule-2.0", "-lgthread-2.0"].flatten()
 172 
 173 def webCFlags = [extraCFlags].flatten()
 174 def webLFlags = [extraLFlags].flatten()
 175 
 176 def gtkCFlags = [extraCFlags].flatten()
 177 def gtkLFlags = [extraLFlags].flatten()
 178 
 179 def gtkCFlags_pkgconfig = "-pthread -I${sdk}/usr/include/gtk-2.0 -I${sdk}/usr/lib/arm-linux-gnueabi/gtk-2.0/include -I${sdk}/usr/include/atk-1.0 -I${sdk}/usr/include/cairo -I${sdk}/usr/include/gdk-pixbuf-2.0 -I${sdk}/usr/include/pango-1.0 -I${sdk}/usr/include/gio-unix-2.0/ -I${sdk}/usr/include -I${sdk}/usr/include/glib-2.0 -I${sdk}/usr/lib/arm-linux-gnueabi/glib-2.0/include -I${sdk}/usr/include/pixman-1 -I${sdk}/usr/include/freetype2 -I${sdk}/usr/include/libpng12"
 180 
 181 def gtkLFlags_pkgconfig = "-pthread -L${sdk}/usr/lib/arm-linux-gnueabi -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXtst"
 182 
 183 gtkCFlags.addAll(gtkCFlags_pkgconfig.split(" "))
 184 gtkLFlags.addAll(gtkLFlags_pkgconfig.split(" "))
 185 
 186 def monoclePlatformAdditions = """
 187 monocle.glass.platform=Monocle
 188 monocle.prism.order=es2,sw
 189 monocle.prism.eglfb=true
 190 monocle.prism.lcdtext=false
 191 monocle.prism.maxvram=128m
 192 monocle.prism.targetvram=112m
 193 monocle.use.egl=true
 194 monocle.use.gles2=true
 195 monocle.embedded=monocle
 196 monocle.com.sun.javafx.isEmbedded=true
 197 monocle.doNativeComposite=true
 198 monocle.com.sun.javafx.scene.control.skin.FXVK.cache=true
 199 monocle.prism.glDepthSize=0
 200 monocle.com.sun.javafx.gestures.zoom=true
 201 monocle.com.sun.javafx.gestures.rotate=true
 202 monocle.com.sun.javafx.gestures.scroll=true"""
 203 
 204 def lensPlatformAdditions = """
 205 directfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 206 directfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 207 directfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 208 directfb.glass.platform=Lens
 209 directfb.glass.lens=dfb
 210 directfb.prism.order=sw
 211 directfb.com.sun.javafx.isEmbedded=true
 212 directfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 213 directfb.com.sun.javafx.gestures.zoom=true
 214 directfb.com.sun.javafx.gestures.rotate=true
 215 directfb.com.sun.javafx.gestures.scroll=true
 216 eglfb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 217 eglfb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 218 eglfb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 219 eglfb.maxTextureSize=2048
 220 eglfb.glass.platform=Lens
 221 eglfb.glass.lens=eglfb
 222 eglfb.prism.order=es2
 223 eglfb.prism.eglfb=true
 224 eglfb.prism.lcdtext=false
 225 eglfb.prism.maxvram=128m
 226 eglfb.prism.targetvram=112m
 227 eglfb.use.egl=true
 228 eglfb.use.gles2=true
 229 eglfb.embedded=eglfb
 230 eglfb.com.sun.javafx.isEmbedded=true
 231 eglfb.doNativeComposite=true
 232 eglfb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 233 eglfb.prism.glDepthSize=0
 234 eglfb.com.sun.javafx.gestures.zoom=true
 235 eglfb.com.sun.javafx.gestures.rotate=true
 236 eglfb.com.sun.javafx.gestures.scroll=true
 237 fb.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 238 fb.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 239 fb.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 240 fb.glass.platform=Lens
 241 fb.glass.lens=fb
 242 fb.prism.order=sw
 243 fb.com.sun.javafx.isEmbedded=true
 244 fb.glass.restrictWindowToScreen=true
 245 fb.com.sun.javafx.scene.control.skin.FXVK.cache=true
 246 fb.com.sun.javafx.gestures.zoom=true
 247 fb.com.sun.javafx.gestures.rotate=true
 248 fb.com.sun.javafx.gestures.scroll=true
 249 eglx11.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 250 eglx11.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 251 eglx11.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 252 eglx11.glass.platform=Lens
 253 eglx11.glass.lens=eglx11
 254 eglx11.prism.order=es2
 255 eglx11.prism.eglx11=true
 256 eglx11.prism.lcdtext=false
 257 eglx11.prism.maxvram=128m
 258 eglx11.prism.targetvram=112m
 259 eglx11.use.egl=true
 260 eglx11.use.gles2=true
 261 eglx11.embedded=eglx11
 262 eglx11.com.sun.javafx.isEmbedded=true
 263 eglx11.com.sun.javafx.scene.control.skin.FXVK.cache=true
 264 eglx11.prism.glDepthSize=0
 265 eglx11.com.sun.javafx.gestures.zoom=true
 266 eglx11.com.sun.javafx.gestures.rotate=true
 267 eglx11.com.sun.javafx.gestures.scroll=true"""
 268 
 269 def gtkPlatformAdditions = """
 270 gtk.com.sun.javafx.scene.control.skin.ListViewSkin.pannable=true
 271 gtk.com.sun.javafx.scene.control.skin.TreeViewSkin.pannable=true
 272 gtk.com.sun.javafx.scene.control.skin.TableViewSkin.pannable=true
 273 gtk.glass.platform=gtk
 274 gtk.prism.order=sw
 275 gtk.com.sun.javafx.isEmbedded=true
 276 gtk.com.sun.javafx.scene.control.skin.FXVK.cache=true
 277 gtk.com.sun.javafx.gestures.zoom=true
 278 gtk.com.sun.javafx.gestures.rotate=true
 279 gtk.com.sun.javafx.gestures.scroll=true"""
 280 
 281 def pangoCCFlags = [extraCFlags, "-D_ENABLE_PANGO"];
 282 def pangoLinkFlags = [extraLFlags];
 283 
 284 def pangoCFlags_pkgconfig = "-pthread -I${sdk}/usr/include/pango-1.0 -I${sdk}/usr/include/freetype2 -I${sdk}/usr/include -I${sdk}/usr/include/glib-2.0 -I${sdk}/usr/lib/arm-linux-gnueabi/glib-2.0/include "
 285 
 286 def pangoLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabi -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0"
 287 
 288 pangoCCFlags.addAll(gtkCFlags_pkgconfig.split(" "))
 289 pangoLinkFlags.addAll(gtkLFlags_pkgconfig.split(" "))
 290 
 291 def freetypeCCFlags = [ext.IS_COMPILE_PANGO ? "-D_ENABLE_PANGO" :
 292                        ext.IS_COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
 293 def freetypeLinkFlags = []
 294 
 295 def freetypeCFlags_pkgconfig = "-I${sdk}/usr/include/freetype2 -I${sdk}/usr/include"
 296 def freeytpeLFlags_pkgconfig = "-L${sdk}/usr/lib/arm-linux-gnueabi -lfreetype"
 297 
 298 freetypeCCFlags.addAll(gtkCFlags_pkgconfig.split(" "))
 299 freetypeLinkFlags.addAll(gtkLFlags_pkgconfig.split(" "))
 300 
 301 ARMV6SF.javafxPlatformProperties = "javafx.platform=${ARMV6SF.javafxPlatformDefault}"
 302 
 303 ARMV6SF.glass = [:]
 304 ARMV6SF.glass.javahInclude = [
 305     "com/sun/glass/events/**",
 306     "com/sun/glass/ui/*"]
 307 ARMV6SF.glass.variants = [ ]
 308 if (ARMV6SF.includeLens) { 
 309     ARMV6SF.glass.variants.addAll("eglfb", "directfb", "fb", "lensport" );
 310     ARMV6SF.glass.javahInclude.addAll("com/sun/glass/ui/lens/*");
 311     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + lensPlatformAdditions
 312 }
 313 if (ARMV6SF.includeMonocle) { 
 314     ARMV6SF.glass.variants.addAll("monocle", "monocle_x11");
 315     ARMV6SF.glass.javahInclude.addAll(
 316         "com/sun/glass/ui/monocle/*",
 317         "com/sun/glass/ui/monocle/dispman/*",
 318         "com/sun/glass/ui/monocle/mx6/*",
 319         "com/sun/glass/ui/monocle/linux/*",
 320         "com/sun/glass/ui/monocle/util/*",
 321         "com/sun/glass/ui/monocle/x11/*");
 322     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + monoclePlatformAdditions
 323 }
 324 if (ARMV6SF.includeGTK) {
 325     ARMV6SF.glass.variants.addAll("gtk");
 326     ARMV6SF.glass.javahInclude.addAll("com/sun/glass/ui/gtk/*");
 327     ARMV6SF.javafxPlatformProperties = ARMV6SF.javafxPlatformProperties + gtkPlatformAdditions
 328 }
 329 
 330 ARMV6SF.glass.lib = "glass"
 331 
 332 ARMV6SF.glass.lensport = [:]
 333 ARMV6SF.glass.lensport.nativeSource = [
 334     file("modules/graphics/src/main/native-glass/lens/lensport") ]
 335 ARMV6SF.glass.lensport.compiler = compiler
 336 ARMV6SF.glass.lensport.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB",
 337     "-DLENSPORT", "-I", file("modules/graphics/src/main/native-glass/lens/")].flatten()
 338 ARMV6SF.glass.lensport.linker = linker
 339 ARMV6SF.glass.lensport.linkFlags = [lensLFlags].flatten()
 340 ARMV6SF.glass.lensport.lib = "lens_porting"
 341 
 342 ARMV6SF.glass.monocle = [:]
 343 ARMV6SF.glass.monocle.nativeSource = [
 344         file("modules/graphics/src/main/native-glass/monocle"),
 345         file("modules/graphics/src/main/native-glass/monocle/linux"),
 346         file("modules/graphics/src/main/native-glass/monocle/util") ]
 347 ARMV6SF.glass.monocle.compiler = compiler
 348 ARMV6SF.glass.monocle.ccFlags = monocleCFlags
 349 ARMV6SF.glass.monocle.linker = linker
 350 ARMV6SF.glass.monocle.linkFlags = monocleLFlags
 351 ARMV6SF.glass.monocle.lib = "glass_monocle"
 352 
 353 ARMV6SF.glass.monocle_x11 = [:]
 354 ARMV6SF.glass.monocle_x11.nativeSource = [
 355         file("modules/graphics/src/main/native-glass/monocle/util"),
 356         file("modules/graphics/src/main/native-glass/monocle/x11") ]
 357 ARMV6SF.glass.monocle_x11.compiler = compiler
 358 ARMV6SF.glass.monocle_x11.ccFlags = monocleCFlags
 359 ARMV6SF.glass.monocle_x11.linker = linker
 360 ARMV6SF.glass.monocle_x11.linkFlags = [ monocleLFlags, "-lX11" ].flatten()
 361 ARMV6SF.glass.monocle_x11.lib = "glass_monocle_x11"
 362 
 363 ARMV6SF.glass.eglfb = [:]
 364 // TODO when building headless, use lens/cursor/nullcursor/
 365 // otherwise we use lens/cursor/fbCursor/ and lens/input/udev
 366 
 367 // TODO when USE_RFB is specified use lens/rfb
 368 
 369 // TODO use /eglfb/x11ContainerScreen when using eglfb and EGL_X11_FB_CONTAINER
 370 // TODO use /headless/headlessScreen when using headless
 371 ARMV6SF.glass.eglfb.nativeSource = [
 372     file("modules/graphics/src/main/native-glass/lens"),
 373     file("modules/graphics/src/main/native-glass/lens/wm"),
 374     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 375     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 376     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c")]
 377 ARMV6SF.glass.eglfb.compiler = compiler
 378 ARMV6SF.glass.eglfb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX", "-DISEGLFB"].flatten()
 379 ARMV6SF.glass.eglfb.linker = linker
 380 ARMV6SF.glass.eglfb.linkFlags = [lensLFlags].flatten()
 381 ARMV6SF.glass.eglfb.lib = "glass_lens_eglfb"
 382 
 383 ARMV6SF.glass.directfb = [:]
 384 ARMV6SF.glass.directfb.nativeSource = [
 385     file("modules/graphics/src/main/native-glass/lens"),
 386     file("modules/graphics/src/main/native-glass/lens/wm"),
 387     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 388     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 389     file("modules/graphics/src/main/native-glass/lens/wm/screen/dfbScreen.c")]
 390 ARMV6SF.glass.directfb.compiler = compiler
 391 ARMV6SF.glass.directfb.ccFlags = ["-ffast-math", extraCFlags, "-I$sdk/usr/include/directfb", "-DLINUX"].flatten()
 392 ARMV6SF.glass.directfb.linker = linker
 393 ARMV6SF.glass.directfb.linkFlags = [lensLFlags].flatten()
 394 ARMV6SF.glass.directfb.lib = "glass_lens_dfb"
 395 
 396 ARMV6SF.glass.fb = [:]
 397 ARMV6SF.glass.fb.nativeSource = [
 398     file("modules/graphics/src/main/native-glass/lens"),
 399     file("modules/graphics/src/main/native-glass/lens/wm"),
 400     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 401     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 402     file("modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c") ]
 403 ARMV6SF.glass.fb.compiler = compiler
 404 ARMV6SF.glass.fb.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 405 ARMV6SF.glass.fb.linker = linker
 406 ARMV6SF.glass.fb.linkFlags = [lensLFlags].flatten()
 407 ARMV6SF.glass.fb.lib = "glass_lens_fb"
 408  
 409 ARMV6SF.glass.eglx11 = [:]
 410 ARMV6SF.glass.eglx11.nativeSource = [
 411     file("modules/graphics/src/main/native-glass/lens"),
 412     file("modules/graphics/src/main/native-glass/lens/wm"),
 413     file("modules/graphics/src/main/native-glass/lens/cursor/fbCursor"),
 414     file("modules/graphics/src/main/native-glass/lens/input/udev"),
 415     file("modules/graphics/src/main/native-glass/lens/wm/screen/x11ContainerScreen.c")]
 416 ARMV6SF.glass.eglx11.compiler = compiler
 417 ARMV6SF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags].flatten()
 418 ARMV6SF.glass.eglx11.ccFlags = ["-ffast-math", extraCFlags, "-DLINUX"].flatten()
 419 ARMV6SF.glass.eglx11.linker = linker
 420 ARMV6SF.glass.eglx11.linkFlags = [lensLFlags].flatten()
 421 ARMV6SF.glass.eglx11.lib = "glass_lens_eglx11"
 422  
 423 ARMV6SF.glass.gtk = [:]
 424 ARMV6SF.glass.gtk.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
 425 ARMV6SF.glass.gtk.compiler = compiler
 426 ARMV6SF.glass.gtk.ccFlags = ["-ffast-math", gtkCFlags, "-DLINUX"].flatten()
 427 ARMV6SF.glass.gtk.linker = linker
 428 ARMV6SF.glass.gtk.linkFlags = [gtkLFlags, "-lstdc++"].flatten()
 429 ARMV6SF.glass.gtk.lib = "glass"
 430 
 431 ARMV6SF.decora = [:]
 432 ARMV6SF.decora.compiler = compiler
 433 ARMV6SF.decora.ccFlags = extraCFlags
 434 ARMV6SF.decora.linker = linker
 435 ARMV6SF.decora.linkFlags = extraLFlags
 436 ARMV6SF.decora.lib = "decora_sse"
 437 
 438 ARMV6SF.prism = [:]
 439 ARMV6SF.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
 440 ARMV6SF.prism.nativeSource = file("modules/graphics/src/main/native-prism")
 441 ARMV6SF.prism.compiler = compiler
 442 ARMV6SF.prism.ccFlags = es2CFlags
 443 ARMV6SF.prism.linker = linker
 444 ARMV6SF.prism.linkFlags = es2LFlags 
 445 ARMV6SF.prism.lib = "prism_common"
 446 
 447 ARMV6SF.prismSW = [:]
 448 ARMV6SF.prismSW.javahInclude = ["com/sun/pisces/**/*"]
 449 ARMV6SF.prismSW.nativeSource = file("modules/graphics/src/main/native-prism-sw")
 450 ARMV6SF.prismSW.compiler = compiler
 451 ARMV6SF.prismSW.ccFlags = prismSWCFlags
 452 ARMV6SF.prismSW.linker = linker
 453 ARMV6SF.prismSW.linkFlags = prismSWLFlags
 454 ARMV6SF.prismSW.lib = "prism_sw"
 455 
 456 ARMV6SF.iio = [:]
 457 ARMV6SF.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
 458 ARMV6SF.iio.nativeSource = [
 459     file("modules/graphics/src/main/native-iio"),
 460     file("modules/graphics/src/main/native-iio/libjpeg7")]
 461 ARMV6SF.iio.compiler = compiler
 462 ARMV6SF.iio.ccFlags = iioCFlags
 463 ARMV6SF.iio.linker = linker
 464 ARMV6SF.iio.linkFlags = iioLFlags
 465 ARMV6SF.iio.lib = "javafx_iio"
 466 
 467 ARMV6SF.prismES2 = [:]
 468 ARMV6SF.prismES2.variants = ["eglfb", "monocle"]
 469 ARMV6SF.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
 470 
 471 ARMV6SF.prismES2.eglfb = [:]
 472 ARMV6SF.prismES2.eglfb.nativeSource = [
 473     file("modules/graphics/src/main/native-prism-es2"),
 474     file("modules/graphics/src/main/native-prism-es2/GL"),
 475     file("modules/graphics/src/main/native-prism-es2/eglfb")
 476 ]
 477 ARMV6SF.prismES2.eglfb.compiler = compiler
 478 ARMV6SF.prismES2.eglfb.ccFlags = [ es2EglfbCFlags, "-I", ARMV6SF.glass.lensport.nativeSource ].flatten()
 479 ARMV6SF.prismES2.eglfb.linker = linker
 480 ARMV6SF.prismES2.eglfb.linkFlags = es2EglfbLFlags
 481 ARMV6SF.prismES2.eglfb.lib = "prism_es2_eglfb"
 482 
 483 ARMV6SF.prismES2.monocle= [:]
 484 ARMV6SF.prismES2.monocle.nativeSource = [
 485     file("modules/graphics/src/main/native-prism-es2"),
 486     file("modules/graphics/src/main/native-prism-es2/GL"),
 487     file("modules/graphics/src/main/native-prism-es2/monocle")
 488 ]
 489 ARMV6SF.prismES2.monocle.compiler = compiler
 490 ARMV6SF.prismES2.monocle.ccFlags = [ es2EglfbCFlags, "-I", ARMV6SF.glass.lensport.nativeSource ].flatten()
 491 ARMV6SF.prismES2.monocle.linker = linker
 492 ARMV6SF.prismES2.monocle.linkFlags = es2EglfbLFlags
 493 ARMV6SF.prismES2.monocle.lib = "prism_es2_monocle"
 494 
 495 ARMV6SF.prismES2.eglx11 = [:]
 496 ARMV6SF.prismES2.eglx11.nativeSource = [
 497     file("modules/graphics/src/main/native-prism-es2"),
 498     file("modules/graphics/src/main/native-prism-es2/GL"),
 499     file("modules/graphics/src/main/native-prism-es2/eglx11")
 500 ]
 501 ARMV6SF.prismES2.eglx11.compiler = compiler
 502 ARMV6SF.prismES2.eglx11.ccFlags = es2X11CFlags
 503 ARMV6SF.prismES2.eglx11.linker = linker
 504 ARMV6SF.prismES2.eglx11.linkFlags = es2X11LFlags
 505 ARMV6SF.prismES2.eglx11.lib = "prism_es2_eglx11"
 506 
 507 def closedDir = file("$projectDir/../rt-closed")
 508 ARMV6SF.font = [:]
 509 ARMV6SF.font.javahInclude = [
 510     "com/sun/javafx/font/**/*",
 511     "com/sun/javafx/text/**/*"]
 512 ARMV6SF.font.nativeSource = [file("modules/graphics/src/main/native-font")]
 513 ARMV6SF.font.compiler = compiler
 514 ARMV6SF.font.ccFlags = fontCFlags
 515 ARMV6SF.font.linker = linker
 516 ARMV6SF.font.linkFlags = fontLFlags
 517 ARMV6SF.font.lib = "javafx_font"
 518 
 519 ARMV6SF.fontT2K = [:]
 520 ARMV6SF.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
 521 ARMV6SF.fontT2K.nativeSource = [
 522         file("$closedDir/javafx-font-t2k-native/src"),
 523         file("$closedDir/javafx-font-t2k-native/src/layout")]
 524 ARMV6SF.fontT2K.compiler = compiler
 525 ARMV6SF.fontT2K.ccFlags = [fontCFlags, "-DLE_STANDALONE"].flatten()
 526 ARMV6SF.fontT2K.linker = linker
 527 ARMV6SF.fontT2K.linkFlags = fontLFlags
 528 ARMV6SF.fontT2K.lib = "javafx_font_t2k"
 529 
 530 ARMV6SF.fontFreetype = [:]
 531 ARMV6SF.fontFreetype.javahInclude = ["com/sun/javafx/font/freetype/OSFreetype.class"]
 532 ARMV6SF.fontFreetype.nativeSource = ["src/main/native-font/freetype.c"]
 533 ARMV6SF.fontFreetype.compiler = compiler
 534 ARMV6SF.fontFreetype.ccFlags = ["-DJFXFONT_PLUS", ccFlags, fontCFlags, freetypeCCFlags].flatten()
 535 ARMV6SF.fontFreetype.linker = linker
 536 ARMV6SF.fontFreetype.linkFlags = [linkFlags, fontLFlags, freetypeLinkFlags].flatten()
 537 ARMV6SF.fontFreetype.lib = "javafx_font_freetype"
 538 
 539 ARMV6SF.fontPango = [:]
 540 ARMV6SF.fontPango.javahInclude = ["com/sun/javafx/font/freetype/OSPango.class"]
 541 ARMV6SF.fontPango.nativeSource = ["src/main/native-font/pango.c"]
 542 ARMV6SF.fontPango.compiler = compiler
 543 ARMV6SF.fontPango.ccFlags = ["-DJFXFONT_PLUS", ccFlags, pangoCCFlags].flatten()
 544 ARMV6SF.fontPango.linker = linker
 545 ARMV6SF.fontPango.linkFlags = [linkFlags, pangoLinkFlags].flatten()
 546 ARMV6SF.fontPango.lib = "javafx_font_pango"
 547 
 548 ARMV6SF.webkit = [:]
 549 ARMV6SF.webkit.binDir   = "$compilerHome/bin"
 550 ARMV6SF.webkit.compiler = compiler
 551 ARMV6SF.webkit.linker   = linker
 552 ARMV6SF.webkit.ar       = file("$compilerHome/bin/${compilerPrefix}ar").getAbsolutePath()
 553 ARMV6SF.webkit.objcopy  = file("$compilerHome/bin/${compilerPrefix}objcopy").getAbsolutePath()
 554 ARMV6SF.webkit.strip    = file("$compilerHome/bin/${compilerPrefix}strip").getAbsolutePath()
 555 ARMV6SF.webkit.ccFlags  = extraCFlags.join(' ')
 556 ARMV6SF.webkit.linkFlags = extraLFlags.join(' ')
 557 
 558 ARMV6SF.disableMedia = true
 559 ARMV6SF.media = [:]
 560 ARMV6SF.media.compiler = compiler
 561 ARMV6SF.media.linker = linker
 562 ARMV6SF.media.extra_cflags = mediaCFlags.join(' ')
 563 ARMV6SF.media.extra_ldflags = mediaLFlags.join(' ')
 564 
 565 ARMV6SF.deploy = [:]
 566 ARMV6SF.deploy.publicLibraryFilter = [
 567   "fxavcodecplugin-52.so",
 568   "fxavcodecplugin-53.so",
 569   "fxplugins.so",
 570   "libjfxwebkit.so",
 571   "libgstplugins-lite.so",
 572   "libgstreamer-lite.so",
 573   "libprism_es2_eglx11.so",
 574   "libglass_lens_fb.so"
 575 ]
 576 ARMV6SF.deploy.compressBigJar=true