# Makefile for TMN simulation  
 
# This is free software. See the file COPYING for copying conditions. 
 
SRCS =	main.c Makefile dct.c quant.c mot_est.c snr.c \
	countbit.c putbits.c ratectrl.c sac.c \
	putvlc.c intra_pred.c filter.c \
	picture_functions.c block_functions.c i_picture.c \
	p_picture.c b_picture.c ei_picture.c ep_picture.c \
        fdct_bin_c1.c fdct_bin_c4.c fdct_bin_c7.c fdct_bin_l3.c \
        idct_bin_c1.c idct_bin_c4.c idct_bin_c7.c idct_bin_l3.c 
HDRS = 	sim.h macros.h config.h \
	sactbls.h indices.h putvlc.h vlc.h main.h
OBJS =	main.o dct.o quant.o mot_est.o picture_functions.o snr.o \
	countbit.o putbits.o ratectrl.o sac.o putvlc.o intra_pred.o \
	filter.o ring_buf.o block_functions.o i_picture.o \
	p_picture.o b_picture.o ei_picture.o ep_picture.o \
        fdct_bin_c1.o fdct_bin_c4.o fdct_bin_c7.o fdct_bin_l3.o \
        idct_bin_c1.o idct_bin_c4.o idct_bin_c7.o idct_bin_l3.o 
 
# Use -DPRINTMV if you want to print MVs to stdout while coding.  
# Use -DPRINTQ to print the quantizer used during coding (only useful with 
#   buffer regulation) 
 
# Use -DFASTIDCT for a fast single precision IDCT.  
# (default is double precision) 
 
# The defines above can also be defined in sim.h 
 
CC = gcc 
CFLAGS =  -O2 -g -Wall
# CFLAGS =  -g -Wall -ansi -pedantic  
#CFLAGS = -O3 
 
# If you want to compile with -Wall -pedantic -ansi on a Sun, use  
# -DBROKEN_SUN_HEADERS to avoid a lot of compiler warnings 
 
 
PROGRAM = tmn 
 
all: $(PROGRAM) 
 
$(PROGRAM):	$(OBJS) 
		$(CC) $(CFLAGS) $(OBJS) -o $(PROGRAM)  -lm 

seqpsnr:	seqpsnr.o
		$(CC) $(CFLAGS) seqpsnr.o -o seqpsnr  -lm 	
seqpsnr.o:	seqpsnr.c
 
i_picture.o: i_picture.c sim.h config.h macros.h 
p_picture.o: p_picture.c sim.h config.h macros.h 
b_picture.o: b_picture.c sim.h config.h macros.h 
ei_picture.o: ei_picture.c sim.h config.h macros.h 
ep_picture.o: ep_picture.c sim.h config.h macros.h 
countbit.o: countbit.c sim.h config.h macros.h sactbls.h indices.h putvlc.h
dct.o: dct.c macros.h sim.h config.h 
filter.o: filter.c sim.h config.h macros.h 
intra_pred.o: intra_pred.c sim.h config.h macros.h 
main.o: main.c sim.h config.h macros.h main.h 
mot_est.o: mot_est.c sim.h config.h macros.h 
putbits.o: putbits.c sim.h config.h macros.h 
putvlc.o: putvlc.c sim.h config.h macros.h vlc.h 
quant.o: quant.c sim.h config.h macros.h 
ratectrl.o: ratectrl.c sim.h config.h macros.h 
sac.o: sac.c sim.h config.h macros.h 
snr.o: snr.c sim.h config.h macros.h 
ring_buf.o: ring_buf.c sim.h 
picture_functions.o: picture_functions.c sim.h 
block_functions.o: block_functions.c sim.h 

fdct_bin_c1.o: fdct_bin_c1.c sim.h
fdct_bin_c4.o: fdct_bin_c4.c sim.h
fdct_bin_c7.o: fdct_bin_c7.c sim.h
fdct_bin_l3.o: fdct_bin_l3.c sim.h

idct_bin_c1.o: idct_bin_c1.c sim.h
idct_bin_c4.o: idct_bin_c4.c sim.h
idct_bin_c7.o: idct_bin_c7.c sim.h
idct_bin_l3.o: idct_bin_l3.c sim.h

clean:		 
		rm -f *.o *~ tmn 
 
tar:		$(SRCS) $(HDRS)  
		tar cvf TMN.tar $(SRCS) $(HDRS)  
		gzip TMN.tar 
		mv TMN.tar.gz TMN-3.0.tgz 
 
