Also, Apple has super security around /usr/bin/make. If I copy 
/opt/homebrew/bin//gmake  to /opt/homebrew/bin//make and put it ahead of 
/usr/bin/make in the path 

$ which -a make
/opt/homebrew/bin//make
/usr/bin/make
~/Src/petsc (barry/2023-05-14/add-fortran-petsccheck=) 
arch-add-fortran-petsccheck
$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.

It uses the /usr/bin/make

And I cannot delete /usr/bin/make

$ sudo rm -rf /usr/bin/make 
rm: /usr/bin/make: Operation not permitted

So make at the command line always uses the old one provided by Apple; it does 
not use the /opt/homebrew/bin/make one

But if I copy /opt/homebrew/bin//gmake to ~/bin/make and put ~/bin first in my 
path then it defaults to using my copy

$ which -a make
/Users/barrysmith/bin//make
/opt/homebrew/bin//make
/usr/bin/make
~/Src/petsc (barry/2023-05-14/add-fortran-petsccheck=) 
arch-add-fortran-petsccheck
$ make --version
GNU Make 4.4.1

Now I get Jed's behavior when I type make

This security feature of /usr/bin/make has been true on macOS for many years, I 
had just mostly forgotten about it since I had ~/bin first in my path





> On May 24, 2023, at 10:37 AM, Barry Smith <bsm...@petsc.dev> wrote:
> 
> 
>   Ahh, are you using the default make that comes from Apple or do you use a 
> modern gnumake (such as from brew?)
> 
>   I get Jed's results with the brew one (installed as gmake) and your results 
> with the Apple one /usr/bin/make
> 
> 
> 
> 
>> On May 24, 2023, at 8:52 AM, Matthew Knepley <knep...@gmail.com> wrote:
>> 
>> On Wed, May 24, 2023 at 6:53 AM Matthew Knepley <knep...@gmail.com 
>> <mailto:knep...@gmail.com>> wrote:
>>> On Tue, May 23, 2023 at 9:00 PM Jed Brown <j...@jedbrown.org 
>>> <mailto:j...@jedbrown.org>> wrote:
>>>> I use it that way all the time, but I can't reproduce.
>>>> 
>>>> $ touch src/snes/interface/snes.c
>>>> $ make test gs=snes_tutorials-ex5_1
>>>>          CC ompi/obj/snes/interface/snes.o
>>>> Using MAKEFLAGS: -j8 -l12 --jobserver-auth=fifo:/tmp/GMfifo1004133 -- 
>>>> gs=snes_tutorials-ex5_1
>>>>     CLINKER ompi/lib/libpetsc.so.3.019.1
>>>>     CLINKER ompi/tests/snes/tutorials/ex5
>>>>        TEST ompi/tests/counts/snes_tutorials-ex5_1.counts
>>>>  ok snes_tutorials-ex5_1
>>>>  ok diff-snes_tutorials-ex5_1
>>> 
>>> Does not work for me. This is incredibly frustrating:
>>> 
>>> bldenton/dmplex-cadrefactor *$:/PETSc3/petsc/petsc-dev$ touch 
>>> src/snes/interface/snes.c
>> 
>> Found it. For some reason, I need
>> 
>>   make -f./gmakefile test
>> 
>>   Matt
>>  
>>> bldenton/dmplex-cadrefactor $:/PETSc3/petsc/petsc-dev$ make test 
>>> gs=snes_tutorials-ex5_1
>>> /usr/bin/make --no-print-directory -f 
>>> /PETSc3/petsc/petsc-dev/gmakefile.test PETSC_ARCH=arch-master-debug 
>>> PETSC_DIR=/PETSc3/petsc/petsc-dev test
>>> /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 
>>> /PETSc3/petsc/petsc-dev/config/gmakegentest.py 
>>> --petsc-dir=/PETSc3/petsc/petsc-dev --petsc-arch=arch-master-debug 
>>> --testdir=./arch-master-debug/tests
>>> Using MAKEFLAGS: --no-print-directory -- PETSC_DIR=/PETSc3/petsc/petsc-dev 
>>> PETSC_ARCH=arch-master-debug gs=snes_tutorial
>>> s-ex5_1
>>>          CC arch-master-debug/tests/snes/tutorials/ex5.o
>>>     CLINKER arch-master-debug/tests/snes/tutorials/ex5
>>>        TEST arch-master-debug/tests/counts/snes_tutorials-ex5_1.counts
>>>  ok snes_tutorials-ex5_1
>>>  ok diff-snes_tutorials-ex5_1
>>> 
>>>   Thanks,
>>> 
>>>     Matt
>>>  
>>>> Barry Smith <bsm...@petsc.dev <mailto:bsm...@petsc.dev>> writes:
>>>> 
>>>> >   Sure, I do also with make all; make test s="something" 
>>>> >
>>>> >    I have no idea how gmakefile.test dependencies work, you'll need to 
>>>> > get Jed to fix the problem.
>>>> >
>>>> >
>>>> >
>>>> >> On May 23, 2023, at 10:22 AM, Matthew Knepley <knep...@gmail.com 
>>>> >> <mailto:knep...@gmail.com>> wrote:
>>>> >> 
>>>> >> On Tue, May 23, 2023 at 10:22 AM Barry Smith <bsm...@petsc.dev 
>>>> >> <mailto:bsm...@petsc.dev> <mailto:bsm...@petsc.dev 
>>>> >> <mailto:bsm...@petsc.dev>>> wrote:
>>>> >>> 
>>>> >>>   I never knew there was such a dependency; I always ran make all ; 
>>>> >>> make tests The gnumake stuff is still confusing to me so I have no 
>>>> >>> idea how it works or why.
>>>> >> 
>>>> >> I run single tests all the time. That is how I develop.
>>>> >> 
>>>> >>    Matt
>>>> >>  
>>>> >>>> On May 23, 2023, at 9:34 AM, Matthew Knepley <knep...@gmail.com 
>>>> >>>> <mailto:knep...@gmail.com> <mailto:knep...@gmail.com 
>>>> >>>> <mailto:knep...@gmail.com>>> wrote:
>>>> >>>> 
>>>> >>>> The 'test' target no longer depends on 'libs' somehow so when I  
>>>> >>>> change source files they do not get rebuilt before my test runs. Why 
>>>> >>>> did we do this?
>>>> >>>> 
>>>> >>>>   Thanks,
>>>> >>>> 
>>>> >>>>     Matt
>>>> >>>> 
>>>> >>>> -- 
>>>> >>>> What most experimenters take for granted before they begin their 
>>>> >>>> experiments is infinitely more interesting than any results to which 
>>>> >>>> their experiments lead.
>>>> >>>> -- Norbert Wiener
>>>> >>>> 
>>>> >>>> https://www.cse.buffalo.edu/~knepley/ 
>>>> >>>> <http://www.cse.buffalo.edu/~knepley/>
>>>> >>> 
>>>> >> 
>>>> >> 
>>>> >> -- 
>>>> >> What most experimenters take for granted before they begin their 
>>>> >> experiments is infinitely more interesting than any results to which 
>>>> >> their experiments lead.
>>>> >> -- Norbert Wiener
>>>> >> 
>>>> >> https://www.cse.buffalo.edu/~knepley/ 
>>>> >> <http://www.cse.buffalo.edu/~knepley/>
>>> 
>>> 
>>> -- 
>>> What most experimenters take for granted before they begin their 
>>> experiments is infinitely more interesting than any results to which their 
>>> experiments lead.
>>> -- Norbert Wiener
>>> 
>>> https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
>> 
>> 
>> -- 
>> What most experimenters take for granted before they begin their experiments 
>> is infinitely more interesting than any results to which their experiments 
>> lead.
>> -- Norbert Wiener
>> 
>> https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
> 

Reply via email to