6 * GNU binutils : A collection of binary tools
8 * sh : POSIX type shell
9 * GNU coreutils: Core utilities package (chmod, install, mkdir,
12 Optional (depending on build targets):
13 * perl : Practical Extraction and Report Language
14 perl >= 5.10.1 is required for rebuilding the
15 manual pages with perlpod.
16 Self-tests require module perl-Test-Simple.
17 * gettext : Framework to help GNU packages produce multi-
19 * po4a : PO for anything, for rebuilding manuals.
20 * groff : GNU troff text formatting system, for
21 international messages and manuals.
22 * ghostscript : An interpreter for the PostScript language and
27 Clang can be used as a drop-in replacement for gcc. Just add CC=clang to the make
33 * Open Watcom : http://www.openwatcom.org/
34 * Open Watcom V2 : http://open-watcom.github.io/open-watcom/ (git repo)
35 http://sourceforge.net/projects/openwatcom/ (binaries download)
38 Using Microsoft Visual C++:
40 * Visual C++ : You can get a free express version via this web page:
41 http://www.visualstudio.com/products/visual-studio-express-vs
42 Download Visual Studio for Windows Desktop. Visual C++ is part
43 of Visual Studio. Out of the box compilation for 64-bit
44 applications is supported since version 2012.
50 To build the program type:
55 To run the self-tests type:
60 To strip the executables:
77 To run the self-tests you need a Perl installation including
78 module perl-Test-Simple.
80 To check the native Windows ports you need to run the tests in
85 By default the 'install' target will install the program in
86 /usr/bin, the language files in /usr/share/locale
87 and the man page in /usr/share/man. You can specify an
88 installation prefix other than /usr by modifying the
89 'prefix' variable. An Example:
91 make prefix=$HOME clean all
92 make prefix=$HOME install
97 A debug enabled build can be made by adding DEBUG=1
98 to the make command. Example:
100 make clean install DEBUG=1
102 With debug enabled dos2unix will print extra information
103 and you can debug the source code in gdb.
106 NATIVE LANGUAGE SUPPORT
108 Native Language Support (NLS) is by default enabled.
109 To disable NLS add ENABLE_NLS=. Example:
111 make clean install ENABLE_NLS=
114 INTERNATIONAL MAN PAGES
116 Since dos2unix 6.0.5 all man pages are encoded in UTF-8, because even
117 Western-European man pages may contain Unicode characters not supported by
118 the Latin-1 (ISO-8859-1) character set.
120 Originally the Unix man system supported only man pages in Latin1 format.
121 Although the world is moving to Unicode format (UTF-8) there is still a lot
122 of Latin1 legacy around.
124 The English man page is a pure ASCII file and is readable on all platforms.
126 Non-English man pages are encoded in UTF-8. These do not show properly on
127 old systems. Man pages in UTF-8 format are shown properly on Linux. Not
128 all roff implementations support UTF-8.
130 In order to show UTF-8 man pages properly on Cygwin with traditional man
131 you need to do the following:
133 In /etc/man.conf, change the NROFF definition to use 'preconv'.
135 NROFF /usr/bin/preconv | /usr/bin/nroff -c -mandoc 2>/dev/null
137 To view the man page set the correct locale. E.g. for Ukrainian:
139 export LANG=uk_UA.UTF-8
142 With man-db the manpages show correctly out of the box. Cygwin changed to
143 use man-db in June 2014.
144 Man-db is the default man system on the major Linux distributions.
149 Large File Support (LFS) is by default enabled. This enables
150 the use of 64 bit file system interface on 32 bit systems.
151 This makes it possible to open files larger than 2GB on 32 bit
152 systems, provided the OS has LFS support builtin.
153 To disable LFS make the LFS variable empty. Example:
156 make clean install LFS=
158 The gcc compiler from the mingw.org project does not support LFS.
159 It is advised to use the mingw-w64 compiler tool chain for LFS on
165 Unicode UTF-16 support is by default enabled for Windows and Unix. To
166 disable make the UCS variable (Universal Character Set) empty.
169 make clean install UCS=
171 Unicode UTF-16 is not supported by the DOS and OS/2 versions.
176 Manual pages are generated from Perl POD files.
178 The manual pages in text and html format are by default only
179 created in English language. To create text and html manuals
180 for other languages type:
185 Once the manuals in non-English languages have been created,
186 they will also be installed under share/doc/ when you type
189 Manuals in PDF format are by default not created.
190 To create manuals in PDF format type:
194 PDF generation requires GhostScript to be installed.
199 Using Mingw compiler <http://www.mingw.org>:
201 make -f mingw.mak clean
203 make -f mingw.mak strip
204 make -f mingw.mak install
206 Using MinGW-w64 compiler <http://mingw-w64.sourceforge.net>:
207 I am using the MSYS2 project <http://sourceforge.net/projects/msys2/>
208 which includes the MinGW-w64 compiler and an updated MSYS shell based
211 make -f mingw32.mak clean
213 make -f mingw32.mak strip
214 make -f mingw32.mak install
216 Or use Open Watcom and type:
218 wmake -f wccwin32.mak clean
219 wmake -f wccwin32.mak
220 wmake -f wccwin32.mak install
222 Or use Microsoft Visual C++ and type:
224 nmake /f vc.mak clean
226 nmake /f vc.mak install
229 The win32 binaries built with MinGW32 are packed with a patched version of
230 MinGW's libintl-8.dll that has builtin support for relocation. See also
231 http://waterlan.home.xs4all.nl/libintl.html and
232 http://sourceforge.net/p/mingw/bugs/1808/
233 The MSYS2 project has the relocation patch already included.
238 To compile a version for 64 bit Windows, get the Mingw-w64 compiler
239 <http://mingw-w64.sourceforge.net>, and use makefile mingw64.mak:
240 I am using the MSYS2 project <http://sourceforge.net/projects/msys2/>
241 which includes the MinGW-w64 compiler and an updated MSYS shell based
244 make -f mingw64.mak clean
246 make -f mingw64.mak strip
247 make -f mingw64.mak install
249 Or use Microsoft Visual C++. Visual Studio Express supports
250 out of the box C/C++ compilation for 64-bit applications since
251 version 2012. Start an "x64 Cross Tools Command Prompt" and
254 nmake /f vc.mak clean
256 nmake /f vc.mak install
261 To compile a version for DOS, get the DJGPP compiler
262 <http://www.delorie.com/djgpp/>, and use makefile djgpp.mak.
263 DJGPP gcc >= 4.6 seems to cause problems. Crashes of gcc itself,
264 or crashing dos2unix binaries (seen in DOSBox and DOSEMU).
265 Use DJGPP gcc <= 4.5.3.
268 make -f djgpp.mak clean
270 make -f djgpp.mak strip
271 make -f djgpp.mak install
274 Cross compiling from Windows 32 bit. This works.
276 wmake -f wccdos32.mak clean
277 wmake -f wccdos32.mak
278 wmake -f wccdos32.mak install
283 To compile a version for DOS, use the Borland C compiler 3.1 or 4.0,
284 and use makefile bcc.mak:
286 make -f bcc.mak clean
291 wmake -f wccdos16.mak clean
292 wmake -f wccdos16.mak
293 wmake -f wccdos16.mak install
300 make -f emx.mak clean
302 make -f emx.mak strip
303 make -f emx.mak install
307 wmake -f wccos2.mak clean
309 wmake -f wccos2.mak install