-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathMakefile
103 lines (88 loc) · 3.08 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Makefile for configsnap
# Required packages:
# RPM
# rpmbuild
#
# DEB
# build-essential
# devscripts
#
# package details
NAME = "configsnap"
BUILD_FILES = configsnap additional.conf configsnap.help2man LICENSE README.md
BUILD_FILES += MAINTAINERS.md NEWS
SHELL = /bin/bash
# package info
UPSTREAM = "https://github.com/rackerlabs/$(NAME).git"
VERSION := $(shell git tag -l | sort -V | tail -n 1)
RELEASE := $(shell perl -nle 'print $$& while m{^Release:\s+\K[0-9]+}g' $(NAME).spec)
COMMIT = $(shell git log --pretty=format:'%h' -n 1)
DATE = $(shell date +%Y-%m-%d)
DATELONG = $(shell date +%Y-%m-%dT%H:%M:%S%z)
# build info
BUILD_ROOT := "BUILD"
BUILD_DIR := "$(NAME)-$(VERSION)"
PATCH_DIR = $(CURDIR)/patches
OS := $(shell uname)
ifeq ($(OS), Darwin)
DIST := "MacOS"
else
DIST := $(shell lsb_release -si)
DIST_VER := $(shell lsb_release -sr | cut -d '.' -f1)
endif
DIST_DIR := $(DIST)$(DIST_VER)
ifeq ($(DIST), $(filter $(DIST), Fedora CentOS))
RPM_TOPDIR := $(shell rpm -E '%{_topdir}')
RPM_SPECDIR := $(shell rpm -E '%{_specdir}')
RPM_SRCDIR := $(shell rpm -E '%{_sourcedir}')
#RPM_RPMDIR := $(shell rpm -E '%{_rpmdir}')
#RPM_SRPMDIR := $(shell rpm -E '%{_srcrpmdir}')
endif
ifeq ($(DIST), Debian)
DEB_DIST := $(shell lsb_release -sc)
endif
.PHONY: deb rpm variables setup-build-dir prepare-patches clean ${BUILD_FILES}
all: variables
rpm: prepare-patches
@echo "Building release $(VERSION)_$(RELEASE) for $(DIST_DIR)"
cd $(BUILD_ROOT)/$(DIST_DIR) && \
tar -czvf $(VERSION).tar.gz $(BUILD_DIR) && \
cp $(VERSION).tar.gz $(RPM_SRCDIR)/
cp $(NAME).spec $(RPM_SPECDIR)/
rpmbuild -ba $(RPM_SPECDIR)/$(NAME).spec
deb: prepare-patches
@echo "Building release $(VERSION)_$(RELEASE) for $(DIST_DIR)"
tar -C $(BUILD_ROOT)/$(DIST_DIR) -czf $(BUILD_ROOT)/$(DIST_DIR)/$(NAME)_$(VERSION).orig.tar.gz $(BUILD_DIR)
cp -rpv debian $(BUILD_ROOT)/$(DIST_DIR)/$(BUILD_DIR)
cd $(BUILD_ROOT)/$(DIST_DIR)/$(BUILD_DIR) && \
debchange -M --create --package $(NAME) --force-distribution -D $(DEB_DIST) -v $(VERSION)-$(RELEASE) $(NAME) $(VERSION)-$(RELEASE) && \
debuild -i -us -uc -b
prepare-patches: setup-build-dir
ifeq ($(DIST)$(DIST_VER), Debian10)
sed -i 's#/bin/python$$#/bin/python3#g' $(BUILD_ROOT)/$(DIST_DIR)/$(BUILD_DIR)/configsnap
endif
setup-build-dir: $(BUILD_FILES)
rm -rf $(BUILD_ROOT)/$(DIST_DIR)
for file in $(BUILD_FILES); do \
install -D -T $$file $(BUILD_ROOT)/$(DIST_DIR)/$(BUILD_DIR)/$$file; \
done
clean:
shopt -s nullglob && \
rm -f -r $(CURDIR)/$(BUILD_ROOT)/*
variables:
@echo "OS: $(OS)"
@echo "DIST: $(DIST)"
@echo "DIST_VER: $(DIST_VER)"
@echo "NAME: $(NAME)"
@echo "VERSION: $(VERSION)"
@echo "RELEASE: $(RELEASE)"
@echo "COMMIT: $(COMMIT)"
@echo "DATE: $(DATE)"
@echo "DATELONG: $(DATELONG)"
@echo "BUILD_DIR: $(BUILD_DIR)"
ifeq ($(DIST), $(filter $(DIST), Fedora CentOS))
@echo "RPM_TOPDIR: $(RPM_TOPDIR)"
@echo "RPM_SPECDIR: $(RPM_SPECDIR)"
@echo "RPM_SRCDIR: $(RPM_SRCDIR)"
endif
# vim: noet: