I have a C program which uses ASL library to get the logs of apps on the iPhone. Now, i have compiled this on Mac and it runs fine, fetching the logs of the apps on mac.. When i scp the compiled file to iPhone and try executing it, it says 'bad cpu type in executable'. So, i installed GNU C Compiler on the iPhone and compiled it.. now, when i compile it, it shows errors like this:
cP-iphone:~ root# gcc test.c
test.c:1:19: error: stdio.h: No such file or directory
test.c:2:17: error: asl.h: No such file or directory
test.c: In function 'main':
test.c:5: warning: incompatible implicit declaration of built-in function 'printf'
test.c:16: error: 'aslmsg' undeclared (first use in this function)
test.c:16: error: (Each undeclared identifier is reported only once
test.c:16: error: for each function it appears in.)
test.c:16: error: expected ';' before 'q'
test.c:21: error: 'q' undeclared (first use in this function)
test.c:21: error: 'ASL_TYPE_QUERY' undeclared (first use in this function)
test.c:22: error: 'ASL_KEY_SENDER' undeclared (first use in this function)
test.c:22: error: 'ASL_QUERY_OP_EQUAL' undeclared (first use in this function)
test.c:23: error: 'aslresponse' undeclared (first use in this function)
test.c:23: error: expected ';' before 'r'
test.c:24: error: 'NULL' undeclared (first use in this function)
test.c:24: error: 'm' undeclared (first use in this function)
test.c:24: error: 'r' undeclared (first use in this function)
test.c:27: warning: assignment makes pointer from integer without a cast
test.c:30: warning: assignment makes pointer from integer without a cast
Please suggest what i need to do in order to get a c file compiled and run on the iPhone.
on the simulator, and on the mac, you can run i386 code. But you can't on the real device as it's a different processor.
you have to compile your code as a static library targeting the iOS SDK from XCode. the commandline option for xcodebuild is -target iphoneos -arch armv7
On the command-line, this will compile an unsigned universal executable for iOS:
(So it will only execute on a real device that has been jailbroken, or launched somehow from a signed app (probably using calls that wouldn't be allowed in the IAS).)
clang -isysroot "$(xcode-select -p)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" \
-arch armv7 \
-arch armv7s \
-arch arm64 \
-mios-version-min=5.0 \
foo.c -o foo
Given foo.c:
#include <stdio.h>
int main(void){printf("Hello, world!\n");return(0);}
Next, scp it to your JB'ed device (scp foo mobile#name_of_iphone.local:.):
MBF:~ mobile$ ./foo
Hello, world!
MBF:~ mobile$ rm foo
MBF:~ mobile$ ^D # logout
But you probably want to turn this into a trivial wrapper script like so, or use xcodebuild infrastructure instead:
~/bin/clang_ios
#!/bin/sh
set -e
exec clang -isysroot "$(xcode-select -p)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" \
-arch armv7 \
-arch armv7s \
-arch arm64 \
-mios-version-min=5.0 \
"$#"
Credit
Other answers and http://clang-developers.42468.n3.nabble.com/targeting-iOS-tp4028940p4028942.html
Related
I tried to create an OpenModelica model with liquid flow and Media.
And I have a function in Matlab that calculates the PDE (partial differential equation) in pdetool.
I would like to create a shared dynamic library (.so file) in Matlab by MCR and load it in the model.
My platform: OpenModelica used on Linux or Mac OS. MCR on Linux and Mac OS installed.
In Matlab I can generate only DLL (may be it's possible to generate libmyfunc.so?).
When I try to compile the model with extern C function I got an error:
#omc +s test_matlab_so.mo func_mathlab.mo
#make -f test_matlab_so.makefile
/usr/bin/clang -Wimplicit-function-declaration -O0 -falign-functions -march=native -I"/opt/openmodelica/include/omc/c" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -c -o test_matlab_so_functions.o test_matlab_so_functions.c
clang: warning: optimization flag '-falign-functions' is not supported
clang: warning: argument unused during compilation: '-falign-functions'
In file included from test_matlab_so_functions.c:7:
In file included from ./test_matlab_so_includes.h:4:
./shared_train/src/lib_summ.c:90:8: warning: implicit declaration of function 'GetModuleFileName' is invalid in C99 [-Wimplicit-function-declaration]
if (!GetModuleFileName(GetModuleHandle("lib_summ"), path_to_dll, _MAX_PATH))
^
./shared_train/src/lib_summ.c:90:26: warning: implicit declaration of function 'GetModuleHandle' is invalid in C99 [-Wimplicit-function-declaration]
if (!GetModuleFileName(GetModuleHandle("lib_summ"), path_to_dll, _MAX_PATH))
^
./shared_train/src/lib_summ.c:90:55: error: use of undeclared identifier 'path_to_dll'
if (!GetModuleFileName(GetModuleHandle("lib_summ"), path_to_dll, _MAX_PATH))
^
./shared_train/src/lib_summ.c:90:68: error: use of undeclared identifier '_MAX_PATH'
if (!GetModuleFileName(GetModuleHandle("lib_summ"), path_to_dll, _MAX_PATH))
^
./shared_train/src/lib_summ.c:94:37: error: use of undeclared identifier 'path_to_dll'
mclGetEmbeddedCtfStream(path_to_dll);
^
test_matlab_so_functions.c:19:16: warning: implicit declaration of function '_mlfSumm' is invalid in C99 [-Wimplicit-function-declaration]
_v_out_ext = _mlfSumm(_v_a_ext, _v_b_ext);
^
3 warnings and 3 errors generated.
make: *** [test_matlab_so_functions.o] Error 1
Can someone help me with integrating OpenModelica and Matlab?
I don't have much experience with Linux but I did the same thing in Windows using MCR. Check this out:
http://de.mathworks.com/matlabcentral/answers/94471-how-do-i-create-a-c-c-shared-library-with-matlab-compiler-that-can-be-used-in-a-microsoft-visual-c
When you do this, you will get a DLL as well as a static library. You need to copy both of them into the folder that your modelica code is located at and then set the library in the "Library" attibute of your modelica function which calls the external function.
Keep in mind that if you are using a 64 or 32 bit dymola, you are supposed to create the DLL using the same version of matlab correspondingly.
I'm trying to do face detection on perl, and I found out about OpenCV and the perl module Image::ObjectDetect on CPAN here and here. I've done a clean install of CentOS 6.5 (minimal) on a virtual machine to test this, and then:
yum -y update
yum -y install perl cpan opencv
Ok, and considering I never user cpan before, I tried the obvious (after some short google searches)
perl -MCPAN -e shell
[accept default]
install Image::ObjectDetect
that gave me some errors:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
After googling about that error, I did:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
mkdir /usr/local/lib/pkgconfig
vi /usr/local/lib/pkgconfig/opencv.pc
the content of the file:
prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version: 2.x.x
Cflags: -I${includedir}/opencv -I${includedir}/opencv2
Libs: -L${libdir} -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy -l
After I ran the install again, I noticed I was missing gcc:
/bin/sh: gcc: command not found
yum -y install gcc
Running the install again now gives me:
...
Note (probably harmless): No library found for -lopencv_calib3d
Note (probably harmless): No library found for -lopencv_imgproc
Note (probably harmless): No library found for -lopencv_contrib
Note (probably harmless): No library found for -lopencv_legacy
Note (probably harmless): No library found for -l
Writing Makefile for Image::ObjectDetect
Could not read '/root/.cpan/build/Image-ObjectDetect-0.12-BsNNjF/META.yml'. Falling back to other methods to determine prerequisites
cp lib/Image/ObjectDetect.pm blib/lib/Image/ObjectDetect.pm
cp lib/Image/ObjectDetect.xs blib/lib/Image/ObjectDetect.xs
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap ObjectDetect.xs > ObjectDetect.xsc && mv ObjectDetect.xsc ObjectDetect.c
gcc -c -I/usr/include/opencv -I/usr/include/opencv2 -Isrc -I/usr/include/opencv -I/usr/include/opencv2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -DVERSION=\"0.12\" -DXS_VERSION=\"0.12\" -fPIC "-I/usr/lib/perl5/CORE" ObjectDetect.c
In file included from ObjectDetect.xs:7:
/usr/lib/perl5/CORE/cv.h:13: error: redefinition of ‘struct xpvcv’
/usr/lib/perl5/CORE/cv.h:94: error: conflicting types for ‘xpvcv_allocated’
/usr/lib/perl5/CORE/cv.h:94: note: previous declaration of ‘xpvcv_allocated’ was here
ObjectDetect.xs:8:21: error: highgui.h: No such file or directory
ObjectDetect.xs: In function ‘XS_Image__ObjectDetect_new’:
ObjectDetect.xs:19: error: ‘CvHaarClassifierCascade’ undeclared (first use in this function)
ObjectDetect.xs:19: error: (Each undeclared identifier is reported only once
ObjectDetect.xs:19: error: for each function it appears in.)
ObjectDetect.xs:19: error: ‘cascade’ undeclared (first use in this function)
ObjectDetect.xs:22: warning: implicit declaration of function ‘cvLoad’
ObjectDetect.xs: In function ‘XS_Image__ObjectDetect_xs_detect’:
ObjectDetect.xs:37: error: ‘IplImage’ undeclared (first use in this function)
ObjectDetect.xs:37: error: ‘img’ undeclared (first use in this function)
ObjectDetect.xs:37: error: ‘gray’ undeclared (first use in this function)
ObjectDetect.xs:37: warning: left-hand operand of comma expression has no effect
ObjectDetect.xs:39: error: ‘CvMemStorage’ undeclared (first use in this function)
ObjectDetect.xs:39: error: ‘storage’ undeclared (first use in this function)
ObjectDetect.xs:40: error: ‘CvHaarClassifierCascade’ undeclared (first use in this function)
ObjectDetect.xs:40: error: ‘cascade’ undeclared (first use in this function)
ObjectDetect.xs:41: error: ‘CvSeq’ undeclared (first use in this function)
ObjectDetect.xs:41: error: ‘objects’ undeclared (first use in this function)
ObjectDetect.xs:42: error: ‘CvRect’ undeclared (first use in this function)
ObjectDetect.xs:42: error: ‘rect’ undeclared (first use in this function)
ObjectDetect.xs:46: warning: implicit declaration of function ‘cvLoadImage’
ObjectDetect.xs:50: warning: implicit declaration of function ‘cvCreateImage’
ObjectDetect.xs:50: warning: implicit declaration of function ‘cvSize’
ObjectDetect.xs:51: warning: implicit declaration of function ‘cvCvtColor’
ObjectDetect.xs:51: error: ‘CV_BGR2GRAY’ undeclared (first use in this function)
ObjectDetect.xs:52: warning: implicit declaration of function ‘cvEqualizeHist’
ObjectDetect.xs:54: warning: implicit declaration of function ‘cvCreateMemStorage’
ObjectDetect.xs:55: error: expected expression before ‘)’ token
ObjectDetect.xs:56: warning: implicit declaration of function ‘cvHaarDetectObjects’
ObjectDetect.xs:58: error: ‘CV_HAAR_DO_CANNY_PRUNING’ undeclared (first use in this function)
ObjectDetect.xs:65: error: expected expression before ‘)’ token
ObjectDetect.xs:74: warning: implicit declaration of function ‘cvReleaseMemStorage’
ObjectDetect.xs:75: warning: implicit declaration of function ‘cvReleaseImage’
ObjectDetect.xs: In function ‘XS_Image__ObjectDetect_DESTROY’:
ObjectDetect.xs:86: error: ‘CvHaarClassifierCascade’ undeclared (first use in this function)
ObjectDetect.xs:86: error: ‘cascade’ undeclared (first use in this function)
ObjectDetect.xs:88: error: expected expression before ‘)’ token
ObjectDetect.xs:89: warning: implicit declaration of function ‘cvReleaseHaarClassifierCascade’
make: *** [ObjectDetect.o] Error 1
JIRO/Image-ObjectDetect-0.12.tar.gz
/usr/bin/make -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store persistent state
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
JIRO/Image-ObjectDetect-0.12.tar.gz : make NO
Any help? Thanks.
Glad to see someone using OpenCV with Perl! I hope you can get it working and show us some nice asps and scripts :-)
You seem to be building from source and installing packages (with yum) - this sometimes complicates matters when it comes to dependencies. For example, you may have a version of OpenCV that is too new for the CPAN module. Image::ObjectDetect` is fairly old
(the last release was several years ago http://metacpan.org/pod/Image::ObjectDetect) whereas OpenCV is being actively developed.
Note this line:
ObjectDetect.xs:8:21: error: highgui.h: No such file or directory
I came across a similar error compiling applications that depend on OpenCV after a recent update. Either the header files were missing; the applications Makefiles did not know how to locate them; or other development libraries and headers in the chain of dependencies needed updating as well.
You may get better luck solving this by posting to the OpenCV development list where the error message may look more familiar.
See: http://groups.yahoo.com/neo/groups/OpenCV/info
You could try installing some other modules to see if it is perl, XS, gcc or your version of OpenCV that is at fault. Here's another module that uses OpenCV:
https://github.com/shisful/Image-OpenCV
I can not get Perl/Tk to install via CPAN on OS X Mountain Lion. It errors with an error in a file with which google does not help:
/Users/villadelfia/perl5/perlbrew/perls/perl-5.17.8/bin/perl5.17.8 /Users/villadelfia/perl5/perlbrew/perls/perl-5.17.8/lib/5.17.8/ExtUtils/xsubpp -typemap /Users/villadelfia/perl5/perlbrew/perls/perl-5.17.8/lib/5.17.8/ExtUtils/typemap -typemap /Users/villadelfia/Downloads/Tk-804.030/Tk/typemap IO.xs > IO.xsc && mv IO.xsc IO.c
Warning: Found a 'CODE' section which seems to be using 'RETVAL' but no 'OUTPUT' section. in IO.xs, line 235
cc -c -I.. -I/usr/X11R6/include -I/usr/local/include/freetype2 -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -O3 -DVERSION=\"804.03\" -DXS_VERSION=\"804.03\" "-I/Users/villadelfia/perl5/perlbrew/perls/perl-5.17.8/lib/5.17.8/darwin-2level/CORE" -Wall -Wno-implicit-int -Wno-comment -Wno-unused -D__USE_FIXED_PROTOTYPES__ IO.c
IO.xs:210:10: error: invalid argument type 'void' to unary expression
if (!SvUPGRADE(buf, SVt_PV))
^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [IO.o] Error 1
make: *** [subdirs] Error 2
As you can see, I run perlbrew as well.
Any ideas what could cause this?
From the 5.17.7 release notes:
SvUPGRADE() is no longer an expression. Originally this macro (and its
underlying function, sv_upgrade()) were documented as boolean, although
in reality they always croaked on error and never returned false. In 2005
the documentation was updated to specify a void return value, but
SvUPGRADE() was left always returning 1 for backwards compatibility. This
has now been removed, and SvUPGRADE() is now a statement with no return
value.
So this is now a syntax error:
if (!SvUPGRADE(sv)) { croak(...); }
If you have code like that, simply replace it with
SvUPGRADE(sv);
or to to avoid compiler warnings with older perls, possibly
(void)SvUPGRADE(sv);
It has already been reported.
When I try to install Net::SSL I get the following output. I don't understad it at all. Can anyone point me in the right direction, without getting to techy?
C:\Documents and Settings\Administrator>cpan
CPAN: File::HomeDir loaded ok (v0.69)
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support enabled
cpan> install Net::SSL
Database was generated on Tue, 14 Aug 2012 14:54:56 GMT
Running install for module 'Net::SSL'
Running make for N/NA/NANIS/Crypt-SSLeay-0.64.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\N\NA\NANIS\Crypt-SSLeay-0.64.
tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
............................................................................DONE
CPAN.pm: Going to build N/NA/NANIS/Crypt-SSLeay-0.64.tar.gz
The test suite can attempt to connect to public servers to ensure that the
code is working properly. If you are behind a strict firewall or have no
network connectivity, these tests may fail (through no fault of the code).
Do you want to run the live tests (y/N)? [N]
WARNING: BUILD_REQUIRES is not a known parameter.
Checking if your kit is complete...
Looks good
Warning: prerequisite LWP::Protocol::https 6.02 not found.
'BUILD_REQUIRES' is not a known MakeMaker parameter name.
Writing Makefile for Crypt::SSLeay
cp lib/Crypt/SSLeay/X509.pm blib\lib\Crypt\SSLeay\X509.pm
cp lib/Net/SSL.pm blib\lib\Net\SSL.pm
cp SSLeay.pm blib\lib\Crypt\SSLeay.pm
cp lib/Crypt/SSLeay/Conn.pm blib\lib\Crypt\SSLeay\Conn.pm
cp lib/Crypt/SSLeay/CTX.pm blib\lib\Crypt\SSLeay\CTX.pm
cp lib/Crypt/SSLeay/MainContext.pm blib\lib\Crypt\SSLeay\MainContext.pm
cp lib/Crypt/SSLeay/Err.pm blib\lib\Crypt\SSLeay\Err.pm
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp -typemap
C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap SSLeay.xs > SSLeay.xs
c && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv SSLeay.xsc SSLeay
.c
gcc -c -IC:\strawberry\c\include -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_
IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX
-s -O2 -DVERSION=\"0.64\" -DXS_VERSION=\"0.64\" "-IC:\strawberry\perl\lib
\CORE" SSLeay.c
SSLeay.xs:35:25: openssl/ssl.h: No such file or directory
SSLeay.xs:36:28: openssl/crypto.h: No such file or directory
SSLeay.xs:37:25: openssl/err.h: No such file or directory
SSLeay.xs:38:26: openssl/rand.h: No such file or directory
SSLeay.xs:39:28: openssl/pkcs12.h: No such file or directory
SSLeay.xs:55: error: syntax error before '*' token
SSLeay.xs: In function `InfoCallback':
SSLeay.xs:60: error: `where' undeclared (first use in this function)
SSLeay.xs:60: error: (Each undeclared identifier is reported only once
SSLeay.xs:60: error: for each function it appears in.)
SSLeay.xs:60: error: `SSL_ST_MASK' undeclared (first use in this function)
SSLeay.xs:62: error: `SSL_ST_CONNECT' undeclared (first use in this function)
SSLeay.xs:64: error: `SSL_ST_ACCEPT' undeclared (first use in this function)
SSLeay.xs:69: error: `SSL_CB_LOOP' undeclared (first use in this function)
SSLeay.xs:70: error: `s' undeclared (first use in this function)
SSLeay.xs:72: error: `SSL_CB_ALERT' undeclared (first use in this function)
SSLeay.xs:73: error: `SSL_CB_READ' undeclared (first use in this function)
SSLeay.xs:75: error: `ret' undeclared (first use in this function)
SSLeay.xs:78: error: `SSL_CB_EXIT' undeclared (first use in this function)
SSLeay.c: In function `XS_Crypt__SSLeay__CTX_new':
SSLeay.c:146: error: `SSL_CTX' undeclared (first use in this function)
SSLeay.c: In function `XS_Crypt__SSLeay__CTX_use_pkcs12_file':
SSLeay.c:334: error: `SSL_CTX' undeclared (first use in this function)
SSLeay.c:334: error: `ctx' undeclared (first use in this function)
SSLeay.xs:188: error: `EVP_PKEY' undeclared (first use in this function)
SSLeay.xs:188: error: `pkey' undeclared (first use in this function)
SSLeay.c:421: error: `ctx' undeclared (first use in this function)
SSLeay.c:646: error: `ssl' undeclared (first use in this function)
SSLeay.c:658: error: syntax error before ')' token
LOTS OF LINES SIMILAR TO ABOVE
SSLeay.xs:505: error: invalid type argument of `->'
dmake.EXE: Error code 129, while making 'SSLeay.o'
NANIS/Crypt-SSLeay-0.64.tar.gz
C:\strawberry\c\bin\dmake.EXE -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
NANIS/Crypt-SSLeay-0.64.tar.gz : make NO
I had the same problem and, although I had the openSSL package installed, the development headers where not. I had to install the package libssl-dev. I used the Ubuntu Software Center to download and install the package. Alternately, you could use sudo apt-get install libssl-dev from the terminal command line.
That fixed my problem but is no real help to you working with windows. openSSL has a link to a binary for windows at: OpenSSL for Windows
The following lines suggest that you probably have not installed the OpenSSL library/headers or it is in a location not known to perl. Install it with the package manager of your operating system, or compile and install it.
>SSLeay.xs:35:25: openssl/ssl.h: No such file or directory
>SSLeay.xs:36:28: openssl/crypto.h: No such file or directory
>SSLeay.xs:37:25: openssl/err.h: No such file or directory
>SSLeay.xs:38:26: openssl/rand.h: No such file or directory
>SSLeay.xs:39:28: openssl/pkcs12.h: No such file or directory
After installing the library/headers, cpan should be able to make and install Net::SSL.
Generally CPAN takes care of this for you by installing all the dependent modules.
The problem you are facing is with this warning
WARNING: BUILD_REQUIRES is not a known parameter.
Now since CPAN is unable to read this parameter it is unable to get all the dependent modules for you and hence is unable to install.
The Problem may be with the perl-ExtUtils-MakeMaker module with comes with cpan utility.
You may want to install the latest version of cpan and try. Or as previously mentioned You may want to install all the modules after downloading them individually and then installing them manually.
First, I have got the problem like this:
mod_qos.c:83:26: error: openssl/rand.h: No such file or directory
mod_qos.c:84:25: error: openssl/evp.h: No such file or directory
Then I used the following:
apxs -I/usr/local/openssl/include/openssl -i -c mod_qos.c -lcrypto -lpcre
and it succeeded! Why?
I am trying to compile pjsip for iphone simulator and getting the error:
../include/pj/config_site_sample.h:322:1: warning: this is the location of the previous definition
../src/pj/activesock.c: In function ‘activesock_create_iphone_os_stream’:
../src/pj/activesock.c:146: error: ‘kCFStreamNetworkServiceType’ is unavailable (declared at /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFSocketStream.h:256)
../src/pj/activesock.c:147: error: ‘kCFStreamNetworkServiceTypeVoIP’ is unavailable (declared at /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFSocketStream.h:259)
Please help.
for the benefit of others: used the latest pjsip from trunk.
change the below line to i686 in configure_iphone
for archpath in `ls -d ${SDKPATH}/usr/lib/gcc/arm-apple-darwin*`; do
to
for archpath in `ls -d ${SDKPATH}/usr/lib/gcc/i686-apple-darwin*`; do
and create config_site.h (pjlib/include/pj) with below lines
#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>
make sure you have correct sdk and arch settings. I used the ones below.
export CFLAGS="-O2 -m32 -miphoneos-version-min=4.0" LDFLAGS="-O2 -m32"
export IPHONESDK=iPhoneSimulator4.2.sdk
export DEVPATH=/Developer/Platforms/iPhoneSimulator.platform/Developer
export ARCH="-arch i686"
Also it is weird that build/rules.mak has invalid spaces instead of tabs (check last few lines). replace the spaces with tabs and do
$ rm pjlib/build/.pjlib*
$ rm pjnath/build/.pjnath*
Now finally i got it compiled.