Files
ncpfs/contrib/ncp_nss_lib/Makefile
2026-04-28 20:56:04 +02:00

115 lines
2.5 KiB
Makefile

#
#
#
top_srcdir = ../..
top_builddir = ../..
this_srcdir = ${top_srcdir}/lib
include ${top_builddir}/Make.rules
VERSION_SOLIB := 2.3
VERSION_SONAME := 2
vpath %.c ${this_srcdir}
LIBS :=
REENTRANT_CFLAGS := -D_REENTRANT
VERSIONED_LINK := yes
SHARED_NSSLIB := libnss_ncp.so
SHARED_NSSLIB_BIN := $(SHARED_NSSLIB).$(VERSION_SOLIB)
SHARED_NSSLIB_SONAME := $(SHARED_NSSLIB).$(VERSION_SONAME)
O_UTILS1 = test_ncp_nss.o\
#
O_TMP1 =
UTILS1 = $(O_UTILS1:%.o=%)
CCFLAGS += -I.
PIC_FLAGS := -fPIC
NWCOMPAT := 1
SHARED_VLINK :=
SHARED_VLINK_CFLAGS :=
ifeq ($(VERSIONED_LINK),yes)
SHARED_VLINK := -Wl,-version-script=${this_srcdir}/libncp.vers
SHARED_VLINK_CFLAGS := -DMULTIVERSION
endif
ifeq ($(HAVE_ELF),yes)
NCP_LIB = libncp.so
NCPLIB_DIR = ../../lib
LIBDEP = $(NCPLIB_DIR)/$(NCP_LIB)
else
NCP_LIB = libncp.a
NCPLIB_DIR = ../../lib
LIBDEP = $(NCPLIB_DIR)/$(NCP_LIB)
endif
STATIC_BASE_OBJ := nss_ncp.o nss_cfgfile.o
SHARED_BASE_OBJ := $(STATIC_BASE_OBJ:.o=.do)
SHARED_O_OBJ := $(SHARED_BASE_OBJ)
BASE_CFLAGS := -DHAVE_CONFIG_H -DMAKE_NCPLIB -D_GNU_SOURCE
SHARED_CFLAGS := $(CFLAGS) $(CCFLAGS) $(REENTRANT_CFLAGS) $(PIC_FLAGS) $(SHARED_VLINK_CFLAGS)
.PHONY : all dep install install-dev clean mrproper distclean
.PHONY : install_shared install_static install_static_su
all: $(SHARED_NSSLIB) $(UTILS1)
install: install_shared
%.d: %.c %h
set -e; $(CC) -M $(STATIC_CFLAGS) $(CFLAGS_$(@:.d=.o)) $(BASE_CFLAGS) $< \
| sed 's,\($*\)\.o[ :]*,\1.o \1.do \1.to $@ : ,g' > $@; \
[ -s $@ ] || rm -f $@
$(STATIC_BASE_OBJ): %.o: %.c %.h
$(CC) $(STATIC_CFLAGS) $(CFLAGS_$@) $(BASE_CFLAGS) -o $@ -c $<
$(SHARED_BASE_OBJ): %.do: %.c %.h
$(CC) $(SHARED_CFLAGS) $(CFLAGS_$(@:.do=.o)) $(BASE_CFLAGS) -o $@ -c $<
$(O_UTILS1) $(O_TMP1): %.o: %.c
$(CC) $(CCFLAGS) $(CFLAGS) $(CFLAGS_$@) -o $@ -c $<
$(UTILS1):: %: %.o $(O_TMP1) $(SHARED_NSSLIB)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(OBJS_$@) -L. -lnss_ncp -L$(top_builddir)/lib -lncp $(LDFLAGS_$@)
dep:
clean:
rm -f *.o *.do *.to $(SHARED_NSSLIB) $(SHARED_NSSLIB_BIN) $(UTILS1) *~
mrproper: clean
rm -f $(UTILS) $(DISTFILE)
distclean: mrproper
install_shared: $(SHARED_NCPLIB_BIN)
$(INSTALL) -d $(DESTDIR)$(libsodir)
$(INSTALL) $(SHARED_NCPLIB_BIN) $(DESTDIR)$(libsodir)
-ldconfig
$(SHARED_NSSLIB): $(SHARED_NSSLIB_SONAME)
rm -f $@
ln -sf $< $@
$(SHARED_NSSLIB_SONAME): $(SHARED_NSSLIB_BIN)
ln -sf $< $@
$(SHARED_NSSLIB_BIN): $(SHARED_O_OBJ) ${this_srcdir}/libncp.vers
$(CC) -shared -o $@ -Wl,-soname=$(SHARED_NSSLIB_SONAME) $(SHARED_VLINK) $(SHARED_O_OBJ) -L$(NCPLIB_DIR) -lncp ${LIBS}