"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "gpsdrive-2.10pre6/msvc/README.txt" of archive gpsdrive-2.10pre6.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 This is the Win32 port of gpsdrive.
    2 
    3 This port is in a PRE-ALPHA STATE and should be seen as a "proof of concept" only, for now with limited features and bugs/crashes all the time!
    4 
    5 Features that are currently not working on the Win32 port:
    6 - gpsd (so only gpsdrive GPS emulation mode for now)
    7 - mysql -> poi, streets, wlan, kismet
    8 - festival voice output
    9 
   10 There are no binaries provided yet.
   11 
   12 
   13 ************** "Developer only" information following **************
   14 I've tried to keep the number of changes to the existing source files as low as possible. Most changes required for Win32 are hidden in the Win32 specific config.c/.h files and the newly created os_specific.c/.h.
   15 
   16 
   17 *** C-Compiler (IDE) ***
   18 http://msdn.microsoft.com/vstudio/express/visualc/download/
   19 Microsoft Visual C++ 2005 Express Edition (the normal 2005 editions should work also)
   20 
   21 *** Platform SDK ***
   22 http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
   23 Microsoft Platform SDK (header files, libs, ...)
   24 
   25 *** MySQL ***
   26 http://dev.mysql.com/downloads/mysql/5.0.html#win32
   27 You'll need the "Windows ZIP/Setup.EXE (x86)" pack, as the Essentials don't contain the required libs/header files.
   28 
   29 *** libraries ***
   30 Native Win32 library ports of:
   31 http://www.zlatkovic.com/pub/libxml/
   32 - libxml
   33 libxml2-2.6.28.win32.zip
   34 
   35 http://ftp.gnome.org/pub/GNOME/binaries/win32/
   36 - libiconv: 
   37 libiconv-1.9.1.bin.woe32.zip
   38 - glib: 
   39 glib-2.2.3-20040116.zip 
   40 glib-dev-2.2.3-20040116.zip
   41 - gtk2
   42 atk-1.18.0.zip
   43 atk-dev-1.18.0.zip
   44 cairo-1.4.2.zip
   45 cairo-dev-1.4.2.zip
   46 gib-2.12.12.zip
   47 glib-dev-2.12.12.zip
   48 gtk+-2.10.12.zip
   49 gtk+-dev-2.10.12.zip
   50 libpng-1.2.8-bin.zip
   51 pango-1.16.4.zip
   52 pango-dev-1.16.4.zip
   53 
   54 
   55 *** basics ***
   56 Don't define variables and typedefs inside the function body (MSVC doesn't like ANSI C 99 here). I'm not sure if this can be enabled with command line options somehow.
   57 
   58 Put #include "config.h" as the first directive into the .c files.
   59 
   60 *** portable functional equivalents ***
   61 I've replaced some "UNIX only" by their ANSI / GTK+ (at least since GTK version 2.2) replacements:
   62 - extern int errno -> #include <errno.h>
   63 - bzero() -> memset()
   64 - bcopy() -> memcpy()
   65 - usleep() -> g_usleep()
   66 - struct timeval, gettimeofday() -> GTimeVal, g_get_current_time()
   67 - DIR, struct dirent, opendir, ... -> GDir, 
   68 - rindex() -> strrchr()
   69 - #include <config.h> -> #include "config.h" (and move that to the start of the file)
   70 
   71 *** sockets ***
   72 While the socket functionality is almost the same, there are some differences that needs to be dealt with:
   73 - read(), write() -> recv(), send() (compatible, set additional flag parameter to 0)
   74 - close() -> socket_close() (as defined in os_specific.c/.h)
   75 - setting nonblocking -> socket_nonblocking() (as defined in os_specific.c/.h)
   76 
   77 *** problematic, but optional ***
   78 I've used #ifdef _WIN32, to temporary remove some things that's optional and more difficult to solve, to get "the thing" up and running:
   79 - mysql (see below)
   80 - getuid() (detection of running as root)
   81 - SIGUSR1,SIGUSR2 (no equivalent on Win32! - maybe use dbus instead in the future)
   82 - setlocale(LC_MESSAGES) (I don't have a clue on this, simply left it out)
   83 - X11: get_window_sizing() (better use gtk instead, it's already on the todo)
   84 - unit_test() (a lot of typedefs inside the function, which won't work on Win32)
   85 - struct termios (opennmea) (is this still used anyway?)
   86 
   87 
   88 *** to do ***
   89 Some things I (ULFL) might spend some time in the near future:
   90 - DATADIR needs cleanup
   91 - gpsd win32 binary, using cygwin to compile the official gpsd sources (http://www.renderlab.net/projects/wrt54g/gpsdonwindows.html)
   92 - replace X11 remains in gui.c with gtk code -> window_get_geometry() from Wireshark gui_utils.c
   93 - Use official Win32 "Application Data" folder instead of .gpsdrive
   94 - clarify contents of datadir 
   95 - NSIS based installer
   96 - implement mysql or replace with sqlite? (how to deal with libmysql.dll?)
   97 - festival compile with cygwin 
   98 (http://www.cstr.ed.ac.uk/cgi-bin/cstr/lists.cgi?config=festival_faq&entry=installing_festival)
   99 
  100 
  101 *** MySQL ***
  102 Disable TCP Port 3306 in the Windows Security Center.
  103 
  104 MySQL Installer
  105 - Complete
  106 - Configure the MySQL Server now
  107 
  108 MySQL Server Instance Configuration Wizard
  109 - Detailed Configuration
  110 - Developer Machine
  111 - Multifunctional Database
  112 - Installation Path
  113 - Decision Support (DSS) / OLAP
  114 - Enable TCP/IP Networking / Strict Mode
  115 - Standard Character Set
  116 - Install as Windows Service
  117 - Modify Security Settings (remember your password!) / No anonymous account
  118 
  119 Command Line
  120 We need to create an account for user=gast, password=gast
  121 - go to mysql bin path (e.g. "C:\Program Files\MySQL\MySQL Server 5.0\bin")
  122 - enter: mysql --user=root -p mysql
  123 - enter password (remembered?)
  124 - enter: GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
  125 - enter: IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
  126 - enter: quit
  127 Beware, this creates a gast account with ALL privileges, don't use this on a production server!
  128 
  129 
  130 export PERL5LIB=/<your path>/gpsdrive/share/perl5 ->
  131 unshift(@INC,"/cygdrive/c/Dokumente und Einstellungen/ulfl/Eigene Dateien/svn.gpsdrive.cc/scripts/osm/perl_lib");
  132 
  133 perl -MCPAN -e "install Bundle::DBI"
  134 perl -MCPAN -e "install XML::Twig"
  135 perl -MCPAN -e "install Date::Manip"
  136 perl -MCPAN -e "install File::Slurp"
  137 perl -MCPAN -e "install XML::Simple"
  138 perl -MCPAN -e "install WWW::Mechanize"