# Makefile
#
# $Id: Makefile,v 1.13 2000/02/27 22:48:20 heyder Exp $
#
# User-specific settings
VERSION  = 2.5.1
LINUX    = /usr/src/linux
BINDIR   = /public/packages/misc/fh-eject-$(VERSION)/bin
MANDIR   = /public/packages/misc/fh-eject-$(VERSION)/man/man1
ETCDIR   = /etc
NICKFILE = eject.nicknames

# maximum tries (generic scsi eject)
MAX_TRIES = 5
# default device to eject if no default in nickname-file or no nickname-file
DEFAULT_DEVICE = cdrom
# force umount before ejecting
FORCE_UMOUNT = 1
# where is the umount ?
UMOUNT = /bin/umount
# where to get mounttab
# /proc/mounts has problems with initrd and root-fs (/dev/root)
# but should be better otherwise
MOUNTTAB = /proc/mounts
# MOUNTTAB = /etc/mtab
CHANGER = /dev/wechsler

# Common settings
CXX = g++
CC = gcc
RM = rm -f
MD = mkdir
CP = cp -f
MV = mv -f
LNS = ln -s
CXXFLAGS = -O2 -Wall -fomit-frame-pointer -I $(LINUX)/include -I $(LINUX)/drivers
CFLAGS = -O2 -Wall -fomit-frame-pointer
LDFLAGS=

EDEFINES = -DMAX_TRIES=$(MAX_TRIES) \
          -DDEFAULT_DEVICE=\"$(DEFAULT_DEVICE)\" \
          -DNICKNAME_FILE=\"$(ETCDIR)/$(NICKFILE)\" \
          -DVERSION=\"$(VERSION)\" \
	  -DFORCE_UMOUNT=$(FORCE_UMOUNT) \
	  -DMOUNTTAB=\"$(MOUNTTAB)\" \
	  -DUMOUNT=\"$(UMOUNT)\"
SDEFINES = -DCHANGER=\"$(CHANGER)\"

# Debugging
DEBUGFLAGS = -g


# Rules:
SOURCES = Types.cc Nicknames.cc SCSI_map.cc SCSI_eject.cc ioctl_eject.cc \
	Options.cc Main.cc Handle_List.cc Mount.cc
INCLUDES = Types.H Nicknames.H Values.H SCSI_map.H SCSI_eject.H ioctl_eject.H \
	Options.H Handle_List.H Mount.H
OTHERS = Makefile eject.1 eject.nicknames COPYING ChangeLog README moin cdselect.1 fh-eject.lsm
OBJECTS = $(SOURCES:.cc=.o)

SELECT_SRC = cdselect.c
SELECT_OBJ = $(SELECT_SRC:.c=.o)

FILES = $(SOURCES) $(SELECT_SRC) $(INCLUDES) $(OTHERS)

.cc.o:
	$(CXX) -c $(DEBUGFLAGS) $(CXXFLAGS) $(EDEFINES) -o $@ $<

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

all: eject cdselect

eject:	$(OBJECTS)
	$(CXX) $(LDFLAGS) -o eject $(OBJECTS)

cdselect: $(SELECT_OBJ)
	$(CC) $(LDFLAGS) -o cdselect $(SELECT_OBJ)

install: all
	if [ ! -d $(BINDIR) ]; then \
	  install -d $(BINDIR); \
	fi
	-@$(MV) $(BINDIR)/eject $(BINDIR)/eject.old
	install -s -o root -m 4555 eject $(BINDIR)
	-@$(RM) $(BINDIR)/load $(BINDIR)/unload $(BINDIR)/uneject
	$(LNS) eject $(BINDIR)/load
	$(LNS) eject $(BINDIR)/unload
	$(LNS) eject $(BINDIR)/uneject
	install -o root -m 4555 moin $(BINDIR)
	if [ ! -d $(MANDIR) ]; then \
	  install -d $(MANDIR); \
	fi
	-@$(MV) $(MANDIR)/eject.1 $(MANDIR)/eject.old.1 
	install -m 444 eject.1 $(MANDIR)
	-@$(RM) $(MANDIR)/load.1 $(MANDIR)/unload.1 $(MANDIR)/uneject.1
	$(LNS) eject.1 $(MANDIR)/load.1
	$(LNS) eject.1 $(MANDIR)/unload.1
	$(LNS) eject.1 $(MANDIR)/uneject.1
	if [ ! -d $(ETCDIR) ]; then \
	  install -d $(ETCDIR); \
	fi
	if [ -f $(ETCDIR)/$(NICKFILE) ]; then \
	  install -m 444 eject.nicknames $(ETCDIR)/$(NICKFILE).install; \
	else \
	  install -m 444 eject.nicknames $(ETCDIR)/$(NICKFILE); \
	fi
	install -m 4555 cdselect $(BINDIR)
	install -m 444 cdselect.1 $(MANDIR)

uninstall:
	$(RM) $(BINDIR)/eject $(BINDIR)/load
	$(RM) $(BINDIR)/unload $(BINDIR)/uneject
	$(RM) $(MANDIR)/eject.1 $(MANDIR)/load.1
	$(RM) $(MANDIR)/unload.1 $(MANDIR)/uneject.1
	$(RM) $(ETCDIR)/$(NICKFILE)
	$(RM) $(BINDIR)/cdselect

deinstall: uninstall

remove: uninstall

clean:
	$(RM) eject cdselect *.o core *~

dist:	$(FILES)
	-$(RM) -R fh-eject-$(VERSION)
	$(MD) fh-eject-$(VERSION)
	$(CP) $(FILES) fh-eject-$(VERSION)
	tar -cvzf fh-eject-$(VERSION).tar.gz fh-eject-$(VERSION)
	-$(RM) -R fh-eject-$(VERSION)
