diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle index 6ff94418..beb20522 100644 --- a/buildSrc/linux.gradle +++ b/buildSrc/linux.gradle @@ -43,8 +43,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", "-Werror=trampolines"] // warning flags +commonFlags.addAll(System.getenv("CFLAGS").trim().split(" ")) + if (!IS_64) { commonFlags += "-m32" } @@ -60,6 +63,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" } @@ -222,7 +227,7 @@ FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-g LINUX.glass.glass = [:] LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles() LINUX.glass.glass.compiler = compiler -LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten() +LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags].flatten() LINUX.glass.glass.linker = linker LINUX.glass.glass.linkFlags = [linkFlags, "-lX11", "-ldl" ].flatten() LINUX.glass.glass.lib = "glass" @@ -230,7 +235,7 @@ LINUX.glass.glass.lib = "glass" LINUX.glass.glassgtk2 = [:] LINUX.glass.glassgtk2.nativeSource = ft_gtk.getFiles() LINUX.glass.glassgtk2.compiler = compiler -LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten() +LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags].flatten() LINUX.glass.glassgtk2.linker = linker LINUX.glass.glassgtk2.linkFlags = [linkFlags, gtk2LinkFlags ].flatten() LINUX.glass.glassgtk2.lib = "glassgtk2" @@ -238,7 +243,7 @@ LINUX.glass.glassgtk2.lib = "glassgtk2" LINUX.glass.glassgtk3 = [:] LINUX.glass.glassgtk3.nativeSource = ft_gtk.getFiles() LINUX.glass.glassgtk3.compiler = compiler -LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags, "-Werror"].flatten() +LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags].flatten() LINUX.glass.glassgtk3.linker = linker LINUX.glass.glassgtk3.linkFlags = [linkFlags, gtk3LinkFlags ].flatten() LINUX.glass.glassgtk3.lib = "glassgtk3" @@ -273,7 +278,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 = [:] diff --git a/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile b/modules/javafx.media/src/main/native/gstreamer/projects/linux/avplugin/Makefile index 682f1da8..d256ab5e 100644 --- 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 \ @@ -30,13 +30,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) @@ -47,11 +42,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 diff --git a/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile b/modules/javafx.media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile index c2cd04d2..66c3c6d3 100644 --- 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 \ @@ -31,14 +31,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)) \ @@ -48,9 +42,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 diff --git 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 index 379e14ed..84855238 100644 --- 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 \ @@ -52,13 +52,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 \ @@ -76,9 +71,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 diff --git a/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile b/modules/javafx.media/src/main/native/jfxmedia/projects/linux/Makefile index e8e08277..5c5ec7e2 100644 --- 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 @@ -57,21 +58,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,\$$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