
# Configure this oath to point to the base of your linux source tree
LINUXPATH=../../kernel

# -DSPWLIB_PKT_EXTRA_DATA=4 is set to add 16byte data to all packets
CFLAGS=-Wall -O2 -g3 -DSPWLIB_PKT_EXTRA_DATA=1 -I$(LINUXPATH)/drivers/grlib/include
LDFLAGS=-static
CC=sparc-linux-gcc

.PHONY:all test_maplib

all: spwlib.o grspwlib.o maplib_user.o test.c test.h routeinit_auto_router.c routeinit_dual.c
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=128 -o grspw128 test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=256 -o grspw256 test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=512 -o grspw512 test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=1024 -o grspw1k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=2048 -o grspw2k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=4096 -o grspw4k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=8192 -o grspw8k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=16384 -o grspw16k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=32768 -o grspw32k test.c spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=128 -o grspw_dual128 test.c -DSPW_LINKS_USED=2 -DROUTEINIT=2 spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=1024 -o grspw_dual1k test.c -DSPW_LINKS_USED=2 -DROUTEINIT=2 spwlib.o grspwlib.o maplib_user.o
	$(CC) $(CFLAGS) $(LDFLAGS) -DPKT_SIZE=32768 -o grspw_dual32k test.c -DSPW_LINKS_USED=2 -DROUTEINIT=2 spwlib.o grspwlib.o maplib_user.o

spwlib.o: spwlib.c spwlib.h
	$(CC) $(CFLAGS) -c -o spwlib.o spwlib.c

grspwlib.o: grspwlib.c grspwlib.h
	$(CC) $(CFLAGS) -c -o grspwlib.o grspwlib.c

maplib_user.o: maplib_user.c maplib_user.h
	$(CC) $(CFLAGS) -c -o maplib_user.o maplib_user.c

test_maplib: test_maplib.c
	$(CC) $(CFLAGS) -o test_maplib test_maplib.c

clean:
	-rm -f *.o test_maplib grspw grspw[0-9]* grspw_dual*
	
leon: export CC=sparc-linux-gcc
leon: all test_maplib

noel32: export CC=riscv32-linux-gcc
noel32: all test_maplib

noel64: export CC=riscv64-linux-gcc
noel64: all test_maplib
