[pjsip] mac os, darwin build for xcode?

Kevin Packard kevinpackard at mac.com
Fri Apr 11 15:08:35 EDT 2008

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.

Kevin Packard

-------------- 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.zip>
-------------- next part --------------



An XCode project and scripts to edit, compile, and execute pjspua and  
its derivatives from within XCode


	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


	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.


	Open "osx/pjsua.xcodeproj".  This XCode project uses pjproject  
makefiles as an external build system, instead of XCode's internal  
project management.

		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)  

		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.


	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

More information about the pjsip mailing list