Hi Hans, IOhannes
I'm trying to put iemnet into Pd-extended and adapted the externals/Makefile accordingly, after I tested it here on my Ubuntu machine. One day later, Pd-extended builds succeeded only on Linuxes, but failed on OS X and Windows (where I haven't tested it).
The reasons seem to be different, though.
Excerpt from Windows build log:
<windowslog>------------------------------------------------------ make -C /home/pd/auto-build/pd-extended/externals/iem/iemnet CFLAGS="-DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)'" \ PD_PATH=/home/pd/auto-build/pd-extended/pd PD_INCLUDE=/home/pd/auto-build/pd-extended/pd/src make[3]: Entering directory `/home/pd/auto-build/pd-extended/externals/iem/iemnet' gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "tcpserver.o" -c "tcpserver.c" In file included from tcpserver.c:30:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' tcpserver.c: In function 'tcpserver_fixindex': tcpserver.c:149:7: warning: format '%d' expects type 'int', but argument 5 has type 't_int' tcpserver.c: In function 'tcpserver_send_client': tcpserver.c:285:61: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_broadcast': tcpserver.c:308:59: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_broadcastbut': tcpserver.c:328:18: warning: unused variable 'chunk' tcpserver.c:325:7: warning: unused variable 'client' tcpserver.c:323:62: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_defaulttarget': tcpserver.c:358:5: warning: format '%d' expects type 'int', but argument 4 has type 't_int' tcpserver.c: In function 'tcpserver_send_socket': tcpserver.c:380:61: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_connectpoll': tcpserver.c:490:63: warning: pointer targets in passing argument 3 of 'accept' differ in signedness c:\mingw\bin../lib/gcc/mingw32/4.5.2/../../../../include/winsock2.h:536:35: note: expected 'int *' but argument is of type 'unsigned int *' tcpserver.c: At top level: tcpserver.c:323:13: warning: 'tcpserver_broadcastbut' defined but not used gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet.o" -c "iemnet.c" In file included from iemnet.c:25:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' iemnet.c: In function 'iemnet_debuglevel': iemnet.c:137:29: warning: unused parameter 'x' iemnet.c: At top level: iemnet.h:255:13: warning: 'debug_dummy' defined but not used gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet_data.o" -c "iemnet_data.c" In file included from iemnet_data.c:28:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet_receiver.o" -c "iemnet_receiver.c" In file included from iemnet_receiver.c:28:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' iemnet_receiver.c: In function 'iemnet__receiver_readthread': iemnet_receiver.c:114:3: warning: comparison between signed and unsigned integer expressions iemnet_receiver.c:136:17: error: 'MSG_DONTWAIT' undeclared (first use in this function) iemnet_receiver.c:136:17: note: each undeclared identifier is reported only once for each function it appears in iemnet_receiver.c:146:63: warning: pointer targets in passing argument 2 of 'recvfrom' differ in signedness c:\mingw\bin../lib/gcc/mingw32/4.5.2/../../../../include/winsock2.h:548:32: note: expected 'char *' but argument is of type 'unsigned char *' make[3]: *** [iemnet_receiver.o] Error 1 make[3]: Leaving directory `/home/pd/auto-build/pd-extended/externals/iem/iemnet' make[2]: *** [iemnet] Error 2 make[2]: Leaving directory `/home/pd/auto-build/pd-extended/externals' make[1]: *** [externals_install] Error 2 make[1]: Leaving directory `/home/pd/auto-build/pd-extended/packages' make: *** [prebuilt_install] Error 2 </windowslog>------------------------------------------------------------------
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
From the OS X log:
<maclog>----------------------------------------------------------------------- make -C /Users/pd/auto-build/pd-extended/externals/iem/iemnet CFLAGS="-DPD -DHAVE_G_CANVAS_H -I/Users/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/Users/pd/auto-build/pd-extended/externals/Gem -I/sw/include -I/Users/pd/auto-build/pd-extended/externals/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN" \ PD_PATH=/Users/pd/auto-build/pd-extended/pd PD_INCLUDE=/Users/pd/auto-build/pd-extended/pd/src cc -I"/Users/pd/auto-build/pd-extended/pd/src/pd" -I"/Users/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -fPIC -I/sw/include -I/Applications/Pd-extended.app/Contents/Resources/include -DPD -DHAVE_G_CANVAS_H -I/Users/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/Users/pd/auto-build/pd-extended/externals/Gem -I/sw/include -I/Users/pd/auto-build/pd-extended/externals/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN -o "tcpserver.o" -c "tcpserver.c" cc1: error: /Users/pd/auto-build/pd-extended/pd/src/pd: not a directory make[3]: *** [tcpserver.o] Error 1 make[2]: *** [iemnet] Error 2 make[1]: *** [externals_install] Error 2 make: *** [extended_install] Error 2 </maclog>-----------------------------------------------------------------------
The problem here seems to be that the Pd build directory was not clean and thus there is still the pd binary lying around. Since the iemnet Makefile defines ALL_CFLAGS as:
ALL_CFLAGS = -I"$(PD_INCLUDE)/pd" -I"$(PD_INCLUDE)"
where the former is there to make it find Pd headers also in the pd directory (since Pd 0.43), it stumbles across the binary pd files in the src directory and complains that it is not a directory.
What is the best solution here? Cleaning the pd/src directory before building the externals? Including the headers from the install location instead of the source location? Removing '-I"$(PD_INCLUDE)/pd"' from ALL_CFLAGS (which actually should stay there for future Pd versions)?
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
Roman
Martin's 'net' library builds on all platforms, so you could check there for differences. On Ubuntu, 'meld' is an awesome GUI tool for seeing the differences between versions of a file. 'opendiff' aka FileMerge is a similarly awesome tool on Mac OS X.
.hc
On Oct 28, 2011, at 3:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I'm trying to put iemnet into Pd-extended and adapted the externals/Makefile accordingly, after I tested it here on my Ubuntu machine. One day later, Pd-extended builds succeeded only on Linuxes, but failed on OS X and Windows (where I haven't tested it).
The reasons seem to be different, though.
Excerpt from Windows build log:
<windowslog>------------------------------------------------------ make -C /home/pd/auto-build/pd-extended/externals/iem/iemnet CFLAGS="-DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)'" \ PD_PATH=/home/pd/auto-build/pd-extended/pd PD_INCLUDE=/home/pd/auto-build/pd-extended/pd/src make[3]: Entering directory `/home/pd/auto-build/pd-extended/externals/iem/iemnet' gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "tcpserver.o" -c "tcpserver.c" In file included from tcpserver.c:30:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' tcpserver.c: In function 'tcpserver_fixindex': tcpserver.c:149:7: warning: format '%d' expects type 'int', but argument 5 has type 't_int' tcpserver.c: In function 'tcpserver_send_client': tcpserver.c:285:61: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_broadcast': tcpserver.c:308:59: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_broadcastbut': tcpserver.c:328:18: warning: unused variable 'chunk' tcpserver.c:325:7: warning: unused variable 'client' tcpserver.c:323:62: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_defaulttarget': tcpserver.c:358:5: warning: format '%d' expects type 'int', but argument 4 has type 't_int' tcpserver.c: In function 'tcpserver_send_socket': tcpserver.c:380:61: warning: unused parameter 's' tcpserver.c: In function 'tcpserver_connectpoll': tcpserver.c:490:63: warning: pointer targets in passing argument 3 of 'accept' differ in signedness c:\mingw\bin../lib/gcc/mingw32/4.5.2/../../../../include/winsock2.h:536:35: note: expected 'int *' but argument is of type 'unsigned int *' tcpserver.c: At top level: tcpserver.c:323:13: warning: 'tcpserver_broadcastbut' defined but not used gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet.o" -c "iemnet.c" In file included from iemnet.c:25:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' iemnet.c: In function 'iemnet_debuglevel': iemnet.c:137:29: warning: unused parameter 'x' iemnet.c: At top level: iemnet.h:255:13: warning: 'debug_dummy' defined but not used gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet_data.o" -c "iemnet_data.c" In file included from iemnet_data.c:28:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' gcc -I"/home/pd/auto-build/pd-extended/pd/src/pd" -I"/home/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -mms-bitfields -D'O_NONBLOCK=1' -DPD -DHAVE_G_CANVAS_H -I/home/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/home/pd/auto-build/pd-extended/externals/Gem -mms-bitfields -DMSW -DNT -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)' -o "iemnet_receiver.o" -c "iemnet_receiver.c" In file included from iemnet_receiver.c:28:0: iemnet.h: In function 'debug_dummy': iemnet.h:255:37: warning: unused parameter 'format' iemnet_receiver.c: In function 'iemnet__receiver_readthread': iemnet_receiver.c:114:3: warning: comparison between signed and unsigned integer expressions iemnet_receiver.c:136:17: error: 'MSG_DONTWAIT' undeclared (first use in this function) iemnet_receiver.c:136:17: note: each undeclared identifier is reported only once for each function it appears in iemnet_receiver.c:146:63: warning: pointer targets in passing argument 2 of 'recvfrom' differ in signedness c:\mingw\bin../lib/gcc/mingw32/4.5.2/../../../../include/winsock2.h:548:32: note: expected 'char *' but argument is of type 'unsigned char *' make[3]: *** [iemnet_receiver.o] Error 1 make[3]: Leaving directory `/home/pd/auto-build/pd-extended/externals/iem/iemnet' make[2]: *** [iemnet] Error 2 make[2]: Leaving directory `/home/pd/auto-build/pd-extended/externals' make[1]: *** [externals_install] Error 2 make[1]: Leaving directory `/home/pd/auto-build/pd-extended/packages' make: *** [prebuilt_install] Error 2 </windowslog>------------------------------------------------------------------
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
From the OS X log:
<maclog>----------------------------------------------------------------------- make -C /Users/pd/auto-build/pd-extended/externals/iem/iemnet CFLAGS="-DPD -DHAVE_G_CANVAS_H -I/Users/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/Users/pd/auto-build/pd-extended/externals/Gem -I/sw/include -I/Users/pd/auto-build/pd-extended/externals/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN" \ PD_PATH=/Users/pd/auto-build/pd-extended/pd PD_INCLUDE=/Users/pd/auto-build/pd-extended/pd/src cc -I"/Users/pd/auto-build/pd-extended/pd/src/pd" -I"/Users/pd/auto-build/pd-extended/pd/src" -DPD -DVERSION='"0.1"' -fPIC -I/sw/include -I/Applications/Pd-extended.app/Contents/Resources/include -DPD -DHAVE_G_CANVAS_H -I/Users/pd/auto-build/pd-extended/pd/src -Wall -W -ggdb -I/Users/pd/auto-build/pd-extended/externals/Gem -I/sw/include -I/Users/pd/auto-build/pd-extended/externals/pdp/include -DMACOSX -DUNIX -Dunix -DDL_OPEN -o "tcpserver.o" -c "tcpserver.c" cc1: error: /Users/pd/auto-build/pd-extended/pd/src/pd: not a directory make[3]: *** [tcpserver.o] Error 1 make[2]: *** [iemnet] Error 2 make[1]: *** [externals_install] Error 2 make: *** [extended_install] Error 2 </maclog>-----------------------------------------------------------------------
The problem here seems to be that the Pd build directory was not clean and thus there is still the pd binary lying around. Since the iemnet Makefile defines ALL_CFLAGS as:
ALL_CFLAGS = -I"$(PD_INCLUDE)/pd" -I"$(PD_INCLUDE)"
where the former is there to make it find Pd headers also in the pd directory (since Pd 0.43), it stumbles across the binary pd files in the src directory and complains that it is not a directory.
What is the best solution here? Cleaning the pd/src directory before building the externals? Including the headers from the install location instead of the source location? Removing '-I"$(PD_INCLUDE)/pd"' from ALL_CFLAGS (which actually should stay there for future Pd versions)?
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
Roman
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
I spent 33 years and four months in active military service and during that period I spent most of my time as a high class muscle man for Big Business, for Wall Street and the bankers. - General Smedley Butler
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
hmm, i think the problem is a stupid error-checking condition in gcc, that guarantuess that you only specify "directories" as "include directories". i have never seen this on linux, so it might be an osx specific "feature".
a simple fix would be to remove the '-I"$(PD_INCLUDE)/pd"' stanza. i'm a bit reluctant to commit this, as i would first like to understand why the compiler thinks it an error when specifying an include-directory that is a file (but not, if you specify an include-directory that is non-existant)
fgmadrs IOhannes
On Sat, 2011-10-29 at 09:05 +0200, IOhannes m zmölnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Thanks.
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
hmm, i think the problem is a stupid error-checking condition in gcc, that guarantuess that you only specify "directories" as "include directories". i have never seen this on linux, so it might be an osx specific "feature".
FYI: It happens also on Linux, if you didn't 'make clean' in the pd sources before.
a simple fix would be to remove the '-I"$(PD_INCLUDE)/pd"' stanza. i'm a bit reluctant to commit this, as i would first like to understand why the compiler thinks it an error when specifying an include-directory that is a file (but not, if you specify an include-directory that is non-existant)
I'm afraid I also do not understand why this considered an error. A work-around would be to check if src/pd is a file or a directory and only add '-I"$(PD_INCLUDE)/pd"' if it really is a directory.
Roman
Roman
On Oct 29, 2011, at 4:08 AM, Roman Haefeli wrote:
On Sat, 2011-10-29 at 09:05 +0200, IOhannes m zmölnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Thanks.
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
hmm, i think the problem is a stupid error-checking condition in gcc, that guarantuess that you only specify "directories" as "include directories". i have never seen this on linux, so it might be an osx specific "feature".
FYI: It happens also on Linux, if you didn't 'make clean' in the pd sources before.
a simple fix would be to remove the '-I"$(PD_INCLUDE)/pd"' stanza. i'm a bit reluctant to commit this, as i would first like to understand why the compiler thinks it an error when specifying an include-directory that is a file (but not, if you specify an include-directory that is non-existant)
I'm afraid I also do not understand why this considered an error. A work-around would be to check if src/pd is a file or a directory and only add '-I"$(PD_INCLUDE)/pd"' if it really is a directory.
The newest library template version handles this much better. I think its something that IOhannes worked out with the PD_INCLUDE var pointing directly to the dir that actually has the headers, and PD_PATH pointing to the root of the Pd tree. The default include statement is now -I$(PD_INCLUDE) so its easily overrideable.
.hc
----------------------------------------------------------------------------
Computer science is no more related to the computer than astronomy is related to the telescope. -Edsger Dykstra
On Sat, 2011-10-29 at 10:37 -0400, Hans-Christoph Steiner wrote:
On Oct 29, 2011, at 4:08 AM, Roman Haefeli wrote:
On Sat, 2011-10-29 at 09:05 +0200, IOhannes m zmölnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Thanks.
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
hmm, i think the problem is a stupid error-checking condition in gcc, that guarantuess that you only specify "directories" as "include directories". i have never seen this on linux, so it might be an osx specific "feature".
FYI: It happens also on Linux, if you didn't 'make clean' in the pd sources before.
a simple fix would be to remove the '-I"$(PD_INCLUDE)/pd"' stanza. i'm a bit reluctant to commit this, as i would first like to understand why the compiler thinks it an error when specifying an include-directory that is a file (but not, if you specify an include-directory that is non-existant)
I'm afraid I also do not understand why this considered an error. A work-around would be to check if src/pd is a file or a directory and only add '-I"$(PD_INCLUDE)/pd"' if it really is a directory.
The newest library template version handles this much better. I think its something that IOhannes worked out with the PD_INCLUDE var pointing directly to the dir that actually has the headers, and PD_PATH pointing to the root of the Pd tree. The default include statement is now -I$(PD_INCLUDE) so its easily overrideable.
Just for the record: Both errors were not related to iemnet's Makefile being based on an old version of the template.
The OS X error is (hopefully) fixed now, because IOhannes removed '-I"$(PD_INCLUDE)/pd"' from ALL_CFLAGS (which was also not part of the older template version).
The windows error wasn't related to the Makefile at all.
Anyway, it's good it's based on a current template now.
Roman
On Oct 29, 2011, at 1:40 PM, Roman Haefeli wrote:
On Sat, 2011-10-29 at 10:37 -0400, Hans-Christoph Steiner wrote:
On Oct 29, 2011, at 4:08 AM, Roman Haefeli wrote:
On Sat, 2011-10-29 at 09:05 +0200, IOhannes m zmölnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Thanks.
Altough I had the same error once on Linux (I didn't do 'make clean'), it doesn't happen in the Linux autobuilds, probably because the pd/src directory is clean at the time of externals build.
Hints/help is appreciated.
hmm, i think the problem is a stupid error-checking condition in gcc, that guarantuess that you only specify "directories" as "include directories". i have never seen this on linux, so it might be an osx specific "feature".
FYI: It happens also on Linux, if you didn't 'make clean' in the pd sources before.
a simple fix would be to remove the '-I"$(PD_INCLUDE)/pd"' stanza. i'm a bit reluctant to commit this, as i would first like to understand why the compiler thinks it an error when specifying an include-directory that is a file (but not, if you specify an include-directory that is non-existant)
I'm afraid I also do not understand why this considered an error. A work-around would be to check if src/pd is a file or a directory and only add '-I"$(PD_INCLUDE)/pd"' if it really is a directory.
The newest library template version handles this much better. I think its something that IOhannes worked out with the PD_INCLUDE var pointing directly to the dir that actually has the headers, and PD_PATH pointing to the root of the Pd tree. The default include statement is now -I$(PD_INCLUDE) so its easily overrideable.
Just for the record: Both errors were not related to iemnet's Makefile being based on an old version of the template.
The OS X error is (hopefully) fixed now, because IOhannes removed '-I"$(PD_INCLUDE)/pd"' from ALL_CFLAGS (which was also not part of the older template version).
The windows error wasn't related to the Makefile at all.
Anyway, it's good it's based on a current template now.
Roman
Anything related to '-I"$(PD_INCLUDE)/pd"' is related to the Makefile template. That is something that IOhannes and I and others had to hash out and test to make sure it works everywhere. Now it does, as far as I know.
.hc
----------------------------------------------------------------------------
'You people have such restrictive dress for women,’ she said, hobbling away in three inch heels and panty hose to finish out another pink-collar temp pool day. - “Hijab Scene #2", by Mohja Kahf
Hi IOhannes
On Sat, 2011-10-29 at 09:05 +0200, IOhannes m zmölnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/28/2011 09:58 PM, Roman Haefeli wrote:
Hi Hans, IOhannes
I don't have a clue what MSG_DONTWAIT is. I think I need some help (from IOhannes?) to get this one fixed.
it's a (linux-specific?) extensions for non-blocking socket receivers. the problem should be fixed now (by only using MSG_DONTWAIT if it is available)
Building iemnet on the Windows build machine still failed: http://autobuild.puredata.info/auto-build/2011-10-30/logs/2011-10-30_03.31.0...
OS X seems OK now, thanks for fixing the Makefile. I'll test tomorrow if the externals really are functional.
Roman
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-30 20:03, Roman Haefeli wrote:
Building iemnet on the Windows build machine still failed: http://autobuild.puredata.info/auto-build/2011-10-30/logs/2011-10-30_03.31.0...
seems like the template/Makefile assumes that the "shared code" doesn't know anything about Pd.
i'd like to hear hans' opinion about this (e.g. why)
fgmasdr IOhannes
On Oct 31, 2011, at 4:59 AM, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-30 20:03, Roman Haefeli wrote:
Building iemnet on the Windows build machine still failed: http://autobuild.puredata.info/auto-build/2011-10-30/logs/2011-10-30_03.31.0...
seems like the template/Makefile assumes that the "shared code" doesn't know anything about Pd.
i'd like to hear hans' opinion about this (e.g. why)
Hmm, probably purely because the shared library is not linking against pd.dll. Perhaps there are issues with that many circular links in Windows. I know that Windows linking is testy, that's why there is a pd.exe which links to a pd.dll. Try linking the shared library to pd and see if it works.
.hc
----------------------------------------------------------------------------
There is no way to peace, peace is the way. -A.J. Muste
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-31 15:39, Hans-Christoph Steiner wrote:
On Oct 31, 2011, at 4:59 AM, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-30 20:03, Roman Haefeli wrote:
Building iemnet on the Windows build machine still failed: http://autobuild.puredata.info/auto-build/2011-10-30/logs/2011-10-30_03.31.0...
seems like the template/Makefile assumes that the "shared code" doesn't know anything about Pd.
i'd like to hear hans' opinion about this (e.g. why)
Hmm, probably purely because the shared library is not linking against pd.dll. Perhaps there are issues with that many circular links in Windows. I know that Windows linking is testy, that's why there is a pd.exe which links to a pd.dll. Try linking the shared library to pd and see if it works.
what i meant is, that the PD_INCLUDES do not get propagated to the SHARED_CFLAGS, hence the compiler cannot find headers like m_pd.h; once that is done, we will get to the linker problems.
but all there problems are solved for the external itself, so i wondered whether there is a reason to not apply those flags to the shared code.
fgmdas IOhannes
On Oct 31, 2011, at 10:46 AM, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-31 15:39, Hans-Christoph Steiner wrote:
On Oct 31, 2011, at 4:59 AM, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2011-10-30 20:03, Roman Haefeli wrote:
Building iemnet on the Windows build machine still failed: http://autobuild.puredata.info/auto-build/2011-10-30/logs/2011-10-30_03.31.0...
seems like the template/Makefile assumes that the "shared code" doesn't know anything about Pd.
i'd like to hear hans' opinion about this (e.g. why)
Hmm, probably purely because the shared library is not linking against pd.dll. Perhaps there are issues with that many circular links in Windows. I know that Windows linking is testy, that's why there is a pd.exe which links to a pd.dll. Try linking the shared library to pd and see if it works.
what i meant is, that the PD_INCLUDES do not get propagated to the SHARED_CFLAGS, hence the compiler cannot find headers like m_pd.h; once that is done, we will get to the linker problems.
but all there problems are solved for the external itself, so i wondered whether there is a reason to not apply those flags to the shared code.
I don't know either way, I haven't tried it. The shared code I was working with was very plain C. So you're the first to try it. We'll see how it goes. I am not opposed to including the possibility of the shared code linking to Pd if it doesn't break other things.
.hc
----------------------------------------------------------------------------
Programs should be written for people to read, and only incidentally for machines to execute. - from Structure and Interpretation of Computer Programs