# Myrinet Makefile
#
# Author: Guto

include		$(EPOS)/Makedefs

ROUTE2DEF	= tools/route2def 16 3
MCP2DEF		= tools/mcp2def

all		: tools mcp myrinet_data.o myrinet_init.o  myrinet.o
		$(AR) $(AR_FLAGS) $(LIB)/libsystem_data.a myrinet_data.o
		$(AR) $(AR_FLAGS) $(LIB)/libsystem_init.a myrinet_init.o
		$(AR) $(AR_FLAGS) $(LIB)/libsystem.a myrinet.o

tools		: FORCE
		(cd tools && $(MAKE))

mcp		: FORCE
		(cd mcp && $(MAKE))

myrinet_data.o	: myrinet_data.cc
		$(CCC) $(CCC_FLAGS) myrinet_data.cc

myrinet_init.o	: myrinet_routes.h mcp.h myrinet_init.cc
		$(CCC) $(CCC_FLAGS) myrinet_init.cc

myrinet.o	: myrinet.cc
		$(CCC) $(CCC_FLAGS) myrinet.cc

myrinet_routes.h: myrinet_routes.txt
		$(ROUTE2DEF) myrinet_routes.txt myrinet_routes.h

mcp.h		: mcp/mcp.dat
		$(MCP2DEF) mcp/mcp.dat mcp.h

test            : FORCE
		(cd test && $(MAKE))

print		:
		( cd tools && $(MAKE) print )
		( cd mcp && $(MAKE) print )
		$(PRINT1) $(INCLUDE)/myrinet.h \
			$(INCLUDE)/net/lanai.h \
			$(INCLUDE)/net/myrinet_nic.h \
			$(INCLUDE)/system/network_adapter/myrinet.h \
			myrinet_routes.h \
			myrinet_data.cc \
			myrinet_init.cc \
			myrinet.cc \
			test/myrinet_test.cc \
		$(PRINT2)

clean		:
		-(cd tools && $(MAKE) clean)
		-(cd mcp && $(MAKE) clean)
		-(cd test && $(MAKE) clean)
		$(CLEAN) myrinet_routes.h mcp.h *.o *.a

FORCE		:
