blob: 2576e2aa9d8e3abc096e71371ea7c31c2d3f416e (
plain)
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
|
noinst_PROGRAMS = eviction_macro sr tiny
nodist_sr_SOURCES = sr.c
nodist_tiny_SOURCES = tiny.c
GEN4ASM_FLAGS = -g6 -a -b
ASM_CPPFLAGS = \
-x assembler-with-cpp \
-P -DGEN_ASM -DSANDYBRIDGE \
-I$(top_srcdir)/lib \
-I$(builddir)
evict.h : eviction_macro
$(builddir)/eviction_macro > evict.h
sr.cpp : sr.g4a
$(srcdir)/pre_cpp.py $(srcdir)/sr.g4a > $@.tmp && mv $@.tmp $@
sr.asm : sr.cpp evict.h
$(CPP) $(ASM_CPPFLAGS) -o $@ sr.cpp
sr.c: sr.asm
$(GEN4ASM) $(GEN4ASM_FLAGS) sr.asm -o $@
sr.o : sr.c
$(CC) -c -o $@ sr.c
sr : sr.o
$(OBJCOPY) -O binary -K gen_eu_bytes sr.o $@
# Test.g4a is the simplest possible system routine we can run on the GPU
# without actually hanging the system. The system routine kernel is very
# simple and doesn't depend on any external communication to run.
tiny.cpp : test.g4a
$(srcdir)/pre_cpp.py $(srcdir)/test.g4a > $@.tmp && mv $@.tmp $@
tiny.asm : tiny.cpp
$(CPP) $(ASM_CPPFLAGS) -o $@ tiny.cpp
tiny.c: tiny.asm
$(GEN4ASM) $(GEN4ASM_FLAGS) tiny.asm -o $@
tiny.o : tiny.c
$(CC) -c -o $@ tiny.c
tiny : tiny.o
$(OBJCOPY) -O binary -K gen_eu_bytes tiny.o $@
CLEANFILES = evict.h sr.cpp sr.asm sr.c tiny.cpp tiny.asm tiny.c
EXTRA_DIST = pre_cpp.py sr.g4a test.g4a
|