$NetBSD: patch-makefile,v 1.1 2022/06/06 14:20:07 rhialto Exp $

Exclude -flto for gcc 4.1.3 (used in NetBSD/vax 6)
Exclude -flto for clang on NetBSD
Exclude -flto for gcc 4.4.7 (Used in DragonFly 2.13 - 3.1)
NO_LTO=1 is in effect for gcc and clang, except Darwin.
Fix png16 detection.
Let INCLUDES and LIBRARIES be the sole source for INCPATH and LIBPATH,
to avoid seeing non-pkgsrc libraries (except MacOS platform).

--- makefile.orig	2022-04-01 19:37:11.000000000 +0000
+++ makefile
@@ -307,7 +307,7 @@ ifeq (${WIN32},)  #*nix Environments (&&
       $(shell git log -1 --pretty="SIM_GIT_COMMIT_ID %H$(GIT_EXTRA_FILES)%nSIM_GIT_COMMIT_TIME $(isodate)" >.git-commit-id)
     endif
   endif
-  LTO_EXCLUDE_VERSIONS = 
+  LTO_EXCLUDE_VERSIONS = 4.1.3 4.4.7 4.8.3 4.8.4 4.8.5 5.3.0 5.4.0
   PCAPLIB = pcap
   ifeq (agcc,$(findstring agcc,${GCC})) # Android target build?
     OS_CCDEFS += -D_GNU_SOURCE -DSIM_ASYNCH_IO 
@@ -348,16 +348,16 @@ ifeq (${WIN32},)  #*nix Environments (&&
     ifeq (Darwin,$(OSTYPE))
       OSNAME = OSX
       LIBEXT = dylib
-      ifneq (include,$(findstring include,$(UNSUPPORTED_BUILD)))
-        INCPATH:=$(shell LANG=C; ${GCC} -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | grep -v 'framework directory' | tr -d '\n')
-      endif
+      #ifneq (include,$(findstring include,$(UNSUPPORTED_BUILD)))
+        INCPATH+=$(shell LANG=C; ${GCC} -x c -v -E /dev/null 2>&1 | grep -A 10 '> search starts here' | grep '^ ' | grep -v 'framework directory' | tr -d '\n')
+      #endif
       ifeq (incopt,$(shell if ${TEST} -d /opt/local/include; then echo incopt; fi))
-        INCPATH += /opt/local/include
-        OS_CCDEFS += -I/opt/local/include
+        # INCPATH += /opt/local/include
+        # OS_CCDEFS += -I/opt/local/include
       endif
       ifeq (libopt,$(shell if ${TEST} -d /opt/local/lib; then echo libopt; fi))
-        LIBPATH += /opt/local/lib
-        OS_LDFLAGS += -L/opt/local/lib
+        # LIBPATH += /opt/local/lib
+        # OS_LDFLAGS += -L/opt/local/lib
       endif
       ifeq (HomeBrew,$(or $(shell if ${TEST} -d /usr/local/Cellar; then echo HomeBrew; fi),$(shell if ${TEST} -d /opt/homebrew/Cellar; then echo HomeBrew; fi)))
         ifeq (local,$(shell if $(TEST) -d /usr/local/Cellar; then echo local; fi))
@@ -365,8 +365,8 @@ ifeq (${WIN32},)  #*nix Environments (&&
         else
           HBPATH = /opt/homebrew
         endif
-        INCPATH += $(foreach dir,$(wildcard $(HBPATH)/Cellar/*/*),$(realpath $(dir)/include))
-        LIBPATH += $(foreach dir,$(wildcard $(HBPATH)/Cellar/*/*),$(realpath $(dir)/lib))
+        # INCPATH += $(foreach dir,$(wildcard $(HBPATH)/Cellar/*/*),$(realpath $(dir)/include))
+        # LIBPATH += $(foreach dir,$(wildcard $(HBPATH)/Cellar/*/*),$(realpath $(dir)/lib))
       endif
     else
       ifeq (Linux,$(OSTYPE))
@@ -376,15 +376,15 @@ ifeq (${WIN32},)  #*nix Environments (&&
         ifneq (lib,$(findstring lib,$(UNSUPPORTED_BUILD)))
           ifeq (Android,$(shell uname -o))
             ifneq (,$(shell if ${TEST} -d ${PREFIX}/lib; then echo prefixlib; fi))
-              LIBPATH += ${PREFIX}/lib
+              # LIBPATH += ${PREFIX}/lib
             endif
             ifneq (,$(shell if ${TEST} -d /system/lib; then echo systemlib; fi))
-              LIBPATH += /system/lib
+              # LIBPATH += /system/lib
             endif
-            LIBPATH += $(LD_LIBRARY_PATH)
+            # LIBPATH += $(LD_LIBRARY_PATH)
           endif
           ifeq (ldconfig,$(shell if ${TEST} -e /sbin/ldconfig; then echo ldconfig; fi))
