$NetBSD: patch-ab,v 1.18 2018/10/04 19:02:33 leot Exp $

- Handle the various operating systems in the same way avoiding hardcoding
- Avoid to use objcopy by setting HAVE_OBJCOPY to no (if `yes', and with
  `USE_TOOLS+= objcopy' the objcopy-ing fails as follow:
    OBJCOPY build/release/resources/fonts/urw/Dingbats.cff.o
    build/release/resources/fonts/urw/Dingbats.cff.o:1: warning: NUL character seen; rest of line ignored
    build/release/resources/fonts/urw/Dingbats.cff.o:1: *** missing separator.  Stop.
  (also for other fonts)).  This needs to be investigated further.
- Avoid internal version of freeglut and try to pick it up via pkg-config and
  set SYS_GLUT_{CFLAGS,LIBS} accordingly.
- Avoid internal version of lcms2 and try to pick it up via pkg-config and
  set SYS_LCMS2_{CFLAGS,LIBS} accordingly.
  If no lcms2 is available just pass `-DNO_ICC' to disable it via
  CFLAGS.

--- Makerules.orig	2018-09-25 12:39:17.000000000 +0000
+++ Makerules
@@ -6,17 +6,6 @@ OS := $(OS:MSYS%=MINGW)
 OS := $(OS:Windows_NT=MINGW)
 OS := $(OS:Darwin=MACOS)
 
-ifeq ($(findstring -fembed-bitcode,$(XCFLAGS)),)
-  # clang does not support these in combination with -fembed-bitcode
-  CFLAGS += -ffunction-sections -fdata-sections
-endif
-
-ifeq ($(OS),MACOS)
-  LDREMOVEUNREACH := -Wl,-dead_strip
-else
-  LDREMOVEUNREACH := -Wl,--gc-sections
-endif
-
 SANITIZE_FLAGS += -fsanitize=address
 SANITIZE_FLAGS += -fsanitize=leak
 
@@ -72,77 +61,63 @@ SYS_MUJS_LIBS := -lmujs
 SYS_OPENJPEG_LIBS := -lopenjp2
 SYS_ZLIB_LIBS := -lz
 
-ifeq ($(OS),MINGW)
-  WINDRES := windres
-  HAVE_WIN32 := yes
-
-else ifeq ($(OS),MACOS)
-  HAVE_GLUT := yes
-  SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
-  SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
-  CC = xcrun cc
-  AR = xcrun ar
-  LD = xcrun ld
-  RANLIB = xcrun ranlib
+HAVE_OBJCOPY := no
 
-else ifeq ($(OS),Linux)
-  HAVE_OBJCOPY := yes
-
-  ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes)
+ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes)
 	SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2)
 	SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2)
-  endif
-  ifeq ($(shell pkg-config --exists harfbuzz && echo yes),yes)
+endif
+ifeq ($(shell pkg-config --exists harfbuzz && echo yes),yes)
 	SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz)
 	SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz)
-  endif
-  ifeq ($(shell pkg-config --exists lcms2 && echo yes),yes)
+endif
+ifeq ($(shell pkg-config --exists lcms2 && echo yes),yes)
 	SYS_LCMS2_CFLAGS := $(shell pkg-config --cflags lcms2)
 	SYS_LCMS2_LIBS := $(shell pkg-config --libs lcms2)
-  endif
-  ifeq ($(shell pkg-config --exists libjpeg && echo yes),yes)
+else
+	CFLAGS += -DNO_ICC
+endif
+ifeq ($(shell pkg-config --exists libjpeg && echo yes),yes)
 	SYS_LIBJPEG_CFLAGS := $(shell pkg-config --cflags libjpeg)
 	SYS_LIBJPEG_LIBS := $(shell pkg-config --libs libjpeg)
-  endif
-  ifeq ($(shell pkg-config --exists libopenjp2 && echo yes),yes)
+endif
+ifeq ($(shell pkg-config --exists libopenjp2 && echo yes),yes)
 	SYS_OPENJPEG_CFLAGS := $(shell pkg-config --cflags libopenjp2)
 	SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2)
-  endif
-  ifeq ($(shell pkg-config --exists zlib && echo yes),yes)
+endif
+ifeq ($(shell pkg-config --exists zlib && echo yes),yes)
 	SYS_ZLIB_CFLAGS := $(shell pkg-config --cflags zlib)
 	SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib)
-  endif
+endif
 
-  HAVE_CURL := $(shell pkg-config --exists libcurl && echo yes)
-  ifeq ($(HAVE_CURL),yes)
+HAVE_CURL := $(shell pkg-config --exists libcurl && echo yes)
+ifeq ($(HAVE_CURL),yes)
 	SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl)
 	SYS_CURL_LIBS := $(shell pkg-config --libs libcurl)
-  endif
+endif
 
-  HAVE_GLUT := yes
-  ifeq ($(HAVE_GLUT),yes)
-	SYS_GLUT_CFLAGS :=
-	SYS_GLUT_LIBS := -lglut -lGL
-  endif
+ifeq "$(shell pkg-config --exists glut && pkg-config --exists gl && echo yes)" "yes"
+HAVE_GLUT ?= yes
+SYS_GLUT_CFLAGS := $(shell pkg-config --cflags glut)
+SYS_GLUT_LIBS := $(shell pkg-config --libs glut)
+endif
 
-  HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
-  ifeq ($(HAVE_X11),yes)
+HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
+ifeq ($(HAVE_X11),yes)
 	X11_CFLAGS := $(shell pkg-config --cflags x11 xext)
 	X11_LIBS := $(shell pkg-config --libs x11 xext)
-  endif
+endif
 
-  HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)
-  ifeq ($(HAVE_LIBCRYPTO),yes)
+HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)
+ifeq ($(HAVE_LIBCRYPTO),yes)
 	LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO
 	LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto)
-  endif
+endif
 
-  HAVE_PTHREAD := yes
-  ifeq ($(HAVE_PTHREAD),yes)
+HAVE_PTHREAD := yes
+ifeq ($(HAVE_PTHREAD),yes)
 	PTHREAD_CFLAGS :=
 	PTHREAD_LIBS := -lpthread
-  endif
-
 endif
 
 # The following section has various cross compilation configurations.
