aboutsummaryrefslogtreecommitdiffstats
path: root/dist/gdb/Makefile.linux
blob: 2b016af719a4780f858d37f749af9bad2c33daf6 (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
broot=${PWD}
source=${broot}/source
targets=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu,arm-none-linux-gnueabi
staging=${broot}/staging
pyversion=2.7
expatversion=2.1.1
arch=`uname -sm | sed 's/ /-/g' | tr A-Z a-z`
version=7.12
targetdir=${broot}/qtcreator-gdb-${version}
packagename=qtcreator-gdb-${version}-${arch}.tar.gz

all:package

clean:
	rm -rf  ${broot}/qtcreator-gdb-* ${staging}/gdb-* qtcreator-gdb-*.tar.gz

makesourcedir:
	@test -e ${source} || mkdir ${source}

maketargetdir:
	@test -e ${targetdir} || mkdir ${targetdir}

makestagingdir:
	@test -e ${staging} || mkdir ${staging}

${source}/expat-${expatversion}.tar.bz2: | makesourcedir
	cd ${source} && \
	echo "Downloading expat..." && \
	wget -q http://sourceforge.net/projects/expat/files/expat/${expatversion}/expat-${expatversion}.tar.bz2 && \
	touch ${source}/expat-${expatversion}.tar.bz2

${source}/Python-${pyversion}.tgz: | makesourcedir
	cd ${source} && \
	echo "Downloading python..." && \
	wget -q http://www.python.org/ftp/python/${pyversion}/Python-${pyversion}.tgz && \
	touch ${source}/Python-${pyversion}.tgz

${source}/gdb-${version}.tar.xz: | makesourcedir
	cd ${source} && \
	echo "Downloading gdb..." && \
	wget -q http://ftp.gnu.org/gnu/gdb/gdb-${version}.tar.xz || \
	wget -Oq gdb-${version}.tar.xz http://ftp.gnu.org/gnu/gdb/gdb-${version}a.tar.xz && \
	touch gdb-*.tar.xz

${staging}/lib/libexpat.a: ${source}/expat-${expatversion}.tar.bz2 | makestagingdir
	cd ${staging} && \
	echo "Extracting expat..." && \
	tar xf ${source}/expat-${expatversion}.tar.bz2 && cd expat-${expatversion} && \
	./configure --disable-shared -prefix=${staging} && ${MAKE} && ${MAKE} install

${staging}/lib/libpython${pyversion}.a: ${source}/Python-${pyversion}.tgz | makestagingdir
	unset PYTHONHOME && cd ${staging} && \
	echo "Extracting python..." && \
	tar xf ${source}/Python-${pyversion}.tgz && \
	cd Python-${pyversion} && \
	export LDFLAGS="-pthread -lm" && \
	./configure --prefix=${staging} && ${MAKE} && ${MAKE} install

${targetdir}/python/include/python${pyversion}/pyconfig.h: ${staging}/lib/libpython${pyversion}.a | maketargetdir
	mkdir -p ${targetdir}/python/lib && cp -a ${staging}/lib/python${pyversion} ${targetdir}/python/lib/
	mkdir -p ${targetdir}/python/include/python${pyversion} && cp ${staging}/include/python${pyversion}/pyconfig.h ${targetdir}/python/include/python${pyversion}/

${staging}/gdb-${version}/configure: ${source}/gdb-${version}.tar.xz | makestagingdir
	cd ${staging} && \
	echo "Extracting gdb..." && \
	tar xf ${source}/gdb-${version}.tar.xz && \
	cd gdb-${version} && \
	touch configure

${targetdir}/gdb: ${staging}/gdb-${version}/configure ${staging}/lib/libpython${pyversion}.a ${staging}/lib/libexpat.a | maketargetdir
	test -e ${staging}/gdb-${version}-build || mkdir ${staging}/gdb-${version}-build
	export PYTHONHOME=${staging} && \
	export PATH="${staging}/bin/:$$PATH" && \
	export LDFLAGS="-Wl,--no-as-needed -pthread -lm" && \
	cd ${staging}/gdb-${version}-build && \
	${staging}/gdb-${version}/configure --disable-nls --enable-targets=${targets} --with-separate-debug-dir="" \
	--disable-werror --with-python=${staging} --with-libexpat-prefix=${staging} && \
	sleep 3 && \
	${MAKE} MAKEFLAGS+=-j1 && \
	strip -o ${targetdir}/gdb gdb/gdb

package: ${targetdir}/gdb ${targetdir}/python/include/python${pyversion}/pyconfig.h
	mv ${targetdir} ${targetdir}-${arch}
	echo "Packing..."
	tar czf ${packagename} qtcreator-gdb-${version}-${arch}
	mv ${targetdir}-${arch} ${targetdir}