2 # RMAC - Reboot's Macro Assembler for the Atari Jaguar
3 # Copyright (C) 199x Landon Dyer, 2011 Reboot & Friends
9 # Detect old, shitty platforms that aren't C99/POSIX compliant
10 OSTYPE := $(shell uname -a)
13 ifeq "$(findstring MINGW, $(OSTYPE))" "MINGW"
17 # If we're cross compiling using MXE, we're still fooooooooooked
27 CFLAGS = -std=$(STD) -D_DEFAULT_SOURCE -g -D__GCCUNIX__ -I. -O2
29 SRCS = amode.c debug.c direct.c eagen.c error.c expr.c listing.c mach.c macro.c mark.c object.c procln.c riscasm.c rmac.c sect.c symbol.c token.c
31 OBJS = amode.o debug.o direct.o eagen.o error.o expr.o listing.o mach.o macro.o mark.o object.o procln.o riscasm.o rmac.o sect.o symbol.o token.o
37 all : mntab.h 68ktab.h kwtab.h risckw.h rmac
39 @echo "Don't forget to bump the version number before commiting!"
43 # Generated sources for state machines and keyword, directive and mnemonic
47 mntab.h : mntab 68kmn kwgen
48 cat mntab 68kmn | ./kwgen mn >mntab.h
50 68ktab.h 68kmn : 68ktab 68ktab 68kgen
51 ./68kgen 68kmn <68ktab >68ktab.h
54 ./kwgen kw <kwtab >kwtab.h
56 risckw.h : kwtab kwgen
57 ./kwgen mr <risctab >risckw.h
64 $(HOSTCC) $(CFLAGS) -c kwgen.c
67 $(HOSTCC) $(CFLAGS) -o kwgen kwgen.o
70 $(HOSTCC) $(CFLAGS) -c 68kgen.c
73 $(HOSTCC) $(CFLAGS) -o 68kgen 68kgen.o
76 # Build RMAC executable
80 $(CC) $(CFLAGS) -c amode.c
83 $(CC) $(CFLAGS) -c debug.c
86 $(CC) $(CFLAGS) -c direct.c
89 $(CC) $(CFLAGS) -c eagen.c
92 $(CC) $(CFLAGS) -c error.c
95 $(CC) $(CFLAGS) -c expr.c
98 $(CC) $(CFLAGS) -c listing.c
101 $(CC) $(CFLAGS) -c mach.c
104 $(CC) $(CFLAGS) -c macro.c
107 $(CC) $(CFLAGS) -c mark.c
110 $(CC) $(CFLAGS) -c object.c
113 $(CC) $(CFLAGS) -c procln.c
116 $(CC) $(CFLAGS) -c risca.c
119 $(CC) $(CFLAGS) -c rmac.c
122 $(CC) $(CFLAGS) -c sect.c
125 $(CC) $(CFLAGS) -c symbol.c
128 $(CC) $(CFLAGS) -c token.c
131 $(CC) $(CFLAGS) -o rmac $(OBJS)
134 # Clean build environment
138 $(rm) $(OBJS) kwgen.o 68kgen.o rmac kwgen 68kgen kwtab.h 68ktab.h mntab.h risckw.h