PREFIX := /usr/local
SBINDIR = $(PREFIX)/sbin
LIBUDEV:=$(shell ld -ludev > /dev/null 2>&1 ; echo $$?)
+
+RPMBUILD = rpmbuild
+TAR = tar
+RM = rm -f
+
ifeq ($(LIBUDEV),0)
LDFLAGS += -ludev
CFLAGS += -DLIBUDEV_EXISTS
all: doc
clean:
- rm -f $(NVME) *.o *~ a.out NVME-VERSION-FILE
+ rm -f $(NVME) *.o *~ a.out NVME-VERSION-FILE *.tar* nvme.spec version
$(MAKE) -C Documentation clean
clobber: clean
install: install-bin install-man
-.PHONY: default all doc clean clobber install install-bin install-man FORCE
+nvme.spec: nvme.spec.in NVME-VERSION-FILE
+ sed -e 's/@@VERSION@@/$(NVME_VERSION)/g' < $< > $@+
+ mv $@+ $@
+
+dist: nvme.spec
+ git archive --format=tar --prefix=nvme-$(NVME_VERSION)/ HEAD > nvme-$(NVME_VERSION).tar
+ @echo $(NVME_VERSION) > version
+ $(TAR) rf nvme-$(NVME_VERSION).tar nvme.spec version
+ gzip -f -9 nvme-$(NVME_VERSION).tar
+
+rpm: dist
+ $(RPMBUILD) -ta nvme-$(NVME_VERSION).tar.gz
+
+.PHONY: default all doc clean clobber install install-bin install-man rpm FORCE
--- /dev/null
+Name: nvme
+Version: @@VERSION@@
+Release: 1%{?dist}
+Summary: Core nvme tools
+License: GPL
+Group: Development/Tools
+URL: https://github.com/linux-nvme/nvme-cli/
+Source: nvme-@@VERSION@@.tar.gz
+Provides: nvme
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+%description
+NVMe is a fast, scalable, direct attached storage interface. The nvme
+cli rpm installs core management tools with minimal dependencies.
+
+%prep
+%setup
+
+%build
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install PREFIX=%{buildroot}/usr
+
+%files
+%defattr(-,root,root)
+%doc Documentation/nvme*.1
+%{_sbindir}/nvme
+%{_mandir}/man1/nvme*.1*
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%changelog
+* Thu Oct 15 2015 Keith Busch <keith.busch@intel.com>
+- Initial RPM spec