1# optional CFLAGS include: -O -g -Wall
2# -DNO_LARGE_SWITCH	compiler cannot handle really big switch statements
3#			so break them into smaller pieces
4# -DLITTLE_ENDIAN	machine's byte-sex is like x86 instead of 68k
5# -DPOSIX_TTY		use Posix termios instead of older termio (FreeBSD)
6# -DMEM_BREAK		support memory-mapped I/O and breakpoints,
7#				which will noticably slow down emulation
8
9ifeq ($(OS),Windows_NT)
10  EXE 		:= .exe
11else
12  EXE 		:=
13endif
14
15CC ?= gcc
16CFLAGS = -g -pipe -Wall -DPOSIX_TTY -DLITTLE_ENDIAN -DMEM_BREAK
17LDFLAGS =
18
19FILES = README.md Makefile A-Hdrive B-Hdrive cpmws.png \
20	bdos.c bios.c cpm.c cpmdisc.h defs.h disassem.c main.c vt.c vt.h z80.c \
21	bye.mac getunix.mac putunix.mac cpmtool.c
22
23OBJS =	bios.o \
24	disassem.o \
25	main.o \
26	vt.o \
27	bdos.o \
28	z80.o
29
30all: cpm$(EXE) cpmtool$(EXE)
31
32cpmtool$(EXE): cpmtool.o
33	$(CC) $(CFLAGS) $(LDFLAGS) -o cpmtool$(EXE) cpmtool.o
34
35cpm$(EXE): $(OBJS)
36	$(CC) $(CFLAGS) $(LDFLAGS) -o cpm$(EXE) $(OBJS)
37
38
39bios.o:		bios.c defs.h cpmdisc.h cpm.c
40z80.o:		z80.c defs.h
41disassem.o:	disassem.c defs.h
42main.o:		main.c defs.h
43
44clean:
45	rm -f cpm$(EXE) cpmtool$(EXE) *.o *~
46
47tags:	$(FILES)
48	cxxtags *.[hc]
49
50tar:
51	tar -zcf cpm.tgz $(FILES)
52
53files:
54	@echo $(FILES)
55
56difflist:
57	@for f in $(FILES); do rcsdiff -q $$f >/dev/null || echo $$f; done
58