File: Makefile-std

package info (click to toggle)
libsmbios 2.2.28-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 8,072 kB
  • ctags: 3,878
  • sloc: cpp: 12,964; sh: 11,149; ansic: 7,330; xml: 4,318; python: 3,489; makefile: 508; sed: 16
file content (135 lines) | stat: -rw-r--r-- 5,019 bytes parent folder | download | duplicates (2)
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
# vim:noexpandtab:autoindent:tabstop=8:shiftwidth=8:filetype=make:nocindent:tw=0:
#  This is a template of all of the 'Standard' stuff that we use in all our
#  projects.

CLEANFILES=$(PACKAGE_NAME)-*.tar.gz $(PACKAGE_NAME)-*.tar.bz2 $(PACKAGE_NAME)-*.rpm _buildtemp version
DISTCLEANFILES=*~

EXTRA_DIST =
EXTRA_PROGRAMS=

CLEANFILES += $(EXTRA_PROGRAMS)
CLEANFILES += *.pyc */*.pyc */*/*.pyc */*/*/*.pyc
DISTCLEANFILES += pkg/$(PACKAGE).spec

clean-local:
	-test -z "$(CLEANFILES)" || rm -rf $(CLEANFILES)

distclean-local:
	-test -z "$(DISTCLEANFILES)" || rm -rf $(DISTCLEANFILES)

.PHONY: git-tag
git-tag:
	git tag -u libsmbios -m "tag for official release: $(PACKAGE_STRING)" v$(PACKAGE_VERSION)

.PHONY: get-version
get-version:
	@echo 'PACKAGE_STRING="$(PACKAGE_STRING)"'
	@echo 'PACKAGE_VERSION="$(PACKAGE_VERSION)"'
	@echo 'PACKAGE="$(PACKAGE)"'

ChangeLog:
	(GIT_DIR=$(top_srcdir)/.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)

AUTHORS:
	(GIT_DIR=$(top_srcdir)/.git git log | grep ^Author | sort |uniq > .authors.tmp && mv .authors.tmp AUTHORS; rm -f .authors.tmp) || (touch AUTHORS; echo 'git directory not found: installing possibly empty AUTHORS.' >&2)

REPLACE_VARS=GETTEXT_PACKAGE PACKAGE_VERSION PACKAGE localedir libdir libexecdir datadir sysconfdir pythondir pkgpythondir pkgdatadir pkgconfdir pkggladedir pkglibexecdir
export $(REPLACE_VARS)
# compat for RHEL3, dont ask
export GETTEXT_PACKAGE

DATA_HOOK_REPLACE=
install-data-hook:
	for i in $(DATA_HOOK_REPLACE); do      \
	    file=$(DESTDIR)/$$i                     ;\
	    for var in $(REPLACE_VARS)	;\
	    do	\
	        perl -p -i -e "s|^$$var\s*=.*|$$var=\"$${!var}\"|"  $$file;\
	    done	;\
	done

EXEC_HOOK_REPLACE=
install-exec-hook:
	for i in $(EXEC_HOOK_REPLACE); do      \
	    file=$(DESTDIR)/$$i                     ;\
	    for var in $(REPLACE_VARS)	;\
	    do	\
	        perl -p -i -e "s|^$$var\s*=.*|$$var=\"$${!var}\"|"  $$file;\
	    done	;\
	done

# set default project. can be overridden on cmdline with 'make -e ...'
PROJECT=home:$(USER)

.PHONY: upload_buildservice
upload_buildservice: dist
	[ -n "$(PROJECT)" ] || (echo "Must specify PROJECT"; exit 1)
	osc co $(PROJECT) $(PACKAGE)
	rm -f $(PROJECT)/$(PACKAGE)/*
	cp ${PACKAGE}*.tar.bz2 $(PROJECT)/$(PACKAGE)
	cp */${PACKAGE}.spec $(PROJECT)/$(PACKAGE)
	cd $(PROJECT)/$(PACKAGE); osc addremove
	cd $(PROJECT)/$(PACKAGE); yes | osc updatepacmetafromspec
	cd $(PROJECT)/$(PACKAGE); osc ci -m "scripted source update"

