forked from jedwing/CHMLib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NOTES
124 lines (93 loc) · 4.12 KB
/
NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
CHMLIB 0.40 Installation
=======================
-----
Linux/Unix and Windows (Cygwin)
-----
I. Relevant options:
CHM_MT: build library with synchronization for thread-safety
CHM_USE_PREAD: use pread instead of lseek/read
CHM_USE_IO64: support 64-bit file I/O
Modify the INSTALLPREFIX to change the installation location.
Except on platforms where they need to be disabled, I recommend leaving all
three options enabled. OS X, however, in particular, seems to need pread
and io64 disabled.
II. autoconf/automake-style build
./configure [options]
make
su
make install
III. old-style (plain Makefile) build
cd src
<edit Makefile.simple if necessary>
make -f Makefile.old
su
make install
To use the library, see chm_lib.h, and the included example programs:
test_chmLib.c
enum_chmLib.c
chm_http.c
-------
Windows (MSVC++, Win CE SDK)
-------
I. Relevant options:
CHM_MT: build library with synchronization for thread-safety
II. Windows Standard Build
Unzip ChmLib-vs6.zip in the src directory, and open the ChmLib.dsw file in
Developer Studio. (This was developed on Developer Studio 6. I don't know
if that matters.) You may wish to enable or disable certain features by
adding preprocessor defines under the project settings dialog:
CHM_MT: build library with synchronization for thread-safety
CHM_MT is enabled by default in the Windows build.
The resultant library is called chmlib.lib.
To use the library, see chm_lib.h, and the included example programs:
test_chmLib.c
enum_chmLib.c
chm_http.c
The example programs should also show up in the Visual Studio workspace,
except for chm_http. I don't know enough about Windows network programming
to try to get that one working. Other than that one, all the other examples
run without any problems.
III. Windows CE Build
Unzip ChmLib-ce.zip in the src directory. I don't know much beyond that,
as I have no familiarity with Windows CE, but this should be a good
starting point. These project files are from Rich Erwin, who also supplied
the necessary code changes to get it running.
Sparc (Solaris)
---------------
Andrew Hodgetts has gotten the library compilable and working on Sparc
Solaris machines, with CPUs ranging from a Sun4m (Sparc5) up through an
UltraSparcIII (SunFireV880). He has managed the compilation using both GCC and
SunProC, although, he notes, some modification to the Makefile was required,
since SunProC does not understand the -fPIC flag, which GCC uses for Position
Independent Code.
MIPS (SGI Irix)
---------------
Andrew Hodgetts has gotten the library compilable and working on SGI MIPS
machines running Irix; this was using only the standard MIPS compiler, not GCC.
He reported that the -n32 flag was required in the Makefile. He also reported
that the MIPS compiler was fairly verbose with the warning messages, but that
the simple examples that came with the library seemed to work.
OS X
----
Apparently, various people have gotten the library compiled for OS X. From
what I've heard, the secret is to disable pread and io64, and possibly to use
the 'libtool' from fink, instead of the one included with the standard
developers kit.
BSD variants
----
I've heard that the library has been compiled on BSD variants. I haven't
heard of any particular difficulties.
Other Unix variants
-------------------
The code has been written with an eye on portability. Presently, I've only
personally compiled on Linux and Windows, albeit on a variety of Linux
configurations, but, as reported above, Andrew Hodgetts has reported successful
use of the library on both Solaris machines and MIPS machines.. After I get
version 0.3 out, I may try to get it compiling on some of the machines I have
at work. This code may or may not compile out of the box with, for instance,
*BSD or other Unix variants. I welcome any patches that increase the
portability of this code.
Platforms that I have access to at work, and may attempt to support after
version 0.3:
- AIX
- maybe Tru64