|
Packit |
eace71 |
# Makefile
|
|
Packit |
eace71 |
#
|
|
Packit |
eace71 |
# Copyright (C) 2017 Red Hat, Inc.
|
|
Packit |
eace71 |
# Gris Ge <fge@redhat.com>
|
|
Packit |
eace71 |
#
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
ifeq ($(TOPDIR),)
|
|
Packit |
eace71 |
TOPDIR = ..
|
|
Packit |
eace71 |
endif
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
DESTDIR ?=
|
|
Packit |
eace71 |
prefix ?= /usr
|
|
Packit |
eace71 |
INSTALL ?= install
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
ifndef LIB_DIR
|
|
Packit |
eace71 |
ifeq ($(shell test -d /lib64 && echo 1),1)
|
|
Packit |
eace71 |
LIB_DIR=$(prefix)/lib64
|
|
Packit |
eace71 |
else
|
|
Packit |
eace71 |
LIB_DIR=$(prefix)/lib
|
|
Packit |
eace71 |
endif
|
|
Packit |
eace71 |
endif
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
INCLUDE_DIR ?= $(prefix)/include
|
|
Packit |
eace71 |
PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
PKG_CONFIG = /usr/bin/pkg-config
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
LIBISCSI_USR_DIR=$(TOPDIR)/libopeniscsiusr
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
LIBISCSI_USR_VERSION_MAJOR=0
|
|
Packit |
eace71 |
LIBISCSI_USR_VERSION=0.2.0
|
|
Packit |
eace71 |
SONAME=$(LIBISCSI_USR_VERSION)
|
|
Packit |
eace71 |
DEVLIB = libopeniscsiusr.so
|
|
Packit |
eace71 |
LIBS = $(DEVLIB).$(SONAME)
|
|
Packit |
eace71 |
LIBS_MAJOR = $(DEVLIB).$(LIBISCSI_USR_VERSION_MAJOR)
|
|
Packit |
eace71 |
PKGFILE = libopeniscsiusr.pc
|
|
Packit |
eace71 |
HEADERS = libopeniscsiusr/libopeniscsiusr.h \
|
|
Packit |
eace71 |
libopeniscsiusr/libopeniscsiusr_common.h \
|
|
Packit |
eace71 |
libopeniscsiusr/libopeniscsiusr_session.h \
|
|
Packit |
eace71 |
libopeniscsiusr/libopeniscsiusr_iface.h
|
|
Packit |
eace71 |
TESTS = tests/test_context tests/test_session tests/test_iface tests/test_node
|
|
Packit |
eace71 |
EXTRA_MAN_FILES = libopeniscsiusr.h.3
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
CFLAGS ?= -O2 -g
|
|
Packit |
eace71 |
CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
|
|
Packit |
eace71 |
CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
LIBADD =
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
all: $(LIBS) $(LIBS_MAJOR) $(TESTS) doc
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
$(LIBS): $(OBJS)
|
|
Packit |
eace71 |
@echo CFLAGS= $(CFLAGS)
|
|
Packit |
eace71 |
$(CC) $(CFLAGS) -shared -Wl,-soname=$@ -o $@ $(OBJS) $(LDFLAGS) $(LIBADD)
|
|
Packit |
eace71 |
ln -sf $@ $(DEVLIB)
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
$(LIBS_MAJOR): $(LIBS)
|
|
Packit |
eace71 |
ln -sf $(LIBS) $@
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
clean:
|
|
Packit |
eace71 |
$(RM) vgcore* core *.a *.o *.gz *.so *.so.* $(TESTS)
|
|
Packit |
eace71 |
$(RM) -r docs/man
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
$(TESTS): $(LIBS)
|
|
Packit |
eace71 |
$(TESTS): CFLAGS += -I$(TOPDIR)/libopeniscsiusr -g
|
|
Packit |
eace71 |
$(TESTS): LDFLAGS += $(LIBADD) -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
check: $(LIBS) $(TESTS)
|
|
Packit |
eace71 |
sudo env LD_LIBRARY_PATH=$(LIBISCSI_USR_DIR) TESTS="$(TESTS)" \
|
|
Packit |
eace71 |
tests/runtest.sh || exit 1;
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
install: $(LIBS) $(LIBS_MAJOR)
|
|
Packit |
eace71 |
$(INSTALL) -d $(DESTDIR)/$(LIB_DIR)/
|
|
Packit |
eace71 |
$(INSTALL) -d $(DESTDIR)/$(INCLUDE_DIR)/
|
|
Packit |
eace71 |
$(INSTALL) $(LIBS) $(DESTDIR)$(LIB_DIR)/
|
|
Packit |
eace71 |
ln -sf $(LIBS) $(DESTDIR)/$(LIB_DIR)/$(DEVLIB)
|
|
Packit |
eace71 |
ln -sf $(LIBS) $(DESTDIR)/$(LIB_DIR)/$(LIBS_MAJOR)
|
|
Packit |
eace71 |
$(INSTALL) $(HEADERS) $(DESTDIR)$(INCLUDE_DIR)/
|
|
Packit |
eace71 |
$(INSTALL) -m 644 -D $(PKGFILE).in $(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE)
|
|
Packit |
eace71 |
perl -i -pe 's|__VERSION__|$(LIBNVME_VERSION)|g' \
|
|
Packit |
eace71 |
$(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE)
|
|
Packit |
eace71 |
perl -i -pe 's|__LIB_DIR__|$(LIB_DIR)|g' \
|
|
Packit |
eace71 |
$(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE)
|
|
Packit |
eace71 |
perl -i -pe 's|__INCLUDE_DIR__|$(INCLUDE_DIR)|g' \
|
|
Packit |
eace71 |
$(DESTDIR)$(PKGCONF_DIR)/$(PKGFILE)
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
doc: docs/man/$(EXTRA_MAN_FILES).gz
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
TEMPFILE := $(shell mktemp)
|
|
Packit |
eace71 |
|
|
Packit |
eace71 |
docs/man/$(EXTRA_MAN_FILES).gz: $(HEADERS)
|
|
Packit |
eace71 |
@for file in $(EXTRA_MAN_FILES); do \
|
|
Packit |
eace71 |
$(INSTALL) -v -m 644 -D docs/$$file docs/man/$$file; \
|
|
Packit |
eace71 |
done
|
|
Packit |
eace71 |
cat $(HEADERS) | \
|
|
Packit |
eace71 |
perl docs/doc-preclean.pl > "$(TEMPFILE)"
|
|
Packit |
eace71 |
perl docs/kernel-doc -man "$(TEMPFILE)" | \
|
|
Packit |
eace71 |
perl docs/split-man.pl docs/man
|
|
Packit |
eace71 |
-rm -f "$(TEMPFILE)"
|
|
Packit |
eace71 |
@for file in docs/man/*.3; do \
|
|
Packit |
eace71 |
gzip -f $$file; \
|
|
Packit |
eace71 |
done
|
|
Packit |
eace71 |
find docs/man -type f -name \*[0-9].gz
|