diff options
author | Michal Čihař <michal@cihar.com> | 2009-07-29 12:36:47 +0200 |
---|---|---|
committer | Michal Čihař <michal@cihar.com> | 2009-07-29 12:36:47 +0200 |
commit | 209b670b227941c3019397194c631717563ebc97 (patch) | |
tree | c579087158f9e5b806d96b4dee8f3f1aa9e08765 /INSTALL |
Imported Upstream version 1.25.0
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 304 |
1 files changed, 304 insertions, 0 deletions
@@ -0,0 +1,304 @@ +Gammu All Mobile Management Utilities - Installation +==================================================== + + +Binaries - Linux +================ + +Many distributions come with prebuilt Gammu binaries, if you can use +them, it is definitely the easiest thing. There are also binary packages +of latest release built for many distributions available on Gammu home +page <http://cihar.com/gammu/>. + + +Binaries - Windows +================== + +You can download Windows binaries from <http://cihar.com/gammu/>. For +Windows 95, 98 and NT 4.0 you will also need ShFolder DLL, which can be +downloaded from Microsoft: + +http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6AE02498-07E9-48F1-A5D6-DBFA18D37E0F + + +From Sources - Requirements +=========================== + +Gammu does not require anything at all to build, but you might miss some +features. Optional dependencies include: + +Bluez-libs + - http://www.bluez.org/ + - Bluetooth support on Linux. + +libusb-1.0 + - http://libusb.sourceforge.net/ + - fbususb connection support + +libCURL + - http://curl.haxx.se/libcurl/ + - New versions notification and phonedb access. + +libiconv + - http://www.gnu.org/software/libiconv/ + - Support for more charsets in AT engine. + +Gettext + - http://www.gnu.org/software/gettext/ + - Localization of strings. + +MySQL + - http://mysql.com/ + - MySQL support in SMSD. + +PostgreSQL + - http://www.postgresql.org/ + - PostgreSQL support in SMSD. + +libdbi + - http://libdbi.sourceforge.net/ + - required at least version 0.8.2 + - DBI support in SMSD. + - For testing, please install libdbd-sqlite3 + +Python + - http://www.python.org/ + - Gammu has a Python bindings + +SQLite + libdbi-drivers with SQLite + - http://www.sqlite.org/ + - needed for testing of SMSD using libdbi driver + + +From Sources - Linux +==================== + +You need CMake from <http://www.cmake.org> for configuring Gammu. + +For compatibility reasons, configure like wrapper is provided, if you +don't need much specific tuning, you can use general "./configure; make; +sudo make install" set of commands. The configure wrapper will create +directory build-configure and build all binaries there (nothing is +changed in source tree), for example gammu binary is in +build-configure/gammu directory. + +If you need/want to tweak build a bit more than configure wrapper +provides, you have to use CMake directly. For now, only out of source +build is supported, so you have to create separate directory for build: + +> mkdir build +> cd build + +Then just configure project: + +> cmake .. + +Build it: + +> make + +Test that everything is okay: + +> make test + +And finally install it: + +> sudo make install + +You can configure build parameters either by command line (see +parameters bellow), or using TUI - ccmake. + +Useful cmake parameters: + +-DBUILD_SHARED_LIBS=ON enables shared library +-DCMAKE_BUILD_TYPE="Debug" enables debug build +-DCMAKE_INSTALL_PREFIX="/usr" change installation prefix +-DENABLE_PROTECTION=OFF disables various compile time protections +against buffer overflows and similar attacks +-DBUILD_PYTHON=/usr/bin/python2.6 changes Python used for build Python +module +-DWITH_PYTHON=OFF disables build of python-gammu + +You can also disable support for whole set of phones, e.g.: + +-DWITH_NOKIA_SUPPORT=OFF disables Nokia phones support +-DWITH_BLUETOOTH=OFF disables Bluetooth support +-DWITH_IRDA=OFF disables IrDA support + +Limiting set of installed data +============================== + +By setting following flags you can control which additional parts will +be installed: + +INSTALL_GNAPPLET - Install Gnapplet binaries +INSTALL_MEDIA - Install sample media files +INSTALL_PHP_EXAMPLES - Install PHP example scripts +INSTALL_BASH_COMPLETION - Install bash completion script for Gammu +INSTALL_LSB_INIT - Install LSB compatible init script for Gammu +INSTALL_DOC - Install documentation +INSTALL_LOC - Install locales data + +For example: + +-DINSTALL_DOC=OFF + + +From Sources - Windows +====================== + +You need CMake from <http://www.cmake.org> for configuring Gammu. CMake +is able to generate projects for various tools including Microsoft +Visual Studio, Borland toolchains, Cygwin or Mingw32. Just click on +CMakeLists.txt in project sources and configure CMake to be able to find +optional libraries (see cross compilation section for more information +about getting those). The result should be project for your compiler +where you should be able to work with it as with any other project. + +More detailed and up to date information is maintained on the wiki: +http://www.gammu.org/wiki/index.php?title=Gammu:Compiling/installing_in_Windows + +Borland toolchain - you can download compiler at +<http://www.codegear.com/downloads/free/cppbuilder>. You need to add +c:/Borland/BCC55/Bin to system path (or manually set it when running +CMake) and add -Lc:/Borland/BCC55/Lib -Ic:/Borland/BCC55/Include +-Lc:/Borland/BCC55/Lib/PSDK to CMAKE_C_FLAGS in CMake (otherwise +compilation fails). + +From Sources - Mac OS X +======================= + +Gammu should be compilable on Mac OS X, see wiki for up to date +instrucitons: + +http://www.gammu.org/wiki/index.php?title=Gammu:Compiling/installing_on_Mac_OS_X + + +Cross compilation for Windows on Linux +====================================== + +Only cross compilation using CMake has been tested. You need to install +MinGW cross tool chain and run time. On Debian you can do it by apt-get +install mingw32. Build is then quite simple: + +mkdir build-win32 +cd build-win32 +cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake +make + +If your MinGW cross compiler binaries are not found automatically, you +can specify their different names in cmake/Toolchain-mingw32.cmake. + +To build just bare static library without any dependencies, use: + +cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake \ + -DBUILD_SHARED_LIBS=OFF \ + -DWITH_MySQL=OFF \ + -DWITH_Postgres=OFF \ + -DWITH_GettextLibs=OFF \ + -DWITH_Iconv=OFF \ + -DWITH_CURL=OFF \ + +To be compatible with current Python on Windows, we need to build +against MSVCR71, to achieve this, libmoldname71 library is needed. It +is part of current MinGW releases, but for older ones you can build +it following way: + +1. Get moldname.def.in from MinGW-runtime sources. +2. Get MinGW-runtime. +3. Execute following commands (crafted for Debian): + +i586-mingw32msvc-ar x /usr/i586-mingw32msvc/lib/libmoldname.a isascii.o iscsym.o iscsymf.o toascii.o strcasecmp.o strncasecmp.o wcscmpi.o +i586-mingw32msvc-gcc -DRUNTIME=71 -D__FILENAME__=moldname-71.def -D__MSVCRT__ -C -E -P -xc-header moldname.def.in >moldname-71.def +i586-mingw32msvc-dlltool -k -U --dllname msvcr71.dll --def moldname-71.def --output-lib libmoldname71.a +i586-mingw32msvc-ar rc libmoldname71.a isascii.o iscsym.o iscsymf.o toascii.o strcasecmp.o strncasecmp.o wcscmpi.o +i586-mingw32msvc-ranlib libmoldname71.a + +Information taken from <http://www.pygame.org/wiki/PreparingMinGW>. + + +Third party libraries +--------------------- + +The easies way to link with third party libraries is to add path to +their installation to cmake/Toolchain-mingw32.cmake or to list these +paths in CMAKE_FIND_ROOT_PATH when invoking cmake. + + +MySQL +----- + +You can download MySQL binaries from <http://dev.mysql.com/>, but then +need some tweaks: + +cd mysql/lib/opt +reimp.exe -d libmysql.lib +i586-mingw32msvc-dlltool --kill-at --input-def libmysql.def \ + --dllname libmysql.dll --output-lib libmysql.a + +reimp.exe is part of mingw-utils and can be run through wine, I didn't +try to compile native binary from it. + + +PostgreSQL +---------- + +You can download PostgreSQL binaries from <http://www.postgresql.org/>, +but then you need to add wldap32.dll library to bin. + + +Gettext +------- + +For Gettext (internationalization support), you need +gettext-0.14.4-bin.zip, gettext-0.14.4-dep.zip, gettext-0.14.4-lib.zip +from <http://gnuwin32.sourceforge.net/>. Unpack these to same directory. + + +CURL +---- + +For CURL support, you need curl-7.19.0-devel-mingw32.zip from +<http://curl.haxx.se/>. + + +Testing +======= + +Gammu comes with testsuite which should be run after build. You can do +this using 'make test'. CMake build system uses for testing CTest, which +also includes option to connect to dashboard and submit test results +there, so that they can be reviewed and fixed by others. To participate +in this testing, you need just to run 'make Experimental'. It will +compile current version, run tests and submit data to dashboard: + +http://cdash.cihar.com/index.php?project=Gammu + +There are some more options for testing: + +- make ExperimentalMemCheck + This checks memory accesses using valgrind during tests and submits + report. You need to do this after 'make Experimental' and you can + submit results using 'make ExperimentalSubmit'. +- coverage reports + To get test coverage reports, you need to configure project using + 'cmake -DCOVERAGE=ON' +- nightly testing + Currently several machines do compile and test Gammu every night. If + you want to tak part of this, just ensure that your machine executes + test suite every night (preferably after 3:00 CET). You can select + either 'make Nightly' to do regullar testing or 'make + NightlyMemoryCheck' to test with valgrind. Also you can enable + coverage tests as described above. +- special cases: + You can enable some additional tests, which require some external + components to be setup and are disabled by default: + + MYSQL_TESTING - you need to have setup MySQL server with database + where SMSD can plat. + + PSQL_TESTING - you need to have setup PostgreSQL server with + database where SMSD can plat. + + +# vim: et ts=4 sw=4 sts=4 tw=72 spell spelllang=en_us |