##
## $Log: Makefile,v $
## Revision 1.3  1997/05/04 05:34:59  morgan
## cleaner
##
## Revision 1.2  1997/04/28 00:57:11  morgan
## fixes and zefram's patches
##
## Revision 1.1  1997/04/21 04:33:29  morgan
## Initial revision
##
##
##

#
# defines
#
topdir=..
include ../Make.Rules
#
# Library version
#
LIBNAME=libcap.so
#

FILES=cap_alloc cap_file cap_proc cap_extint cap_flag cap_text cap_sys \
	cap_names

INCS=libcap.h include/sys/capability.h
OBJS=$(addsuffix .o, $(FILES))
MAJLIBNAME=$(LIBNAME).$(VERSION)
MINLIBNAME=$(MAJLIBNAME).$(MINOR)

all: $(LIBNAME)

_makenames: _makenames.c cap_names.sed
	$(CC) $(CFLAGS) $< -o $@

cap_names.c: _makenames
	./_makenames > cap_names.c

cap_names.sed: Makefile /usr/include/linux/capability.h
	@echo "=> making cap_names.c from <linux/capability.h>"
	@sed -ne '/^#define CAP_/{s/^#define \([^    ]*\)[   ]*\([^  ]*\)/  \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h > cap_names.sed

$(LIBNAME): $(OBJS)
	$(LD) -soname $(MAJLIBNAME) -x -shared -o $@ $(OBJS)

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

install: all
	mkdir -p $(INCDIR)/sys
	install -g root -o root -m 0644 include/sys/capability.h $(INCDIR)/sys
	mkdir -p $(LIBDIR)
	install -g root -o root -m 0444 $(LIBNAME) $(LIBDIR)/$(MINLIBNAME)
	rm -f $(LIBDIR)/$(LIBNAME)
	/sbin/ldconfig -nN $(LIBDIR)
	ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME)

clean:
	$(LOCALCLEAN)
	rm -f $(OBJS) $(LIBNAME) cap_names.c cap_names.sed _makenames
	cd include/sys && $(LOCALCLEAN)

