~ubuntu-branches/ubuntu/saucy/keyutils/saucy-proposed

« back to all changes in this revision

Viewing changes to .pc/0005-hardening.patch/Makefile

  • Committer: Package Import Robot
  • Author(s): Luk Claes
  • Date: 2013-04-06 09:38:50 UTC
  • mfrom: (10.2.11 sid)
  • Revision ID: package-import@ubuntu.com-20130406093850-e6xnevgf3za1t4y3
Tags: 1.5.5-7
* Taking over with maintainer's consent.
* Adding watch file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
CPPFLAGS        := -I.
 
2
CFLAGS          := -g -Wall -Werror
 
3
INSTALL         := install
 
4
DESTDIR         :=
 
5
SPECFILE        := keyutils.spec
 
6
NO_GLIBC_KEYERR := 0
 
7
NO_ARLIB        := 0
 
8
ETCDIR          := /etc
 
9
BINDIR          := /bin
 
10
SBINDIR         := /sbin
 
11
SHAREDIR        := /usr/share/keyutils
 
12
MAN1            := /usr/share/man/man1
 
13
MAN3            := /usr/share/man/man3
 
14
MAN5            := /usr/share/man/man5
 
15
MAN8            := /usr/share/man/man8
 
16
INCLUDEDIR      := /usr/include
 
17
LNS             := ln -sf
 
18
 
 
19
###############################################################################
 
20
#
 
21
# Determine the current package version from the specfile
 
22
#
 
23
###############################################################################
 
24
vermajor        := $(shell grep "%define vermajor" $(SPECFILE))
 
25
verminor        := $(shell grep "%define verminor" $(SPECFILE))
 
26
MAJOR           := $(word 3,$(vermajor))
 
27
MINOR           := $(word 3,$(verminor))
 
28
VERSION         := $(MAJOR).$(MINOR)
 
29
 
 
30
TARBALL         := keyutils-$(VERSION).tar.bz2
 
31
 
 
32
###############################################################################
 
33
#
 
34
# Determine the current library version from the version script
 
35
#
 
36
###############################################################################
 
37
libversion      := $(filter KEYUTILS_%,$(shell grep ^KEYUTILS_ version.lds))
 
38
libversion      := $(lastword $(libversion))
 
39
libversion      := $(lastword $(libversion))
 
40
APIVERSION      := $(subst KEYUTILS_,,$(libversion))
 
41
vernumbers      := $(subst ., ,$(APIVERSION))
 
42
APIMAJOR        := $(firstword $(vernumbers))
 
43
 
 
44
ARLIB           := libkeyutils.a
 
45
DEVELLIB        := libkeyutils.so
 
46
SONAME          := libkeyutils.so.$(APIMAJOR)
 
47
LIBNAME         := libkeyutils.so.$(APIVERSION)
 
48
 
 
49
###############################################################################
 
50
#
 
51
# Guess at the appropriate lib directory and word size
 
52
#
 
53
###############################################################################
 
54
LIBDIR          := $(shell ldd /usr/bin/make | grep '\(/libc\)' | sed -e 's!.*\(/.*\)/libc[.].*!\1!')
 
55
USRLIBDIR       := $(patsubst /lib/%,/usr/lib/%,$(LIBDIR))
 
56
BUILDFOR        := $(shell file /usr/bin/make | sed -e 's!.*ELF \(32\|64\)-bit.*!\1!')-bit
 
57
 
 
58
LNS             := ln -sf
 
59
 
 
60
ifeq ($(BUILDFOR),32-bit)
 
61
LIBDIR          := /lib
 
62
USRLIBDIR       := /usr/lib
 
63
else
 
64
ifeq ($(BUILDFOR),64-bit)
 
65
LIBDIR          := /lib64
 
66
USRLIBDIR       := /usr/lib64
 
67
endif
 
68
endif
 
69
 
 
70
###############################################################################
 
71
#
 
72
# This is necessary if glibc doesn't know about the key management error codes
 
73
#
 
74
###############################################################################
 
75
ifeq ($(NO_GLIBC_KEYERR),1)
 
