# User must specify the root path for the OCP SystemC communication channel  

TL_SC = /path/to/ocpchannel

# set this if not in environment
#SYSTEMC = /usr/local/systemc/

# use one of these
#TARGET_ARCH = linux
#TARGET_ARCH = gccsparcOS5
#TARGET_ARCH = cygwin

CC = g++
debug: OPT = -g
opt: OPT = -O
FLAGS = -Wall -Wno-deprecated


INC = -I. -I$(SYSTEMC)/include -I$(TL_SC)/include -I../../include/tl1_tl2

.cpp.o:
	$(CC) $(OPT) $(FLAGS) $(INC) -c $<

OBJECTS= 	ocp_tl2_slave.o   \
			ocp_tl1_master.o  \
			ocp_tl1_slave_sync.o \
			simple_ocp_master_tl2.o 

LDPATH += -L $(SYSTEMC)/lib-$(TARGET_ARCH)
LDLIBS += -lsystemc -lm

# Standard targets.
debug | opt: run_master_adapter run_slave_adapter


run_master_adapter: $(OBJECTS) top_tl1_tl2_master_adapter.o ocp_tl1_tl2_master_adapter.o Makefile
	$(CC) $(OPT) -o run_master_adapter top_tl1_tl2_master_adapter.o ocp_tl1_tl2_master_adapter.o $(OBJECTS) $(LDPATH) $(LDLIBS)

run_slave_adapter: $(OBJECTS) top_tl1_tl2_slave_adapter.o ocp_tl1_tl2_slave_adapter.o Makefile
	$(CC) $(OPT) -o run_slave_adapter top_tl1_tl2_slave_adapter.o ocp_tl1_tl2_slave_adapter.o $(OBJECTS) $(LDPATH) $(LDLIBS)

ocp_tl1_tl2_slave_adapter.o: ../../src/tl1_tl2/ocp_tl1_tl2_slave_adapter.cpp 
	$(CC) $(OPT) $(FLAGS) $(INC) -c $<

ocp_tl1_tl2_master_adapter.o: ../../src/tl1_tl2/ocp_tl1_tl2_master_adapter.cpp 
	$(CC) $(OPT) $(FLAGS) $(INC) -c $<

clean::
	- rm *.o run_master_adapter run_slave_adapter
