summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorMichal Čihař <michal@cihar.com>2009-07-29 12:36:47 +0200
committerMichal Čihař <michal@cihar.com>2009-07-29 12:36:47 +0200
commit209b670b227941c3019397194c631717563ebc97 (patch)
treec579087158f9e5b806d96b4dee8f3f1aa9e08765 /INSTALL
Imported Upstream version 1.25.0
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL304
1 files changed, 304 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..88ba54b
--- /dev/null
+++ b/INSTALL
@@ -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