-            LIBPATH := $(sort $(foreach lib,$(shell /sbin/ldconfig -p | grep ' => /' | sed 's/^.* => //'),$(dir $(lib))))
+            # LIBPATH := $(sort $(foreach lib,$(shell /sbin/ldconfig -p | grep ' => /' | sed 's/^.* => //'),$(dir $(lib))))
           endif
         endif
         LIBSOEXT = so
@@ -393,7 +393,7 @@ ifeq (${WIN32},)  #*nix Environments (&&
         ifeq (SunOS,$(OSTYPE))
           OSNAME = Solaris
           ifneq (lib,$(findstring lib,$(UNSUPPORTED_BUILD)))
-            LIBPATH := $(shell LANG=C; crle | grep 'Default Library Path' | awk '{ print $$5 }' | sed 's/:/ /g')
+            # LIBPATH := $(shell LANG=C; crle | grep 'Default Library Path' | awk '{ print $$5 }' | sed 's/:/ /g')
           endif
           LIBEXT = so
           OS_LDFLAGS += -lsocket -lnsl
@@ -402,27 +402,27 @@ ifeq (${WIN32},)  #*nix Environments (&&
             OS_CCDEFS += -I/opt/sfw/include
           endif
           ifeq (libsfw,$(shell if ${TEST} -d /opt/sfw/lib; then echo libsfw; fi))
-            LIBPATH += /opt/sfw/lib
-            OS_LDFLAGS += -L/opt/sfw/lib -R/opt/sfw/lib
+            # LIBPATH += /opt/sfw/lib
+            # OS_LDFLAGS += -L/opt/sfw/lib -R/opt/sfw/lib
           endif
           OS_CCDEFS += -D_LARGEFILE_SOURCE
         else
           ifeq (cygwin,$(OSTYPE))
             # use 0readme_ethernet.txt documented Windows pcap build components
-            INCPATH += ../windows-build/winpcap/WpdPack/Include
-            LIBPATH += ../windows-build/winpcap/WpdPack/Lib
+            # INCPATH += ../windows-build/winpcap/WpdPack/Include
+            # LIBPATH += ../windows-build/winpcap/WpdPack/Lib
             PCAPLIB = wpcap
             LIBEXT = a
           else
             ifneq (,$(findstring AIX,$(OSTYPE)))
               OS_LDFLAGS += -lm -lrt
               ifeq (incopt,$(shell if ${TEST} -d /opt/freeware/include; then echo incopt; fi))
-                INCPATH += /opt/freeware/include
-                OS_CCDEFS += -I/opt/freeware/include
+                # INCPATH += /opt/freeware/include
+                # OS_CCDEFS += -I/opt/freeware/include
               endif
               ifeq (libopt,$(shell if ${TEST} -d /opt/freeware/lib; then echo libopt; fi))
-                LIBPATH += /opt/freeware/lib
-                OS_LDFLAGS += -L/opt/freeware/lib
+                # LIBPATH += /opt/freeware/lib
+                # OS_LDFLAGS += -L/opt/freeware/lib
               endif
             else
               ifneq (,$(findstring Haiku,$(OSTYPE)))
@@ -433,9 +433,9 @@ ifeq (${WIN32},)  #*nix Environments (&&
                 ifeq ($(HAIKU_ARCH),x86_gcc2)
                   $(error Unsupported arch x86_gcc2. Run setarch x86 and retry)
                 endif
-                INCPATH := $(shell findpaths -e -a $(HAIKU_ARCH) B_FIND_PATH_HEADERS_DIRECTORY)
-                INCPATH += $(shell findpaths -e B_FIND_PATH_HEADERS_DIRECTORY posix)
-                LIBPATH := $(shell findpaths -e -a $(HAIKU_ARCH) B_FIND_PATH_DEVELOP_LIB_DIRECTORY)
+                # INCPATH := $(shell findpaths -e -a $(HAIKU_ARCH) B_FIND_PATH_HEADERS_DIRECTORY)
+                # INCPATH += $(shell findpaths -e B_FIND_PATH_HEADERS_DIRECTORY posix)
+                # LIBPATH := $(shell findpaths -e -a $(HAIKU_ARCH) B_FIND_PATH_DEVELOP_LIB_DIRECTORY)
                 OS_LDFLAGS += -lnetwork
               else
                 ifeq (,$(findstring NetBSD,$(OSTYPE)))
@@ -443,7 +443,7 @@ ifeq (${WIN32},)  #*nix Environments (&&
                     LDSEARCH :=$(shell LANG=C; ldconfig -r | grep 'search directories' | awk '{print $$3}' | sed 's/:/ /g')
                   endif
                   ifneq (,$(LDSEARCH))
