1
iconv-detect.h
2
--------------
3
4
Note: Unless you are cross compiling, this probably isn't needed
5
6
When cross compiling there's one difficulty: the iconv-detect.h file in
7
libtinymail-camel/camel-lite/ which is a file that must be generated.
8
9
In case the normal configure script fails at creating this, you can or
10
checking m4/ticonv.m4 to figure out why it's failing, or put a file in
11
it manually.
12
13
You can generate one doing this on the target platform:
14
15
cd libtinymail-camel/camel-lite
16
gcc -DCONFIGURE_AC iconv-detect.c -o iconv-detect
17
./iconv-detect
18
cat iconv-detect.h
19
cd ../..
20
21
This is by the way basically the procedure that ticonv.m4 will do too.
22
23
Feel free to contribute a good detection that will always work with all
24
cross compilation situations.
25
26
One laptop per child
27
--------------------
28
29
= On a x86 desktop =
30
31
32
svn co https://svn.tinymail.org/svn/tinymail
33
cd tinymail/trunk
34
./autogen.sh --prefix=/opt/tinymail-olpc --with-platform=olpc \
35
	--enable-imap-part-fetch
36
make && make install
37
38
Now simply copy /opt/tinymail-olpc to the device
39
40
Mount the image on /media/OLPCRoot
41
42
cp -a /opt/tinymail-olpc /media/OLPCRoot/opt/
43
44
45
Maemo
46
-----
47
48
= Outside scratchbox =
49
50
cd /scratchbox/users/$USER/home/$USER/
51
svn co https://svn.tinymail.org/svn/tinymail
52
53
= Inside an ARMEL scratchbox =
54
55
cd tinymail/trunk
56
./autogen.sh --prefix=/opt/tinymail-maemo --with-platform=maemo
57
make && make install
58
59
Now simply copy /opt/tinymail-maemo to the device
60
61
GPE
62
---
63
64
svn co https://svn.tinymail.org/svn/tinymail
65
cd tinymail/trunk
66
./autogen.sh --prefix=/opt/tinymail --with-platform=gpe \
67
	--enable-imap-part-fetch
68
make && make install
69
70
Now run /opt/tinymail/bin/tinymail
71
72
A desktop
73
---------
74
75
For dependencies per distribution, check out requirements.txt
76
77
svn co https://svn.tinymail.org/svn/tinymail
78
cd tinymail/trunk
79
./autogen.sh --prefix=/opt/tinymail \
80
	--enable-imap-part-fetch
81
make && make install
82
83
Now run /opt/tinymail/bin/tinymail
84
85
Creating the test-account for GPE, Maemo en Desktop builds
86
----------------------------------------------------------
87
88
Note that this information is specific for the following platform specific
89
implementations:
90
91
	o. libtinymail-gnome-desktop
92
	o. libtinymail-gpe
93
	o. libtinymail-maemo
94
95
Note that it's the developer who develops on top of tinymail who decides about
96
where to put and how to store configuration. This configuration will work for
97
clients that use the standard TnyAccountStore implementations.
98
99
For example the libtinymail-olpc implementation uses a .ini file in stead of
100
GConf. That's because the OLPC laptop doesn't come with GConf. GConf is not
101
a requirement of the tinymail framework. It's an optional method for storing
102
configuration data.
103
104
The demo user interfaces are all demos. They are not intented to be full
105
E-mail clients or PIM suites. It's you, the application developer, who's going
106
to make that using tinymail. Right?
107
108
gconftool-2 -s /apps/tinymail/accounts/count -t int 1
109
gconftool-2 -s /apps/tinymail/accounts/0/name -t string "Test account"
110
gconftool-2 -s /apps/tinymail/accounts/0/proto -t string "imap"
111
gconftool-2 -s /apps/tinymail/accounts/0/type -t string "store"
112
gconftool-2 -s /apps/tinymail/accounts/0/hostname -t string "mail.tinymail.org"
113
gconftool-2 -s /apps/tinymail/accounts/0/user -t string "tinymailunittest"
114
115
ps. The password is "unittest"
116
117
118
The make distcheck target
119
-------------------------
120
./autogen.sh --prefix=/opt/tinymail --with-html-component=mozembed \
121
	--enable-gtk-doc --enable-tests --enable-imap-part-fetch
