1# Makefile to help building packages
2
3ifneq ("$(wildcard ../../src/config.mak)","")
4include ../../src/Makefile.defs
5else ifneq ($(MAKECMDGOALS),cfg)
6$(error Please start "make cfg" first)
7endif
8
9RPMBUILD_TOP := /tmp/kamailio_rpmbuild
10RPM_VER = ${shell echo "$(RELEASE)" | sed -e "s/-dev[0-9]//" -e "s/-rc[0-9]//" -e "s/-pre[0-9]//"}
11RPM_REL = ${shell echo "$(RELEASE)." | grep -o -P "dev[0-9]\." }
12DIST_ARCHIVE = ${shell echo "kamailio-$(RPM_VER)_src.tar.gz"}
13APK_VERSION = ${shell echo "$(RELEASE)" | grep -o "^[0-9.]*"}
14RPMBUILD_OPT= --define "_topdir $(RPMBUILD_TOP)"
15GIT_TAG = ${shell git rev-parse HEAD 2> /dev/null}
16
17# generate config.mak and modules.lst
18.PHONY: cfg
19cfg:
20	$(MAKE) -C ../../src cfg
21
22# generate the tarball with source tree
23.PHONY: tar
24tar:
25	rm -f ../../kamailio*_src.tar.gz
26	$(MAKE) -C ../.. tar
27
28# build alpine apk packages
29.PHONY: apk
30apk:
31	echo Building alpine packages using commit ${GIT_TAG}
32	sed -e "s/^_gitcommit=.*/_gitcommit=${GIT_TAG}/" \
33	    -e "s/^pkgver=.*/pkgver=${APK_VERSION}/" \
34	    -i alpine/APKBUILD
35	cd alpine && abuild snapshot
36	@echo \"abuild\" cannot be start from Makefile please start manualy \"cd alpine \&\& abuild -r\"
37
38# build source rpm package
39.PHONY: src.rpm
40src.rpm: tar
41	mkdir -p ${RPMBUILD_TOP}/SOURCES
42	mv ../../kamailio-$(RELEASE)_src.tar.gz ${RPMBUILD_TOP}/SOURCES/${DIST_ARCHIVE}
43	sed -e 's/%define ver .*/%define ver ${RPM_VER}/' \
44            -e 's/%define rel .*/%define rel ${RPM_REL}0%{dist}/' \
45            -e 's/setup -n %{name}-%{ver}/setup -n kamailio-$(RELEASE)/' \
46            -i obs/kamailio.spec
47	rpmbuild ${RPMBUILD_OPT} -bs obs/kamailio.spec
48	mv ${RPMBUILD_TOP}/SRPMS/kamailio-${RPM_VER}*.src.rpm ../..
49	rm -Rf ${RPMBUILD_TOP}
50
51# build rpm packages
52.PHONY: rpm
53rpm: src.rpm
54	mock ../../kamailio-$(RELEASE).*.src.rpm
55
56# build debian packages
57.PHONY: deb
58deb:
59	$(MAKE) -C ../.. deb
60