Hi, This is very amusing. It seems like the directory name "pjproject-1.8 ARM" having a space is the cause of your problems. The PJSIP make files will not work correctly if you have a spaces in your path. Please refer to the top level build.mak (automatically created from build.mak.in): $ grep 'export PJDIR' build.mak Frans On Wed, Oct 20, 2010 at 8:11 PM, tapas <tapascst at gmail.com> wrote: > Hi, > ???? I need to cross compit pjsip for ARM. Build tutorial (found at : > http://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf#CrossCompilation ) > suggests to run : > > > > $ ./configure --host=arm-elf-linux > $ make dep > $ make > > and then I need to run "sudo make" inside pjproject1.8/pjsip-app/src/python > directory > > But "$ ./configure --host=arm-elf-linux" shows me there is no arm toolchain > installed in my system. My question is which toolchain should I use and how > to configure it to crosscompile pjsip. > > Please tell me every steps of doing it. > > Please know that I compiled it successfully for my 64bit ubuntu. Only cross > compilation is failing. > > Following is the output of "$ ./configure --host=arm-elf-linux" in my > current system (Ubuntu 64bit): > > > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ ./configure > --host=arm-elf-linux > aconfigure: WARNING: If you wanted to set the --build type, don't use > --host. > If a cross compiler is detected then cross compile mode will be used. > > checking build system type... x86_64-unknown-linux-gnu > checking host system type... arm-elf-linux-gnu > checking target system type... arm-elf-linux-gnu > checking for arm-elf-linux-gcc... arm-elf-linux-gcc > checking for C compiler default output file name... > > aconfigure: error: C compiler cannot create executables > See `config.log' for more details. > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ ./configure > --host=arm-elf-linux > aconfigure: WARNING: If you wanted to set the --build type, don't use > --host. > > If a cross compiler is detected then cross compile mode will be used. > checking build system type... x86_64-unknown-linux-gnu > checking host system type... arm-elf-linux-gnu > checking target system type... arm-elf-linux-gnu > > checking for arm-elf-linux-gcc... no > checking for gcc... gcc > checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... no > > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > > checking for arm-elf-linux-g++... no > checking for arm-elf-linux-c++... no > checking for arm-elf-linux-gpp... no > checking for arm-elf-linux-aCC... no > checking for arm-elf-linux-CC... no > checking for arm-elf-linux-cxx... no > > checking for arm-elf-linux-cc++... no > checking for arm-elf-linux-cl.exe... no > checking for arm-elf-linux-FCC... no > checking for arm-elf-linux-KCC... no > checking for arm-elf-linux-RCC... no > checking for arm-elf-linux-xlC_r... no > > checking for arm-elf-linux-xlC... no > checking for g++... g++ > checking whether we are using the GNU C++ compiler... yes > checking whether g++ accepts -g... yes > checking for pthread_create in -lpthread... yes > > checking for puts in -lwsock32... no > checking for puts in -lws2_32... no > checking for puts in -lole32... no > checking for puts in -lwinmm... no > checking for puts in -lsocket... no > checking for puts in -lrt... yes > > checking for puts in -lnsl... yes > checking for uuid_generate in -luuid... no > checking for uuid_generate in -luuid... (cached) no > Setting PJ_M_NAME to arm > checking memory alignment... 4 bytes (default) > checking how to run the C preprocessor... gcc -E > > checking for grep that handles long lines and -e... /bin/grep > checking for egrep... /bin/grep -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking whether byte ordering is bigendian... no > > Checking if floating point is disabled... no > checking for fmod in -lm... yes > checking arpa/inet.h usability... yes > checking arpa/inet.h presence... yes > checking for arpa/inet.h... yes > checking assert.h usability... yes > > checking assert.h presence... yes > checking for assert.h... yes > checking ctype.h usability... yes > checking ctype.h presence... yes > checking for ctype.h... yes > checking errno.h usability... yes > checking errno.h presence... yes > > checking for errno.h... yes > checking fcntl.h usability... yes > checking fcntl.h presence... yes > checking for fcntl.h... yes > checking linux/socket.h usability... yes > checking linux/socket.h presence... yes > > checking for linux/socket.h... yes > checking malloc.h usability... yes > checking malloc.h presence... yes > checking for malloc.h... yes > checking netdb.h usability... yes > checking netdb.h presence... yes > checking for netdb.h... yes > > checking netinet/in_systm.h usability... yes > checking netinet/in_systm.h presence... yes > checking for netinet/in_systm.h... yes > checking netinet/in.h usability... yes > checking netinet/in.h presence... yes > checking for netinet/in.h... yes > > checking for netinet/ip.h... yes > checking netinet/tcp.h usability... yes > checking netinet/tcp.h presence... yes > checking for netinet/tcp.h... yes > checking ifaddrs.h usability... yes > checking ifaddrs.h presence... yes > > checking for ifaddrs.h... yes > checking for getifaddrs... yes > checking semaphore.h usability... yes > checking semaphore.h presence... yes > checking for semaphore.h... yes > checking setjmp.h usability... yes > > checking setjmp.h presence... yes > checking for setjmp.h... yes > checking stdarg.h usability... yes > checking stdarg.h presence... yes > checking for stdarg.h... yes > checking stddef.h usability... yes > checking stddef.h presence... yes > > checking for stddef.h... yes > checking stdio.h usability... yes > checking stdio.h presence... yes > checking for stdio.h... yes > checking for stdint.h... (cached) yes > checking for stdlib.h... (cached) yes > checking for string.h... (cached) yes > > checking sys/ioctl.h usability... yes > checking sys/ioctl.h presence... yes > checking for sys/ioctl.h... yes > checking sys/select.h usability... yes > checking sys/select.h presence... yes > checking for sys/select.h... yes > > checking sys/socket.h usability... yes > checking sys/socket.h presence... yes > checking for sys/socket.h... yes > checking sys/time.h usability... yes > checking sys/time.h presence... yes > checking for sys/time.h... yes > > checking sys/timeb.h usability... yes > checking sys/timeb.h presence... yes > checking for sys/timeb.h... yes > checking for sys/types.h... (cached) yes > checking sys/filio.h usability... no > checking sys/filio.h presence... no > > checking for sys/filio.h... no > checking sys/sockio.h usability... no > checking sys/sockio.h presence... no > checking for sys/sockio.h... no > checking time.h usability... yes > checking time.h presence... yes > > checking for time.h... yes > checking for unistd.h... (cached) yes > checking winsock.h usability... no > checking winsock.h presence... no > checking for winsock.h... no > checking winsock2.h usability... no > checking winsock2.h presence... no > > checking for winsock2.h... no > checking for mswsock.h... no > checking ws2tcpip.h usability... no > checking ws2tcpip.h presence... no > checking for ws2tcpip.h... no > checking uuid/uuid.h usability... no > checking uuid/uuid.h presence... no > > checking for uuid/uuid.h... no > checking for net/if.h... yes > Setting PJ_OS_NAME to arm-elf-linux-gnu > Setting PJ_HAS_ERRNO_VAR to 1 > Setting PJ_HAS_HIGH_RES_TIMER to 1 > Setting PJ_HAS_MALLOC to 1 > Setting PJ_NATIVE_STRING_IS_UNICODE to 0 > > Setting PJ_ATOMIC_VALUE_TYPE to long > checking if inet_aton() is available... yes > checking if inet_pton() is available... yes > checking if inet_ntop() is available... yes > checking if getaddrinfo() is available... yes > > checking if sockaddr_in has sin_len member... no > checking if socklen_t is available... yes > checking if SO_ERROR is available... yes > checking if pthread_rwlock_t is available... yes > checking if pthread_mutexattr_settype() is available... no > > checking if pthread_mutexattr_t has recursive member... no > checking ioqueue backend... select() > checking sys/soundcard.h usability... yes > checking sys/soundcard.h presence... yes > checking for sys/soundcard.h... yes > > checking linux/soundcard.h usability... yes > checking linux/soundcard.h presence... yes > checking for linux/soundcard.h... yes > checking machine/soundcard.h usability... no > checking machine/soundcard.h presence... no > > checking for machine/soundcard.h... no > checking alsa/version.h usability... yes > checking alsa/version.h presence... yes > checking for alsa/version.h... yes > Checking sound device backend... unix > Checking if small filter is disabled... no > > Checking if large filter is disabled... no > Checking if Speex AEC is disabled...no > Checking if G.711 codec is disabled...no > Checking if L16 codec is disabled...no > Checking if GSM codec is disabled...no > Checking if G.722 codec is disabled...no > > Checking if G.722.1 codec is disabled...no > Checking if Speex codec is disabled...no > Checking if iLBC codec is disabled...no > Skipping libsamplerate detection > Skipping Intel IPP settings (not wanted) > checking for OpenSSL installations.. > > checking openssl/ssl.h usability... yes > checking openssl/ssl.h presence... yes > checking for openssl/ssl.h... yes > checking for ERR_load_BIO_strings in -lcrypto... yes > checking for SSL_library_init in -lssl... yes > > OpenSSL library found, SSL support enabled > checking if select() needs correct nfds... no (default) > ** Decided that select() doesn't need correct nfds (please check) > checking if pj_thread_create() should enforce stack size... no (default) > > checking if pj_thread_create() should allocate stack... no (default) > ** Setting non-blocking recv() retval to EAGAIN (please check) > ** Setting non-blocking connect() retval to EINPROGRESS (please check) > aconfigure: creating ./config.status > > config.status: creating build.mak > config.status: creating build/os-auto.mak > config.status: creating build/cc-auto.mak > config.status: creating pjlib/build/os-auto.mak > config.status: creating pjlib-util/build/os-auto.mak > > config.status: creating pjmedia/build/os-auto.mak > config.status: creating pjsip/build/os-auto.mak > config.status: creating third_party/build/os-auto.mak > config.status: creating third_party/build/portaudio/os-auto.mak > > config.status: creating pjlib/include/pj/compat/os_auto.h > config.status: pjlib/include/pj/compat/os_auto.h is unchanged > config.status: creating pjlib/include/pj/compat/m_auto.h > config.status: pjlib/include/pj/compat/m_auto.h is unchanged > > config.status: creating pjmedia/include/pjmedia/config_auto.h > config.status: pjmedia/include/pjmedia/config_auto.h is unchanged > config.status: creating pjmedia/include/pjmedia-codec/config_auto.h > config.status: pjmedia/include/pjmedia-codec/config_auto.h is unchanged > > config.status: creating pjsip/include/pjsip/sip_autoconf.h > config.status: pjsip/include/pjsip/sip_autoconf.h is unchanged > > > Configurations for current target have been written to 'build.mak', and > 'os-auto.mak' in various build directories, and > pjlib/include/pj/compat/os_auto.h. > > > Further customizations can be put in: > - 'user.mak' > - 'pjlib/include/pj/config_site.h' > > The next step now is to run 'make dep' and 'make'. > > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ make dep > > for dir in pjlib pjlib-util pjnath third_party pjmedia pjsip pjsip-apps; do > \ > if make -C $dir/build dep; then \ > true; \ > else \ > exit 1; \ > fi; \ > done > make[1]: Entering directory `/home/tapas/Downloads/pjproject-1.8 > ARM/pjlib/build' > > make[1]: *** /home/tapas/Downloads/pjproject-1.8: Is a directory. Stop. > make[1]: Leaving directory `/home/tapas/Downloads/pjproject-1.8 > ARM/pjlib/build' > make: *** [dep] Error 1 > tapas at test-laptop:~/Downloads/pjproject-1.8 ARM$ > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > >