aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2025-11-19 00:29:11 -0500
committerB. Watson <urchlay@slackware.uk>2025-11-19 00:29:11 -0500
commitae63944e40c2466e639f811ee8afc33d736185f4 (patch)
tree31381ee9104559af7de7af615c8c1f232650105b
parent165dce7a792cf59984346a992b567f889bcf92ff (diff)
downloadunalf-ae63944e40c2466e639f811ee8afc33d736185f4.tar.gz
Add build instructions.
-rw-r--r--BUILD.txt53
-rw-r--r--README.txt71
2 files changed, 95 insertions, 29 deletions
diff --git a/BUILD.txt b/BUILD.txt
new file mode 100644
index 0000000..2c43e39
--- /dev/null
+++ b/BUILD.txt
@@ -0,0 +1,53 @@
+Build dependencies:
+
+- A Linux, BSD, or POSIX-like shell and environment. Mac OSX should
+ work, and so should Cygwin or MSYS on Windows.
+
+- A C compiler. The default is your system's "cc"; override the Makefile's
+ CC variable if you need to (see "Variables" section below).
+
+- Perl 5.x. Pretty much any version will do.
+
+- rst2man. Only needed for regenerating the man pages.
+
+Building:
+
+If you're experienced at building software from source, src/Makefile
+should be self-explanatory. It requires GNU make, which might be
+"gmake" on your system.
+
+If you're not experienced, you can start by extracting the source:
+
+ tar xvf unalf-<ver>.tar.gz # replace <ver> with the actual version!
+
+Next, compile the software:
+
+ gmake
+
+If you're on Slackware:
+
+ sudo gmake install # or, as root, just 'gmake install'
+
+This will install the binaries, man pages, and docs in locations
+appropriate for Slackware Linux (since that's what the author uses).
+
+If you're on a Debian or Ubuntu derivative, use:
+
+ sudo gmake install MANDIR=/usr/share/man DOCDIR=/usr/share/doc/unalf
+
+If you're on some other OS (Red Hat, *BSD, OSX, etc), ask someone
+who actually uses that OS if you're not sure where things should be
+installed to.
+
+If you prefer /usr/local:
+
+ sudo gmake install PREFIX=/usr/local MANDIR=/usr/local/share/man DOCDIR=/usr/local/share/doc/unalf
+
+Variables:
+
+You can set variables on the gmake command line. Example:
+
+ gmake CC=clang COPT=-Os # use a different compiler, optimize for size
+
+See the top of src/Makefile for details on what variables exist and what
+they're used for (not going to duplicate the list here).
diff --git a/README.txt b/README.txt
index 0c012d8..cff578c 100644
--- a/README.txt
+++ b/README.txt
@@ -6,43 +6,56 @@ Linux and anything else that's POSIX-ish. It's also intended to
be a repository of information about the ALF archiver (and UNALF
dearchiver).
-What's here so far:
+Included in both the source and binary distributions:
-README.txt - you're reading it now.
+- README.txt - you're reading it now.
-TODO.txt - plans for the future.
+- TODO.txt - plans for the future.
-src/ - the source. On Linux or similar, you should be able to build
-with "make", followed by "make install" if you want. You have to use
-GNU make, so the command may be "gmake".
+- doc/Arcinfo - describes the format of ARC compressed files. The ALF
+ file structure is almost identical to ARC's. This file was taken from
+ the arc-5.21q source.
-f65/ - "fake 6502" porting layer. Not for the faint of heart. The
-unalf algorithm was ported from a disassembly of the 6502 code, using
-a perl script to convert the 6502 mnemonics to C macros. This means I
-was able to port the code without fully understanding how it works...
+- doc/alf14.atr - the distribution disk for ALF version 1.4, as an Atari
+ 8-bit single-density floppy disk image. This likely isn't the original
+ distribution disk, but it's the only one I've found on the various
+ archive sites.
-doc/Arcinfo - describes the format of ARC compressed files. The ALF
-file structure is almost identical to ARC's. This file was taken from
-the arc-5.21q source.
+- doc/alf14_doc.txt - the documentation for ALF and UNALF, extracted
+ from the disk image and converted from ATASCII to standard ASCII. Note
+ that the filenames are different: LZ.COM for ALF14.COM and DZ.COM for
+ UNALF14.COM.
-doc/alf14.atr - the distribution disk for ALF version 1.4, as an Atari
-8-bit single-density floppy disk image. This likely isn't the original
-distribution disk, but it's the only one I've found on the various
-archive sites.
+- doc/fileformat.txt - documents how the ALF file format differs from ARC.
-doc/alf14_doc.txt - the documentation for ALF and UNALF, extracted
-from the disk image and converted from ATASCII to standard ASCII. Note
-that the filenames are different: LZ.COM for ALF14.COM and DZ.COM for
-UNALF14.COM.
+- doc/review.txt - a review of the original ALFCrunch, from an Atari
+ magazine.
-doc/fileformat.txt - documents how the ALF file format differs from ARC.
+- examples/* - ALF files found in the wild.
-doc/review.txt - a review of the original ALFCrunch, from an Atari magazine.
+Included in the source distribution only:
-examples/* - ALF files found in the wild.
+- BUILD.txt - directions for compiling unalf.
+
+- src/ - the source.
+
+- f65/ - "fake 6502" porting layer. Not for the faint of heart. The
+ unalf algorithm was ported from a disassembly of the 6502 code,
+ using a perl script to convert the 6502 mnemonics to C macros.
+ This means I was able to port the code without fully understanding
+ how it works...
+
+- testing/alfls - a Perl script that lists the contents of an ALF
+ archive. Run it with --help for more information. If you're
+ packaging unalf for a distribution, there's no need to include this
+ script in the package: I wrote it for testing purposes only. You can
+ use "unalf -l" to list .alf files, so this is redundant.
+
+Included in the binary distribution only:
+
+- README_Windows.txt.
+
+- unalf.exe and alfsum.exe - the Windows executables.
+
+- unalf.html and alfsum.html - the man pages, converted to HTML.
-testing/alfls - a Perl script that lists the contents of an ALF
-archive. Run it with --help for more information. If you're packaging
-unalf for a distribution, there's no need to include this script in
-the package: I wrote it for testing purposes only. You can use "unalf
--l" to list .alf files, so this is redundant.