hey folks, i asked this on the PD patchrepo but no response so far.
i've recently run into a situation in which i have to recompile an external currently only available for mac (pd_darwin) to a Windows platform. the code was ported from the original C/C++ code of the Mutable Instrument module called Plaits. basically it's just a release of the DSP code as a PD object. it's hosted here:
https://github.com/jnonis/pd-plaits
he's including the xcode project but i believe the code itself is just straight .cpp files wrapped into the PD external template code. i think he's using the pdlibbuilder library that's been recently released, but i have had absolutely zero experience with compiling the source for different platforms. i'm on macOS and have installed GCC and mingw-64 via Homebrew so i should have what i need.
after blundering around i was able to figure out how to build by just typing 'make all' in the directory, but it just made a linux .o and a .pd_darwin library. there must be a way to override the system architecture and force it to build a DLL. so far i've tried 'make all x86_64' and 'make all Windows' which give errors pretty quickly.
if someone could help getting me over this hump it'd be appreciated! i'm assuming it should be a relatively easy compile, i just need to know what flags or overrides to put in. thanks in advance!
best, scott
Am 10. Juli 2019 08:05:40 MESZ schrieb "Scott R. Looney" scottrlooney@gmail.com:
i'm on macOS and have installed GCC and mingw-64 via Homebrew so i should have what i need.
after blundering around i was able to figure out how to build by just typing 'make all' in the directory, but it just made a linux .o and a .pd_darwin library. there must be a way to override the system architecture and force it to build a DLL.
If you want to build binaries for Windows on your mac, you'd need a cross compiler.
If you dont know what that is, you probably should geht hold on a Windows machine with msys2/mingw64 installed and build natively *there*.
mdg.zdr.sfj IOhannes
okay i've installed msys2 and what should be gcc into mingw64 on a Windows10 laptop. this is not terribly clear as there are dozens of packages for gcc the one i installed was mingw-w64-x86_64-gcc 9.1.0-3 which i hope should be the one i need since it seemed the most generic, also gcc-libs as well.
doing the exact same actions (cd into active build directory then 'make all' results in 'bash make: command not found') so either the path has to be set or i need to navigate to where make is located. again i'm sure this is easy, but i don't know what to do to get make to run. looking in the /bin directory of c:\msys64\mingw64\bin i don't see a make binary but i really have no idea what to do at this point. i've edited the msys64/etc/fstab file to include the path to the mingw64 folder but that has no effect on the bash path issue. further help appreciated!
also - i did find a cross compiler to install on my Mac so depending on how difficult this is to do in Windows i may just go that route.
best, scott
On Wed, Jul 10, 2019 at 12:06 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
Am 10. Juli 2019 08:05:40 MESZ schrieb "Scott R. Looney" < scottrlooney@gmail.com>:
i'm on macOS and have installed GCC and mingw-64 via Homebrew so i should have what i need.
after blundering around i was able to figure out how to build by just typing 'make all' in the directory, but it just made a linux .o and a .pd_darwin library. there must be a way to override the system architecture and force it to build a DLL.
If you want to build binaries for Windows on your mac, you'd need a cross compiler.
If you dont know what that is, you probably should geht hold on a Windows machine with msys2/mingw64 installed and build natively *there*.
mdg.zdr.sfj IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
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
On Wed, Jul 10, 2019 at 2:09 PM Scott R. Looney scottrlooney@gmail.com wrote:
okay i've installed msys2 and what should be gcc into mingw64 on a Windows10 laptop. this is not terribly clear as there are dozens of packages for gcc the one i installed was mingw-w64-x86_64-gcc 9.1.0-3 which i hope should be the one i need since it seemed the most generic, also gcc-libs as well.
doing the exact same actions (cd into active build directory then 'make all' results in 'bash make: command not found') so either the path has to be set or i need to navigate to where make is located. again i'm sure this is easy, but i don't know what to do to get make to run. looking in the /bin directory of c:\msys64\mingw64\bin i don't see a make binary but i really have no idea what to do at this point. i've edited the msys64/etc/fstab file to include the path to the mingw64 folder but that has no effect on the bash path issue. further help appreciated!
also - i did find a cross compiler to install on my Mac so depending on how difficult this is to do in Windows i may just go that route.
best, scott
On Wed, Jul 10, 2019 at 12:06 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
Am 10. Juli 2019 08:05:40 MESZ schrieb "Scott R. Looney" < scottrlooney@gmail.com>:
i'm on macOS and have installed GCC and mingw-64 via Homebrew so i should have what i need.
after blundering around i was able to figure out how to build by just typing 'make all' in the directory, but it just made a linux .o and a .pd_darwin library. there must be a way to override the system architecture and force it to build a DLL.
If you want to build binaries for Windows on your mac, you'd need a cross compiler.
If you dont know what that is, you probably should geht hold on a Windows machine with msys2/mingw64 installed and build natively *there*.
mdg.zdr.sfj IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Hi Scott,
To add what Oliver said just in case:
pd-lib-builder will auto-find "pd.dll" and the "src" folder if Pd was installed in its default location (the location that the Pd installer suggests). You can have both 32bit and 64bit Pds installed on the same machine.
If you have Pd on a different location do:
make PDDIR=<path/to/your/Pd-folder> PDLIBDIR=<path/where-you-want/the-built-external> install
To build an 32bit external open the MinGW32-shell.
To build an 64bit external open the MinGW64-shell.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 7:03 AM, oliver wrote:
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
thanks very much Lucas and Oliver!! one question - if you build a 32 bit external can this be used with the 64 bit version of PD as well? i ask this because it seemed the 64 bit build was a bit more complicated.
best, scott
On Thu, Jul 11, 2019 at 1:09 PM Lucas Cordiviola lucarda27@hotmail.com wrote:
Hi Scott,
To add what Oliver said just in case:
pd-lib-builder will auto-find "pd.dll" and the "src" folder if Pd was installed in its default location (the location that the Pd installer suggests). You can have both 32bit and 64bit Pds installed on the same machine.
If you have Pd on a different location do:
make PDDIR=<path/to/your/Pd-folder>
PDLIBDIR=<path/where-you-want/the-built-external> install
To build an 32bit external open the MinGW32-shell.
To build an 64bit external open the MinGW64-shell.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 7:03 AM, oliver wrote:
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
if you build a 32 bit external can this be used with the 64 bit version of PD as well?
Nope. They have to match.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 6:13 PM, Scott R. Looney wrote: thanks very much Lucas and Oliver!! one question - if you build a 32 bit external can this be used with the 64 bit version of PD as well? i ask this because it seemed the 64 bit build was a bit more complicated.
best, scott
On Thu, Jul 11, 2019 at 1:09 PM Lucas Cordiviola <lucarda27@hotmail.commailto:lucarda27@hotmail.com> wrote: Hi Scott,
To add what Oliver said just in case:
pd-lib-builder will auto-find "pd.dll" and the "src" folder if Pd was installed in its default location (the location that the Pd installer suggests). You can have both 32bit and 64bit Pds installed on the same machine.
If you have Pd on a different location do:
make PDDIR=<path/to/your/Pd-folder>
PDLIBDIR=<path/where-you-want/the-built-external> install
To build an 32bit external open the MinGW32-shell.
To build an 64bit external open the MinGW64-shell.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 7:03 AM, oliver wrote:
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Pd-list@lists.iem.atmailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.atmailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well.
On Thu, Jul 11, 2019 at 2:28 PM Lucas Cordiviola lucarda27@hotmail.com wrote:
if you build a 32 bit external can this be used with the 64 bit version of PD as well?
Nope. They have to match.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 6:13 PM, Scott R. Looney wrote:
thanks very much Lucas and Oliver!! one question - if you build a 32 bit external can this be used with the 64 bit version of PD as well? i ask this because it seemed the 64 bit build was a bit more complicated.
best, scott
On Thu, Jul 11, 2019 at 1:09 PM Lucas Cordiviola lucarda27@hotmail.com wrote:
Hi Scott,
To add what Oliver said just in case:
pd-lib-builder will auto-find "pd.dll" and the "src" folder if Pd was installed in its default location (the location that the Pd installer suggests). You can have both 32bit and 64bit Pds installed on the same machine.
If you have Pd on a different location do:
make PDDIR=<path/to/your/Pd-folder>
PDLIBDIR=<path/where-you-want/the-built-external> install
To build an 32bit external open the MinGW32-shell.
To build an 64bit external open the MinGW64-shell.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 7:03 AM, oliver wrote:
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
_______________________________________________Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
just to clarify, the instructions i got from Oliver and Lucas seem to be specifically oriented to build PD itself from source code which i'm not doing. i'm building a plain external with no extra UI or graphics requirement. i'm using pd-lib-builder as well. at the moment i seem to be stuck. i did install the ASIO SDK, but not Tcl/tk because it doesn't seem like it would be needed. i'm not sure ASIO is needed actually.
if i type ' ./autogen.sh i get ' bash ./autogen.sh No such file or directory'
i am assuming this is because my sources are the sources of the external code which doesn't have autogen in it, but rather uses Makefile and Makefile.pdlibbuilder
so for that i type 'make all' and the process fails around line 923 of Makefile.pdlibbuilder because it looks like it's trying to build a Linux .o binary. as far as i can tell, which is weird to me. it spits out this just before:
g++ -DPD -I "C:\Program Files/Pd/src" -DMSW -DNT -DPD_LONGINTTYPE=__int64 -fcheck-new -DTEST -Wno-unused-local-typedefs -I./ -Wall -Wextra -Wshadow -Winline -Wstrict-aliasing -O3 -ffast-math -funroll-loops -fomit-frame-pointer -march=core2 -msse -msse2 -msse3 -mfpmath=sse -o plts~.o -c plts~.cpp
just to test, i decided to ignore errors for the .o files. they were never in the repo, but when i first ran 'make all' on the Mac it created a .o file for every included class it needed and then finished with the 'pd_darwin' binary. the creator of the external used Xcode to make his object originally so i don't know how he compiled it.
in this case on the Windows build i told it to ignore errors and the result was that because it was unable to find the .o object files (since they were skipped) it did not finish building the .DLL at the end of the process. so all i can guess is the object files are required for some reason to build the DLL but can be deleted afterwards? i still don't know what prevents the .o files from being created in the first place. it's likely a simple path issue, but i'm not sure.
more help needed - obviously...this is really complex to keep track of. i'm really glad for the work that folks have done to try to streamline the process but it's still a slog.
best, scott
On Thu, Jul 11, 2019 at 9:34 PM Scott R. Looney scottrlooney@gmail.com wrote:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well.
On Thu, Jul 11, 2019 at 2:28 PM Lucas Cordiviola lucarda27@hotmail.com wrote:
if you build a 32 bit external can this be used with the 64 bit version of PD as well?
Nope. They have to match.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 6:13 PM, Scott R. Looney wrote:
thanks very much Lucas and Oliver!! one question - if you build a 32 bit external can this be used with the 64 bit version of PD as well? i ask this because it seemed the 64 bit build was a bit more complicated.
best, scott
On Thu, Jul 11, 2019 at 1:09 PM Lucas Cordiviola lucarda27@hotmail.com wrote:
Hi Scott,
To add what Oliver said just in case:
pd-lib-builder will auto-find "pd.dll" and the "src" folder if Pd was installed in its default location (the location that the Pd installer suggests). You can have both 32bit and 64bit Pds installed on the same machine.
If you have Pd on a different location do:
make PDDIR=<path/to/your/Pd-folder>
PDLIBDIR=<path/where-you-want/the-built-external> install
To build an 32bit external open the MinGW32-shell.
To build an 64bit external open the MinGW64-shell.
:)
Mensaje telepatico asistido por maquinas.
On 7/11/2019 7:03 AM, oliver wrote:
hi, scott !
just in case you don't know it yet:
here's an info LUCARDA gave me some time ago about compiling on windows, that worked great for me (= total compiling noob):
====================================================================
First follow instructions to set up Msys2. You should install the 64bit installer (this one will let you build 32 and 64 bit apps).
https://github.com/msys2/msys2/wiki/MSYS2-installation
Once the base Msys2 has been installed add with -pacman the packages described here:
https://github.com/pure-data/pure-data/blob/e3009daf1acfa1c46adc67416b89019d...
====================================================================
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
_______________________________________________Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Am 12. Juli 2019 06:34:04 MESZ schrieb "Scott R. Looney" scottrlooney@gmail.com:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well
indeed. iirc the relevant info in thedocs you were pointed to was only about the *packages* you need to install using pacman
. all the rest is irrelevant (tcl/tk, asiosdk; autogen/configure;...)
mfg.fudy.fhd IOhannes
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive. what's tripping me up is the variance of forward and back slashes in filepaths in msys/mingw64. for example i put the source files in my home directory of msys64, so using only Windows filepaths it's C:\msys64\home\scottlooney\pd-plaits-master.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
make all PDLIBDIR=../pd-plaits-master make all PDLIBDIR=C:\msys64\home\scottlooney\pd-plaits-master
both of these fail. the latter prints the path as one runon string and ignores the slashes. the former seemingly indicates the path correctly but still fails.
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
best, scott
On Fri, Jul 12, 2019 at 12:02 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
Am 12. Juli 2019 06:34:04 MESZ schrieb "Scott R. Looney" < scottrlooney@gmail.com>:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well
indeed. iirc the relevant info in thedocs you were pointed to was only about the *packages* you need to install using
pacman
. all the rest is irrelevant (tcl/tk, asiosdk; autogen/configure;...)mfg.fudy.fhd IOhannes
-- sent from my pdp-12
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
well it seems like the PDLIBDIR variable is properly set - at least running 'make allvars' indicates the path is changed. but it still acts for all the world like it can't find or access any source code files to compile. i'm getting no help as to the specific error involved. i wish i had a way i could find out more information, but i'm still stuck.
best, scott
On Fri, Jul 12, 2019 at 12:15 AM Scott R. Looney scottrlooney@gmail.com wrote:
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive. what's tripping me up is the variance of forward and back slashes in filepaths in msys/mingw64. for example i put the source files in my home directory of msys64, so using only Windows filepaths it's C:\msys64\home\scottlooney\pd-plaits-master.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
make all PDLIBDIR=../pd-plaits-master make all PDLIBDIR=C:\msys64\home\scottlooney\pd-plaits-master
both of these fail. the latter prints the path as one runon string and ignores the slashes. the former seemingly indicates the path correctly but still fails.
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
best, scott
On Fri, Jul 12, 2019 at 12:02 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
Am 12. Juli 2019 06:34:04 MESZ schrieb "Scott R. Looney" < scottrlooney@gmail.com>:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well
indeed. iirc the relevant info in thedocs you were pointed to was only about the *packages* you need to install using
pacman
. all the rest is irrelevant (tcl/tk, asiosdk; autogen/configure;...)mfg.fudy.fhd IOhannes
-- sent from my pdp-12
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Scott,
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
I've tried to compile https://github.com/jnonis/pd-plaits on my working machine but i get this error:
In file included from plts~.cpp:10:0: plaits/dsp/dsp.h:32:10: fatal error: stmlib/stmlib.h: No such file or directory #include "stmlib/stmlib.h"
Can you inform the developers about this error?
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive Just to be clear "PDLIBDIR=" can be any Directory as this is the output dir.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
On the msys2 shell use unix "/" path delimiters like:
make all PDLIBDIR=../pd-plaits-master
:)
Mensaje telepatico asistido por maquinas.
On 7/12/2019 4:15 AM, Scott R. Looney wrote: okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive. what's tripping me up is the variance of forward and back slashes in filepaths in msys/mingw64. for example i put the source files in my home directory of msys64, so using only Windows filepaths it's C:\msys64\home\scottlooney\pd-plaits-master.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
make all PDLIBDIR=../pd-plaits-master make all PDLIBDIR=C:\msys64\home\scottlooney\pd-plaits-master
both of these fail. the latter prints the path as one runon string and ignores the slashes. the former seemingly indicates the path correctly but still fails.
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
best, scott
On Fri, Jul 12, 2019 at 12:02 AM IOhannes m zmölnig <zmoelnig@iem.atmailto:zmoelnig@iem.at> wrote: Am 12. Juli 2019 06:34:04 MESZ schrieb "Scott R. Looney" <scottrlooney@gmail.commailto:scottrlooney@gmail.com>:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well
indeed. iirc the relevant info in thedocs you were pointed to was only about the *packages* you need to install using pacman
. all the rest is irrelevant (tcl/tk, asiosdk; autogen/configure;...)
mfg.fudy.fhd IOhannes
-- sent from my pdp-12
Pd-list@lists.iem.atmailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.atmailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hi Lucas, looking at the sources the file is clearly at the path specified. the stmlib/stmlib.h definitely does exist at least in my repo at that path. possibly the code is referencing it at a different path? this is roughly the same types of errors i'm getting - that it can't find the files.
PS i would love to chat or Skype with you to see if there's a faster way to resolve this. going back and forth one email per day is frustrating.
best, scott
On Fri, Jul 12, 2019 at 12:54 AM Lucas Cordiviola lucarda27@hotmail.com wrote:
Hi Scott,
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
I've tried to compile https://github.com/jnonis/pd-plaits on my working machine but i get this error:
In file included from plts~.cpp:10:0: plaits/dsp/dsp.h:32:10: fatal error: stmlib/stmlib.h: No such file or directory #include "stmlib/stmlib.h"
Can you inform the developers about this error?
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive
Just to be clear "PDLIBDIR=" can be any Directory as this is the output dir.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
On the msys2 shell use unix "/" path delimiters like:
make all PDLIBDIR=../pd-plaits-master
:)
Mensaje telepatico asistido por maquinas.
On 7/12/2019 4:15 AM, Scott R. Looney wrote:
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive. what's tripping me up is the variance of forward and back slashes in filepaths in msys/mingw64. for example i put the source files in my home directory of msys64, so using only Windows filepaths it's C:\msys64\home\scottlooney\pd-plaits-master.
i have set my active working directory to this directory and i've tried the following changes to PDLIBDIR adding to 'make all':
make all PDLIBDIR=../pd-plaits-master make all PDLIBDIR=C:\msys64\home\scottlooney\pd-plaits-master
both of these fail. the latter prints the path as one runon string and ignores the slashes. the former seemingly indicates the path correctly but still fails.
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
best, scott
On Fri, Jul 12, 2019 at 12:02 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
Am 12. Juli 2019 06:34:04 MESZ schrieb "Scott R. Looney" < scottrlooney@gmail.com>:
okay, one last question. since this is an external and the directions are for compiling PD itself from source do i absolutely need to have Tcl/tk included in an external object build? i'm not using any custom graphics on it or anything. was also wondering about the necessity of ASIO as well
indeed. iirc the relevant info in thedocs you were pointed to was only about the *packages* you need to install using
pacman
. all the rest is irrelevant (tcl/tk, asiosdk; autogen/configure;...)mfg.fudy.fhd IOhannes
-- sent from my pdp-12
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
_______________________________________________Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On 7/12/19 9:15 AM, Scott R. Looney wrote:
okay - good. now what i need to do is set PDLIBDIR variable to point to the repo on the drive.
PDLIBDIR is only relevant for telling the build process where to *install* the binaries (if you run "make install" *after* a succesfull build). setting it to the repository is most certainly not what you want.
gfmdsar IOhannes
okay, thanks for the tip. it's still a bit confusing as the repo root is where i found the .pd_darwin binary as well as the demo and help patches. i guess he put them there after the fact?
regardless, still not getting anywhere with building this on Windows. seems like i'm not the only one.
best, scott
On Fri, Jul 12, 2019 at 1:15 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
On 7/12/19 9:15 AM, Scott R. Looney wrote:
okay - good. now what i need to do is set PDLIBDIR variable to point to
the
repo on the drive.
PDLIBDIR is only relevant for telling the build process where to *install* the binaries (if you run "make install" *after* a succesfull build). setting it to the repository is most certainly not what you want.
gfmdsar IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On 7/12/19 10:24 AM, Scott R. Looney wrote:
okay, thanks for the tip. it's still a bit confusing as the repo root is where i found the .pd_darwin binary as well as the demo and help patches.
what would you expect to be in the repo? it's supposed to contain
unfortunately javier also checked in some binary artifacts (plts~.pd_darwin) and upstream files (m_pd.h), which he really shouldn't have done [2], although that shouldn't be a big problem for you)
i guess he put them there after the fact?
no. once you compile the library, you will always end up with a "plts~.<someextension>" in this directory.
mgfdsar IOhannes
On 7/12/19 9:15 AM, Scott R. Looney wrote:
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
i think this is all wrong. you don't have to copy anything anywhere. you shouldn't even think about doing that (where did you get the idea from?)
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹
once you have installed the proper toolchain (make, compiler,...) the
*only* thing you might have to adjust is the location of your
Pd-installation (if you have installed Pd into a non-standard location)
via the PDDIR
variable.
the standard installation location of Pd is in "C:\Program Files" (for
64bit Pd) and "C:\Program Files (x86)" for 32bit Pd (or some l10n
variation thereof). if you have installed Pd into this location (these
locations), then you don't need to worry about "PDDIR".
for a beginner, i would strongly suggest to use the standard installtion
locations.
you will need the a Pd installation of the same architecture you want to compile for (if you want to build a 32bit external, you need the 32bit version of Pd; if you want to build a 64bit external, you need the 64bit version of Pd; if you want to build both versions of the external, you need both versions of Pd)
1. download pd-plaits and unzip it
2. open the MinGW32-shell (for building a 32bit external) resp the
MinGW64-shell (for building a 64bit external)
3. change into the pd-plaits directory
$ cd pd-plaits-master
4. run make
$ make
this will create a "plts~.dll" for you (the name's the same for both 32bit and 64bit externals; if you want both, you should rename the 64bit external to "plts~.m_amd64")
gfmasdr IOhannes
¹ usually this would be the "pd-plaits" directory; but since you appear to have downloaded the ZIP
On Fri, Jul 12, 2019 at 1:46 AM IOhannes m zmölnig zmoelnig@iem.at wrote:
On 7/12/19 9:15 AM, Scott R. Looney wrote:
any tips on where to copy the folder so that the path is clearly given?
i'm
not 100% sure but i'm reasonably certain all my errors so far are path related.
i think this is all wrong. you don't have to copy anything anywhere. you shouldn't even think about doing that (where did you get the idea from?)
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹
i am absolutely running make in the correct directory. i installed the whole msys2/mingw64 toolchain, i opened the shell for mingw64, and navigated to my copy of the repo, which i downloaded as a zip, uncompressed and moved into what i believed to be a convenient location under the msys64/home/(username) directory
once you have installed the proper toolchain (make, compiler,...) the *only* thing you might have to adjust is the location of your Pd-installation
Pd 64 bit is installed in its usual spot. nothing unusual there.
1. download pd-plaits and unzip it 2. open the MinGW32-shell (for building a 32bit external) resp the MinGW64-shell (for building a 64bit external) 3. change into the pd-plaits directory $ cd pd-plaits-master 4. run make $ make
this will create a "plts~.dll" for you (the name's the same for both 32bit and 64bit externals; if you want both, you should rename the 64bit external to "plts~.m_amd64")
yup i have done all of this (the 64 Bit route) and i'm still not getting anywhere. i understand i am a newbie to compiling but i really have tried to follow all the directions correctly. all i can guess is that somehow it's not looking for files in the active directory. the fact that Lucas couldn't compile it either is i think significant and speaks towards a non-standard compiling configuration on the repo. there's an Xcode project file so perhaps he tried pd-lib-builder and then gave up and switched to Xcode to compile it. i will say i ran all of this on my Mac using mingw64/gcc and 'make all' with the Makefile.pdlibbuilder and it created a whole mess of object (.o) files but also created the .pd_darwin file correctly.
i think i'll take Lucas's advice and compile something that should work smoothly in order to verify that the method i've been following is sound.
best, scott
On 7/12/19 11:07 AM, Scott R. Looney wrote:
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹
i am absolutely running make in the correct directory. i installed the whole msys2/mingw64 toolchain, i opened the shell for mingw64, and navigated to my copy of the repo, which i downloaded as a zip, uncompressed and moved into what i believed to be a convenient location under the msys64/home/(username) directory
that's fine.
yup i have done all of this (the 64 Bit route) and i'm still not getting anywhere.
try running "make clean" before doing anything else...
gfmrdsa IOhannes
There is a subtle error in the Makefile, I just made a fix: https://github.com/jnonis/pd-plaits/pull/4. After that, I could compile it successfully with Msys2 in a MinGW64 Shell.
Christof
Gesendet: Freitag, 12. Juli 2019 um 11:07 Uhr Von: "Scott R. Looney" scottrlooney@gmail.com An: pd-list pd-list@lists.iem.at Betreff: Re: [PD] - need some assistance compiling an external for Windows
On Fri, Jul 12, 2019 at 1:46 AM IOhannes m zmölnig <zmoelnig@iem.at[mailto:zmoelnig@iem.at]> wrote:On 7/12/19 9:15 AM, Scott R. Looney wrote:
any tips on where to copy the folder so that the path is clearly given? i'm not 100% sure but i'm reasonably certain all my errors so far are path related.
i think this is all wrong. you don't have to copy anything anywhere. you shouldn't even think about doing that (where did you get the idea from?)
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹ i am absolutely running make in the correct directory. i installed the whole msys2/mingw64 toolchain, i opened the shell for mingw64, and navigated to my copy of the repo, which i downloaded as a zip, uncompressed and moved into what i believed to be a convenient location under the msys64/home/(username) directory once you have installed the proper toolchain (make, compiler,...) the *only* thing you might have to adjust is the location of your Pd-installation Pd 64 bit is installed in its usual spot. nothing unusual there.
1. download pd-plaits and unzip it
2. open the MinGW32-shell (for building a 32bit external) resp the
MinGW64-shell (for building a 64bit external)
3. change into the pd-plaits directory
$ cd pd-plaits-master
4. run make
$ make
this will create a "plts~.dll" for you (the name's the same for both 32bit and 64bit externals; if you want both, you should rename the 64bit external to "plts~.m_amd64") yup i have done all of this (the 64 Bit route) and i'm still not getting anywhere. i understand i am a newbie to compiling but i really have tried to follow all the directions correctly. all i can guess is that somehow it's not looking for files in the active directory. the fact that Lucas couldn't compile it either is i think significant and speaks towards a non-standard compiling configuration on the repo. there's an Xcode project file so perhaps he tried pd-lib-builder and then gave up and switched to Xcode to compile it. i will say i ran all of this on my Mac using mingw64/gcc and 'make all' with the Makefile.pdlibbuilder and it created a whole mess of object (.o) files but also created the .pd_darwin file correctly. i think i'll take Lucas's advice and compile something that should work smoothly in order to verify that the method i've been following is sound. best, scott_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list%5Bhttps://lists.puredata.info/l...]
thank you Christoph! as i am still running into the same basic error as before, it looks like my configuration is still the problem. can i ask a some questions? please forgive my inexperience - just trying to get my head around the complexities of building...
uncompressed folder in? i put mine under the msys64/home/(user name) directory 2. did you type anything besides 'make' to compile the external? any flags or overrides? 3. 32 bit or 64 bit build? i'm doing 64 bit. 4. did it create a bunch of .o object files and then compile the dll?
i'm considering removing msys2 and just starting the whole thing over from scratch. i installed msys2 earlier and parts of the mingw64 toolchain, but not everything. then i found out about the right toolchain, removed a lot of the content from the mingw64/bin folder and other folders and then used pacman to install the proper toolchain. but with so many tools there's a possibility i ended up with a somewhat broken or misconfigured build setup. it would definitely also be helpful to know whether you did a 32 bit build, as i've been concentrating completely on 64 bit.
thanks in advance,
best, scott
On Fri, Jul 12, 2019 at 6:46 AM Christof Ressi christof.ressi@gmx.at wrote:
There is a subtle error in the Makefile, I just made a fix: https://github.com/jnonis/pd-plaits/pull/4. After that, I could compile it successfully with Msys2 in a MinGW64 Shell.
Christof
Gesendet: Freitag, 12. Juli 2019 um 11:07 Uhr Von: "Scott R. Looney" scottrlooney@gmail.com An: pd-list pd-list@lists.iem.at Betreff: Re: [PD] - need some assistance compiling an external for Windows
On Fri, Jul 12, 2019 at 1:46 AM IOhannes m zmölnig <zmoelnig@iem.at [mailto:zmoelnig@iem.at]> wrote:On 7/12/19 9:15 AM, Scott R. Looney wrote:
any tips on where to copy the folder so that the path is clearly given?
i'm
not 100% sure but i'm reasonably certain all my errors so far are path related.
i think this is all wrong. you don't have to copy anything anywhere. you shouldn't even think about doing that (where did you get the idea from?)
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹
i am absolutely running make in the correct directory. i installed the whole msys2/mingw64 toolchain, i opened the shell for mingw64, and navigated to my copy of the repo, which i downloaded as a zip, uncompressed and moved into what i believed to be a convenient location under the msys64/home/(username) directory once you have installed the proper toolchain (make, compiler,...) the *only* thing you might have to adjust is the location of your Pd-installation
Pd 64 bit is installed in its usual spot. nothing unusual there.
1. download pd-plaits and unzip it 2. open the MinGW32-shell (for building a 32bit external) resp the MinGW64-shell (for building a 64bit external) 3. change into the pd-plaits directory $ cd pd-plaits-master 4. run make $ make
this will create a "plts~.dll" for you (the name's the same for both 32bit and 64bit externals; if you want both, you should rename the 64bit external to "plts~.m_amd64")
yup i have done all of this (the 64 Bit route) and i'm still not getting anywhere. i understand i am a newbie to compiling but i really have tried to follow all the directions correctly. all i can guess is that somehow it's not looking for files in the active directory. the fact that Lucas couldn't compile it either is i think significant and speaks towards a non-standard compiling configuration on the repo. there's an Xcode project file so perhaps he tried pd-lib-builder and then gave up and switched to Xcode to compile it. i will say i ran all of this on my Mac using mingw64/gcc and 'make all' with the Makefile.pdlibbuilder and it created a whole mess of object (.o) files but also created the .pd_darwin file correctly.
i think i'll take Lucas's advice and compile something that should work smoothly in order to verify that the method i've been following is sound.
best, scott_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list%5Bhttps://lists.puredata.info/l...]
okay Christoph! looks like that finally did the trick! just one revision. after wiping and reinstalling msys2 i installed only the toolchain as you posted, but that resulted in a 'bash: make - command not found' error. so i then installed all the rest of the packages that Lucas recommended in the text, and of course did the small edit to the Makefile, and it finally went through and completed.
so for all the newbies to compiling externals this is definitely the toolchain that worked for me using the pacman installer tool (copied from Lucas's text on compiling PD):
============================================== these must be copied into mingw terminal as ONE line !
# for 32 bit
pacman -S mingw-w64-i686-toolchain mingw-w64-i686-clang make pkgconfig
autoconf automake libtool mingw-w64-i686-gettext
# for 64 bit
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang make
pkgconfig autoconf automake libtool mingw-w64-x86_64-gettext
==============================================
it's possible bash could have been configured to just use the toolchain install with a profile edit - it seemed that the mingw-w64-x86_6-make binary was already installed. but for maximum reliability and ease of operation, i'd highly suggest installing the rest of the tools as well.
thanks everyone for all your input, advice and testing!
best, scott
On Fri, Jul 12, 2019 at 4:54 PM Christof Ressi christof.ressi@gmx.at wrote:
Hey,
- did you download the repo as a zip? if so, what path did you put the
uncompressed folder in? i put mine under the msys64/home/(user name) directory
I cloned the Repo with 'git clone', but it doesn't really matter at all where the folder lives on your hard drive! Just put it anywhere and then 'cd' into the folder (where the Makefile is located).
- did you type anything besides 'make' to compile the external? any
flags or overrides?
I had to do 'make PDDIR="/path/to/Pd"' because I have my 64-bit Pd in a non-standard location. But if you have it installed in 'Program Files', you don't need to set PDDIR. Anyway, if you get a linker error saying that pd.dll can't be found, then you know you do have to set PDDIR :-)
- 32 bit or 64 bit build? i'm doing 64 bit.
64-bit. Make sure to use the MinGW64 shell.
- did it create a bunch of .o object files and then compile the dll?
sure. Technically, the DLL is not "compiled" but results from linking the individual object files into a single binary.
i'm considering removing msys2 and just starting the whole thing over
from scratch.
Sounds like a good idea :-) Just do a clean install of Msys2 and install the mingw64 toolchain with 'pacman -S mingw-w64-x86_64-toolchain'. That should be everything you need.
If you still get errors, please post the full output.
Christof *Gesendet:* Samstag, 13. Juli 2019 um 01:31 Uhr *Von:* "Scott R. Looney" scottrlooney@gmail.com *An:* pd-list pd-list@lists.iem.at *Betreff:* Re: [PD] - need some assistance compiling an external for Windows thank you Christoph! as i am still running into the same basic error as before, it looks like my configuration is still the problem. can i ask a some questions? please forgive my inexperience - just trying to get my head around the complexities of building...
- did you download the repo as a zip? if so, what path did you put the
uncompressed folder in? i put mine under the msys64/home/(user name) directory 2. did you type anything besides 'make' to compile the external? any flags or overrides? 3. 32 bit or 64 bit build? i'm doing 64 bit. 4. did it create a bunch of .o object files and then compile the dll?
i'm considering removing msys2 and just starting the whole thing over from scratch. i installed msys2 earlier and parts of the mingw64 toolchain, but not everything. then i found out about the right toolchain, removed a lot of the content from the mingw64/bin folder and other folders and then used pacman to install the proper toolchain. but with so many tools there's a possibility i ended up with a somewhat broken or misconfigured build setup. it would definitely also be helpful to know whether you did a 32 bit build, as i've been concentrating completely on 64 bit.
thanks in advance,
best, scott
On Fri, Jul 12, 2019 at 6:46 AM Christof Ressi christof.ressi@gmx.at wrote:
There is a subtle error in the Makefile, I just made a fix: https://github.com/jnonis/pd-plaits/pull/4. After that, I could compile it successfully with Msys2 in a MinGW64 Shell.
Christof
Gesendet: Freitag, 12. Juli 2019 um 11:07 Uhr Von: "Scott R. Looney" scottrlooney@gmail.com An: pd-list pd-list@lists.iem.at Betreff: Re: [PD] - need some assistance compiling an external for Windows
On Fri, Jul 12, 2019 at 1:46 AM IOhannes m zmölnig <zmoelnig@iem.at [mailto:zmoelnig@iem.at]> wrote:On 7/12/19 9:15 AM, Scott R. Looney wrote:
any tips on where to copy the folder so that the path is clearly given?
i'm
not 100% sure but i'm reasonably certain all my errors so far are path related.
i think this is all wrong. you don't have to copy anything anywhere. you shouldn't even think about doing that (where did you get the idea from?)
i *think* that you are just running "make" in the wrong directory. you should run it in the "pd-plaits-master" directory (which contains files like "plts~.cpp")¹
i am absolutely running make in the correct directory. i installed the whole msys2/mingw64 toolchain, i opened the shell for mingw64, and navigated to my copy of the repo, which i downloaded as a zip, uncompressed and moved into what i believed to be a convenient location under the msys64/home/(username) directory once you have installed the proper toolchain (make, compiler,...) the *only* thing you might have to adjust is the location of your Pd-installation
Pd 64 bit is installed in its usual spot. nothing unusual there.
1. download pd-plaits and unzip it 2. open the MinGW32-shell (for building a 32bit external) resp the MinGW64-shell (for building a 64bit external) 3. change into the pd-plaits directory $ cd pd-plaits-master 4. run make $ make
this will create a "plts~.dll" for you (the name's the same for both 32bit and 64bit externals; if you want both, you should rename the 64bit external to "plts~.m_amd64")
yup i have done all of this (the 64 Bit route) and i'm still not getting anywhere. i understand i am a newbie to compiling but i really have tried to follow all the directions correctly. all i can guess is that somehow it's not looking for files in the active directory. the fact that Lucas couldn't compile it either is i think significant and speaks towards a non-standard compiling configuration on the repo. there's an Xcode project file so perhaps he tried pd-lib-builder and then gave up and switched to Xcode to compile it. i will say i ran all of this on my Mac using mingw64/gcc and 'make all' with the Makefile.pdlibbuilder and it created a whole mess of object (.o) files but also created the .pd_darwin file correctly.
i think i'll take Lucas's advice and compile something that should work smoothly in order to verify that the method i've been following is sound.
best, scott_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list%5Bhttps://lists.puredata.info/l...]
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list