aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile96
1 files changed, 87 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index d1bb32f..90f22c8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,4 @@
+# This Makefile requires GNU make.
# Install paths. DESTDIR is used for installing to an alternate location,
# for people making RPM/deb/tgz/etc packages.
@@ -9,6 +10,9 @@ MAN1DIR=$(MANDIR)/man1
MAN5DIR=$(MANDIR)/man5
MAN7DIR=$(MANDIR)/man7
DOCDIR=$(PREFIX)/share/doc/bw-atari8-tools
+PSFDIR=$(PREFIX)/share/kbd/consolefonts
+BDFDIR=$(PREFIX)/share/share/fonts/misc
+TTFDIR=$(PREFIX)/share/share/fonts/TTF
# Compiler stuff
COPT=-O2
@@ -16,17 +20,20 @@ CC=gcc
CFLAGS=-Wall $(COPT) -ansi -D_GNU_SOURCE -DVERSION=\"$(VERSION)\"
# BINS and SCRIPTS go in $BINDIR, DOCS go in $DOCDIR
-BINS=a8eol xfd2atr atr2xfd blob2c cart2xex fenders xexsplit xexcat atrsize rom2cart unmac65 axe blob2xex xexamine xex1to2 unprotbas
-SCRIPTS=dasm2atasm a8utf8
-MANS=a8eol.1 xfd2atr.1 atr2xfd.1 blob2c.1 cart2xex.1 fenders.1 xexsplit.1 xexcat.1 atrsize.1 rom2cart.1 unmac65.1 axe.1 dasm2atasm.1 a8utf8.1 blob2xex.1 xexamine.1 xex1to2.1 unprotbas.1
+BINS=a8eol atr2xfd atrsize axe blob2c blob2xex cart2xex cxrefbas dumpbas fenders protbas renumbas rom2cart unmac65 unprotbas vxrefbas xex1to2 xexamine xexcat xexsplit xfd2atr listbas a8cat a8xd whichbas bas2aplus listamsb
+SCRIPTS=dasm2atasm diffbas a8diff colorize-amsb abas2html
+MANS=a8eol.1 xfd2atr.1 atr2xfd.1 blob2c.1 cart2xex.1 fenders.1 xexsplit.1 xexcat.1 atrsize.1 rom2cart.1 unmac65.1 axe.1 dasm2atasm.1 blob2xex.1 xexamine.1 xex1to2.1 unprotbas.1 protbas.1 renumbas.1 dumpbas.1 vxrefbas.1 cxrefbas.1 listbas.1 a8cat.1 a8xd.1 whichbas.1 diffbas.1 a8diff.1 bas2aplus.1 listamsb.1 colorize-amsb.1 abas2html.1
MAN5S=xex.5
-MAN7S=atascii.7
-DOCS=README.txt equates.inc *.dasm LICENSE ksiders/atr.txt
+MAN7S=atascii.7 fauxtari.7 amsb.7 ossintbas.7
+DOCS=README.txt CHANGES.txt equates.inc *.dasm LICENSE ksiders/atr.txt
+PSFS=fonts/fauxtari-8.psf fonts/fauxtari-16.psf fonts/fauxtari-24.psf
+BDFS=fonts/fauxtari-8.bdf fonts/fauxtari-16.bdf fonts/fauxtari-24.bdf
+TTF=fonts/FauxtariScalableMono.ttf
SUBDIRS=ksiders jindroush
# All the programs share this version number...
-VERSION=0.2.1
+VERSION=0.2.2
# If your system doesn't support gzipped man pages, comment this out:
GZIP_MAN=y
@@ -47,10 +54,45 @@ RST2MAN=rst2man
# "make clean" and "make distclean" will not delete the 6502 object
# code (the *.bin files), but "make realclean" will.
-all: $(BINS) manpages symlinks subdirs
+all: $(BINS) manpages symlinks subdirs $(TTF) amsb40.txt
+
+atest: atest.c atascii.c atables.c wtable.c
+
+intbas: bas.o
+
+unprotbas: bas.o
+
+protbas: bas.o
+
+renumbas: bas.o bcdfp.o linetab.o
+
+dumpbas: bas.o
+
+whichbas: bas.o
+
+vxrefbas: bas.o
+
+cxrefbas: bas.o bcdfp.o linetab.o
+
+bas2aplus: bas.o
+
+listbas: listbas.c bas.o bcdfp.o tokens.o atables.o turbo_tokens.o aplus_tokens.o bxl_tokens.o bxe_tokens.o int_disk_tokens.o int_tokens.o
+ $(CC) $(CFLAGS) -o listbas listbas.c bas.o bcdfp.o tokens.o atables.o turbo_tokens.o aplus_tokens.o bxl_tokens.o bxe_tokens.o int_disk_tokens.o int_tokens.o -lm
+
+listamsb: listamsb.o atascii.o atables.o
+
+bas.o: bas.c bas.h
+
+wtable.o: wtable.c wtable.h
+
+atables.o: atables.c atables.h
+
+a8cat: a8cat.c atables.o wtable.o atascii.o
+
+a8xd: a8xd.c atables.o
subdirs:
- for dir in $(SUBDIRS); do make -C $$dir COPT=$(COPT); done
+ @for dir in $(SUBDIRS); do ${MAKE} --no-print-directory -C $$dir COPT="$(COPT)"; done
a8eol: a8eol.c
@@ -58,6 +100,9 @@ xfd2atr: xfd2atr.c
atr2xfd: atr2xfd.c
+atables.c: mkatables.pl
+ perl mkatables.pl > atables.c
+
# note to cross-compiler users: If you're building the *.bin targets,
# blob2c needs to be executable on the build host. It'd also be nice
# to build a blob2c for the target platform... Probably you can do
@@ -140,15 +185,30 @@ cart2rom: rom2cart
manpages: $(MANS) $(MAN5S) $(MAN7S)
-%.1: %.rst manhdr.rst manftr.rst
+%.1: %.rst manhdr.rst manftr.rst genopts.rst
$(RST2MAN) $< > $@
%.5: %.rst manhdr5.rst manftr.rst
$(RST2MAN) $< > $@
+amsb.7: amsb.rst manhdr7.rst manftr.rst amsb_content.rst
+
+ossintbas.7: ossintbas.rst manhdr7.rst manftr.rst ossintbas_content.rst
+
%.7: %.rst manhdr7.rst manftr.rst
$(RST2MAN) $< > $@
+fonts/fauxtari-8.bdf: fonts/mkpsf.pl
+ ( cd fonts && perl mkpsf.pl )
+
+$(TTF): fonts/fauxtari-8.bdf
+ bitmapfont2ttf --family-name "Fauxtari Scalable Mono" fonts/fauxtari-8.bdf $(TTF)
+
+# 40-column version of amsb.7, as plain text, for use an an Atari BBS.
+amsb40.txt: amsb_content.rst amsb40.rst
+ rst2man amsb40.rst > amsb40.7
+ LANG=C MANWIDTH=40 man --nj ./amsb40.7 > amsb40.txt
+
# "make clean" does NOT remove the .bin or _bin.[ch] files. This is
# for people who don't have either dasm or atasm installed.
# also, it doesn't remove the man pages. these are checked into git, even.
@@ -199,3 +259,21 @@ install-subdirs: subdirs
for dir in $(SUBDIRS); do \
make -C $$dir DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) BINDIR=$(BINDIR) MAN1DIR=$(MAN1DIR) GZIP_MAN=$(GZIP_MAN) DOCDIR=$(DOCDIR) install; \
done
+
+install-fonts: all
+ sh install-fonts.sh "$(DESTDIR)" "$(BDFDIR)" "$(TTFDIR)"
+
+user-font: user-fonts
+
+user-fonts:
+ $(MAKE) install-fonts BDFDIR=$(HOME)/.fonts TTFDIR=$(HOME)/.fonts
+
+user-symlinks: all
+ SRC=$$( pwd ) ; \
+ mkdir -p ~/bin ; \
+ cd ~/bin && \
+ for i in $(BINS) $(SCRIPTS) \
+ ksiders/atrdir ksiders/atrextr ksiders/makeatr ksiders/sortatr ksiders/unmakatr \
+ jindroush/chkrom/chkrom jindroush/chkbas/chkbas jindroush/bas2boot/bas2boot \
+ jindroush/chkexe/chkexe jindroush/adir/adir jindroush/acvt/acvt jindroush/aext/aext \
+ ; do rm -f $$i; ln -sf $$SRC/$$i . ; done