X-Git-Url: https://jxself.org/git/?p=a56.git;a=blobdiff_plain;f=src%2FMakefile;fp=src%2FMakefile;h=b2294b32bde5ca003bc8733496adb464cc0c9de5;hp=0000000000000000000000000000000000000000;hb=34923afb4a618598083726717bf2f20d310f4f6e;hpb=c6db6f4c5cb82f5e09472163bf11be0c165965ee diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..b2294b3 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,146 @@ +####################################################### +# +# a56 - a DSP56001 assembler +# +# Written by Quinn C. Jensen +# July 1990 +# +####################################################### + +# Copyright (C) 2012 Thorsten Alteholz +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# . +# +# This file incorporates work covered by the following copyright and +# permission notice: +# +# Copyright (C) 1990-1998 Quinn C. Jensen +# +# Permission to use, copy, modify, distribute, and sell this +# software and its documentation for any purpose is hereby granted +# without fee, provided that the above copyright notice appear in all +# copies and that both that copyright notice and this permission +# notice appear in supporting documentation. The author makes no +# representations about the suitability of this software for any +# purpose. It is provided "as is" without express or implied +# warranty. + +# environment definitions +# uncomment the ones you like + +# generic unix +CC = cc +HOSTCC = cc +YACC = yacc +CCDEFS = -DLDEBUG +MV = mv +YTABC = y.tab.c +YTABH = y.tab.h +POSTPROCESS = echo + +# gcc & bison +#CC = gcc +#HOSTCC = gcc +#YACC = bison -y +#CCDEFS = +#MV = mv +#YTABC = y.tab.c +#YTABH = y.tab.h +#POSTPROCESS = echo + +# Delorie's DOS gcc (from ftp://omnigate.clarkson.edu/pub/msdos/djgpp) +#CC = gcc +#HOSTCC = gcc +#YACC = bison -y +#CCDEFS = +#MV = ren +#YTABC = y_tab.c +#YTABH = y_tab.h +#POSTPROCESS = coff2exe + +# gcc cross-compile to go32 environment +#CC = i386-go32-gcc +#HOSTCC = cc +#YACC = yacc +#CCDEFS = +#MV = mv +#YTABC = y.tab.c +#YTABH = y.tab.h +#POSTPROCESS = echo + +####################################################### + +# -O or -g +#DEBUG = -O -Olimit 3000 +DEBUG = -O + +SRCS = main.c a56.y lex.c subs.c getopt.c kparse.key +OBJS = main.o gram.o lex.o toktab.o subs.o getopt.o kparse.o + +DEFINES = $(CCDEFS) +#DEFINES = -DYYDEBUG -DLDEBUG $(CCDEFS) + +CFLAGS = $(DEBUG) $(DEFINES) $(CPPFLAGS) $(LDFLAGS) + +all: keybld a56 toomf + +a56: $(OBJS) + $(CC) $(CFLAGS) -o a56 $(OBJS) -lm + @$(POSTPROCESS) a56 + +keybld: keybld.o ksubs.o + $(HOSTCC) $(CFLAGS) -o keybld keybld.o ksubs.o + @$(POSTPROCESS) keybld + +keybld.o: keybld.c + $(HOSTCC) $(CFLAGS) -c keybld.c + +ksubs.o: subs.c + $(HOSTCC) $(CFLAGS) -c subs.c + $(MV) subs.o ksubs.o + +lex.o: lex.c gram.h + +kparse.c: a56.key keybld + ./keybld < a56.key > kparse.c + +gram.c gram.h: a56.y + @echo "[expect 2 shift/reduce conflicts here]" + $(YACC) -d a56.y + $(MV) $(YTABC) gram.c + $(MV) $(YTABH) gram.h + +toktab.c: gram.h + awk -f tok.awk < gram.h > toktab.c + +y.output: a56.y + $(YACC) -v a56.y + +toomf: toomf.o + $(CC) -o toomf $(CFLAGS) toomf.o + @$(POSTPROCESS) toomf + +torom: torom.o subs.o + $(CC) -o torom $(CFLAGS) torom.o subs.o + +tape: toktab.c + csh -c 'tar cvbf 1 - `cat files` | gzip > a56.tar.gz' + +main.o gram.o lex.o: a56.h + +clean: ; rm -f a56 toomf y.output *.o *.out tmp *.bak a56.tar.gz keybld + +spotless: clean + rm -f gram.c lexyy.c gram.h toktab.c kparse.c