TOP		= ../../..
include Machine.mk

XILLIBS		= $(XLIBDIR) \
		-R/opt/SUNWits/Graphics-sw/xil/lib \
		-L/opt/SUNWits/Graphics-sw/xil/lib -lxil

INCDIR		+= -I$(TOP)/include/pyra/encoder -I$(TOP)/include/pyra
LIBS		= -lh263encoder -lCodebooks -lcommon -lfilter -lbitOut \
		-ldisplay -lX11 -lXext -lXmu -lm

ifeq ($(ARCH),linux)
LIBS += -lc
endif

ifneq ($(WITHOUT_GRABBER),TRUE)
	LIBS +=	-lgrabber $(XILLIBS)
endif
ifneq ($(WITHOUT_CHACODEC),TRUE)
	LIBS += -lchacodec
endif

NAME		= pyracoder
LIBNAME		= lib$(NAME).a
BINNAME		= HPCoder
#VIS		= vis.il


.c.o:
	$(CC) -c $(OPTFLAGS) $(CFLAGS) $(INCDIR) $<

SRCS		= \
	CodeBlock.c \
	Quantize.c \
	Lattice.c \
	EncodeClass.c \
	Encoding.c \
	pyraenc.c


OBJS		= \
	CodeBlock.o \
	Quantize.o \
	Lattice.o \
	EncodeClass.o \
	Encoding.o \
	pyraenc.o




CLEANOBJECTS	= $(BINNAME) $(LIBNAME) $(OBJS) main.o *~ core


all: $(BINNAME)

$(BINNAME): $(LIBNAME) main.o
	$(CC) $(OPTFLAGS) $(CFLAGS) $(LIBDIR) -o $(BINNAME) main.o $(OBJS) \
	$(LIBS)

$(LIBNAME): $(OBJS)
	rm -f $@
	ar cr $@ $(OBJS)
	$(RANLIB) $@

proto:
	$(CPROTO) -e -v $(INCDIR) $(CFLAGS) $(SRCS) > tmp.p
	mv tmp.p $(TOP)/include/$(NAME).p

clean::
	rm -f $(CLEANOBJECTS)
	rm -f *_pure_*.o 

depend:
	makedepend -- $(INCDIR) $(CFLAGS) -- $(SRCS) main.c

$(OBJS):    Machine.mk Makefile

main.o:	Machine.mk Makefile main.c

install-libs: $(BINNAME) $(LIBNAME)
	cp $(LIBNAME) $(TOP)/lib/$(ARCH)

install: $(BINNAME) $(LIBNAME)
	cp $(LIBNAME) $(TOP)/lib/$(ARCH)
	cp $(BINNAME) $(TOP)/bin/$(ARCH)

complete:
	make proto
	make depend
	make install


$(BINNAME): $(TOP)/lib/$(ARCH)/libh263encoder.a
$(BINNAME): $(TOP)/lib/$(ARCH)/libCodebooks.a
$(BINNAME): $(TOP)/lib/$(ARCH)/libcommon.a
$(BINNAME): $(TOP)/lib/$(ARCH)/libfilter.a
$(BINNAME): $(TOP)/lib/$(ARCH)/libbitOut.a
$(BINNAME): $(TOP)/lib/$(ARCH)/libdisplay.a

# DO NOT DELETE THIS LINE -- make depend depends on it.

