5
5
libdmtx README file (all platforms)
6
6
7
7
This summary of the libdmtx package applies generally to all
8
- platforms. For instructions regarding your specific platform
9
- please also read the README.xxx file in this directory that
10
- matches your system (e.g., README.linux, README.cygwin,
11
- README.osx, README.visualc, etc...).
8
+ platforms. For instructions regarding your specific platform,
9
+ also see the README.xxx file in this directory that matches your
10
+ system (e.g., README.linux, README.osx, etc...).
12
11
13
12
14
13
1. Introduction
15
14
-----------------------------------------------------------------
16
15
17
16
libdmtx is a software library that enables programs to read and
18
17
write Data Matrix barcodes of the modern ECC200 variety. The
19
- library runs natively on several platforms, and can be accessed
20
- by multiple languages using the libdmtx language wrappers. The
21
- utility programs dmtxread and dmtxwrite provide a command line
22
- interface for libdmtx, and serve as a good reference for
18
+ library runs natively on several platforms and can be accessed by
19
+ multiple languages using the libdmtx language wrappers. The
20
+ utility programs dmtxread and dmtxwrite also provide a command
21
+ line interface for libdmtx, and serve as a good reference for
23
22
developers writing their own libdmtx-enabled programs.
24
23
24
+ This package (libdmtx) contains only the core library, and is
25
+ distributed under a Simplified BSD license with an alternate
26
+ waiver option. See the LICENSE file in the main project directory
27
+ for full terms of use and distribution.
25
28
26
- 2. Package Components
27
- -----------------------------------------------------------------
28
-
29
- libdmtx serves a diverse audience and contains many components,
30
- some of which may not be useful to you. Components fall into one
31
- of four categories:
32
-
33
- * Core library (useful to all libdmtx users)
34
- * Utility programs (useful to command line users)
35
- * Test programs (useful to libdmtx developers)
36
- * Language Wrappers (useful to non-C/C++ developers)
29
+ The non-library components related to libdmtx are available as
30
+ separate downloads, and are distributed under a different license
31
+ (typically LGPLv2). Please contact
[email protected] if
32
+ you require clarification on licensing. It's not complicated, but
33
+ it's important to us that all license terms are respected (not
34
+ just ours).
37
35
38
- The default installation will compile and install the core
39
- library and all three command line utilities. The test programs
40
- are compiled by running an additional "make check", and the
41
- language wrappers are built using instructions found in their
42
- specific directories.
43
36
44
- Users who only want the core library can disable the command line
45
- utilities by passing the following parameters to "configure"
46
- during installation:
47
-
48
- --disable-dmtxread --disable-dmtxwrite --disable-dmtxquery
37
+ 2. Project Components
38
+ -----------------------------------------------------------------
49
39
50
- This eliminates most software dependencies and helps to reduce
51
- compile times. However, these utilities provide a convenient way
52
- to test the library and to learn its behavior, so their inclusion
53
- is recommended if possible.
40
+ The libdmtx project serves a diverse audience and contains many
41
+ components -- some of which may not be useful to you. Components
42
+ fall into one of four categories:
54
43
55
- Appendix A. at the end of this file provides a full list of the
56
- package components and their properties.
44
+ Description Package Audience
45
+ ----------------- ------------- ----------------------
46
+ Core library libdmtx libdmtx programs
47
+ Test programs libdmtx libdmtx developers
48
+ Utility programs dmtx-utils Shell and command line
49
+ Language Wrappers dmtx-wrappers Non-C/C++ developers
57
50
58
51
59
52
3. Installation
60
53
-----------------------------------------------------------------
61
54
62
55
libdmtx uses GNU Autotools so installation should be familiar to
63
- veterans of free software. If your platform cannot easily run the
56
+ free software veterans . If your platform cannot easily run the
64
57
Autotools scripts (e.g., MS Visual Studio) then refer to the
65
58
appropriate platform-specific README.xxx located in this
66
59
directory for alternate instructions.
67
60
68
- In theory the following 3 steps will compile and install libdmtx
61
+ In theory the following 3 steps would build and install libdmtx
69
62
on your system:
70
63
71
64
$ ./configure
72
65
$ make
73
66
$ sudo make install
74
67
75
- However, you may need to install additional software for these
76
- steps to work properly. Details are provided below to handle
77
- error messages or if you want to customize beyond the defaults.
68
+ However, you may need to install additional software or make
69
+ other changes for these steps to work properly. The details below
70
+ will help to address errors and/or customize beyond the defaults.
78
71
79
- Details on "configure" step
72
+ Problems with "configure" step
80
73
----------------------------------------
81
- If you obtained libdmtx from Subversion you may have received an
82
- error like "./configure: No such file or directory". Run this
83
- command and try again:
74
+ If you obtained libdmtx from Git you may have received an error
75
+ like "./configure: No such file or directory". Run this command
76
+ before trying again:
84
77
85
78
$ ./autogen.sh
86
79
87
80
The autogen.sh command requires autoconf, automake, libtool, and
88
81
pkgconfig to be installed on your system.
89
82
90
- The configure script offers many options for customizing the
91
- build process, many of which are described in the INSTALL file in
92
- this directory. If the INSTALL file does not exist then you may
93
- need to run the "./autogen.sh" step first. Examples of common
94
- customizations include:
83
+ The configure script also offers many options for customizing the
84
+ build process, described in detail by running:
95
85
96
- $ ./configure CC=/usr/local2/bin/gcc
97
- $ ./configure --prefix=/your/custom/path
98
- $ ./configure --disable-dmtxread --disable-dmtxwrite
86
+ $ ./configure --help
99
87
100
- Details on "make" step
88
+ Problems with "make" step
101
89
----------------------------------------
102
90
Errors encountered during the "make" step are often a result of
103
- missing software dependencies. These dependencies are listed in
104
- Appendix A. of this file. Install any missing software and try
105
- again.
91
+ missing software dependencies. Install any missing software
92
+ mentioned in the error message(s) and try again.
106
93
107
- Details on "sudo make install" step
94
+ Problems with "sudo make install" step
108
95
----------------------------------------
109
- If the 'sudo' command is not configured on your system then
110
- alternatively you can yell "Yeeehaww!" as you log in as root and
111
- run this instead :
96
+ If the 'sudo' command is not configured on your system, you can
97
+ alternatively yell "Yeeehaww!" as you log in as root and run it
98
+ like this:
112
99
113
- $ make install
100
+ # make install
114
101
115
102
And finally...
116
103
----------------------------------------
117
104
If you want to verify that everything is working properly you can
118
- optionally build the test programs like this :
105
+ optionally build the test programs:
119
106
120
107
$ make check
121
108
@@ -128,57 +115,15 @@ to their graphical nature, and are not terribly useful unless you
128
115
need to test the library's internals.
129
116
130
117
131
- 4. Basic Usage
132
- -----------------------------------------------------------------
133
-
134
- New users are encouraged to read the man pages for the library
135
- and command line utilities. However, here are a few simple cases
136
- to get you started:
137
-
138
- The dmtxwrite utility turns a message into a barcode image. The
139
- message is passed to dmtxwrite via file or standard input, and
140
- the output image is written to file or standard output. The
141
- following examples all produce an equivalent result:
142
-
143
- $ echo -n 123456 | dmtxwrite > image.png
144
- $ echo -n 123456 | dmtxwrite -o image.png
145
- $ echo -n 123456 > mesg.txt; dmtxwrite mesg.txt > image.png
146
- $ dmtxwrite <(echo -n 123456) -o image.png
147
-
148
- Conversely, the dmtxread utility turns barcode images back into
149
- messages. Images are passed to dmtxread via standard input or
150
- file, and the output is written to standard output. The following
151
- examples will produce an equivalent result:
152
-
153
- $ dmtxread -n image.png
154
- $ cat image.png | dmtxread -n
155
-
156
- Other typical cases:
157
-
158
- $ dmtxread -n -N1 image1.png image2.png image3.png
159
- $ dmtxread -n -N1 -m500 image.png
160
-
161
- You can even combine the utilities like this:
162
-
163
- $ echo 'Hello, world!' | dmtxwrite | dmtxread
164
- Hello, world!
165
-
166
- $ dmtxread image1.png | dmtxwrite -o image2.png
167
-
168
- Note: In this example the barcode in image2.png might appear
169
- different than the one in image1.png. Both barcodes will encode
170
- the same message, but the overall barcode shape and its internal
171
- bit pattern might be different.
172
-
173
-
174
118
5. Contact
175
119
-----------------------------------------------------------------
176
120
177
- Project website: http:// www.libdmtx.org
178
- Documentation wiki: http:// libdmtx.wikidot.com
179
- SourceForge.net page: http:// www.sourceforge.net/projects/libdmtx
180
- OhLoh.net page: https:// www.ohloh.net/projects/libdmtx
121
+ Project website: www.libdmtx.org
122
+ Documentation wiki: libdmtx.wikidot.com
123
+ SourceForge.net page: www.sourceforge.net/projects/libdmtx
124
+ OhLoh.net page: www.ohloh.net/projects/libdmtx
181
125
Open mailing list:
[email protected]
126
+ Professional support: www.dragonflylogic.com/products
182
127
183
128
184
129
6. This Document
@@ -190,136 +135,3 @@ This document is derived from the wiki page located at:
190
135
191
136
If you find an error or have additional helpful information,
192
137
please edit the wiki directly with your updates.
193
-
194
-
195
- Appendix A. Full Listing of libdmtx Components
196
- -----------------------------------------------------------------
197
-
198
- Name: libdmtx
199
- Type: Core library
200
- Description: Data Matrix encoding/decoding logic
201
- Location: libdmtx
202
- Build: make
203
- Requires: No dependencies
204
-
205
- -----------------------------------
206
-
207
- Name: dmtxread
208
- Type: Utility program
209
- Description: Read Data Matrix barcodes from the command line
210
- Location: libdmtx/util/dmtxread
211
- Build: make
212
- Requires: ImageMagick
213
- Disable: ./configure --disable-dmtxread
214
-
215
- -----------------------------------
216
-
217
- Name: dmtxwrite
218
- Type: Utility program
219
- Description: Create Data Matrix barcodes from the command line
220
- Location: libdmtx/util/dmtxwrite
221
- Build: make
222
- Requires: ImageMagick
223
- Disable: ./configure --disable-dmtxwrite
224
-
225
- -----------------------------------
226
-
227
- Name: dmtxquery
228
- Type: Utility program (currently non functional)
229
- Description: Query and merge scan results from dmtxread utility
230
- Location: libdmtx/util/dmtxquery
231
- Build: make
232
- Requires: No dependencies
233
- Disable: ./configure --disable-dmtxquery
234
-
235
- -----------------------------------
236
-
237
- Name: libdmtx Cocoa wrapper
238
- Type: Language wrapper
239
- Description: libdmtx Cocoa wrapper
240
- Location: libdmtx/wrapper/cocoa
241
- Build: See INSTALL file in libdmtx/wrapper/cocoa directory
242
- Requires: OS X
243
- Disable: Not included in default build
244
-
245
- -----------------------------------
246
-
247
- Name: libdmtx Java wrapper
248
- Type: Language wrapper
249
- Description: libdmtx Java wrapper
250
- Location: libdmtx/wrapper/java
251
- Build: See INSTALL file in libdmtx/wrapper/java directory
252
- Requires: java
253
- Disable: Not included in default build
254
-
255
- -----------------------------------
256
-
257
- Name: libdmtx-php
258
- Type: Language wrapper
259
- Description: PHP libdmtx wrapper
260
- Location: libdmtx/wrapper/php
261
- Build: See INSTALL file in libdmtx/wrapper/php directory
262
- Requires: php, php-cli, php-common
263
- Disable: Not included in default build
264
-
265
- -----------------------------------
266
-
267
- Name: pydmtx
268
- Type: Language wrapper
269
- Description: Python libdmtx wrapper
270
- Location: libdmtx/wrapper/python
271
- Build: See INSTALL file in libdmtx/wrapper/python directory
272
- Requires: python, pil
273
- Disable: Not included in default build
274
-
275
- -----------------------------------
276
-
277
- Name: libdmtx-ruby
278
- Type: Language wrapper
279
- Description: Ruby libdmtx wrapper
280
- Location: libdmtx/wrapper/ruby
281
- Build: See INSTALL file in libdmtx/wrapper/ruby directory
282
- Requires: ruby, RMagick
283
- Disable: Not included in default build
284
-
285
- -----------------------------------
286
-
287
- Name: multi_test
288
- Type: test program
289
- Description: Graphical program for visualizing scan behavior
290
- Location: libdmtx/test/multi_test
291
- Build: make check
292
- Requires: SDL, SDL_image
293
- Disable: Not included in default build
294
-
295
- -----------------------------------
296
-
297
- Name: rotate_test
298
- Type: test program
299
- Description: Scan simulated camera input from OpenGL in realtime
300
- Location: libdmtx/test/rotate_test
301
- Build: make check
302
- Requires: mesa-libGL, mesa-libGLU, SDL, libpng
303
- Disable: Not included in default build
304
-
305
- -----------------------------------
306
-
307
- Name: simple_test
308
- Type: test program
309
- Description: Simple round-trip encoding and decoding test
310
- Location: libdmtx/test/simple_test
311
- Build: make check
312
- Requires: No dependencies
313
- Disable: Not included in default build
314
-
315
- -----------------------------------
316
-
317
- Name: unit_test
318
- Type: test program
319
- Description: Unit test program
320
- Location: libdmtx/test/unit_test
321
- Build: make check
322
- Requires: No dependencies
323
- Disable: Not included in default build
324
-
325
- -----------------------------------
0 commit comments