76
CFLAGS  += -DNO_GLIBC_KEYERR
 
77
LIBLIBS := -ldl -lc
 
78
else
 
79
LIBLIBS :=
 
80
endif
 
81
 
 
82
###############################################################################
 
83
#
 
84
# Normal build rule
 
85
#
 
86
###############################################################################
 
87
all: $(DEVELLIB) keyctl request-key key.dns_resolver
 
88
 
 
89
###############################################################################
 
90
#
 
91
# Build the libraries
 
92
#
 
93
###############################################################################
 
94
#RPATH = -Wl,-rpath,$(LIBDIR)
 
95
 
 
96
ifeq ($(NO_ARLIB),0)
 
97
all: $(ARLIB)
 
98
$(ARLIB): keyutils.o
 
99
        $(AR) rcs $@ $<
 
100
endif
 
101
 
 
102
VCPPFLAGS       := -DPKGBUILD="\"$(shell date -u +%F)\""
 
103
VCPPFLAGS       += -DPKGVERSION="\"keyutils-$(VERSION)\""
 
104
VCPPFLAGS       += -DAPIVERSION="\"libkeyutils-$(APIVERSION)\""
 
105
 
 
106
keyutils.o: keyutils.c keyutils.h Makefile
 
107
        $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -UNO_GLIBC_KEYERR -o $@ -c $<
 
108
 
 
109
 
 
110
$(DEVELLIB): $(SONAME)
 
111
        ln -sf $< $@
 
112
 
 
113
$(SONAME): $(LIBNAME)
 
114
        ln -sf $< $@
 
115
 
 
116
LIBVERS := -shared -Wl,-soname,$(SONAME) -Wl,--version-script,version.lds
 
117
 
 
118
$(LIBNAME): keyutils.os version.lds Makefile
 
119
        $(CC) $(CFLAGS) -fPIC $(LDFLAGS) $(LIBVERS) -o $@ keyutils.os $(LIBLIBS)
 
120
 
 
121
keyutils.os: keyutils.c keyutils.h Makefile
 
122
        $(CC) $(CPPFLAGS) $(VCPPFLAGS) $(CFLAGS) -fPIC -o $@ -c $<
 
123
 
 
124
###############################################################################
 
125
#
 
126
# Build the programs
 
127
#
 
128
###############################################################################
 
129
%.o: %.c keyutils.h Makefile
 
130
        $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
 
131
 
 
132
keyctl: keyctl.o $(DEVELLIB)
 
133
        $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
 
134
 
 
135
request-key: request-key.o $(DEVELLIB)
 
136
        $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils
 
137
 
 
138
key.dns_resolver: key.dns_resolver.o $(DEVELLIB)
 
139
        $(CC) -L. $(CFLAGS) $(LDFLAGS) $(RPATH) -o $@ $< -lkeyutils -lresolv
 
140
 
 
141
###############################################################################
 
142
#
 
143
# Install everything
 
144
#
 
145
###############################################################################
 
146
install: all
 
147
ifeq ($(NO_ARLIB),0)
 
148
        $(INSTALL) -D -m 0644 $(ARLIB) $(DESTDIR)$(USRLIBDIR)/$(ARLIB)
 
149
endif
 
150
        $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
 
151
        $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
 
152
        mkdir -p $(DESTDIR)$(USRLIBDIR)
 
153
        $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
 
154
        $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
 
155
        $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
 
156
        $(INSTALL) -D request-key-debug.sh $(DESTDIR)$(SHAREDIR)/request-key-debug.sh
 
157
        $(INSTALL) -D key.dns_resolver $(DESTDIR)$(SBINDIR)/key.dns_resolver
 
158
        $(INSTALL) -D -m 0644 request-key.conf $(DESTDIR)$(ETCDIR)/request-key.conf
 
159
        mkdir -p $(DESTDIR)$(ETCDIR)/request-key.d
 
160
        $(INSTALL) -D -m 0644 keyctl.1 $(DESTDIR)$(MAN1)/keyctl.1
 
