Looks like something like 

ifeq ($(origin CFLAGS),environment)

might work to bring back the old behavior.



> On Apr 26, 2023, at 6:16 PM, Satish Balay <ba...@mcs.anl.gov> wrote:
> 
> Not sure how can add deprecation message here - so adding this message to 
> 'changes' doc
> 
> https://gitlab.com/petsc/petsc/-/merge_requests/6382
> 
> Satish
> 
> On Wed, 26 Apr 2023, Satish Balay via petsc-dev wrote:
> 
>> On Wed, 26 Apr 2023, Barry Smith wrote:
>> 
>>> 
>>> 
>>>  Urg, so user makefiles that worked for 25+ years suddenly don't work and 
>>> that is ok? No deprecation message as Jed would have liked?
>> 
>> I think I raised this issue when 'CFLAGS = ' stuff was removed from all 
>> makefiles.
>> 
>> You can view this change as a necessary fix for above cleanup change..
>> 
>> Don't know if there is gnumake syntax where the reset in 
>> PETSC_ARCH/lib/conf/petscvaribales can selectively reset only on env 
>> variable - but not prior make variable
>> 
>> Right now the fix is to move the 'CFLAGS' line after the the 'include' line
>> 
>> Satish
>> 
>>> 
>>>  So it is from 
>>>    # Avoid picking CFLAGS etc from env - but support 'make CFLAGS=-Werror' 
>>> etc..
>>>    self.addMakeMacro('CFLAGS','')
>>>    self.addMakeMacro('CPPFLAGS','')
>>>    self.addMakeMacro('CXXFLAGS','')
>>>    self.addMakeMacro('CXXPPFLAGS','')
>>>    self.addMakeMacro('FFLAGS','')
>>>    self.addMakeMacro('FPPFLAGS','')
>>>    self.addMakeMacro('CUDAFLAGS','')
>>>    self.addMakeMacro('CUDAPPFLAGS','')
>>>    self.addMakeMacro('HIPFLAGS','')
>>>    self.addMakeMacro('HIPPPFLAGS','')
>>>    self.addMakeMacro('SYCLFLAGS','')
>>>    self.addMakeMacro('SYCLPPFLAGS','')
>>>    self.addMakeMacro('LDFLAGS','')
>>> 
>>> What was "from env" suppose to mean? You mean environmental variables? 
>>> 
>>> Is there some other way of not automatically using the environmental 
>>> variables that doesn't break 25 years of user makefile? Since these things 
>>> all require GNUmake is there some GNUmake-ish way to hand this without 
>>> breaking current makefiles?
>>> 
>>> 
>>> 
>>> 
>>>> On Apr 26, 2023, at 5:34 PM, Satish Balay <ba...@mcs.anl.gov> wrote:
>>>> 
>>>> Well we wanted to always have  CFLAGS initialized by configure [to ignore 
>>>> stuff from env].
>>>> 
>>>> So now - if we are setting in makefile - it has to be set after this 
>>>> default is set - i.e after the line:
>>>> 
>>>> include ${PETSC_DIR}/lib/petsc/conf/variables
>>>> 
>>>> Or do:
>>>> 
>>>> make CFLAGS=garbase ex1
>>>> 
>>>> There might be a different bug lurking here..
>>>> 
>>>> -PETSC_CCOMPILE_SINGLE   = ${CC} -o $*.o -c ${CC_FLAGS} ${FLAGS} 
>>>> ${CPPFLAGS}
>>>> +PETSC_CCOMPILE_SINGLE   = ${CC} -o $*.o -c ${CC_FLAGS} ${CFLAGS} 
>>>> ${CPPFLAGS}
>>>> 
>>>> Satish
>>>> 
>>>> On Wed, 26 Apr 2023, Barry Smith wrote:
>>>> 
>>>>> 
>>>>> $ make ex1
>>>>> mpicc -Wl,-bind_at_load -Wl,-multiply_defined,suppress 
>>>>> -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs 
>>>>> -Wl,-search_paths_first -Wl,-no_compact_unwind  -Wall -Wwrite-strings 
>>>>> -Wno-unknown-pragmas -Wno-lto-type-mismatch -Wno-stringop-overflow 
>>>>> -fvisibility=hidden -g3 -O0  -I/Users/barrysmith/Src/petsc/include 
>>>>> -I/Users/barrysmith/Src/petsc/arch-release/include -I/opt/X11/include     
>>>>>  ex1.c  -Wl,-rpath,/Users/barrysmith/Src/petsc/arch-release/lib 
>>>>> -L/Users/barrysmith/Src/petsc/arch-release/lib -Wl,-rpath,/opt/X11/lib 
>>>>> -L/opt/X11/lib 
>>>>> -Wl,-rpath,/Users/barrysmith/soft/mpich-clang-gfortran-opt/lib 
>>>>> -L/Users/barrysmith/soft/mpich-clang-gfortran-opt/lib 
>>>>> -Wl,-rpath,/opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current/gcc/aarch64-apple-darwin22/12
>>>>>  
>>>>> -L/opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current/gcc/aarch64-apple-darwin22/12
>>>>>  -Wl,-rpath,/opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current/gcc 
>>>>> -L/opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current/gcc 
>>>>> -Wl,-rpath,/opt/homebrew/Cellar/gcc/12.2
>> .0/lib/g
>> cc/current -L/opt/homebrew/Cellar/gcc/12.2.0/lib/gcc/current -lpetsc 
>> -llapack -lblas -lX11 -lmpifort -lmpi -lpmpi -lgfortran -lemutls_w 
>> -lquadmath -lstdc++ -lquadmath -o ex1
>>>>> ~/Src/petsc/src/snes/tutorials (release *=) arch-release
>>>>> $ more makefile
>>>>> -include ../../../petscdir.mk
>>>>> 
>>>>> MANSEC           = SNES
>>>>> EXAMPLESMATLAB   = ex5m.m ex29view.m
>>>>> DIRS             = ex10d network
>>>>> CLEANFILES       = ex5f90t
>>>>> CFLAGS = garbage
>>>>> 
>>>>> 
>>>>> The new stuff in variables PETSC_COMPILE_SINGLE    = ${PCC} -o $*.o -c 
>>>>> ${PCC_FLAGS} ${${CLANGUAGE}FLAGS} ${CCPPFLAGS}  with the recursive use of 
>>>>> $ doesn't work? This is on my Mac but Get also has the problem on Polaris
>>> 
>> 
> 

Reply via email to