well, i decided to go the cross compiler route, as i was at least getting make to run on my Mac, and i still was not able to find the make mingw64-make binary even after installing it. just too many weird variables to have to keep track of. so i went with installing this cross compiler
https://blog.filippo.io/easy-windows-and-linux-cross-compilers-for-macos/
i have edited the Makefile.pdlibbuilder file to override uname to MINGW to force it to identify system as Windows, according to Katja's comments in the file.
typing 'gmake all PDINCLUDEDIR=../pd-plaits-master2 vars'
still having issues it seems, but it's at least passing the target check:
++++ info: using Makefile.pdlibbuilder version 0.5.1
++++ info: using Pd API ../pd-plaits-master2/m_pd.h
++++ info: making target all in lib plts~
++++ info: evaluating implicit prerequisites in lib plts~.....
clang: error: no such file or directory: 'plaits/dsp/engine/chord_engine.cc '
clang: error: no input files
Makefile.pdlibbuilder:979: *** missing separator. Stop.
so, i'm imagining the clang errors are path related (the files are clearly at the right path in the repo and match the Makefile paths) but not sure where to set the proper base path which obviously must be different for Windows targets, since i don't get this error on a macOS/Linux build. curious why it fails at the chord_engine.cc, as it's not the first file listed in the source includes in the Makefile file under common.sources. i think possibly the Windows the 'flags and paths for Windows' section on Makefile.pdlibbuilder might be helpful here:
ifeq ($(system), Windows)
pkglibdir := $(APPDATA)/Pd
ifeq ($(MINGW_CHOST), i686-w64-mingw32)
programfiles := ${ProgramFiles(x86)}
else
programfiles := $(PROGRAMFILES)
endif
pdbinpath := $(programfiles)/Pd/bin
pdincludepath := $(programfiles)/Pd/src
endif
so, all i can think is that make is looking for all of its source includes at a different path than PDINCLUDE specifies, since i've clearly overridden it at the command line.
all the environment variables seem to point to the correct path as far as i can tell but there are obviously a lot if i use the 'allvars' flag. also not sure about the separator error there. the code shows it to be a wildcard check as part of these lines:
# evaluate implicit prerequisite rules when rebuilding everything
ifdef must-build-everything
$(if $(wildcard $(all.objects)), \
$(info ++++ info: evaluating implicit prerequisites in lib $(
lib.name).....) \
$(foreach v, $(all.sources), $(eval $(call declare-object-target, $v))))
endif
having some kind of realtime chat with someone would be ideal since there's a lot of changing variables and trying different approaches, but any input or feedback would be helpful. thanks!
best,
scott