include ../MCONFIG

DEFS =		-D__ACL_INTERNAL_IMPLEMENTATION
CFLAGS =	-I../include -pipe $(DEBUG) $(WARN) $(OPT) $(DEFS)
CC =		cc
RANLIB =	ranlib

LIB =		libacl
MAJOR_VERSION =	0
MINOR_VERSION =	1
SONAME =	$(LIB).so.$(MAJOR_VERSION)
ELF_LIB =	$(LIB).so.$(MAJOR_VERSION).$(MINOR_VERSION)
STATIC_LIB =	$(LIB).a

OBJS =		add_perm.o clear_perm.o copy_entry.o copy_ext.o copy_int.o \
		create_entry.o ctl.o delete_def_fd.o delete_def_file.o \
		delete_entry.o delete_fd.o delete_file.o \
		delete_perm.o dup.o first_entry.o free.o \
		free_qualifier.o free_text.o from_text.o get_entry.o get.o \
		get_mode.o get_permset.o get_qualifier.o get_tag_type.o \
		init.o set.o set_mode.o set_permset.o set_qualifier.o \
		set_tag_type.o size.o to_text.o valid.o
SOBJS =		$(addprefix pic/,$(OBJS))

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

all:		$(STATIC_LIB) # $(ELF_LIB) $(LIB).so

$(STATIC_LIB):	$(OBJS)
	$(AR) ruv $@ $^
	$(RANLIB) $@

$(ELF_LIB):	pic $(SOBJS)
	$(CC) -shared -o $(ELF_LIB) -Wl,-soname,$(SONAME) $(SOBJS)

$(LIB).so:	$(ELF_LIB)
	$(LN) $(ELF_LIB) $(LIB).so

pic:
	if [ ! -d pic ]; then \
		mkdir pic; \
	fi

install:	$(STATIC_LIB) # $(ELF_LIB)
	# install -o $(BINOWN) -g $(BINGRP) -m $(BINMODE) $(ELF_LIB) $(PREFIX)/lib
	# /sbin/ldconfig
	# (cd $(PREFIX)/lib; $(LN) $(ELF_LIB) $(LIB).so.$(MAJOR_VERSION))
	# (cd $(PREFIX)/lib; $(LN) $(LIB).$(MAJOR_VERSION) $(LIB).so)
	install -o $(LIBOWN) -g $(LIBGRP) -m $(LIBMODE) $(STATIC_LIB) $(PREFIX)/lib
	$(RANLIB) $(PREFIX)/lib/$(STATIC_LIB)

clean:
	$(RM) $(LIB).a $(LIB).so $(ELF_LIB) $(OBJS) $(SOBJS)
	$(RM) -rf pic

realclean:	clean
	rm -f .depend 

dep depend .depend:
	$(CPP) $(CFLAGS) -M *.c >.depend
	$(CPP) $(CFLAGS) -M *.c | sed -e 's;^.*:;pic/&;' >>.depend

include .depend

