On Apr 11, 2008, at 8:03 AM, Benny Prijono wrote: > On Thu, Apr 10, 2008 at 7:56 PM, Kevin Packard > <kevinpackard at mac.com> wrote: >> I've put together an XCode project that uses the external build >> system. This means editing, compiling (using the external system), >> fixing errors, and debugging all occur within XCode. >> >> The only oddity is that a PERL script (courtesy of Alex Bligh & Xara >> Ltd) must be placed in each build directory to correct an XCode >> pathname bug. >> >> Note: this project works on Mac OS X only, and has not been adapted >> to >> the iPhone/iPodTouch platform. Yet. >> >> I can clean it up and send it if you're interested. > > I think that will be cool. If you have a small example on how to > integrate external build system with xcode you can send it to the list > (fyi there's a limit of 500KB email size on this list). The xcode > documentation says that we could create Makefile based project with > xcode 3, but somehow the option doesn't appear in my xcode. Attached. -- Kevin Packard http://www.blackfrog.com -------------- next part -------------- A non-text attachment was scrubbed... Name: pjproject-xcode.zip Type: application/zip Size: 127872 bytes Desc: not available Url : http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080411/e2c5c42a/attachment-0001.zip -------------- next part -------------- ======================================== README.txt: pjproject-XCode An XCode project and scripts to edit, compile, and execute pjspua and its derivatives from within XCode Contents: osx/pjsua.xcodeproj - contains the XCode project */build/xcodemake.pl - perl scripts that alter error and warning pathnames to compensate for an XCode bug, courtesy of Alex Bligh & Xara Ltd Install: This directory overlays the pjproject directory. Build and execute: Open "osx/pjsua.xcodeproj" Select the first target "configure" and click Build Select the second target "make dep" and click Build Select the third target "pjsua" and click Build and Go. Notes: Open "osx/pjsua.xcodeproj". This XCode project uses pjproject makefiles as an external build system, instead of XCode's internal project management. Targets: in the XCode project, the first two targets are "configure", and "make dep" and "pjsua". The third target, "pjsua", builds and executes pjsua-i386-apple- darwin9.2.2. Because XCode has a bug processing pathnames in error and warnings output, this target routes the build through a PERL script which corrects pathnames so that XCode correctly displays the offending file and line. Furthermore, because each different subproject must have pathnames corrected, the "pjsua" target depends on eight more targets, one for each subproject ("pjproject", "pjlib", etc.). Normally, there's no need to build these sub-projects. Simply Build (or Build and Go) "pjsua". Executables: By default, "pjsua" is set up to execute the "pjsip-apps/bin/pjsua- i386-apple-darwin9.2.2" with no arguments. Arguments can be changed by double-clicking Executables.pjsua-i386-apple-darwin9.2.2 in the XCode project. A different executable can be added by right-clicking "Executables" and choosing New -> New Custom Executable. Files & Groups: in the XCode project, "pjsua/" contains pjproject files. Because we're using an external build system, these files are totally arbitrary, and are only included for the sake of convenience. When files are removed/added to SVN, this group should be updated, so that Find In Project (and SVN if using XCode's SVN) continue to work. Active Build Configuration: Only the Debug configuration has been tested. Caveats: This project only builds a binary for Mac OS X. It's definitely possible to build for other OS X platforms like the jailbroken iPhone, or the official iPhone/iPod SDK: please refer the Apple's documentation. The executable suffex (currently 9.2.2) will change from time to time. When it does change, you will have to change the Executable flle of the pjsua target. Right-clicking "Executables" and choosing New -> New Custom Executable. It's also a good idea to do a clean checkout and/or otherwise get rid of all your older .o files. -- Kevin Packard http://www.blackfrog.com