ASM = ml
AFLAG = /c
CC = cl
CFLAG = /c /O2 /G5 /Oi /W4 /Zp1
LINK = link
LFLAG = /DLL /EXPORT:vfGetPluginInfo /EXPORT:vfGetPluginFunc advapi32.lib
RC = rc
BINDIR = "..\release\"

OBJ = m2v.obj mpeg2video.obj video_stream.obj sequence_header.obj timecode.obj picture_header.obj gop.obj gop_list.obj picture.obj slice_header.obj macroblock.obj mc.obj block.obj idct_int32.obj idct_double.obj idct_clip_table.obj frame.obj scan.obj 
RES = m2v.res

ALL: m2v

m2v: $(OBJ) $(RES)
	$(LINK) $(LFLAG) /OUT:m2v.vfp *.obj m2v.res

m2v.res: m2v.rc resource.h
	$(RC) m2v.rc

m2v.obj: m2v.c mpeg2video.h video_stream.h sequence_header.h timecode.h picture_header.h gop_list.h frame.h picture.h mc.h slice_header.h macroblock.h block.h mc.h
	$(CC) $(CFLAG) m2v.c

mpeg2video.obj: mpeg2video.c mpeg2video.h video_stream.h sequence_header.h timecode.h picture_header.h gop_list.h frame.h picture.h mc.h slice_header.h macroblock.h block.h mc.h idct_int32.h idct_double.h
	$(CC) $(CFLAG) mpeg2video.c

video_stream.obj: video_stream.c video_stream.h
	$(CC) $(CFLAG) video_stream.c

sequence_header.obj: sequence_header.c sequence_header.h video_stream.h slice_header.h macroblock.h block.h mc.h frame.h scan.h
	$(CC) $(CFLAG) sequence_header.c

timecode.obj: timecode.c timecode.h video_stream.h
	$(CC) $(CFLAG) timecode.c

picture_header.obj: picture_header.c picture_header.h video_stream.h macroblock.h block.h mc.h frame.h scan.h
	$(CC) $(CFLAG) picture_header.c

gop_list.obj: gop_list.c gop_list.h gop.h video_stream.h picture_header.h timecode.h macroblock.h block.h mc.h frame.h
	$(CC) $(CFLAG) gop_list.c

gop.obj: gop.c gop.h video_stream.h picture_header.h timecode.h sequence_header.h macroblock.h block.h mc.h frame.h
	$(CC) $(CFLAG) gop.c

picture.obj: picture.c picture.h video_stream.h slice_header.h macroblock.h mc.h block.h frame.h idct.h
	$(CC) $(CFLAG) picture.c

slice_header.obj: slice_header.c slice_header.h video_stream.h sequence_header.h block.h
	$(CC) $(CFLAG) slice_header.c

macroblock.obj: macroblock.c macroblock.h video_stream.h mc.h block.h frame.h
	$(CC) $(CFLAG) macroblock.c

mc.obj: mc.c mc.h frame.h
	$(CC) $(CFLAG) mc.c

block.obj: block.c block.h video_stream.h scan.h
	$(CC) $(CFLAG) block.c

idct_int32.obj: idct_int32.c idct_int32.h idct_clip_table.h
	$(CC) $(CFLAG) idct_int32.c

idct_double.obj: idct_double.c idct_double.h idct_clip_table.h
	$(CC) $(CFLAG) idct_double.c

idct_clip_table.obj: idct_clip_table.c idct_clip_table.h
	$(CC) $(CFLAG) idct_clip_table.c

frame.obj: frame.c frame.h
	$(CC) $(CFLAG) frame.c

scan.obj: scan.c scan.h
	$(CC) $(CFLAG) scan.c

clean:
	DEL *.obj
	DEL *.res
	DEL *.exp
	DEL *.lib

install: all
	copy m2v.vfp $(BINDIR)m2v.vfp