| # |
| # Makefile for sos system support tools |
| # |
| |
| NAME = sos |
| VERSION := $(shell echo `awk '/^Version:/ {print $$2}' sos.spec`) |
| MAJOR := $(shell echo $(VERSION) | cut -f 1 -d '.') |
| MINOR := $(shell echo $(VERSION) | cut -f 2 -d '.') |
| RELEASE := $(shell echo `awk '/^Release:/ {gsub(/\%.*/,""); print $2}' sos.spec`) |
| REPO = https://github.com/sosreport/sos |
| |
| SUBDIRS = po sos sos/plugins sos/policies docs |
| PYFILES = $(wildcard *.py) |
| # OS X via brew |
| # MSGCAT = /usr/local/Cellar/gettext/0.18.1.1/bin/msgcat |
| MSGCAT = msgcat |
| |
| DIST_BUILD_DIR = dist-build |
| RPM_DEFINES = --define "_topdir %(pwd)/$(DIST_BUILD_DIR)" \ |
| --define "_builddir %{_topdir}" \ |
| --define "_rpmdir %{_topdir}" \ |
| --define "_srcrpmdir %{_topdir}" \ |
| --define "_specdir %{_topdir}" \ |
| --define "_sourcedir %{_topdir}" |
| RPM = rpmbuild |
| RPM_WITH_DIRS = $(RPM) $(RPM_DEFINES) |
| ARCHIVE_DIR = $(DIST_BUILD_DIR)/$(NAME)-$(VERSION) |
| DEB_ARCHIVE_DIR = $(DIST_BUILD_DIR)/$(NAME)report-$(VERSION) |
| |
| SRC_BUILD = $(DIST_BUILD_DIR)/sdist |
| PO_DIR = $(SRC_BUILD)/sos/po |
| |
| .PHONY: docs |
| docs: |
| make -C docs html man |
| |
| .PHONY: build |
| build: |
| for d in $(SUBDIRS); do make -C $$d; [ $$? = 0 ] || exit 1 ; done |
| |
| .PHONY: install |
| install: |
| mkdir -p $(DESTDIR)/usr/sbin |
| mkdir -p $(DESTDIR)/usr/share/man/man1 |
| mkdir -p $(DESTDIR)/usr/share/man/man5 |
| mkdir -p $(DESTDIR)/usr/share/$(NAME)/extras |
| @gzip -c man/en/sosreport.1 > sosreport.1.gz |
| @gzip -c man/en/sos.conf.5 > sos.conf.5.gz |
| mkdir -p $(DESTDIR)/etc |
| install -m755 sosreport $(DESTDIR)/usr/sbin/sosreport |
| install -m644 sosreport.1.gz $(DESTDIR)/usr/share/man/man1/. |
| install -m644 sos.conf.5.gz $(DESTDIR)/usr/share/man/man5/. |
| install -m644 AUTHORS README.md $(DESTDIR)/usr/share/$(NAME)/. |
| install -m644 $(NAME).conf $(DESTDIR)/etc/$(NAME).conf |
| for d in $(SUBDIRS); do make DESTDIR=`cd $(DESTDIR); pwd` -C $$d install; [ $$? = 0 ] || exit 1; done |
| |
| $(NAME)-$(VERSION).tar.gz: clean |
| @mkdir -p $(ARCHIVE_DIR) |
| @tar -cv sosreport sos docs man po sos.conf AUTHORS LICENSE README.md sos.spec Makefile | tar -x -C $(ARCHIVE_DIR) |
| @tar Ccvzf $(DIST_BUILD_DIR) $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION) --exclude-vcs |
| |
| $(NAME)report_$(VERSION).orig.tar.gz: clean |
| @mkdir -p $(DEB_ARCHIVE_DIR) |
| @tar --exclude-vcs \ |
| --exclude=.travis.yml \ |
| --exclude=debian \ |
| --exclude=$(DIST_BUILD_DIR) -cv . | tar -x -C $(DEB_ARCHIVE_DIR) |
| @tar Ccvzf $(DIST_BUILD_DIR) $(DIST_BUILD_DIR)/$(NAME)report_$(VERSION).orig.tar.gz $(NAME)report-$(VERSION) |
| @mv $(DIST_BUILD_DIR)/$(NAME)report_$(VERSION).orig.tar.gz . |
| @rm -Rf $(DIST_BUILD_DIR) |
| |
| clean: |
| @rm -fv *~ .*~ changenew ChangeLog.old $(NAME)-$(VERSION).tar.gz sosreport.1.gz sos.conf.5.gz |
| @rm -rf rpm-build |
| @for i in `find . -iname *.pyc`; do \ |
| rm -f $$i; \ |
| done; \ |
| for d in $(SUBDIRS); do make -C $$d clean ; done |
| |
| srpm: clean $(NAME)-$(VERSION).tar.gz |
| $(RPM_WITH_DIRS) -ts $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz |
| |
| rpm: clean $(NAME)-$(VERSION).tar.gz |
| $(RPM_WITH_DIRS) -tb $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz |
| |
| po: clean |
| mkdir -p $(PO_DIR) |
| for po in `ls po/*.po`; do \ |
| $(MSGCAT) -p -o $(PO_DIR)/sos_$$(basename $$po | awk -F. '{print $$1}').properties $$po; \ |
| done; \ |
| |
| cp $(PO_DIR)/sos_en.properties $(PO_DIR)/sos_en_US.properties |
| cp $(PO_DIR)/sos_en.properties $(PO_DIR)/sos.properties |
| |
| test: |
| nosetests -v --with-cover --cover-package=sos --cover-html |