## Makefile for PMS-grabber
## 

CC= g++
GRAFIX = grafix
include $(GRAFIX)/grafix.mk

CFLAGS += -I$(GRAFIX)
GLIBS = $(GRAFIX)/libwin.a  

SHM = TRUE
ifeq ($(SHM),TRUE)
CFLAGS += -DMIT_SHM
LFLAGS += -lXext
endif

ALLOBJ 	= ximage.o view.o $(GRAFIX)/files.o $(GRAFIX)/window.o
PMSOBJ 	= PMS-view.o grabber.o memmap.o $(ALLOBJ) 
IMGOBJ 	= image-view.o $(ALLOBJ)

all: PMS-view image-view

PMS-view: $(PMSOBJ) eval-simple.o
	$(CC) $(PMSOBJ) eval-simple.o -o $@ $(LFLAGS)
	if [ -f $@ ] ; then { su -c 'chown root $@' root; \
	su -c 'chmod a+ws $@' root; } ; fi

image-view: $(IMGOBJ) eval-simple.o
	$(CC) $(IMGOBJ) eval-simple.o -o $@ $(LFLAGS) 

PMS-eval: $(PMSOBJ) evaluation.o graph.o speck.o
	$(CC) $(PMSOBJ) evaluation.o graph.o speck.o -o $@ $(GLIBS) $(LFLAGS)  

test-graph: test-graph.o graph.o
	$(CC) test-graph.o graph.o -o $@

test-threads: test-threads.o graph.o
	$(CC) test-threads.o graph.o -o $@

test-rim: test-rim.o graph.o
	$(CC) test-rim.o graph.o -o $@

test-specks: test-specks.o graph.o
	$(CC) test-specks.o graph.o -o $@

clean:
	rm -f *.o PMS-view image-view PMS-eval

#### driver stuff

irq_driver.o: irq_driver.c 
	gcc -m486 -O2 -Wall -c $< -D__KERNEL__ -DLINUX -o $@
	
install: irq_driver.o remove
	su -c '/sbin/insmod irq_driver.o' root
remove: 
	su -c '/sbin/rmmod irq_driver.o' root


###### second part : generate tar-file for uploading #####
# "make tgz" - generates PMS-grabber.tgz file

GRF_SRC = icon.h window.c window.h eventnames.h files.h files.c grafix.mk \
  window.o files.o
FGR_SRC = SetMVV.C ximage.C ximage.h PMS-view.C grabber.C view.C grabber.h \
  view.h eval-simple.C eval-inc.C evaluation.h image-view.C Makefile \
  memmap.C memmap.h  README.txt franzi.pix .depend irq_driver.c mvv_parms.h \
  LOG.txt INSTALL.txt

tgz: 
	$(TAR) -czh -f PMS-grabber.tgz $(FGR_SRC) $(GRF_SRC:%=$(GRAFIX)/%)

test-tgz:
	\rm -rf test/*
	cp PMS-grabber.tgz test/
	cd test; $(TAR) -xvzf PMS-grabber.tgz; 
	cd test; gmake all;

depend:
	$(CC) -MM $(CFLAGS) $(INCL) *.C *.c > .depend

-include .depend