Hi Dan, To add on your post, to work with env var containing multiline values I had to resort to bash. For quick test you can try:
$ cat Makefile all: bash -c 'echo ${PUB}' or just set 'SHELL = /bin/bash' somewhere early in your Makefile Hope this helps, Zaar On Mon, 21 Sep 2020 at 04:22, Dan Kegel <d...@kegel.com> wrote: > Ha! The difference is the command base64 defaults to no wrapping on Mac > OS, > but wrapping on Linux. > > Mystery solved! I was looking under the wrong rock :-) > - Dan > > On Sun, Sep 20, 2020 at 1:40 AM Greg Chicares <gchica...@sbcglobal.net> > wrote: > > > On 2020-09-19 21:47, Dan Kegel wrote: > > > > > > export PUB="$(base64 < ~/.ssh/id_rsa.pub)" > > > make > > > > > > where Makefile is > > > > > > all: > > > echo "${PUB}" > > > > > > and it worked fine on Mac, despite PUB being a multiline string. > > > > > > On Ubuntu (even with the same version of gnu make), > > > it breaks terribly, complaining about a missing quote > > > on the end of the first line of the string. Evidently this is not > > portable. > > [...] > > > I couldn't tell why they worked on the mac. Any guesses? > > > > Just a guess--If $PUB is exported before running make, in an > > interactive shell, then is that shell zsh by default for mac, > > but bash for ubuntu? > > > > > > > -- Zaar