LINUX_SOURCE=/usr/src/linux

PRGFLAGS = -g -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing

CFLAGS = -I$(LINUX_SOURCE)/include -I. \
	-O2 -Wall -Wstrict-prototypes -fno-strict-aliasing \
	-DMODULE -D__KERNEL__ -DLINUX \
	-DEXPORT_SYMTAB \
	-DMODVERSIONS \
	-include $(LINUX_SOURCE)/include/linux/modversions.h

.SUFFIXES: .inc .adp .dvp .prg

.adp.inc:
	./dumpcode.sh $< > $@

.dvp.inc:
	./dumpcode.sh $< > $@

.prg.inc:
	./dumpcode.sh $< > $@

all: mgacore.o mgayuv.o mga_vid_test mgadvd.o vobcat #mzdvd # doc

doc:	FORCE
	$(MAKE) -C doc

publish_api: FORCE
	rm -rf ~dbarth/public_html/dvd/guide/*
	cp -R doc/guide/* ~dbarth/public_html/dvd/guide/

FORCE:


mgacore.o: .mgacore.o mgabes.o mgacodec.o # mgai2c.o
	$(LD) -r -o $@ $^

.mgacore.o: mgacore.c mgacore.h
	$(CC) $(CFLAGS) -o .mgacore.o -c mgacore.c

mgabes.o: mgabes.c mgabes.h mgacore.h

mgacodec.o: mgacodec.c mgacodec.h mgacore.h

mgagrab.o: mgacore.h

mgayuv.o: mgacore.h mgacore.c mgabes.h mgabes.c


mgadvd.o: i34.o .mgadvd.o mgagrab.o 
	$(LD) -r -o $@ $^

.mgadvd.o: mgadvd.c mgacore.h mgabes.h mgagrab.h mgacodec.h i34.h
	$(CC) $(CFLAGS) -o .mgadvd.o -c mgadvd.c

i34.o:	i34.c i34.h mgacodec.h mgacore.h \
	340eac3.inc 340eac36.inc 340elpcm.inc 340empeg.inc 340ecdda.inc \
	340edvd.inc 340eoth.inc 340ev4p.inc \
	Zi34slt1.inc
	$(CC) $(CFLAGS) -c i34.c

vobcat:	vobcat.c
	$(CC) $(PRGFLAGS) -o $@ $^

mga_vid_test:	mga_vid_test.c
	$(CC) $(PRGFLAGS) -o $@ $^


mzdvd:	mzdvd.o css/css-auth.o css/css-descramble.o
	$(CC) $(PRGFLAGS) -o $@ $^

.PHONY:	clean
clean:
	-@rm -f core *.o vobcat mzdvd mga_vid_test *~ *.inc .mgadvd.o .mgacore.o


