summaryrefslogtreecommitdiff
path: root/Makefile
blob: 2e4463d4ee7b6fd79af407710288424cb6c49b6f (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
EXE:=test acker copyfile e fsieve hamming invperm 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:=cgopts.o _system.o
SECONDARY:=_system.s
CC:=arm-linux-gnueabihf-gcc

CLM:=clm
CG:=/home/pi/cg/cg
AS:=arm-linux-gnueabihf-as

ASFLAGS:=-g -march=armv8-a+crc -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --gstabs
CFLAGS:=-g -march=armv8-a+crc -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard -mtune=cortex-a53 -Wall

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

all: all_exe all_asm all_obj

all_exe: $(EXE)

all_asm: $(ASM)

all_obj: $(OBJ)

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

$(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