include config.mk

CPPFLAGS	= -I.
CFLAGS	= -O2 -fomit-frame-pointer -pipe -DPEN_DEBUG -DMODULE ${MODVERSIONS}
OBJS	= XF86_SVGA cpqpen.o pencal pentest
PENSRCS	= cpqpen.c cpqpen.h pentest.c pencal.c
XSRCS	= xf86_Config.h xf86_Mouse.c xf86Events.c xf86Priv.h xf86Config.c
SRCS	= $(PENSRCS) $(XSRCS)

install: $(OBJS)
	# Install pen driver module, test programs, and rc file
	if [ -e $(MOD)/cpqpen.o ] && ! cmp -s $(MOD)/cpqpen.o cpqpen.o ; then \
		mv $(MOD)/cpqpen.o $(MOD)/cpqpen.o.bak ; \
	fi ; \
	install -m 0644 cpqpen.o $(MOD)

	if [ -e $(BIN)/pentest ] && ! cmp -s $(BIN)/pentest pentest ; then \
		mv $(BIN)/pentest $(BIN)/pentest.bak ; \
	fi ; \
	install pentest $(BIN)

	if [ -e $(BIN)/pencal ] && ! cmp -s $(BIN)/pencal pencal ; then \
		mv $(BIN)/pencal $(BIN)/pencal.bak ; \
	fi ; \
	install pencal $(BIN)

	if [ -e $(RC)/rc.cpqpen ] && ! cmp -s $(RC)/rc.cpqpen cpqpen ; then \
		mv $(RC)/rc.cpqpen $(RC)/rc.cpqpen.bak ; \
	fi ; \
	install rc.cpqpen $(RC)

	# Update /etc/rc.d/rc.local
	# construct a new copy here, with rc.pencpq removed if it was
	# present and rc.cpqpen added
	sed /pencpq/d $(RC)/$(STARTUP) > $(STARTUP) ; \
	if ( grep cpqpen $(STARTUP) | grep -sqv cpqpen ) ; then \
		echo "$(RC)/rc.cpqpen start" >> $(STARTUP) ; \
	        if ! cmp $(STARTUP) $(RC)/$(STARTUP) ; then \
				mv $(RC)/$(STARTUP) $(RC)/$(STARTUP).bak ; \
			fi ; \
		fi ; \
	install $(STARTUP) $(RC)

	# Install X server and configuration file
	if [ -e $(XBIN)/XF86_SVGA ] && ! cmp $(XBIN)/XF86_SVGA XF86_SVGA ; then \
		mv $(XBIN)/XF86_SVGA $(XBIN)/XF86_SVGA.bak ; \
	fi ; \
	install -m 4755 XF86_SVGA $(XBIN)

	if [ -e $(CONF)/XF86Config ] && ! cmp $(CONF)/XF86Config XF86Config ; then \
		mv $(CONF)/XF86Config $(CONF)/XF86Config.bak ; \
	fi ; \
	install -m 0644 XF86Config $(CONF)

	# If there is an X source tree, install modified mouse driver sources
	if [ -d $(XSRC) ] ; then \
		for i in $(XSRCS) ; do \
			if [ -e $(XSRC)/$$i ] && ! cmp -s $$i $(XSRC)/$$i ; then \
				mv $(XSRC)/$$i $(XSRC)/$$i.bak ; \
			fi ; \
			install -m 644 $$i $(XSRC) ; \
		done ; \
	fi

distrib:
	# Make sure we have a clean distribution directory
	if [ -e srcdist ] ; then rm -rf srcdist ; fi
	mkdir srcdist

	# Collect module and test program sources
	cp $(PENSRCS) srcdist

	# Get rc.cpqpen file
	cp $(RC)/rc.cpqpen srcdist

	# Get X server and config file
	cp $(XBIN)/XF86_SVGA $(ETC)/XF86Config srcdist

	# Modified mouse code
	for i in $(XSRCS) ; do \
		echo $$i ;\
		cp $(XSRC)/$$i srcdist ;\
	done

	# Miscellaneous files
	cp CHANGES COPYING MAKEDEV.patch Makefile README config.mk srcdist

	# Tar it up and get rid of the directory
	(cd srcdist; tar cvzf ../cpqpen-1.1.3.tgz *)
	rm -rf srcdist

cpqpen.o:  cpqpen.c cpqpen.h Makefile
	$(CC) -c $(CPPFLAGS) $(CFLAGS) -D__KERNEL__ cpqpen.c

pentest:	pentest.c

pencal:	pencal.c