161
        $(INSTALL) -D -m 0644 keyctl_chown.3 $(DESTDIR)$(MAN3)/keyctl_chown.3
 
162
        $(INSTALL) -D -m 0644 keyctl_clear.3 $(DESTDIR)$(MAN3)/keyctl_clear.3
 
163
        $(INSTALL) -D -m 0644 keyctl_describe.3 $(DESTDIR)$(MAN3)/keyctl_describe.3
 
164
        $(LNS) keyctl_describe.3 $(DESTDIR)$(MAN3)/keyctl_describe_alloc.3
 
165
        $(INSTALL) -D -m 0644 keyctl_get_keyring_ID.3 $(DESTDIR)$(MAN3)/keyctl_get_keyring_ID.3
 
166
        $(INSTALL) -D -m 0644 keyctl_get_security.3 $(DESTDIR)$(MAN3)/keyctl_get_security.3
 
167
        $(LNS) keyctl_get_security.3 $(DESTDIR)$(MAN3)/keyctl_get_security_alloc.3
 
168
        $(INSTALL) -D -m 0644 keyctl_instantiate.3 $(DESTDIR)$(MAN3)/keyctl_instantiate.3
 
169
        $(LNS) keyctl_instantiate.3 $(DESTDIR)$(MAN3)/keyctl_instantiate_iov.3
 
170
        $(LNS) keyctl_instantiate.3 $(DESTDIR)$(MAN3)/keyctl_reject.3
 
171
        $(LNS) keyctl_instantiate.3 $(DESTDIR)$(MAN3)/keyctl_negate.3
 
172
        $(LNS) keyctl_instantiate.3 $(DESTDIR)$(MAN3)/keyctl_assume_authority.3
 
173
        $(INSTALL) -D -m 0644 keyctl_join_session_keyring.3 $(DESTDIR)$(MAN3)/keyctl_join_session_keyring.3
 
174
        $(INSTALL) -D -m 0644 keyctl_link.3 $(DESTDIR)$(MAN3)/keyctl_link.3
 
175
        $(LNS) keyctl_link.3 $(DESTDIR)$(MAN3)/keyctl_unlink.3
 
176
        $(INSTALL) -D -m 0644 keyctl_read.3 $(DESTDIR)$(MAN3)/keyctl_read.3
 
177
        $(LNS) keyctl_read.3 $(DESTDIR)$(MAN3)/keyctl_read_alloc.3
 
178
        $(INSTALL) -D -m 0644 keyctl_revoke.3 $(DESTDIR)$(MAN3)/keyctl_revoke.3
 
179
        $(INSTALL) -D -m 0644 keyctl_search.3 $(DESTDIR)$(MAN3)/keyctl_search.3
 
180
        $(INSTALL) -D -m 0644 keyctl_setperm.3 $(DESTDIR)$(MAN3)/keyctl_setperm.3
 
181
        $(INSTALL) -D -m 0644 keyctl_set_reqkey_keyring.3 $(DESTDIR)$(MAN3)/keyctl_set_reqkey_keyring.3
 
182
        $(INSTALL) -D -m 0644 keyctl_set_timeout.3 $(DESTDIR)$(MAN3)/keyctl_set_timeout.3
 
183
        $(INSTALL) -D -m 0644 keyctl_update.3 $(DESTDIR)$(MAN3)/keyctl_update.3
 
184
        $(INSTALL) -D -m 0644 recursive_key_scan.3 $(DESTDIR)$(MAN3)/recursive_key_scan.3
 
185
        $(LNS) recursive_key_scan.3 $(DESTDIR)$(MAN3)/recursive_session_key_scan.3
 
186
        $(INSTALL) -D -m 0644 request-key.conf.5 $(DESTDIR)$(MAN5)/request-key.conf.5
 
187
        $(INSTALL) -D -m 0644 request-key.8 $(DESTDIR)$(MAN8)/request-key.8
 
188
        $(INSTALL) -D -m 0644 key.dns_resolver.8 $(DESTDIR)$(MAN8)/key.dns_resolver.8
 
189
        $(INSTALL) -D -m 0644 keyutils.h $(DESTDIR)$(INCLUDEDIR)/keyutils.h
 
