"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"