# $Id: Makefile,v 1.20 1995/01/28 02:27:25 root Rel $
# VERSION: 048

#### Change if necessary #######################################################
# The module will be installed to $(prefix)/$(KERNEL_VERSION)/$(dest)
prefix := /lib/modules
dest := misc

# Where your kernel can be found
kernel_path := /usr/src/linux

#### Nothing else to change. ####################################################

KERNEL_VERSION := $(shell \
		grep UTS_RELEASE $(kernel_path)/include/linux/version.h \
		| awk '{print $$3;}')

MAKEFILE := Makefile
HOST := $(shell uname -n)
MHOST := iva

SHELL := /bin/bash
CC := gcc
CFLAGS := -m486 -O2 -Wall -DLINUX 
KERNEL_FLAGS := -DMODULE -D__KERNEL__ 
LDFLAGS := -s -N 

ifeq ($(MHOST),$(HOST))
MCD_VERSION := $(shell tail -1 .version | awk '{print $$1;}')
RCS_VER	:= V$(MCD_VERSION)
endif


DIST := mcd-$(MCD_VERSION)


FILES := mcd.h mcd.c \
		 unifix.h unifix.c \
		 eject.c \
		 README.mcd ChangeLog .version \
		 $(MAKEFILE)

FILES.extra := lsm.in COPYING.in

DRIVER := mcd.o # unifix.o
MISC := eject


.PHONY: help all co ci dist clean nuke realclean mrproper


ifeq ($(MHOST),$(HOST))
help: 		
		@egrep '^([a-z ]+)?:[ 	]+#.* ' $(MAKEFILE) | expand -4
else
help: 		
		@egrep '^([a-z ]+)?:[ 	]+## ' $(MAKEFILE) | expand -4
endif

$(kernel_path)/.config:
	@echo "You should do a \`make config' in $(kernel_path)."
	@/bin/false

.kernel_version:
	grep UTS_RELEASE $(kernel_path)/include/linux/version.h \
		| cut -f3 -d' ' \
		| tr -d '"' \
		> $@

all:		## create the driver modules
all: 		$(DRIVER) $(MISC)

install:	## install the drivers (doesn't load them)
install:	all
	@DEST=$(prefix)/$(KERNEL_VERSION)/$(dest);\
	echo Installing $(DRIVER) under $$DEST;\
	mkdir -p $$DEST;\
	cp $(DRIVER) $$DEST;\
	depmod -a

uninstall:	## remove the installed drivers (doesn't unload them)
uninstall:	
	@DEST=$(prefix)/$(KERNEL_VERSION)/$(dest);\
	echo Removing $(DRIVER) from $$DEST;\
	cd $$DEST; rm $(DRIVER);\
	depmod -a


mcd.o: 		mcd.c mcd.h $(MAKEFILE)
unifix.o:	unifix.c unifix.h $(MAKEFILE)


ifeq ($(MHOST),$(HOSTNAME))		#################################### lotte only
run:		mcd.o
		umount -a -v -t iso9660
		rmmod mcd
		insmod ./mcd.o

co:			# 	Check out all needed files.
co:			$(FILES) $(FILES.extra)
ci:			#	Check in all current files and assign the current ver number.
ci:		
	@echo Check in version $(MCD_VERSION)
	-rcs -sExp -q -N$(RCS_VER): $(FILES) $(FILES.extra)
	-ci -N$(RCS_VER) $(FILES) $(FILES.extra)
	-co -q -l$(RCS_VER) .version

ver:		#	Calculate a new version number.  Make sure, that all current
:			#	.. files are checked in.
ver: 		ci 
	@echo old version is $(MCD_VERSION)
	@printf '%03d\n' $$(expr $(MCD_VERSION) + 1) >> .version
	@rcs -NV$$(tail -1 .version): RCS/*
	@echo new version is $$(tail -1 .version)

dist:		#	Make the dist-$(MCD_VERSION) dir and fill it up.
dist:
	rcs -sRel:$(RCS_VER) $(FILES) $(FILES.extra)
	@rm -rf $(DIST); mkdir $(DIST);\
	for f in $(FILES); do \
		co -p$(RCS_VER) $$f \
		| sed "/foobar/!s/@VERSION@/$(MCD_VERSION)/g;\
			   /foobar/!s/@KERNEL@/$(KERNEL_VERSION)/g" \
			   > $(DIST)/$$f;\
	done;\
	co -p$(RCS_VER) lsm.in | tail +2 \
		| sed "/foobar/!s/@VERSION@/$(MCD_VERSION)/g;\
			   /foobar/!s/@KERNEL@/$(KERNEL_VERSION)/g" \
		| expand -4 \
		> $(DIST)/$(DIST).lsm;\
	co -p$(RCS_VER) COPYING.in | tail +2 \
		> $(DIST)/COPYING;\
	chmod -R a-w $(DIST)/*;\
	rm -f $(DIST)/.version;\
	echo "You should make a new version using \`make ver'"

tgz:	dist
	tar cvf - $(DIST) | gzip --best > $(DIST).tar.gz

print:		# Print the source.
print:		mcd.h mcd.c
	@for f in $^; do expand -4 $$f| a2ps -H"$$f $(MCD_VERSION)" | lpr; done

endif	##################################################################

clean:

nuke realclean mrproper:	clean
	rm -f *.o 
	rm -f $(DRIVER)
	rm -f $(MISC)
	rcsclean *

%:		%.c
	$(CC) $(CFLAGS) -o $@ $<

%.o:	%.c 
	$(CC) $(CFLAGS) $(KERNEL_FLAGS) -c -o $@ $< 

%::		RCS/%,v		
	co -r$(RCS_VER) $<
