]> Shamusworld >> Repos - rmac/blobdiff - makefile
Long forgotten helper script which is used to create tables for VS builds
[rmac] / makefile
index 33b9cfe43d5e4227b39f1779b50031ed5a310efc..ca6b7d1c99ba26f78f0492133b792f4f73370f2a 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,24 +1,40 @@
 #
-# RMAC - Reboot's Macro Assembler for the Atari Jaguar
-# Copyright (C) 199x Landon Dyer, 2011 Reboot & Friends
+# RMAC - Reboot's Macro Assembler for all Atari computers
+# Copyright (C) 199x Landon Dyer, 2011-2019 Reboot & Friends
 # MAKEFILE for *nix
 #
 
-rm = /bin/rm -f 
+STD := c99
+
+# Detect old, shitty platforms that aren't C99/POSIX compliant
+OSTYPE := $(shell uname -a)
+
+# Should catch MinGW
+ifeq "$(findstring MINGW, $(OSTYPE))" "MINGW"
+STD := gnu99
+endif
+
+# If we're cross compiling using MXE, we're still fooooooooooked
+ifneq "$(CROSS)" ""
+STD := gnu99
+endif
+
+
+RM = /bin/rm -f
 CC = $(CROSS)gcc
 HOSTCC = gcc
 
-CFLAGS = -g -D__GCCUNIX__ -I. -O2
-
-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 
+#CFLAGS = -std=$(STD) -D_DEFAULT_SOURCE -g -D__GCCUNIX__ -I. -O2 -MMD
+CFLAGS = -std=$(STD) -D_DEFAULT_SOURCE -g -D__GCCUNIX__ -I. -O2
 
-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
+OBJS = 6502.o amode.o debug.o direct.o dsp56k.o dsp56k_amode.o dsp56k_mach.o eagen.o error.o expr.o fltpoint.o listing.o mach.o macro.o mark.o object.o op.o procln.o riscasm.o rmac.o sect.o symbol.o token.o
 
 #
 # Build everything
 #
 
-all : mntab.h 68ktab.h kwtab.h risckw.h rmac
+#all: mntab.h 68ktab.h kwtab.h risckw.h 6502kw.h opkw.h dsp56ktab.h rmac
+all: rmac
        @echo
        @echo "Don't forget to bump the version number before commiting!"
        @echo
@@ -28,96 +44,107 @@ all : mntab.h 68ktab.h kwtab.h risckw.h rmac
 # definitions
 #
 
-mntab.h : mntab 68kmn kwgen
-       cat mntab 68kmn | ./kwgen mn >mntab.h
+68ktab.h 68k.tab: 68k.mch 68kgen
+       ./68kgen 68k.tab <68k.mch >68ktab.h
 
-68ktab.h 68kmn : 68ktab 68ktab 68kgen
-       ./68kgen 68kmn <68ktab >68ktab.h
+dsp56ktab.h dsp56k.tab: dsp56k.mch dsp56kgen
+       ./dsp56kgen dsp56k.tab <dsp56k.mch >dsp56ktab.h
 
-kwtab.h : kwtab kwgen
-       ./kwgen kw <kwtab >kwtab.h
 
-risckw.h : kwtab kwgen
-       ./kwgen mr <risctab >risckw.h
+mntab.h: direct.tab 68k.tab kwgen
+       cat direct.tab 68k.tab | ./kwgen mn >mntab.h
 
-#
-# Build tools
-#
+kwtab.h: kw.tab kwgen
+       ./kwgen kw <kw.tab >kwtab.h
 
-kwgen.o : kwgen.c
-       $(HOSTCC) $(CFLAGS) -c kwgen.c
+6502kw.h: 6502.tab kwgen
+       ./kwgen mp <6502.tab >6502kw.h
 
-kwgen : kwgen.o
-       $(HOSTCC) $(CFLAGS) -o kwgen kwgen.o
+risckw.h: risc.tab kwgen
+       ./kwgen mr <risc.tab >risckw.h
 
-68kgen.o : 68kgen.c
-       $(HOSTCC) $(CFLAGS) -c 68kgen.c 
+opkw.h: op.tab kwgen
+       ./kwgen mo <op.tab >opkw.h
 
-68kgen : 68kgen.o
-       $(HOSTCC) $(CFLAGS) -o 68kgen 68kgen.o
+# Looks like this is not needed...
+dsp56kkw.h: dsp56k.tab kwgen
+       ./kwgen dsp <dsp56k.tab >dsp56kkw.h
 
 #
-# Build RMAC executable
+# Build tools
 #
 
-amode.o : amode.c
-       $(CC) $(CFLAGS) -c amode.c
-
-debug.o : debug.c
-       $(CC) $(CFLAGS) -c debug.c
-
-direct.o : direct.c
-       $(CC) $(CFLAGS) -c direct.c
-
-eagen.o : eagen.c
-       $(CC) $(CFLAGS) -c eagen.c
-
-error.o : error.c
-       $(CC) $(CFLAGS) -c error.c
-
-expr.o : expr.c
-       $(CC) $(CFLAGS) -c expr.c
+%gen: %gen.c
+       $(HOSTCC) $(CFLAGS) -c $<
+       $(HOSTCC) $(CFLAGS) -o $*gen $<
 
