[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