blob: 03f0f0f604b1ba7e7a3df430a4ed114a1a748794 [file] [log] [blame]
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$(EXEEXT) : 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$(EXEEXT) : 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