[PD] [PD-dev] compile pd with cygwin (almost!)

Hans-Christoph Steiner hans at eds.org
Wed Dec 5 05:48:40 CET 2007

On Dec 4, 2007, at 8:53 PM, Patrice Colet wrote:

> Hans-Christoph Steiner a écrit :
>> A couple of comments to hopefully make things cleaner.  The  
>> existing files aren't very clean, so it can be tricky at times:
>> - these changes need to fit into the configure.in and makefile.in  
>> so that those files will still work on other platforms.  I am not  
>> sure that adding  $(BIN_DIR)/$(PDDLL) to "all" will work on other  
>> platforms.
> pd-watchdog.exe isn't compatible as well, I've just put this for  
> making the building working for finding out deeper problems, and  
> think about a clean solution to implement those windows codes.

AFAIK, the watchdog isn't used on Windows anyhow, so I wouldn't worry  
about it.

>> - things like -lwsock32 should be added to the existing LDFLAGS,  
>> you don't need a separate WINSOCK entry for that, since -l is just  
>> a standard LDFLAGS for loading a library.  pdsend/pdreceive should  
>> have LDFLAGS entries added instead of the custom WINSOCK one.
>  The original file didn't need this flag so I've used a custom flag  
> to not interact on other platforms, but if it's okay with it,  
> LDFLAGS makes things more simple.
>> - -mno-cygwin should be added to CFLAGS, AFAIK, instead of making  
>> a custom variable for it (CYGFLAGS).
>  I've originally used CYGFLAGS for not having all flags when they  
> arent necessary.
>> I am definitely glad you are working on this.  I think this will  
>> make devleoping with Pd on Windows much easier.
> We should be able to add MINGW_NT-5.0 here:

AFAIK, I think the MinGW and Cygwin sections in will have some  
differences.  Like -mms-bitfields.  I could be wrong... at the very  
least -mno-cygwin is not used in MinGW.


>>> +if test `uname -s` == CYGWIN_NT-5.1 || test `uname -s` ==  
>>> CYGWIN_NT-5.0 || test
>>>  `uname -s` == CYGWIN_NT-6.0;
>>> ==================================================================== 
>>> ==
>>>  Now the problem is the one I've described before, pd.exe is  
>>> mysteriously linked to cygwin1.dll, if I rename pdtcl.dll, an  
>>> error message pops up to say something like it couldn't find  
>>> "pthread_cond_destroy".
>>> ==================================================================== 
>>> ==
>>> cd ../bin;      dllwrap  -mno-cygwin --export-all-symbol --output- 
>>> def pdtcl.def
>>> \
>>>         --output-lib=pdtcl.a --dllname=pdtcl.dll ../obj/t_tkcmd.o  
>>> -ldl -lm -lpth
>>> readGC2 -lwsock32 -lwinmm -lole32 -ltcl84 -ltk84 -lstdc++ -ltk84 - 
>>> ltcl84
>>> dllwrap: aucun fichier d'exportation de d'efinitions fourni.
>>> Cr'eation du fichier, mais il ne correspondra pas n'ecessairement  
>>> `a ce que vous
>>>  d'esirez.
>>> /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/ 
>>> bin/ld: AVERTISSE
>>> MENT: ne peut trouver le symbole d'entr'ee __cygwin_dll_entry at 12;  
>>> utilise par d'
>>> efaut 6d081000


"Free software means you control what your computer does. Non-free  
software means someone else controls that, and to some extent  
controls you." - Richard M. Stallman

More information about the Pd-list mailing list