-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
52 lines (37 loc) · 1.09 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Makefile for bast, ZX Basic compiler
PREFIX ?= /usr/local
CC ?= gcc
CFLAGS ?= -Wall -Wextra -pedantic --std=gnu99 -Werror -g
AWK ?= awk
VERSION:="`./mkversion`"
all: bast objify test.tap
install: bast objify
install -D bast $(PREFIX)/bin/bast
install -D objify $(PREFIX)/bin/objify
bast: bast.c tokens.o tokens.h version.h
$(CC) $(CFLAGS) -o bast bast.c tokens.o -lm
mkversion: mkversion.c version.h
$(CC) $(CFLAGS) -o mkversion mkversion.c
version.h: version
./gitversion
version:
touch version
tokens.o: tokens.c tokens.h addtokens.c
tokens: toktbl x-tok
./x-tok < toktbl > tokens
addtokens.c: tokens mkaddtokens.awk
$(AWK) -f mkaddtokens.awk < tokens > addtokens.c
%: %.c
$(CC) $(CFLAGS) -o $@ $<
%.o: %.c %.h
$(CC) $(CFLAGS) -o $@ -c $<
test.tap: bast test.bas test.obj
./bast -b test.bas -l test.obj -t test.tap -W all -O cut-numbers
dist: all mkversion
-mkdir bast_$(VERSION)
for p in *; do cp $$p bast_$(VERSION)/$$p; done;
-rm bast_$(VERSION)/*.tap
-rm bast_$(VERSION)/*.tar.gz
tar -cvvf bast_$(VERSION).tar bast_$(VERSION)
gzip bast_$(VERSION).tar
-rm -r bast_$(VERSION)