[PD-dev] compile pd with cygwin

Hans-Christoph Steiner hans at eds.org
Sun Dec 2 00:51:54 CET 2007


On Dec 1, 2007, at 5:42 PM, Patrice Colet wrote:

> Martin Peach a écrit :
>> Patrice Colet wrote:
>>> Hans-Christoph Steiner a écrit :
>>>
>>>> That stuff wasn't removed from Pd, but instead never made it  
>>>> into Miller's sources.  If you get this running smoothly, then I  
>>>> think it is likely to be included by Miller.  The big thing to  
>>>> do would be to make the ./configure && make work on Cygwin, then  
>>>> we'll have a unified build system on all platforms.
>>>>
>>>> One tip, when posting changes to code, you should post a "diff - 
>>>> uw", otherwise it's hard to tell what you have changed.  I don't  
>>>> think anyone here has s_midi.c memorized, but I could be wrong ;).
>>>>
>>>> Post the errors that you were getting before adding s_stuff.h  
>>>> and that will be easier to troubleshoot.
>>>>
>>>
>>>
>>>   Okay, let's start with these diff (I might have reversed the  
>>> new and the old file, sorry for that, also I'll make separated  
>>> diff files when make will run smoothly) and after that, there is  
>>> my last error message (I didn't go further because s_inter.c  
>>> seems linked to s_midi.c by the sys_close_midi() function, and I  
>>> don't get how to deal with it) :
>>>
>>> $ diff -uw d_osc.c d_osc.c.old
>>> --- d_osc.c     2007-12-01 06:02:38.218750000 +0100
>>> +++ d_osc.c.old 2007-01-19 07:37:56.000000000 +0100
>>>
>> Yes that's a backwards diff...
>>> s_inter.o: dans la fonction << sys_bail >>:
>>> /home/pat/pdextended/pd-extended/pd-extended/pd/src/s_inter.c: 
>>> 1276: r'ef'erence
>>> ind'efinie vers << _sys_close_midi >>
>>>
>> sys_close_midi has several incarnations but you must choose one.  
>> The MSW version uses portmidi, so if you can build portmidi then  
>> use s_midi_pm.c by specifying it in the makefile.
>
>
> I've just modified configure.in by adding those lines:
>
> if test `uname -s` == CYGWIN_NT-5.1;
> then
>     EXT=dll
>     MORECFLAGS="-DUSEAPI_PORTAUDIO  -DPA_LITTLE_ENDIAN -DPA19  \
> 	-I../portaudio/pa_common -I../portaudio/pablio \
> 	-I../portmidi/pm_common -I../portmidi/porttime \
> 	-I../portmidi/pm_win -I../portmidi/pm_win_ds \
>     -mms-bitfields "$MORECFLAGS
>
>     PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++"
>
>     SYSSRC="s_midi_pm.c  \
>     	s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
>         ../portaudio/pa_common/pa_allocation.c  \
>         ../portaudio/pa_common/pa_converters.c  \
>         ../portaudio/pa_common/pa_cpuload.c     \
>         ../portaudio/pa_common/pa_dither.c      \
>         ../portaudio/pa_common/pa_front.c       \
>         ../portaudio/pa_common/pa_process.c     \
>         ../portaudio/pa_common/pa_skeleton.c    \
>         ../portaudio/pa_common/pa_stream.c      \
>         ../portaudio/pa_common/pa_trace.c       \
>         ../portaudio/pa_win/pa_win_util.c       \
>         ../portaudio/pa_win/pa_win_hostapis.c   \
>         ../portaudio/pa_win_wmme/pa_win_wmme.c  \
>         ../portaudio/pa_win_ds/pa_win_ds.c  \
> 		    ../portmidi/pm_common/pmutil.c      \
>             ../portmidi/pm_common/portmidi.c    \
>             ../portmidi/pm_win/pmdll.c          \
>             ../portmidi/pm_win/pmwin.c          \
>             ../portmidi/pm_win/pmwinmm.c        \
>             ../portmidi/porttime/ptwinmm.c"
> 			
> 	 ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \
> 	 ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \
> 	 ../asio/asiodrivers.cpp ../asio/asiolist.cpp"
>     STRIPFLAG="--strip-unneeded"
>     GUINAME="pdtcl.dll"
>     GUIFLAGS=
> fi

A "diff -uw" patch of this would be very helpful since it includes  
the line information and can be applied automatically.

>  And the problem I'm encountering right now could engage a big  
> discussion, I hope the solution is simplier than the one I'm  
> figuring out.
>  The compiler needs DSound.h, so I have to download the complete  
> directx SDK for having this header included, and then having  
> possibility of using directsound in pd, once downloaded I would  
> like to put this header file into the portaudio/pa_win_ds  
> directory, what do you thing about this?

A lot of the DirectX headers are available under a free license from  
MinGW/WINE/Cygwin.  I see dshow.h, dxerr8.h, and dxerr9.h on the  
WinXP auto-build machine.  Perhaps it's just a matter of finding them  
and installing them?  I think those headers should be installed in  
the system rather than included in the Pd/portaudio source.

One other thing that would be nice to address is the different Cygwin  
defines.  CYGWIN_NT-5.1 is for WinXP, CYGWIN_NT-5.0 is for Windows  
2000, and I am guessing CYGWIN_NT-6.0 is for Vista.

.hc


------------------------------------------------------------------------ 
----

                                               http://at.or.at/hans/






More information about the Pd-dev mailing list