CodeBlock.o: /usr/include/stdlib.h /usr/include/sys/feature_tests.h
CodeBlock.o: /usr/include/limits.h /usr/include/sys/isa_defs.h
CodeBlock.o: /usr/include/string.h ../../../include/defs.h
CodeBlock.o: ../../../include/structs.h ../../../include/Util.h
CodeBlock.o: /usr/include/malloc.h ../../../include/error.h
CodeBlock.o: /usr/include/stdio.h /usr/include/sys/va_list.h
CodeBlock.o: ../../../include/bitOut.h ../../../include/bitOut.p
CodeBlock.o: ../../../include/pyra/encoder/pyraencoder.h
CodeBlock.o: ../../../include/filter.p
CodeBlock.o: ../../../include/pyra/encoder/Lattice.h
CodeBlock.o: ../../../include/motion.h ../../../include/pyracoder.p
CodeBlock.o: ../../../include/common.h ../../../include/code.h
CodeBlock.o: ../../../include/common.p
Quantize.o: /usr/include/stdlib.h /usr/include/sys/feature_tests.h
Quantize.o: ../../../include/defs.h ../../../include/structs.h
Quantize.o: ../../../include/Util.h /usr/include/malloc.h
Quantize.o: ../../../include/error.h /usr/include/stdio.h
Quantize.o: /usr/include/sys/va_list.h ../../../include/bitOut.h
Quantize.o: ../../../include/bitOut.p
Quantize.o: ../../../include/pyra/encoder/pyraencoder.h
Quantize.o: ../../../include/pyra/encoder/Lattice.h ../../../include/motion.h
Quantize.o: ../../../include/pyracoder.p
Lattice.o: ../../../include/pyra/encoder/Lattice.h ../../../include/Util.h
Lattice.o: /usr/include/malloc.h ../../../include/error.h
Lattice.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
Lattice.o: /usr/include/sys/va_list.h /usr/include/stdlib.h
Lattice.o: ../../../include/pyra/Codebooks.p
EncodeClass.o: /usr/include/stdlib.h /usr/include/sys/feature_tests.h
EncodeClass.o: /usr/include/stdio.h /usr/include/sys/va_list.h
EncodeClass.o: /usr/include/string.h ../../../include/defs.h
EncodeClass.o: ../../../include/Util.h /usr/include/malloc.h
EncodeClass.o: ../../../include/error.h ../../../include/bitOut.h
EncodeClass.o: ../../../include/bitOut.p ../../../include/structs.h
EncodeClass.o: ../../../include/pyra/encoder/pyraencoder.h
EncodeClass.o: ../../../include/pyra/encoder/Lattice.h
EncodeClass.o: ../../../include/motion.h ../../../include/pyracoder.p
Encoding.o: /usr/include/stdlib.h /usr/include/sys/feature_tests.h
Encoding.o: /usr/include/string.h ../../../include/pyra/encoder/Lattice.h
Encoding.o: ../../../include/defs.h ../../../include/Util.h
Encoding.o: /usr/include/malloc.h ../../../include/error.h
Encoding.o: /usr/include/stdio.h /usr/include/sys/va_list.h
Encoding.o: ../../../include/bitOut.h ../../../include/bitOut.p
Encoding.o: ../../../include/code.h ../../../include/H263_mvd.h
Encoding.o: ../../../include/structs.h
Encoding.o: ../../../include/pyra/encoder/pyraencoder.h
Encoding.o: ../../../include/motion.h ../../../include/pyracoder.p
Encoding.o: ../../../include/common.p
pyraenc.o: /usr/include/limits.h /usr/include/sys/feature_tests.h
pyraenc.o: /usr/include/sys/isa_defs.h ../../../include/defs.h
pyraenc.o: ../../../include/Util.h /usr/include/malloc.h
pyraenc.o: ../../../include/error.h /usr/include/stdio.h
pyraenc.o: /usr/include/sys/va_list.h /usr/include/stdlib.h
pyraenc.o: ../../../include/structs.h ../../../include/motion.h
pyraenc.o: ../../../include/bitOut.h ../../../include/bitOut.p
pyraenc.o: ../../../include/pyra/encoder/pyraencoder.h
pyraenc.o: ../../../include/pyra/encoder/Lattice.h
pyraenc.o: ../../../include/pyracoder.p ../../../include/common.h
pyraenc.o: ../../../include/code.h ../../../include/common.p
pyraenc.o: ../../../include/h263/encoder/h263encoder.h
pyraenc.o: ../../../include/h263encoder.p
main.o: /usr/include/sys/time.h /usr/include/sys/feature_tests.h
main.o: /usr/include/sys/types.h /usr/include/sys/isa_defs.h
main.o: /usr/include/sys/machtypes.h ../../../include/pyra/encoder/main.h
main.o: /usr/include/stdio.h /usr/include/sys/va_list.h /usr/include/stdlib.h
main.o: /usr/include/string.h /usr/include/math.h /usr/include/time.h
main.o: ../../../include/defs.h ../../../include/structs.h
main.o: ../../../include/Util.h /usr/include/malloc.h
main.o: ../../../include/error.h ../../../include/bitOut.h
main.o: ../../../include/bitOut.p ../../../include/common.h
main.o: ../../../include/code.h ../../../include/motion.h
main.o: ../../../include/common.p ../../../include/filter.p
main.o: ../../../include/pyra/encoder/Lattice.h
main.o: ../../../include/pyra/encoder/pyraencoder.h
main.o: ../../../include/pyracoder.p
main.o: ../../../include/h263/encoder/h263encoder.h
main.o: ../../../include/h263encoder.p ../../../include/options.h
main.o: ../../../include/config.h ../../../include/dispconf.h
main.o: ../../../include/display.h /usr/openwin/include/X11/Xlib.h
main.o: /usr/openwin/include/X11/X.h /usr/openwin/include/X11/Xfuncproto.h
main.o: /usr/openwin/include/X11/Xosdefs.h /usr/include/stddef.h
main.o: /usr/openwin/include/X11/Xutil.h ../../../include/display.p
main.o: ../../../include/chacodec.h ../../../include/chacodec.p
