From a28f9aaab759d82384279c16d86bb98ab47412a3 Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <gyakovlev@gentoo.org>
Date: Sat, 1 Jun 2019 00:12:55 -0700
Subject: [PATCH] respect user cflags

--- a/buildSrc/linux.gradle
+++ b/buildSrc/linux.gradle
@@ -44,8 +44,11 @@ LINUX.library = { name -> return "lib${name}.so" as String }
 def commonFlags = [
         "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
         "-fstack-protector",
+        "-Wno-error=cast-function-type",
         "-Wextra", "-Wall", "-Wformat-security", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
 
+commonFlags.addAll(System.getenv("CFLAGS").trim().split(" "))
+
 if (!IS_64) {
     commonFlags += "-m32"
 }
@@ -61,6 +64,8 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags,
                  "-z", "relro",
                  "-Wl,--gc-sections"].flatten()
 
+linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" "))
+
 if (IS_DEBUG_NATIVE) {
     linkFlags += "-g"
 }
@@ -294,7 +299,7 @@ LINUX.iio.nativeSource = [
 LINUX.iio.compiler = compiler
 LINUX.iio.ccFlags = [ccFlags].flatten()
 LINUX.iio.linker = linker
-LINUX.iio.linkFlags = [linkFlags].flatten()
+LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten()
 LINUX.iio.lib = "javafx_iio"
 
 LINUX.prismES2 = [:]
--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
+++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile
@@ -17,7 +17,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
 OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
 endif
 
-CFLAGS = -fPIC                   \
+CFLAGS := -fPIC                   \
          -Wformat                \
          -Wextra                 \
          -Wformat-security       \
@@ -29,13 +29,8 @@ CFLAGS = -fPIC                   \
          -DLINUX                 \
          -DGST_DISABLE_LOADSAVE  \
          -DGSTREAMER_LITE \
-         -ffunction-sections -fdata-sections
-
-ifeq ($(BUILD_TYPE), Release)
-    CFLAGS += -Os
-else
-    CFLAGS += -g -Wall
-endif
+         -ffunction-sections -fdata-sections \
+         ${CFLAGS}
 
 PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
 PACKAGES_LIBS     := $(shell pkg-config --libs glib-2.0 gobject-2.0)
@@ -46,11 +41,12 @@ INCLUDES= -I../../../plugins                          \
           -I../../../gstreamer-lite/gstreamer/libs    \
           $(PACKAGES_INCLUDES)
 
-LDFLAGS = -L$(BUILD_DIR)    \
+LDFLAGS := -L$(BUILD_DIR)    \
           -lgstreamer-lite  \
            $(PACKAGES_LIBS) \
           -z relro          \
-          -static-libgcc -static-libstdc++ -Wl,--gc-sections
+          -static-libgcc -static-libstdc++ -Wl,--gc-sections \
+          ${LDFLAGS}
 
 ifneq ($(strip $(LIBAV_DIR)),)
 INCLUDES += -I$(LIBAV_DIR)/include
--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
+++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile
@@ -14,7 +14,7 @@ DIRLIST = progressbuffer       \
 
 TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
 
-CFLAGS = -fPIC                   \
+CFLAGS := -fPIC                   \
          -Wformat                \
          -Wextra                 \
          -Wformat-security       \
@@ -30,14 +30,8 @@ CFLAGS = -fPIC                   \
          -DGST_DISABLE_LOADSAVE  \
          -DGST_DISABLE_GST_DEBUG \
          -DGSTREAMER_LITE \
-         -ffunction-sections -fdata-sections
-
-ifeq ($(BUILD_TYPE), Release)
-    CFLAGS += -Os
-else
-    CFLAGS += -g -Wall
-endif
-
+         -ffunction-sections -fdata-sections \
+         ${CFLAGS}
 
 INCLUDES = -I$(SRCBASE_DIR) \
 	   $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
@@ -47,9 +41,10 @@ INCLUDES = -I$(SRCBASE_DIR) \
 PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
 PACKAGES_LIBS := $(shell pkg-config --libs glib-2.0 gobject-2.0)
 
-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
           -z relro \
-          -static-libgcc -static-libstdc++ -Wl,--gc-sections
+          -static-libgcc -static-libstdc++ -Wl,--gc-sections \
+          ${LDFLAGS}
 
 ifeq ($(ARCH), x32)
     CFLAGS += -m32
--- a/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
+++ b/modules/javafx.media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile
@@ -37,7 +37,7 @@ DIRLIST = gstreamer/gst \
 
 TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
 
-CFLAGS =-fPIC                   \
+CFLAGS :=-fPIC                   \
         -Wformat                \
         -Wextra                 \
         -Wformat-security       \
@@ -51,13 +51,8 @@ CFLAGS =-fPIC                   \
         -DLINUX                 \
         -DGST_DISABLE_GST_DEBUG \
         -DGST_DISABLE_LOADSAVE  \
-        -ffunction-sections -fdata-sections
-
-ifeq ($(BUILD_TYPE), Release)
-    CFLAGS += -Os
-else
-    CFLAGS += -g -Wall
-endif
+        -ffunction-sections -fdata-sections \
+        ${CFLAGS}
 
 INCLUDES = -I$(BASE_DIR)/plugins                          \
 	   -I$(SRCBASE_DIR)/projects/build/linux/common   \
@@ -75,9 +70,10 @@ INCLUDES = -I$(BASE_DIR)/plugins                          \
 PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa glib-2.0)
 PACKAGES_LIBS := $(shell pkg-config --libs alsa glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0)
 
-LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
+LDFLAGS := -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \
           -z relro \
-          -static-libgcc -static-libstdc++ -Wl,--gc-sections
+          -static-libgcc -static-libstdc++ -Wl,--gc-sections \
+          ${LDFLAGS}
 
 ifeq ($(ARCH), x32)
     CFLAGS += -m32
--- a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
+++ b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile
@@ -17,7 +17,7 @@ DIRLIST = jni                \
 
 TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
 
-CFLAGS = -DTARGET_OS_LINUX=1     \
+CFLAGS := -DTARGET_OS_LINUX=1     \
          -D_GNU_SOURCE           \
          -DGST_REMOVE_DEPRECATED \
          -DGST_DISABLE_GST_DEBUG \
@@ -26,7 +26,8 @@ CFLAGS = -DTARGET_OS_LINUX=1     \
          -DHAVE_CONFIG_H         \
          -DJFXMEDIA_JNI_EXPORTS  \
          -DLINUX                 \
-         -ffunction-sections -fdata-sections
+         -ffunction-sections -fdata-sections \
+         ${CFLAGS}
 
 CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections
 
@@ -56,21 +57,16 @@ ifdef HOST_COMPILE
 	           -I$(GSTREAMER_LITE_DIR)/gstreamer/libs \
 		  $(PACKAGES_INCLUDES)
 
-	LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
+	LDFLAGS := -Wl,-rpath-link,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
             -z relro \
-            -static-libgcc -static-libstdc++ -Wl,--gc-sections
+            -static-libgcc -static-libstdc++ -Wl,--gc-sections \
+            ${LDFLAGS}
 else
 	CFLAGS += $(EXTRA_CFLAGS)
 	INCLUDES = $(BASE_INCLUDES)
 	LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) $(EXTRA_LDFLAGS)
 endif
 
-ifeq ($(BUILD_TYPE), Release)
-	CFLAGS += -Os
-else
-	CFLAGS += -g -Wall -D_DEBUG
-endif
-
 ifeq ($(ARCH), x32)
     CFLAGS += -m32
     LDFLAGS += -m32
-- 
2.21.0

