summaryrefslogtreecommitdiff
path: root/Makefile
blob: 7232feb8053254e529ef841ed471fd6659a04f29 (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
EXE:=test acker array copyfile e fac fsieve hamming invperm length lqueen mulmat nfib pascal reverse revtwice rfib sieve squeen str_arit stwice tak twice war_seq
OBJ:=$(addsuffix .o,$(EXE))
ASM:=$(addsuffix .s,$(EXE))
DEPS_O:=_system.o cgopts.o
SECONDARY:=_system.s $(addsuffix .abc,$(EXE))
CC:=gcc

CLM:=clm
CG:=/home/pi/cg/cg
AS:=as

ASFLAGS:=-march=armv7-a --gstabs
CFLAGS:=-march=armv7-a -Wall -Wl,-Map=lastmap.map

RTS:=/home/pi/rts/_startup.o

arm:
	$(eval CG:=/home/pi/clean/exe/cg.old)
	$(eval RTS=/home/pi/rts/_startup.arm.o)

all: all_exe all_asm all_obj

all_exe: $(EXE)

all_asm: $(ASM)

all_obj: $(OBJ)

%.o: %.s
	$(AS) -o $@ $< $(ASFLAGS)

ffi: %: %.o $(DEPS_O) ffi_c.o
	$(CC) -o $@\
		$(RTS)\
		$(DEPS_O)\
		$<\
		ffi_c.o\
		-lc -lm\
		$(CFLAGS)

$(EXE): %: %.o $(DEPS_O)
	$(CC) -o $@\
		$(RTS)\
		$(DEPS_O)\
		$<\
		-lc -lm\
		$(CFLAGS)

#$(DEPS_O): %.o: %.s
#	$(CC) -c -o $@ $< $(CFLAGS)

%.s: %.abc
	$(CG) $(basename $@) -s $@

%.abc: %.icl
	$(CLM) -d -ABC $(subst .abc,,$@); return 0
	mv Clean\ System\ Files/$@ $@
	if [ -z "$$(ls -qAL Clean\ System\ Files)" ]; then rmdir Clean\ System\ Files; fi

clean:
	$(RM) -r $(EXE) $(OBJ) $(DEPS_O) $(ASM) $(SECONDARY) Clean\ System\ Files