122
make
123
make distcheck
124
125
For packagers
126
-------------
127
Read packagers.txt
128
129
Dependencies
130
------------
131
Read requirements.txt
132
133
For debugging
134
-------------
135
136
-DDEBUG
137
138
The DEBUG define will enable IMAP, POP, NNTP and SMTP debugging. If you compile
139
with this define you'll see some of the traffic on your stdout.
140
141
CFLAGS="-DDEBUG -DDBC -D_GNU_SOURCE -O0 -Wall -g -ggdb" ./autogen.sh \
142
	--prefix=/opt/tinymail --enable-tests --enable-unit-tests \
143
	--enable-imap-part-fetch && \
144
	 make && sudo make install
145
146
-DMERGEFOLDERTEST
147
148
The mergefolder test will add a merge folder to each parent folder that has 
149
more than two subfolders, it takes the first and the second folder and 
150
creates a subfolder called MERGE TESTER that merges these two folders together.
151
152
153
Other commonly used CFLAGS
154
--------------------------
155
export CFLAGS="-DDEBUG -DDBC -O0 -g -ggdb"
156
157
Typical for development
158
-----------------------
159
CFLAGS="-DDEBUG -DDBC -O0 -Wstrict-prototypes -Wall -g -ggdb" ./autogen.sh --prefix=/opt/tinymail \
160
	--with-platform=maemo --with-ssl=openssl --enable-imap-part-fetch \
161
	&& make && make install
162
163
You typically compile E-mail clients this way now:
164
PKG_CONFIG_PATH=/opt/tinymail/lib/pkgconfig/ ./autogen --prefix=/opt/myclient --with-platform=maemo
165
166
SSL support
167
-----------
168
If you want to build with support for SSL, you can either choose for Mozilla's NSS or OpenSSL:
169
170
  Default               Detect NSS and if available, use it
171
  --with-ssl=nss        Use NSS
172
  --with-ssl=openssl    Use OpenSSL
173
  --with-ssl=none       Do NOT detect any SSL, and DON'T use it
174
175
176
-- Building Modest --
177
#
178
## Outside scratchbox
179
#
180
cd /scratchbox/users/$USER/home/$USER
181
mkdir repos
182
cd repos
183
svn co https://svn.tinymail.org/svn/tinymail/trunk tinymail
184
svn co https://garage.maemo.org/svn/modest/maemo-providers-data maemo-providers-data   
185
svn co https://garage.maemo.org/svn/modest/libwpeditor-plus/trunk libwpeditor-plus 
186
svn co https://garage.maemo.org/svn/modest/modest/trunk modest
187
/scratchbox/login
188
189
#
190
## Inside scratchbox
191
#
192
cd $HOME/repos/tinymail
193
CFLAGS="-DDEBUG -DDBC -O0 -g -ggdb" ./autogen.sh --with-ssl=openssl --prefix=/opt/tinymail \
194
	--with-platform=maemo
195
196
# Modest does not yet support --enable-imap-part-fetch correctly
197
198
make && make install
199
200
cd $HOME/repos/maemo-providers-data
201
./autogen.sh && ./configure --prefix=/opt/modest
202
make && make install
203
204
cd $HOME/libwpeditor-plus
205
./autogen.sh && ./configure --prefix=/opt/modest
206
make && make install
207
208
cd $HOME/repos/modest
209
PKG_CONFIG_PATH=/opt/tinymail/lib/pkgconfig:/opt/modest/lib/pkgconfig ./autogen.sh \
210
	--prefix=/opt/modest --with-platform=maemo
211
make && make install
212
213
#
214
## Deploying to your N800
215
##
216
cd /opt
217
sb~$ tar zcvf tny-mdst.tar.gz tinymail/ modest/
218
sb~$ mv tny-mdst.tar.gz /tmp
219
host~$ scp /tmp/tny-mdst.tar.gz root@yourdevice:
220
yourdevice~# cd /opt
221
yourdevice/opt# tar zxvf /root/tny-mdst.tar.gz
222
yourdevice~$ run-standalone.sh /opt/modest/bin/modest showui
223
224
Installing a debugger on a N800
225
-------------------------------
226
Read this documentation:
227
http://tinymail.org/trac/tinymail/wiki/RecentGdbN800
228
229
230
Experimental features
231
---------------------
232
On demand fetching parts, in stead of always fetching the entire message:
233
Use the --enable-imap-part-fetch ./configure option to enable this feature