# @configure_input@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix=@exec_prefix@
VPATH = @srcdir@
CC=@CC@

CFLAGS=@CFLAGS@ -I. -Wall -fPIC

SHARED_LIB=libviterbi.so.2
STATIC_LIB=@STATIC_LIB@

CLIB=viterbi27port.o viterbi29port.o parity.o
MMXLIB=viterbi27mmx.o mmxbfly27.o viterbi29mmx.o mmxbfly29.o cpu_features.o
SSELIB=viterbi27sse.o ssebfly27.o viterbi29sse.o ssebfly29.o cpu_features.o
SSE2LIB=viterbi27sse2.o sse2bfly27.o viterbi29sse2.o sse2bfly29.o cpu_features.o

all: $(SHARED_LIB) $(STATIC_LIB)

test: vtest27 vtest29
	./vtest27
	./vtest29

install: all
	$(BSD_INSTALL_DATA) $(STATIC_LIB) @libdir@
	$(BSD_INSTALL_PROGRAM) $(SHARED_LIB) @libdir@
	(cd @libdir@;ln -f -s $(SHARED_LIB) libviterbi.so)
	(cd @libdir@;ln -f -s $(STATIC_LIB) libviterbi.a)
	$(BSD_INSTALL_DATA) parity.h viterbi27.h viterbi29.h @includedir@
	$(BSD_INSTALL_MAN) simd-viterbi.3 @mandir@/man3

vtest27: vtest27.o $(STATIC_LIB)
	cc -g -o $@ $^

vtest29: vtest29.o $(STATIC_LIB)
	cc -g -o $@ $^

vtest27.o: vtest27.c viterbi27.h parity.h

vtest29.o: vtest29.c viterbi29.h parity.h

libviterbi_port.a: $(CLIB)
	ar rv $@ $^

libviterbi_mmx.a: $(MMXLIB)
	ar rv $@ $^

libviterbi_sse.a: $(SSELIB)
	ar rv $@ $^

libviterbi_sse2.a: $(SSE2LIB)
	ar rv $@ $^

$(SHARED_LIB): $(STATIC_LIB)
	cc -shared -fPIC -Xlinker -soname=libviterbi.so.@SO_NAME@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive -lc

viterbi27port.o: viterbi27.c viterbi27.h parity.h
	cc -c $(CFLAGS) -o $@ $<

viterbi27mmx.o: viterbi27.c viterbi27.h parity.h
	cc -c $(CFLAGS) -DMMX=1 -o $@ $<

viterbi27sse.o: viterbi27.c viterbi27.h parity.h
	cc -c $(CFLAGS) -DSSE=1 -o $@ $<

viterbi27sse2.o: viterbi27.c viterbi27.h parity.h
	cc -c $(CFLAGS) -DSSE2=1 -o $@ $<

viterbi29port.o: viterbi29.c viterbi29.h parity.h
	cc -c $(CFLAGS) -o $@ $<

viterbi29mmx.o: viterbi29.c viterbi29.h parity.h
	cc -c $(CFLAGS) -DMMX=1 -o $@ $<

viterbi29sse.o: viterbi29.c viterbi29.h parity.h
	cc -c $(CFLAGS) -DSSE=1 -o $@ $<

viterbi29sse2.o: viterbi29.c viterbi29.h parity.h
	cc -c $(CFLAGS) -DSSE2=1 -o $@ $<

clean:
	rm -f *.o $(SHARED_LIB) *.a vtest27 vtest29 core

distclean: clean
	rm -f config.log config.cache config.status config.h makefile


syntax highlighted by Code2HTML, v. 0.9.1