TOPDIR := $(shell cd $(top_builddir);pwd)
BUILDDIR = $(TOPDIR)/_rpmbuild
RPMDIR = $(TOPDIR)
SOURCEDIR = $(TOPDIR)
SPECFILE= $(TOPDIR)/pkg/$(PACKAGE_NAME).spec
SPECDIR = $(TOPDIR)/pkg
SRCRPMDIR = $(TOPDIR)

AM_RPM_DEFINES = --define "_topdir $(TOPDIR)" \
		--define "_builddir $(BUILDDIR)" \
		--define "_rpmdir $(RPMDIR)" \
		--define "_sourcedir $(SOURCEDIR)" \
		--define "_specdir $(SPECDIR)" \
		--define "_srcrpmdir $(SRCRPMDIR)" \
		$(RPM_DEFINES)

.PHONY: rpm srpm
rpm: pkg/$(PACKAGE_NAME).spec dist
	mkdir -p $(BUILDDIR)
	rpmbuild $(AM_RPM_DEFINES) -ba --nodeps $(SPECFILE)
	rm -rf $(BUILDDIR)

srpm: pkg/$(PACKAGE_NAME).spec dist
	mkdir -p $(BUILDDIR)
	rpmbuild $(AM_RPM_DEFINES) -bs --nodeps $(SPECFILE)
	rm -rf $(BUILDDIR)

# This updates the debian version information, similar to how specfile for RPM
# is updated. It has to be manually invoked becuase it wont work for rpm builds.
CHANGELOG=pkg/debian/changelog
CHANGELOG_TEXT="Placeholder changelog entry. Please update this for release."
changelog: $(CHANGELOG)
.PHONY: $(CHANGELOG)
$(CHANGELOG): version.mk
	cd pkg/ && fakeroot debchange -v $(PACKAGE_VERSION)-$(DEB_RELEASE) $(CHANGELOG_TEXT)

TARBALL=$(PACKAGE_STRING).tar.gz

debmagic:
	[ -n "$$DEB_TMP_BUILDDIR" ] || (echo "Must set DEB_TMP_BUILDDIR=/tmp/... for deb and sdeb targets"; exit 1)
	[ -n "$$DIST" ] || (echo "Must set DIST={gutsy,hardy,sid,...} for deb and sdeb targets"; exit 1)
	[ -n "$$DIST" ] || echo "Remember to set DISTTAG='~gutsy1' for deb and sdeb targets for backports"
	mkdir -p dist/$(DIST)
	cp $(TARBALL) $(DEB_TMP_BUILDDIR)/$(PACKAGE_NAME)_$(PACKAGE_VERSION).orig.tar.gz
	tar -C $(DEB_TMP_BUILDDIR) -xzf $(TARBALL)
	cp -ar pkg/debian $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING)/debian
	chmod +x $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING)/debian/rules
	sed -e "s/#DISTTAG#/$(DISTTAG)/g" -e "s/#DIST#/$(DIST)/g" $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING)/debian/changelog.in > $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING)/debian/changelog
	rm $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING)/debian/changelog.in
	cd $(DEB_TMP_BUILDDIR)/$(PACKAGE_STRING) ; \
	./configure ; \
	pdebuild --use-pdebuild-internal --buildresult $(TOPDIR)/dist/$(DIST) ; \
	dpkg-buildpackage -D -S -sa -rfakeroot ; \
	mv ../$(PACKAGE_NAME)_* $(TOPDIR)/dist/$(DIST) ; \
	cd -

debs:
	tmp_dir=`mktemp -d /tmp/firmware-tools.XXXXXXXX` ; \
	make debmagic DEB_TMP_BUILDDIR=$${tmp_dir} DIST=$(DIST) DISTTAG=$(DISTTAG) ; \
	rm -rf $${tmp_dir}