190
 
 
191
###############################################################################
 
192
#
 
193
# Run tests
 
194
#
 
195
###############################################################################
 
196
test:
 
197
        $(MAKE) -C tests run
 
198
 
 
199
###############################################################################
 
200
#
 
201
# Clean up
 
202
#
 
203
###############################################################################
 
204
clean:
 
205
        $(MAKE) -C tests clean
 
206
        $(RM) libkeyutils*
 
207
        $(RM) keyctl request-key key.dns_resolver
 
208
        $(RM) *.o *.os *~
 
209
        $(RM) debugfiles.list debugsources.list
 
210
 
 
211
distclean: clean
 
212
        $(RM) -r rpmbuild
 
213
 
 
214
###############################################################################
 
215
#
 
216
# Generate a tarball
 
217
#
 
218
###############################################################################
 
219
$(TARBALL):
 
220
        git archive --prefix=keyutils-$(VERSION)/ --format tar -o $(TARBALL) HEAD
 
221
 
 
222
tarball: $(TARBALL)
 
223
 
 
224
###############################################################################
 
225
#
 
226
# Generate an RPM
 
227
#
 
228
###############################################################################
 
229
SRCBALL := rpmbuild/SOURCES/$(TARBALL)
 
230
 
 
231
BUILDID := .local
 
232
dist    := $(word 2,$(shell grep "%dist" /etc/rpm/macros.dist))
 
233
release := $(word 2,$(shell grep ^Release: $(SPECFILE)))
 
234
release := $(subst %{?dist},$(dist),$(release))
 
235
release := $(subst %{?buildid},$(BUILDID),$(release))
 
236
rpmver  := $(VERSION)-$(release)
 
237
SRPM    := rpmbuild/SRPMS/keyutils-$(rpmver).src.rpm
 
238
 
 
239
RPMBUILDDIRS := \
 
240
                --define "_srcrpmdir $(CURDIR)/rpmbuild/SRPMS" \
 
241
                --define "_rpmdir $(CURDIR)/rpmbuild/RPMS" \
 
242
                --define "_sourcedir $(CURDIR)/rpmbuild/SOURCES" \
 
243
                --define "_specdir $(CURDIR)/rpmbuild/SPECS" \
 
244
                --define "_builddir $(CURDIR)/rpmbuild/BUILD" \
 
245
                --define "_buildrootdir $(CURDIR)/rpmbuild/BUILDROOT"
 
246
 
 
247
RPMFLAGS := \
 
248
        --define "buildid $(BUILDID)"
 
249
 
 
250
rpm:
 
251
        mkdir -p rpmbuild
 
252
        chmod ug-s rpmbuild
 
253
        mkdir -p rpmbuild/{SPECS,SOURCES,BUILD,BUILDROOT,RPMS,SRPMS}
 
254
        git archive --prefix=keyutils-$(VERSION)/ --format tar -o $(SRCBALL) HEAD
 
255
        rpmbuild -ts $(SRCBALL) --define "_srcrpmdir rpmbuild/SRPMS" $(RPMFLAGS)
 
256
        rpmbuild --rebuild $(SRPM) $(RPMBUILDDIRS) $(RPMFLAGS)
 
257
 
 
258
rpmlint: rpm
 
259
        rpmlint $(SRPM) $(CURDIR)/rpmbuild/RPMS/*/keyutils-{,libs-,libs-devel-,debuginfo-}$(rpmver).*.rpm
 
260
 
 
261
###############################################################################
 
262
#
 
263
# Build debugging
 
264
#
 
265
###############################################################################
 
266
show_vars:
 
267
        @echo VERSION=$(VERSION)
 
268
        @echo APIVERSION=$(APIVERSION)
 
269
        @echo LIBDIR=$(LIBDIR)
 
270
        @echo USRLIBDIR=$(USRLIBDIR)
 
271
        @echo BUILDFOR=$(BUILDFOR)
 
272
        @echo SONAME=$(SONAME)
 
273
        @echo LIBNAME=$(LIBNAME)