[PD] MinGW + Eclipse + MSWIN helloworld

Hans-Christoph Steiner hans at at.or.at
Tue Jul 26 22:05:55 CEST 2011


The ProgramFiles var is still useful in a plain Cygwin or MinGW  
environment.  I just checked in an update for both Cygwin and MinGW.  
It should work now if you just define PROGRAMFILES in Eclipse.  There  
was a problem where $(PROGRAMFILES) was interpretted by make, so "C: 
\Program Files" turns into "C:Program Files"  since make uses / as the  
path separator.  So I replaced $(PROGRAMFILES) with $$PROGRAMFILES so  
that the var doesn't get evaluated by make but instead only the  
shell.  MinGW understands Windows paths, and for Cygwin, I fixed the  
use of 'cygpath' to generate a Cygwin path.

.hc

On Jul 26, 2011, at 6:08 AM, luca paganotti wrote:

> ... ok,  i'm not so fool ...
>
> the build was running well in this case when I had this configuration:
>
> PD_PATH ?= $(shell cd "$(ProgramFiles)"/pd && pwd)
>
> BUT (grrrrr ....) I had a redefinition of PD_PATH inside eclipse as  
> PD_PATH --> /c/programmi/pd in the project preferences/C/C++ Build/ 
> Environment, making the presence of $(ProgramFiles) in the makefile  
> totally meaningless !
>
> sorry again ...
>
>
>
>
> On Tue, Jul 26, 2011 at 4:12 AM, Hans-Christoph Steiner  
> <hans at at.or.at> wrote:
>
> Hey Luca,
>
> Thanks for troubleshooting this.  I renamed $(PROGRAMFILES) to $ 
> (ProgramFiles) in the template Makefile, following your second  
> suggestion.  That seems to be the best solution, sound good to you?
>
> http://pure-data.svn.sourceforge.net/viewvc/pure-data/trunk/externals/template/Makefile?r1=15153&r2=15164
>
> .hc
>
> On Jul 18, 2011, at 6:12 AM, luca paganotti wrote:
>
>> Hi Hans,
>>
>> the first option of setting environment/build variables has these  
>> effects:
>> Defining build variable PROGRAMFILES inside eclipse doesn't work.
>> It works if I change $(PROGRAMFILES) to $(ProgramFiles) in the make  
>> file.
>> Obviously it works also if I define PROGRAMFILES in the mingw block  
>> of the makefile.
>> It works defining PROGRAMFILES=${ProgramFiles} in eclipse project  
>> preferences/C/C++ Build/Environment.In mingw works as before.
>> For the second option you gave
>>
>> changing PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd && pwd) to  
>> PD_PATH ?= $(shell cd "$(PROGRAMFILES)"/pd && pwd)
>> works in eclipse defining an environment variable inside project  
>> preferences/C/C++ Build/Environment as PD_PATH = ${ProgramFiles}/pd.
>> And it works too running make PD_PATH=/c/Programmi/pd from the  
>> mingw shell.
>>
>> Many thanks.
>>
>> Ciao
>>
>>
>>
>> On Fri, Jul 15, 2011 at 5:47 PM, Hans-Christoph Steiner <hans at at.or.at 
>> > wrote:
>>
>> Arg, that's really annoying.  Eclipse seems to strip the  
>> ProgramFiles env var from the environment when it runs the build.   
>> What if you set the ProgramFiles variable in Eclipse?  Another  
>> option might be that we change  the PD_PATH definition to be  
>> assigned with ?= then it can be overridden by setting an env var  
>> PD_PATH.  This should currently work in Eclipse and the cmd line:
>>
>> make PD_PATH=/c/programmi/pd showsetup
>>
>> .hc
>>
>> On Jul 15, 2011, at 11:40 AM, luca paganotti wrote:
>>
>>> Hi Hans
>>>
>>> running 'make showsetup' from eclipse gives:
>>>
>>> **** Build of configuration Default for project mycobject ****
>>>
>>> mingw32-make showsetup
>>> /usr/bin/sh: line 0: cd: /pd: No such file or directory
>>> /usr/bin/sh: line 0: cd: /pd: No such file or directory
>>> /usr/bin/sh: line 0: cd: /pd: No such file or directory
>>> /usr/bin/sh: line 0: cd: /pd: No such file or directory
>>> CFLAGS: -IC:/Programmi/pd/src -Wall -W -g -DPD -DVERSION='0.0' - 
>>> mms-bitfields -O3 -funroll-loops -fomit-frame-pointer
>>> LDFLAGS:  -s -shared -Wl,--enable-auto-import
>>> LIBS:  -L/src/ -L/bin/ -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
>>> PD_INCLUDE: /include
>>> PD_PATH:
>>> objectsdir: /usr/local/lib/pd-externals
>>> LIBRARY_NAME: mycobject
>>> LIBRARY_VERSION: 0.0
>>> SOURCES: mycobject.c
>>> PDOBJECTS: mypdobject.pd
>>> ALLSOURCES: mycobject.c
>>> UNAME: MINGW32_NT-5.1
>>> CPU: i686
>>> pkglibdir: /usr/local/lib/pd-externals
>>> DISTDIR: mycobject-0.0
>>> ORIGDIR: pd-mycobject_0.0
>>>
>>> Running from mingw shell gives:
>>>
>>> Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
>>> $ make showsetup
>>> CFLAGS: -IC:/Programmi/pd/src -Wall -W -g -DPD -DVERSION='0.0' - 
>>> mms-bitfields -O
>>> 3 -funroll-loops -fomit-frame-pointer
>>> LDFLAGS:  -s -shared -Wl,--enable-auto-import
>>> LIBS:  -L/c/Programmi/pd/src/ -L/c/Programmi/pd/bin/ -lpd - 
>>> lwsock32 -lkernel32 -
>>> luser32 -lgdi32
>>> PD_INCLUDE: /c/Programmi/pd/include
>>> PD_PATH: /c/Programmi/pd
>>> objectsdir: /usr/local/lib/pd-externals
>>> LIBRARY_NAME: mycobject
>>> LIBRARY_VERSION: 0.0
>>> SOURCES: mycobject.c
>>> PDOBJECTS: mypdobject.pd
>>> ALLSOURCES: mycobject.c
>>> UNAME: MINGW32_NT-5.1
>>> CPU: i686
>>> pkglibdir: /usr/local/lib/pd-externals
>>> DISTDIR: mycobject-0.0
>>> ORIGDIR: pd-mycobject_0.0
>>>
>>> Pag at XP-PAG /c/dev/c++/pd-externals/mycobject
>>> $
>>>
>>> hope this helps.
>>>
>>> ciao
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Jul 15, 2011 at 5:22 PM, Hans-Christoph Steiner <hans at at.or.at 
>>> > wrote:
>>>
>>> Ok, I checked in the CC=gcc for MinGW.  For the other two issues,  
>>> unfortunately its more complicated:
>>>
>>> On Jul 15, 2011, at 5:06 AM, luca paganotti wrote:
>>>
>>>> mycobject.dll is created by eclipse at the price of defining:
>>>>
>>>> CFLAGS = -I"C:/Programmi/pd/src" -Wall -W -g in place of CFLAGS =  
>>>> -I"$(PD_INCLUDE)/pd" -Wall -W -g
>>>
>>> The header arrangement has changed in 0.43, so now all of the  
>>> headers are included in $(PD_INCLUDE)/pd.  We haven't quite  
>>> figured out how to handle that everywhere yet tho...
>>>
>>>> PD_PATH = c:/programmi/pd in place of PD_PATH = $(shell cd "$ 
>>>> (PROGRAMFILES)"/pd && pwd)
>>>
>>> This little script to set PD_PATH works for me on my MinGW setup.   
>>> Can you put the old PD_PATH line back in the Makefile and run  
>>> 'make showsetup' and send me the result?  You should see what its  
>>> setting PD_PATH to.  I'd like to get that working automatically.
>>>
>>> .hc
>>>
>>>>
>>>> and declaring CC = gcc
>>>>
>>>>
>>>>
>>>>
>>>> Perhaps Eclipse sets CFLAGS or LDFLAGS, which is overriding  
>>>> things in
>>>> the Makefile?
>>>>
>>>> About this template, it is oriented around making libraries, so  
>>>> that
>>>> includes the meta file for marking the folder as a library.   
>>>> Setting it
>>>> up is simple:
>>>>
>>>> - rename the template folder to the name of your library
>>>> - rename template-meta.pd replacing 'template' with the name you  
>>>> just
>>>> used for the folder
>>>> - edit Makefile and put the library/folder/meta name in the first
>>>> variable, LIBRARY_NAME
>>>>
>>>> Now you can set library meta data in the meta file, things like  
>>>> version,
>>>> authors, etc.
>>>>
>>>> .hc
>>>>
>>>
>>>
>>>
>>> ----------------------------------------------------------------------------
>>>
>>> Terrorism is not an enemy.  It cannot be defeated.  It's a  
>>> tactic.  It's about as sensible to say we declare war on night  
>>> attacks and expect we're going to win that war.  We're not going  
>>> to win the war on terrorism.        - retired U.S. Army general,  
>>> William Odom
>>>
>>>
>>>
>>
>>
>>
>> ----------------------------------------------------------------------------
>>
>> "Making boring techno music is really easy with modern tools, but  
>> with live coding, boring techno is much harder." - Chris McCormick
>>
>>
>>
>>
>>
>
>
>
> ----------------------------------------------------------------------------
>
> As we enjoy great advantages from inventions of others, we should be  
> glad of an opportunity to serve others by any invention of ours; and  
> this we should do freely and generously.         - Benjamin Franklin
>
>
>



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

                   ¡El pueblo unido jamás será vencido!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20110726/bbec61a1/attachment-0001.htm>


More information about the Pd-list mailing list