Package: mingw32
Version: 4.2.1.dfsg-1
Severity: wishlist
Tags: patch
Please could you provide a 64-bit version of mingw32? Patch attached.
Note: only the compiler itself is built, since libgcc etc requires runtime
headers/libraries which are not yet packaged (and can't be packaged
without the compiler ;-)).
-- System Information:
Debian Release: 5.0
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.18-6-amd64 (SMP w/2 CPU cores)
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages mingw32 depends on:
ii libc6 2.7-18 GNU C Library: Shared libraries
ii libgmp3c2 2:4.2.2+dfsg-3 Multiprecision arithmetic library
ii libmpfr1ldbl 2.3.2.dfsg.1-1 multiple precision floating-point
ii mingw32-binutils 2.18.50-20080109-1 Minimalist GNU win32 (cross) binut
ii mingw32-runtime 3.13-1 Minimalist GNU win32 (cross) runti
mingw32 recommends no packages.
Versions of packages mingw32 suggests:
pn cpp-doc <none> (no description available)
pn gcc-doc <none> (no description available)
diff -ur mingw32-4.2.1.dfsg.gcc-source/debian/control mingw32-4.2.1.dfsg.amd64/debian/control
--- mingw32-4.2.1.dfsg.gcc-source/debian/control 2009-02-04 22:58:25.000000000 +0100
+++ mingw32-4.2.1.dfsg.amd64/debian/control 2009-02-05 00:48:49.000000000 +0100
@@ -17,3 +17,14 @@
.
This package contains the C and C++ cross compilers.
+Package: mingw64
+Architecture: any
+Depends: ${shlibs:Depends}
+Suggests: gcc-doc, cpp-doc
+Description: Minimalist GNU win64 (cross) compiler
+ A Linux hosted, win64 target, cross compiler for C/C++
+ .
+ Freedom through obsolescence. Those who still really need to
+ can now build windows executables from the comfort of Debian.
+ .
+ This package contains the C and C++ cross compilers.
diff -ur mingw32-4.2.1.dfsg.gcc-source/debian/rules mingw32-4.2.1.dfsg.amd64/debian/rules
--- mingw32-4.2.1.dfsg.gcc-source/debian/rules 2009-02-04 23:19:40.000000000 +0100
+++ mingw32-4.2.1.dfsg.amd64/debian/rules 2009-02-05 02:18:32.000000000 +0100
@@ -7,7 +7,9 @@
#export DH_VERBOSE=1
package = mingw32
+package64 = mingw64
target = i586-mingw32msvc
+target64 = amd64-mingw32msvc
top_dir := $(shell pwd)
upstream_dir := /usr/src/gcc-4.3
@@ -15,6 +17,7 @@
build_dir := $(top_dir)/build_dir
build_src := $(build_dir)/src
build_objs := $(build_dir)/objs
+build_objs64 := $(build_dir)/objs64
man1dir = usr/share/man/man1
@@ -31,20 +34,27 @@
endif
-build : build-stamp
+build : build-stamp build64-stamp
-configure-stamp : unpack-stamp
- dh_testdir
- mkdir -p $(build_objs)
- cd $(build_objs) \
- && $(build_src)/gcc-$(release)/configure -v \
+CONFFLAGS = -v \
--prefix=/usr \
- --target=$(target) \
--enable-languages=c,c++ \
--enable-threads \
--enable-sjlj-exceptions \
--disable-multilib \
--enable-version-specific-runtime-libs
+
+
+configure-stamp : unpack-stamp
+ dh_testdir
+ mkdir -p $(build_objs)
+ cd $(build_objs) && $(build_src)/gcc-$(release)/configure $(CONFFLAGS) --target=$(target)
+ touch $@
+
+configure64-stamp : unpack-stamp
+ dh_testdir
+ mkdir -p $(build_objs64)
+ cd $(build_objs64) && $(build_src)/gcc-$(release)/configure $(CONFFLAGS) --target=$(target64)
touch $@
build-stamp : configure-stamp
@@ -53,30 +63,40 @@
touch $@
+build64-stamp : configure64-stamp
+ dh_testdir
+ cd $(build_objs64) && $(MAKE) all-gcc
+
+ touch $@
+
install : install-stamp
-install-stamp : build-stamp
+install-stamp : build-stamp build64-stamp
dh_testdir
dh_testroot
dh_clean -k
- dh_installdirs usr/share/lintian/overrides
+ dh_installdirs -A usr/share/lintian/overrides
cd $(build_objs) \
&& $(MAKE) install prefix=$(top_dir)/debian/$(package)/usr \
mandir=$(top_dir)/debian/$(package)/usr/share/man
+ cd $(build_objs64) \
+ && $(MAKE) install-gcc prefix=$(top_dir)/debian/$(package64)/usr \
+ mandir=$(top_dir)/debian/$(package64)/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 -rf debian/$(package)/usr/share/man/man7
+ rm -rf debian/{$(package),$(package64)}/usr/include
+ rm -rf debian/{$(package),$(package64)}/usr/info
+ rm -rf debian/{$(package),$(package64)}/usr/share/locale
+ rm -f debian/{$(package),$(package64)}/usr/lib/*a
+ rm -rf debian/{$(package),$(package64)}/usr/share/man/man7
# 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)
+ cp debian/lintian-overrides debian/$(package64)/usr/share/lintian/overrides/$(package64)
touch $@
@@ -121,7 +141,7 @@
binary-arch: build install
dh_testdir
dh_testroot
- dh_installdocs
+ dh_installdocs -s
# Don't make symlinks to the non-free docs,
# some people seem happy enough to do without them
@@ -134,19 +154,25 @@
# $(man1dir)/$(target)-gcc.1.gz $(man1dir)/$(target)-cc.1.gz \
# $(man1dir)/$(target)-gcc.1.gz $(man1dir)/$(target)-gcc-$(version).1.gz
- dh_installchangelogs
+ dh_installchangelogs -s
# install symlinks to enable compilercache use.
# This first one is just missing from the gcc install.
#
- dh_link /usr/bin/$(target)-gcc /usr/bin/$(target)-cc \
+ dh_link -p$(package) /usr/bin/$(target)-gcc /usr/bin/$(target)-cc \
/usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target)-c++ \
/usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target)-cc \
/usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target)-g++ \
/usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target)-gcc
- dh_strip -Xusr/$(target)/lib \
- -Xusr/lib/gcc/$(target)/$(version)/lib
+ dh_link -p$(package64) /usr/bin/$(target64)-gcc /usr/bin/$(target64)-cc \
+ /usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target64)-c++ \
+ /usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target64)-cc \
+ /usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target64)-g++ \
+ /usr/lib/compilercache/compilercache /usr/lib/compilercache/$(target64)-gcc
+
+ dh_strip -s -Xusr/{$(target),$(target64)}/lib \
+ -Xusr/lib/gcc/{$(target),$(target64)}/$(version)/lib
$(target)-strip --strip-debug debian/$(package)/usr/$(target)/lib/*.a
$(target)-strip --strip-debug debian/$(package)/usr/lib/gcc/$(target)/$(version)/*.{a,o}
@@ -154,18 +180,20 @@
find debian/$(package)/usr/lib/gcc/$(target)/$(version)/include \
-type f -exec chmod 644 {} \;
+ find debian/$(package64)/usr/lib/gcc/$(target64)/$(version)/include \
+ -type f -exec chmod 644 {} \;
# This is wrong, they are host not target binaries, let dh_strip get them above.
# $(target)-strip --remove-section=.comment --remove-section=.note \
# debian/$(package)/usr/lib/gcc-lib/$(target)/$(version)/{cc1,cc1plus,cpp0,tradcpp0}
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
+ dh_compress -s
+ dh_fixperms -s
+ dh_installdeb -s
+ dh_shlibdeps -s
+ dh_gencontrol -s
+ dh_md5sums -s
+ dh_builddeb -s
binary: binary-indep binary-arch