1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
##
## $Id: Makefile,v 1.1.1.1.4.1 2000/07/11 05:29:14 agmorgan Exp $
##
#
# defines
#
topdir=$(shell pwd)/..
include ../Make.Rules
#
# Library version
#
LIBNAME=libcap.so
#
FILES=cap_alloc cap_proc cap_extint cap_flag cap_text cap_sys cap_file
INCLS=libcap.h cap_names.h $(INCS)
OBJS=$(addsuffix .o, $(FILES))
MAJLIBNAME=$(LIBNAME).$(VERSION)
MINLIBNAME=$(MAJLIBNAME).$(MINOR)
# build position independent code here
CFLAGS := $(CFLAGS) -fPIC
all: $(MINLIBNAME)
_makenames: _makenames.c cap_names.sed
$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
cap_names.h: _makenames
./_makenames > cap_names.h
cap_names.sed: Makefile include/sys/capability.h
@echo "=> making cap_names.c from <sys/capability.h>"
@sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define \([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < include/sys/capability.h | fgrep -v 0x > cap_names.sed
# @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < include/sys/capability.h | fgrep -v 0x > cap_names.sed
$(MINLIBNAME): $(OBJS)
$(CC) -Wl,-soname,$(MAJLIBNAME),-x -shared -o $@ $(OBJS)
ln -sf $(MINLIBNAME) $(MAJLIBNAME)
ln -sf $(MAJLIBNAME) $(LIBNAME)
%.o: %.c $(INCLS)
$(CC) $(CFLAGS) -c $< -o $@
install: all
mkdir -p -m 0755 $(INCDIR)/sys
install -m 0644 include/sys/capability.h $(INCDIR)/sys
mkdir -p -m 0755 $(LIBDIR)
install -m 0644 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME)
ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME)
ifeq ($(LIBDIR),$(SOLINKDIR))
ln -sf $(MAJLIBNAME) $(SOLINKDIR)/$(LIBNAME)
else
# must make absolute link
mkdir -p -m 0755 $(SOLINKDIR)
# don't use $(LIBDIR) because it includes $(FAKEROOT)
ln -sf $(lib_prefix)/lib/$(MAJLIBNAME) $(SOLINKDIR)/$(LIBNAME)
endif
clean:
$(LOCALCLEAN)
rm -f $(OBJS) $(LIBNAME)*
rm -f cap_names.h cap_names.sed _makenames
cd include/sys && $(LOCALCLEAN)
|