-listing.o : listing.c
-       $(CC) $(CFLAGS) -c listing.c
-
-mach.o : mach.c
-       $(CC) $(CFLAGS) -c mach.c
-
-macro.o : macro.c
-       $(CC) $(CFLAGS) -c macro.c
-
-mark.o : mark.c
-       $(CC) $(CFLAGS) -c mark.c
-
-object.o : object.c
-       $(CC) $(CFLAGS) -c object.c
-
-procln.o : procln.c
-       $(CC) $(CFLAGS) -c procln.c
-
-risca.o : risca.c
-       $(CC) $(CFLAGS) -c risca.c
-
-rmac.o : rmac.c
-       $(CC) $(CFLAGS) -c rmac.c
-
-sect.o : sect.c
-       $(CC) $(CFLAGS) -c sect.c
-
-symbol.o : symbol.c
-       $(CC) $(CFLAGS) -c symbol.c
+#
+# Build RMAC executable
+#
 
-token.o : token.c
-       $(CC) $(CFLAGS) -c token.c 
+%.o: %.c %.h
+       $(CC) $(CFLAGS) -c $<
 
-rmac : $(OBJS) 
-       $(CC) $(CFLAGS) -o rmac $(OBJS)
+rmac: $(OBJS)
+       $(CC) $(CFLAGS) -o rmac $(OBJS) -lm
 
 #
 # Clean build environment
 #
 
-clean: 
-       $(rm) $(OBJS) kwgen.o 68kgen.o rmac kwgen 68kgen kwtab.h 68ktab.h mntab.h risckw.h
+clean:
+       $(RM) $(OBJS) kwgen.o 68kgen.o rmac kwgen 68kgen 68k.tab kwtab.h 68ktab.h mntab.h risckw.h 6502kw.h opkw.h dsp56kgen dsp56kgen.o dsp56k.tab dsp56kkw.h dsp56ktab.h
+
+#
+# Dependencies
+#
+6502.o: 6502.c direct.h rmac.h symbol.h token.h expr.h error.h mach.h \
+ procln.h riscasm.h sect.h kwtab.h
+68kgen: 68kgen.c
+amode.o: amode.c amode.h rmac.h symbol.h error.h expr.h mach.h procln.h \
+ token.h sect.h riscasm.h kwtab.h mntab.h parmode.h
+debug.o: debug.c debug.h rmac.h symbol.h amode.h direct.h token.h expr.h \
+ mark.h sect.h riscasm.h
+direct.o: direct.c direct.h rmac.h symbol.h token.h 6502.h amode.h \
+ error.h expr.h fltpoint.h listing.h mach.h macro.h mark.h procln.h \
+ riscasm.h sect.h kwtab.h
+dsp56k.o: dsp56k.c rmac.h symbol.h dsp56k.h sect.h riscasm.h
+dsp56k_amode.o: dsp56k_amode.c dsp56k_amode.h rmac.h symbol.h amode.h \
+ error.h token.h expr.h procln.h sect.h riscasm.h kwtab.h mntab.h
+dsp56k_mach.o: dsp56k_mach.c dsp56k_mach.h rmac.h symbol.h dsp56k_amode.h \
+ amode.h direct.h token.h dsp56k.h sect.h riscasm.h error.h kwtab.h \
+ dsp56ktab.h
+dsp56kgen: dsp56kgen.c
+eagen.o: eagen.c eagen.h rmac.h symbol.h amode.h error.h fltpoint.h \
+ mach.h mark.h riscasm.h sect.h token.h eagen0.c
+error.o: error.c error.h rmac.h symbol.h listing.h token.h
+expr.o: expr.c expr.h rmac.h symbol.h direct.h token.h error.h listing.h \
+ mach.h procln.h riscasm.h sect.h kwtab.h
+fltpoint.o: fltpoint.c fltpoint.h
+kwgen: kwgen.c
+listing.o: listing.c listing.h rmac.h symbol.h error.h procln.h token.h \
+ sect.h riscasm.h version.h
+mach.o: mach.c mach.h rmac.h symbol.h amode.h direct.h token.h eagen.h \
+ error.h expr.h procln.h riscasm.h sect.h kwtab.h 68ktab.h
+macro.o: macro.c macro.h rmac.h symbol.h debug.h direct.h token.h error.h \
+ expr.h listing.h procln.h
+mark.o: mark.c mark.h rmac.h symbol.h error.h object.h riscasm.h sect.h
+object.o: object.c object.h rmac.h symbol.h 6502.h direct.h token.h \
+ error.h mark.h riscasm.h sect.h
+op.o: op.c op.h direct.h rmac.h symbol.h token.h error.h expr.h \
+ fltpoint.h mark.h procln.h riscasm.h sect.h opkw.h
+procln.o: procln.c procln.h rmac.h symbol.h token.h 6502.h amode.h \
+ direct.h dsp56kkw.h error.h expr.h listing.h mach.h macro.h op.h riscasm.h \
+ sect.h kwtab.h mntab.h risckw.h 6502kw.h opkw.h
+riscasm.o: riscasm.c riscasm.h rmac.h symbol.h amode.h direct.h token.h \
+ error.h expr.h mark.h procln.h sect.h risckw.h kwtab.h
+rmac.o: rmac.c rmac.h symbol.h 6502.h debug.h direct.h token.h error.h \
+ expr.h listing.h mark.h macro.h object.h procln.h riscasm.h sect.h \
+ version.h
+sect.o: sect.c sect.h rmac.h symbol.h riscasm.h 6502.h direct.h token.h \
+ error.h expr.h listing.h mach.h mark.h
+symbol.o: symbol.c symbol.h error.h rmac.h listing.h object.h procln.h \
+ token.h
+token.o: token.c token.h rmac.h symbol.h direct.h error.h macro.h \
+ procln.h sect.h riscasm.h kwtab.h