#!/usr/bin/env make # # Makefile.local - modify, replace or append calc Makefile variables # # Copyright (C) 2023 Landon Curt Noll # # Suggestion: Read the HOWTO.INSTALL file. # # Calc is open software; you can redistribute it and/or modify it under # the terms of version 2.1 of the GNU Lesser General Public License # as published by the Free Software Foundation. # # Calc is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General # Public License for more details. # # A copy of version 2.1 of the GNU Lesser General Public License is # distributed with calc under the filename COPYING-LGPL. You should have # received a copy with calc; if not, write to Free Software Foundation, Inc. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # This calculator first developed by David I. Bell with help/mods from others. # # chongo /\oo/\ http://www.isthe.com/chongo/ # Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ #### # This file is included all calc Makefiles after the last Makefile variable # is set and before the first make rule. This makes this file suitable to # modify, replace or append Makefile variables. # # To replace a Makefile variable, use := symbols. For example: # # CCWERR:= -Werror # # You can append to an existing Makefile variable using '+=' symbols. # For example: # # CCOPT+= -Ofast # COMMON_CFLAGS+= -std=gnu2x #### ################################################################### # NOTE: For this and other commended out examples in this file, # # you need to remove the leading '#' to take effect. # # # # Comments start with a #-character. # ################################################################### #### # RHEL Diagnosing memory, thread, and crash issues: # # For more info see: https://github.com/google/sanitizers/wiki/AddressSanitizer # # This comment block was tested under: # # RHEL9 gcc version 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) # # with: # # libasan-11.3.1-4.3.el9.x86_64 libubsan-11.3.1-4.3.el9.x86_64 # # NOTE: With the above version, these are NOT supported: # # UNSUPPORTED_FSANITIZE:= -fsanitize=nullability-arg -fsanitize=nullability-assign # # Uncomment these lines: # # DEBUG:= -O0 -g # FSANITIZE:= -fsanitize=undefined -fsanitize=address -fsanitize=bool -fsanitize=bounds # FSANITIZE+= -fsanitize=enum -fsanitize=vptr -fsanitize=integer-divide-by-zero # FSANITIZE+= -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow # FSANITIZE+= -fsanitize=nonnull-attribute -fsanitize=returns-nonnull-attribute # FSANITIZE+= -fsanitize=null -fsanitize=shift -fsanitize=signed-integer-overflow # FSANITIZE+= -fsanitize=unreachable -fsanitize=vla-bound # CFLAGS+= -Wno-invalid-command-line-argument ${FSANITIZE} -fno-omit-frame-pointer # LDFLAGS+= -Wno-invalid-command-line-argument ${FSANITIZE} -fno-omit-frame-pointer # CALC_ENV+= ASAN_OPTIONS=detect_stack_use_after_return=1 #### #### # macOS Diagnosing memory, thread, and crash issues: # # For more info see: https://github.com/google/sanitizers/wiki/AddressSanitizer # # This comment block was tested under: # # macOS 13.5 with clang version 14.0.3 (clang-1403.0.22.14.1) # # For more info for clang to Diagnosing memory, thread, and crash issues early, see: # # https://developer.apple.com/documentation/xcode/diagnosing-memory-thread-and-crash-issues-early # # NOTE: With the above version, these are NOT supported: # # UNSUPPORTED_FSANITIZE:= -fsanitize-nullability-return # # Uncomment these lines: # # DEBUG:= -O0 -g3 # FSANITIZE:= -fsanitize=undefined -fsanitize=address -fsanitize=bool -fsanitize=bounds # FSANITIZE+= -fsanitize=enum -fsanitize=vptr -fsanitize=integer-divide-by-zero # FSANITIZE+= -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow # FSANITIZE+= -fsanitize=nonnull-attribute -fsanitize=nullability-arg # FSANITIZE+= -fsanitize=nullability-assign -fsanitize=returns-nonnull-attribute # FSANITIZE+= -fsanitize=null -fsanitize=object-size -fsanitize=shift # FSANITIZE+= -fsanitize=signed-integer-overflow -fsanitize=unreachable -fsanitize=vla-bound # CFLAGS+= -Wno-invalid-command-line-argument ${FSANITIZE} -fno-omit-frame-pointer # LDFLAGS+= -Wno-invalid-command-line-argument ${FSANITIZE} -fno-omit-frame-pointer # CALC_ENV+= ASAN_OPTIONS=detect_stack_use_after_return=1 ####