PREFIX      =
SBINDIR     = $(PREFIX)/sbin
MANDIR      = $(PREFIX)/usr/man
CONFDIR     = $(PREFIX)/etc
CONFIG_FILE = $(CONFDIR)/devfsd.conf
DEFINES     :=
ifndef KERNEL_DIR
KERNEL_DIR  = /usr/src/linux
endif

nsl_libs := $(wildcard /lib/libnsl.so.*)
ifneq ($(nsl_libs),)
LIBNSL      = $(shell for file in /lib/libnsl.so.[0-9]* ; do echo $$file ; done | sort -t . -n -k 2 | head -1)
DEFINES     += -DLIBNSL="\"$(LIBNSL)\""
endif


all:	devfsd rpm.spec


OBJECTS = devfsd.o expression.o compat_name.o

CFLAGS = -O2 -I. -I$(KERNEL_DIR)/include -Wall $(CEXTRAS) $(DEFINES)

devfsd:	$(OBJECTS)
	$(CC) -O2 -o devfsd $(OBJECTS) $(LDFLAGS) -export-dynamic -ldl

install: devfsd
	@if fgrep -q "Generic section: do not change" /etc/modules.conf ; then\
		echo "First remove the generic devfs entries from /etc/modules.conf"; exit 1; \
	fi
	if [ ! -e $(SBINDIR) ]; then mkdir -p $(SBINDIR); fi
	rm -f $(SBINDIR)/devfsd
	install -s devfsd $(SBINDIR)/devfsd
	if [ ! -e $(MANDIR)/man5 ]; then mkdir -p $(MANDIR)/man5; fi
	if [ ! -e $(MANDIR)/man8 ]; then mkdir -p $(MANDIR)/man8; fi
	-rm -f $(MANDIR)/*/devfsd.*
	cp -p devfsd.8 $(MANDIR)/man8
	cp -p devfsd.conf.5 $(MANDIR)/man5
	if [ ! -e $(CONFDIR) ]; then mkdir -p $(CONFDIR); fi
	if [ ! -e $(CONFIG_FILE) ]; then cp -p devfsd.conf $(CONFIG_FILE); fi
	@echo "Installing /etc/modules.devfs"
	@sed "s/DEVFSD-VERSION/`grep '#define DEVFSD_VERSION' version.h | cut -d'"' -f 2`/" modules.devfs > $(CONFDIR)/modules.devfs


rpm.spec:	version.h
	echo "%define version `grep '#define DEVFSD_VERSION' version.h | cut -d'"' -f 2`" > rpm.new
	tail +2 rpm.spec >> rpm.new
	mv rpm.new rpm.spec


clean:
	-rm -f *~ *.o *.orig *.rej


distclean: clean
	-rm -f devfsd


# Dependencies: made by hand
devfsd.o: devfsd.h version.h
