ifndef arch
arch := $(shell sh ../config/arch.sh)
endif
include ../config/make.$(arch)


gm: all

all: $(arch) $(arch)/libsw.a $(arch)/test16 $(arch)/test162 $(arch)/loic

includes := $(shell ls *.h)

libsw_source = \
sw_DeadlockSender.c \
sw_SpeedWriter.c \
sw_BandwidthSender.c \
sw_SnakeySender.c \
sw_Test162.c \
sw_Test162.c \
sw_RouteSender.c \
sw_PortSender.c \
sw_CrossPointSender.c \
sw_ImpedenceReader.c \
sw_TestPort.c \
sw_Test16.c \
sw_Sender.c \
sw_MessageSender.c \
sw_Threadable.c

libsw_object = $(libsw_source:%.c=$(arch)/%.o)

$(arch)/libsw.a : $(libsw_object)
	$(ar) $(ar_syntax)
	$(ranlib) $@


$(arch)/test16 : $(arch)/test16.o $(arch)/libsw.a ../libmt/$(arch)/libmt.a  ../libmt/$(arch)/libmtgm.a ../deadlock/$(arch)/libdeadlock.a
	$(linker) $(link_syntax) $^ $(gm_libs) -lpthread $(linker_options)	

$(arch)/test162 : $(arch)/test162.o $(arch)/libsw.a ../libmt/$(arch)/libmt.a  ../libmt/$(arch)/libmtgm.a ../deadlock/$(arch)/libdeadlock.a
	$(linker) $(link_syntax) $^ $(gm_libs) -lpthread $(linker_options)	

$(arch)/loic : $(arch)/loic.o $(arch)/libsw.a ../libmt/$(arch)/libmt.a  ../libmt/$(arch)/libmtgm.a ../deadlock/$(arch)/libdeadlock.a
	$(linker) $(link_syntax) $^ $(gm_libs) -lpthread $(linker_options)	

$(arch)/%.o : %.c $(includes) ../config/make.$(arch) makefile
	$(compiler) $(defines) $(idirs) -I. -I../libmt $(build_syntax)

$(arch) :
	mkdir $(arch)

clean:
	rm -rf $(arch)