mirror of
				https://git.tukaani.org/xz.git
				synced 2025-11-04 07:22:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
XZ Utils on DOS
 | 
						|
===============
 | 
						|
 | 
						|
Introduction
 | 
						|
 | 
						|
    This document explains how to build XZ Utils for DOS using DJGPP.
 | 
						|
    The resulting binaries should run at least on various DOS versions
 | 
						|
    and under Windows 95/98/98SE/ME, which cannot run the Windows version
 | 
						|
    of XZ Utils.
 | 
						|
 | 
						|
    This is currently experimental and has got very little testing.
 | 
						|
 | 
						|
 | 
						|
Getting and Installing DJGPP
 | 
						|
 | 
						|
    You may use <http://www.delorie.com/djgpp/zip-picker.html> to help
 | 
						|
    deciding what to download, but as of writing (2009-02-13) that may
 | 
						|
    not be the most convenient way taking into account what components
 | 
						|
    are actually required to build XZ Utils. However, using the
 | 
						|
    zip-picker can still be worth doing to get nice short summary of
 | 
						|
    installation instructions (they can be found from readme.1st too).
 | 
						|
 | 
						|
    For more manual method, first select a mirror from
 | 
						|
    <http://www.delorie.com/djgpp/getting.html>. You need
 | 
						|
    the following files:
 | 
						|
 | 
						|
        unzip32.exe
 | 
						|
        beta/v2/djdev204.zip
 | 
						|
        v2gnu/bnu219b.zip
 | 
						|
        v2gnu/gcc432b.zip
 | 
						|
        v2gnu/mak3791b.zip
 | 
						|
        v2gnu/sed415b.zip
 | 
						|
        v2misc/csdpmi5b.zip
 | 
						|
 | 
						|
    If newer versions are available, probably you should try them first.
 | 
						|
    Note that djdev203.zip is too old to build XZ Utils; you need at
 | 
						|
    least djdev204.zip. Also note that you want csdpmi5b.zip even if you
 | 
						|
    run under Windows or DOSEMU, because the XZ Utils Makefile will embed
 | 
						|
    cwsdstub.exe to the resulting binaries.
 | 
						|
 | 
						|
    See the instructions in readme.1st found from djdev204.zip. Here's
 | 
						|
    a short summary, but you should still read readme.1st.
 | 
						|
 | 
						|
        C:\> mkdir DJGPP
 | 
						|
        C:\> cd DJGPP
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\djdev204.zip
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\bnu219b.zip
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\gcc432b.zip
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\mak3791b.zip
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\sed415b.zip
 | 
						|
        C:\DJGPP> c:\download\unzip32 c:\download\csdpmi5b.zip
 | 
						|
 | 
						|
        C:\DJGPP> set PATH=C:\DJGPP\BIN;%PATH%
 | 
						|
        C:\DJGPP> set DJGPP=C:\DJGPP\DJGPP.ENV
 | 
						|
 | 
						|
    You may want to add the last two lines into AUTOEXEC.BAT or have,
 | 
						|
    for example, DJGPP.BAT which you can run before using DJGPP.
 | 
						|
 | 
						|
    Make sure you use completely upper case path in the DJGPP environment
 | 
						|
    variable. This is not required by DJGPP, but the XZ Utils Makefile is
 | 
						|
    a bit stupid and expects that everything in DJGPP environment variable
 | 
						|
    is uppercase.
 | 
						|
 | 
						|
 | 
						|
Building
 | 
						|
 | 
						|
    Just run "make" in this directory (the directory containing this
 | 
						|
    README). You should get liblzma.a, xz.exe, xzdec.exe, and
 | 
						|
    lzmadec.exe. Of these, probably xz.exe is the only interesting one.
 | 
						|
 | 
						|
    Note: You need to have an environment that supports long filenames.
 | 
						|
    Once you have built XZ Utils, the resulting binaries can be run
 | 
						|
    without long filename support.
 | 
						|
 | 
						|
 | 
						|
Additional Make Flags and Targets
 | 
						|
 | 
						|
    You may want to try some additional optimizations, which may or
 | 
						|
    may not make the code faster (and may or may not hit possible
 | 
						|
    compiler bugs more easily):
 | 
						|
 | 
						|
        make CFLAGS="-O3 -fomit-frame-pointer -funroll-loops"
 | 
						|
 | 
						|
    If you want to enable assertions (the assert() macro), use DEBUG=1.
 | 
						|
    You may want to disable optimizations too if you plan to actually
 | 
						|
    debug the code. Never use DEBUG=1 for production builds!
 | 
						|
 | 
						|
        make DEBUG=1 CFLAGS="-g -O0"
 | 
						|
 | 
						|
 | 
						|
Bugs
 | 
						|
 | 
						|
    "make clean" may remove src/xz/hardware.c when it tries to remove
 | 
						|
    src/xz/hardware-fixed.c. This is probably a bug somewhere in the
 | 
						|
    DOS environment I use. Maybe it tries truncated 8.3 name first and
 | 
						|
    since that gives a name of an existing file, it doesn't look for
 | 
						|
    long filename.
 | 
						|
 | 
						|
    "xz -fc /dev/tty" hangs at least in DOSEMU and cannot be interrupted
 | 
						|
    by pressing C-c. Maybe xz should never accept non-regular files on
 | 
						|
    DOS even when --force is used.
 | 
						|
 | 
						|
    Using different memory usage limit for encoding and decoding doesn't
 | 
						|
    make sense under pure DOS. Maybe it is still OK when running under
 | 
						|
    Windows.
 | 
						|
 | 
						|
    The progress indicator of "xz -v" doesn't get updated when running
 | 
						|
    under Dosbox, but it works in DOSEMU. I currently (2009-02-13) don't
 | 
						|
    know if it works in other environments.
 | 
						|
 | 
						|
    Report bugs to <lasse.collin@tukaani.org> (in English or Finnish).
 | 
						|
 |