[PD-dev] building iemnet on Windows and OS X

Hans-Christoph Steiner hans at at.or.at
Fri Oct 28 22:17:41 CEST 2011


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 at 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





More information about the Pd-dev mailing list