blob: 13b39981199acace4ef3268da58409c4e4e98afd (
plain)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
NAME=fastback
VERSION=2
ifndef DESTDIR
DESTDIR=/
endif
#
# RPM specific setup stuff
#
default: fastback
fastback: fastback.o
g++ -g -o $@ $$(curl-config --libs) $<
fastback.o: fastback.cpp
g++ -g -c -o $$(curl-config --cflags) $@ $<
install:
install -d $(DESTDIR)/bin/ $(DESTDIR)/etc
install fastback fastback-unload-receipt $(DESTDIR)/bin/
install fastback.conf $(DESTDIR)/etc
uninstall:
rm -rf $(DESTDIR)/bin/{fastback,fastback-unload-receipt}
rm -rf $(DESTDIR)/etc/fastback.conf
clean:
rm -rf fastback.o fastback
#
# Maintainer
#
TARFILES=fastback.cpp Makefile fastback.conf fastback-check test fastback-unload-receipt README FIXME INSTALL COPYING fastback-setup-server-anonftp
TARFILENAME=$(NAME)-$(VERSION).tar.gz
# This should be changed to build on dist, when I build a dist
$(TARFILENAME): $(SPECFILE) $(TARFILES)
rm -rf $(NAME)-$(VERSION)
mkdir $(NAME)-$(VERSION)
cp -r $(TARFILES) $(NAME)-$(VERSION)
tar zcf $@ $(NAME)-$(VERSION)
rm -rf $(NAME)-$(VERSION)
dist: $(TARFILENAME)
maintainer-clean: clean
rm -rf $(TARFILENAME)
#
# RPM specific
#
ifndef NAME
$(error "You can not run this Makefile without having NAME defined")
endif
SPECFILE=$(NAME).spec
ifneq ($(strip $(wildcard $(SPECFILE))),)
## a base directory where we'll put as much temporary working stuff as we can
WORKDIR := $(shell pwd)
SRCRPMDIR = $(WORKDIR)/SRPMS
SRCRPMDIR_MD5 = $(WORKDIR)/SRPMS_MD5
BUILDDIR = $(WORKDIR)/BUILD
RPMDIR = $(WORKDIR)/RPMS
MOCKDIR = $(WORKDIR)/MOCK
SOURCEDIR = $(WORKDIR)
SPECDIR = $(WORKDIR)
RPM_DEFINES = --define "_sourcedir $(SOURCEDIR)" \
--define "_specdir $(SPECDIR)" \
--define "_builddir $(BUILDDIR)" \
--define "_srcrpmdir $(SRCRPMDIR)" \
--define "_rpmdir $(RPMDIR)"
# Initialize the variables that we need, but are not defined
# the version of the package
VER_REL := $(shell rpm $(RPM_DEFINES) -q --qf "%{VERSION} %{RELEASE}\n" --specfile $(SPECFILE)| head -1)
ifneq ($(strip $(VERSION)),$(strip $(word 1, $(VER_REL))))
$(error "VERSION in Makefile does not match VERSION in spec file")
endif
RELEASE := $(word 2, $(VER_REL))
RPM = rpmbuild
RPM_WITH_DIRS = $(RPM) $(RPM_DEFINES)
name-ver-rel:
@echo $(NAME)-$(VERSION)-$(RELEASE)
srpm: $(SPECFILE) $(NAME)-$(VERSION).tar.gz
mkdir -p $(SRCRPMDIR) $(BUILDDIR) $(RPMDIR)
$(RPM_WITH_DIRS) -bs $<
rpm: $(SPECFILE) $(NAME)-$(VERSION).tar.gz
mkdir -p $(SRCRPMDIR) $(BUILDDIR) $(RPMDIR)
$(RPM_WITH_DIRS) -ba $(SPECFILE) 2>&1 | tee .build-$(VERSION)-$(RELEASE).log ; exit $${PIPESTATUS[0]}
#
# BUILD SRPMS either with or without the MD5_DEFINES
#
$(SRCRPMDIR)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm: $(SPECFILE) $(NAME)-$(VERSION).tar.gz
$(RPM_WITH_DIRS) -bs $<
MD5_DEFINES=--define "_srcrpmdir $(SRCRPMDIR_MD5)" --define "_source_filedigest_algorithm md5" --define "_binary_filedigest_algorithm md5"
$(SRCRPMDIR_MD5)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm: $(SPECFILE) $(NAME)-$(VERSION).tar.gz
$(RPM_WITH_DIRS) $(MD5_DEFINES) -bs $<
mock-fedora-11-x86_64: $(SRCRPMDIR)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
mock $(MOCKARGS) -r fedora-11-x86_64 --resultdir=$(MOCKDIR)/fedora-11-x86_64 rebuild $(SRCRPMDIR)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
mock-epel-5-x86_64: $(SRCRPMDIR_MD5)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
mock $(MOCKARGS) -r epel-5-x86_64 --resultdir=$(MOCKDIR)/epel-5-x86_64 rebuild $(SRCRPMDIR_MD5)/$(NAME)-$(VERSION)-$(RELEASE).src.rpm
rpm-clean: maintainer-clean
rm -rf $(SRCRPMDIR) $(SRCRPMDIR_MD5) $(BUILDDIR) $(RPMDIR) $(MOCKDIR)
endif
|