File: rules

package info (click to toggle)
mingw32 2.95.3.7-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 21,392 kB
  • ctags: 14
  • sloc: makefile: 101
file content (151 lines) | stat: -rwxr-xr-x 4,091 bytes parent folder | download
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
140
141
142
143
144
145
146
147
148
149
150
151
#!/usr/bin/make -f
#
# debian/rules file to build a Mingw32 cross compiler toolchain.
#
# Created 30 Jan 2001, by Ron Lee <ron@debian.org>

#export DH_VERBOSE=1
export DH_COMPAT=2

package=mingw32
version=2.95.3-7

binutils=binutils-2.11.92-20011113
gcc=gcc-2.95.3-20011106

target=i586-mingw32msvc
languages="c c++"

top_dir:=$(shell pwd)
upstream_src_dir=$(top_dir)/upstream
patch_dir=$(top_dir)/debian/patches
build_dir=$(top_dir)/build_dir
build_src=$(build_dir)/src
build_objs=$(build_dir)/objs

all_stamps=unpack-stamp build-onetree-stamp install-stamp


build : unpack-stamp build-onetree-stamp

build-onetree-stamp : unpack-stamp
	dh_testdir
	mkdir -p $(build_objs)
	cd $(build_objs)								\
		&& $(build_src)/configure -v	--prefix=/usr				\
						--target=$(target)			\
						--with-gnu-as				\
						--with-gnu-ld				\
						--enable-threads			\
						--disable-multilib			\
						--enable-version-specific-runtime-libs	\
		&& $(MAKE) LANGUAGES=$(languages)
	touch $@


install : install-stamp

install-stamp : build-onetree-stamp
	dh_testdir
	dh_testroot
	dh_clean -k

	dh_installdirs usr/share/lintian/overrides
	cd $(build_objs)								\
		&& $(MAKE) install LANGUAGES=$(languages)				\
				   prefix=$(top_dir)/debian/$(package)/usr		\
				   mandir=$(top_dir)/debian/$(package)/usr/share/man

	# remove some non-cross stuff that will clash with other packages
	# and shuffle things about as required.
	rm -rf debian/$(package)/usr/include
	rm -rf debian/$(package)/usr/info
	rm -rf debian/$(package)/usr/share/locale
	rm debian/$(package)/usr/lib/*a
	rm debian/$(package)/usr/share/man/man1/cccp.1*
	mv debian/$(package)/usr/bin/cpp debian/$(package)/usr/bin/$(target)-cpp

	# install override for the non fhs target dir gcc wants to use
	# (until we find a better solution or change policy)
	cp debian/lintian-overrides debian/$(package)/usr/share/lintian/overrides/$(package)

	touch $@


unpack-stamp:
	dh_testdir
	mkdir -p $(build_src)

	# unpack upstream tarballs
	@cd $(build_src) \
		&& for f in $(binutils) $(gcc); do					\
			echo "unpacking $$f";						\
			mkdir -p $$f							\
			&& (cd $$f &&							\
				if [ -r $(upstream_src_dir)/$$f-src.tar.gz ]; then	\
					tar zxf $(upstream_src_dir)/$$f-src.tar.gz;	\
				elif [ -r $(upstream_src_dir)/$$f-src.tar.bz2 ]; then	\
					tar jxf $(upstream_src_dir)/$$f-src.tar.bz2;	\
				else							\
					echo " *** Error: Failed to unpack $$f";	\
					exit 1;						\
				fi							\
			   )								\
		   done;

# patch upstream source (not required currently)
#	@for f in $(gcc) $(cygwin); do \
#		echo "patching $$f"; \
#		cd $(build_src)/$$f \
#			&& patch -p1 < $(patch_dir)/$$f-crossmingw.diff; \
#	done;

	# create single tree build structure
	# use headers and libiberty from binutils for 2.95.3 -- its more recent.
	#   WATCHME:  The binutils^2 here is transient since historically the
	#             upstream topdir has been, well.. variable  /-;
	@cd $(build_src)						\
		&& for f in $(build_src)/$(binutils)/$(binutils)/* ; do		\
			ln -s $$f .;					\
		   done 						\
		&& for f in gcc libio libstdc++ ; do			\
			ln -s $(build_src)/$(gcc)/$(gcc)/$$f .;		\
		   done;

	touch $@


clean:
	dh_testdir
	dh_testroot
	rm -rf $(build_dir) $(all_stamps)
	dh_clean


binary-indep:
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_undocumented $(target)-c++.1 $(target)-cpp.1 \
			$(target)-dllwrap.1 $(target)-gasp.1
	dh_installchangelogs
	dh_strip -Xusr/$(target)/lib -Xusr/lib/gcc-lib/$(target)/$(version)
	debian/$(package)/usr/bin/$(target)-strip --strip-debug \
		debian/$(package)/usr/$(target)/lib/*.a
	debian/$(package)/usr/bin/$(target)-strip --strip-debug \
		debian/$(package)/usr/lib/gcc-lib/$(target)/$(version)/libgcc.a
	debian/$(package)/usr/bin/$(target)-strip --remove-section=.comment --remove-section=.note \
		debian/$(package)/usr/lib/gcc-lib/$(target)/$(version)/{cc1,cc1plus,cpp0}
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch

.PHONY: binary-indep binary-arch binary clean build install