-                    LIBPATH := $(LDSEARCH)
+                    # LIBPATH := $(LDSEARCH)
                   else
                     ifeq (,$(strip $(LPATH)))
                       $(info *** Warning ***)
@@ -455,22 +455,22 @@ ifeq (${WIN32},)  #*nix Environments (&&
                       $(info *** Warning *** variable.)
                       $(info *** Warning ***)
                     else
-                      LIBPATH = $(subst :, ,$(LPATH))
+                      # LIBPATH = $(subst :, ,$(LPATH))
                     endif
                   endif
-                  OS_LDFLAGS += $(patsubst %,-L%,${LIBPATH})
+                  # OS_LDFLAGS += $(patsubst %,-L%,${LIBPATH})
                 endif
               endif
             endif
             ifeq (usrpkglib,$(shell if ${TEST} -d /usr/pkg/lib; then echo usrpkglib; fi))
-              LIBPATH += /usr/pkg/lib
-              INCPATH += /usr/pkg/include
-              OS_LDFLAGS += -L/usr/pkg/lib -R/usr/pkg/lib
-              OS_CCDEFS += -I/usr/pkg/include
+              # LIBPATH += /usr/pkg/lib
+              # INCPATH += /usr/pkg/include
+              # OS_LDFLAGS += -L/usr/pkg/lib -R/usr/pkg/lib
+              # OS_CCDEFS += -I/usr/pkg/include
             endif
             ifeq (/usr/local/lib,$(findstring /usr/local/lib,${LIBPATH}))
-              INCPATH += /usr/local/include
-              OS_CCDEFS += -I/usr/local/include
+              # INCPATH += /usr/local/include
+              # OS_CCDEFS += -I/usr/local/include
             endif
             ifneq (,$(findstring NetBSD,$(OSTYPE))$(findstring FreeBSD,$(OSTYPE))$(findstring AIX,$(OSTYPE)))
               LIBEXT = so
@@ -497,12 +497,12 @@ ifeq (${WIN32},)  #*nix Environments (&&
     endif
     ifeq (,$(filter /lib/,$(LIBPATH)))
       ifeq (existlib,$(shell if $(TEST) -d /lib/; then echo existlib; fi))
-        LIBPATH += /lib/
+        # LIBPATH += /lib/
       endif
     endif
     ifeq (,$(filter /usr/lib/,$(LIBPATH)))
       ifeq (existusrlib,$(shell if $(TEST) -d /usr/lib/; then echo existusrlib; fi))
-        LIBPATH += /usr/lib/
+        # LIBPATH += /usr/lib/
       endif
     endif
     export CPATH = $(subst $() $(),:,$(INCPATH))
@@ -611,9 +611,9 @@ ifeq (${WIN32},)  #*nix Environments (&&
     OS_CCDEFS += -DHAVE_UTIME
   endif
   ifneq (,$(call find_include,png))
-    ifneq (,$(call find_lib,png))
+    ifneq (,$(call find_lib,png16))
       OS_CCDEFS += -DHAVE_LIBPNG
-      OS_LDFLAGS += -lpng
+      OS_LDFLAGS += -lpng16
       $(info using libpng: $(call find_lib,png) $(call find_include,png))
       ifneq (,$(call find_include,zlib))
         ifneq (,$(call find_lib,z))
@@ -803,7 +803,7 @@ ifeq (${WIN32},)  #*nix Environments (&&
           NETWORK_FEATURES = - dynamic networking support using libpcap components from www.tcpdump.org and locally installed libpcap.${LIBEXT}
           $(info using libpcap: $(call find_include,pcap))
         else
-          LIBPATH += /usr/local/lib
+          # LIBPATH += /usr/local/lib
           LIBEXT = a
           ifneq (,$(call find_lib,$(PCAPLIB)))
             $(info using libpcap: $(call find_lib,$(PCAPLIB)) $(call find_include,pcap))
@@ -1198,11 +1198,11 @@ ifneq (,$(UNSUPPORTED_BUILD))
 endif
 ifneq ($(DEBUG),)
   CFLAGS_G = -g -ggdb -g3
-  CFLAGS_O = -O0
+  CFLAGS_O += -O0
   BUILD_FEATURES = - debugging support
 else
   ifneq (,$(findstring clang,$(COMPILER_NAME))$(findstring LLVM,$(COMPILER_NAME)))
-    CFLAGS_O = -O2 -fno-strict-overflow
+    CFLAGS_O += -O2 -fno-strict-overflow
     GCC_OPTIMIZERS_CMD = ${GCC} --help
     NO_LTO = 1
   else
@@ -1210,7 +1210,7 @@ else
     ifeq (Darwin,$(OSTYPE))
       CFLAGS_O += -O4 -flto -fwhole-program
     else
-      CFLAGS_O := -O2
+      CFLAGS_O += -O2
     endif
   endif
   LDFLAGS_O = 
