mingw32-filesystem, mingw32-w32api, mingw32-runtime
Richard W.M. Jones
rjones at redhat.com
Thu Dec 18 10:08:49 UTC 2008
(CC-ing to the mailing list with the original patches)
On Thu, Dec 18, 2008 at 12:52:19AM +0100, Fridrich Strba wrote:
> I was doing some cloning of your Rawhide packages for my personal use
> and I discovered a bug in the _mingw32_make macro and also maybe some
> reasons why.
>
> Setting the prefix to %{buildroot}%{prefix} is not seen as flawed now,
> but with more and more cross-built packages it will show that the
> libtool archive (*.la) files will give wrong prefix and result somehow
> also in linking errors.
I'm a bit confused by what the mistake is .. The *.la files we are
generating now seem to have correct paths inside them. Can you point
to an example where there is a problem?
> I think that the reason is basically the w32api and mingwrt package
> where make install does not honour DESTDIR setting. Find attached two
> patches that will make that DESTDIR to be respected.
>
> Also, I sent a proposed (IMHO better) mingw32 macros files. Note that
> the CLASSPATH variable is not useful for you people if you don't
> distribute the mingw32-gcc-java cross-compiler that I personally use for
> building of some java bindings of my private libraries. But the
> _mingw32_make and _mingw32_makeinstall macros could be considered I
> guess. I even make the mingw32-make symlink because several non-libtool
> applications cross-compile much better using mingw32-make which sets all
> the needed env variables.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/
-------------- next part --------------
--- mingwrt-3.15.1-mingw32/Makefile.in 2008-09-24 02:56:05.000000000 +0200
+++ mingwrt-3.15.1-mingw32/Makefile.in 2008-12-17 23:39:10.000000000 +0100
@@ -233,7 +233,7 @@
install_dlls_host:
for i in $(DLLS); do \
- $(INSTALL_PROGRAM) $$i $(inst_bindir)/$$i ; \
+ $(INSTALL_PROGRAM) $$i $(DESTDIR)$(inst_bindir)/$$i ; \
done
_libm_dummy.o:
@@ -433,37 +433,37 @@
install-info: info
install-dirs:
- $(mkinstalldirs) $(inst_bindir)
- $(mkinstalldirs) $(inst_includedir)
- $(mkinstalldirs) $(inst_libdir)
- $(mkinstalldirs) $(inst_docdir)
- $(mkinstalldirs) $(mandir)/man$(mansection)
+ $(mkinstalldirs) $(DESTDIR)$(inst_bindir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_docdir)
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection)
install: all install-dirs $(install_dlls_host)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
for i in $(CRT0S); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
for i in $(INSTDOCS); do \
- $(INSTALL_DATA) $(srcdir)/$$i $(inst_docdir)/$$i ; \
+ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(inst_docdir)/$$i ; \
done
for sub in . sys ; do \
dstdir=$(inst_includedir)/$$sub ; \
- $(mkinstalldirs) $$dstdir ; \
+ $(mkinstalldirs) $(DESTDIR)$$dstdir ; \
for i in $(srcdir)/include/$$sub/*.h ; do \
- $(INSTALL_DATA) $$i $$dstdir/`basename $$i` ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$$dstdir/`basename $$i` ; \
done ; \
done
#
# This provisional hack installs the only manpage we have at present...
# It simply CANNOT suffice, when we have more manpages to ship.
#
- $(mkinstalldirs) $(mandir)/man$(mansection)
- $(INSTALL_DATA) $(srcdir)/man/dirname.man $(mandir)/man$(mansection)/`\
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection)
+ $(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\
echo dirname.man|sed '$(manpage_transform);s,man$$,$(mansection),'`
- $(INSTALL_DATA) $(srcdir)/man/dirname.man $(mandir)/man$(mansection)/`\
+ $(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\
echo basename.man|sed '$(manpage_transform);s,man$$,$(mansection),'`
#
# End provisional hack.
--- mingwrt-3.15.1-mingw32/profile/Makefile.in 2008-12-17 23:40:47.000000000 +0100
+++ mingwrt-3.15.1-mingw32/profile/Makefile.in 2008-12-17 23:41:46.000000000 +0100
@@ -109,17 +109,17 @@
install-info: info
install: all
- $(mkinstalldirs) $(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
for i in $(CRT0S); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
for sub in . ; do \
- $(mkinstalldirs) $(inst_includedir)/$$sub ; \
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/$$sub ; \
for i in $(srcdir)/$$sub/*.h ; do \
- $(INSTALL_DATA) $$i $(inst_includedir)/$$sub/`basename $$i` ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_includedir)/$$sub/`basename $$i` ; \
done ; \
done
--- mingwrt-3.15.1-mingw32/mingwex/Makefile.in 2008-12-17 23:43:53.000000000 +0100
+++ mingwrt-3.15.1-mingw32/mingwex/Makefile.in 2008-12-17 23:44:03.000000000 +0100
@@ -236,9 +236,9 @@
install-info: info
install: all
- $(mkinstalldirs) $(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
clean:
-------------- next part --------------
--- w32api-3.13-mingw32/lib/Makefile.in 2008-12-17 23:56:40.000000000 +0100
+++ w32api-3.13-mingw32/lib/Makefile.in 2008-12-17 23:58:24.000000000 +0100
@@ -213,19 +213,19 @@
install: install-libraries install-headers install-ddk install-directx
install-libraries: all
- $(mkinstalldirs) $(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
install-headers:
- $(mkinstalldirs) $(inst_includedir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)
for i in $(HEADERS); do \
- $(INSTALL_DATA) $(srcdir)/../include/$$i $(inst_includedir)/$$i ; \
+ $(INSTALL_DATA) $(srcdir)/../include/$$i $(DESTDIR)$(inst_includedir)/$$i ; \
done
- $(mkinstalldirs) $(inst_includedir)/GL
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/GL
for i in $(GL_HEADERS); do \
- $(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(inst_includedir)/GL/$$i ; \
+ $(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \
done
install-ddk: install-libraries install-headers
@@ -239,15 +239,15 @@
uninstall-libraries:
@for i in $(LIBS); do \
- rm -f $(inst_libdir)/$$i ; \
+ rm -f $(DESTDIR)$(inst_libdir)/$$i ; \
done
- rmdir $(inst_libdir)
+ rmdir $(DESTDIR)$(inst_libdir)
uninstall-headers:
@for i in $(HEADERS); do \
- rm -r $(inst_includedir)/$$i ; \
+ rm -r $(DESTDIR)$(inst_includedir)/$$i ; \
done
- rmdir $(inst_includedir)
+ rmdir $(DESTDIR)$(inst_includedir)
uninstall-ddk:
cd ddk && $(MAKE) -C uninstall $(FLAGS_TO_PASS)
--- w32api-3.13-mingw32/lib/ddk/Makefile.in 2008-12-17 23:59:36.000000000 +0100
+++ w32api-3.13-mingw32/lib/ddk/Makefile.in 2008-12-18 00:00:30.000000000 +0100
@@ -145,15 +145,15 @@
install: install-libraries install-headers
install-libraries: all
- $(mkinstalldirs) $(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
install-headers:
- $(mkinstalldirs) $(inst_includedir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)
for i in $(HEADERS); do \
- $(INSTALL_DATA) $(srcdir)/../../include/ddk/$$i $(inst_includedir)/$$i ; \
+ $(INSTALL_DATA) $(srcdir)/../../include/ddk/$$i $(DESTDIR)$(inst_includedir)/$$i ; \
done
# uninstall headers and libraries from a target specified directory
@@ -161,15 +161,15 @@
uninstall-libraries:
@for i in $(LIBS); do \
- rm -f $(inst_libdir)/$$i ; \
+ rm -f $(DESTDIR)$(inst_libdir)/$$i ; \
done
- rmdir $(inst_libdir)
+ rmdir $(DESTDIR)$(inst_libdir)
uninstall-headers:
@for i in $(HEADERS); do \
- rm -r $(inst_includedir)/$$i ; \
+ rm -r $(DESTDIR)$(inst_includedir)/$$i ; \
done
- rmdir $(inst_includedir)
+ rmdir $(DESTDIR)$(inst_includedir)
dist:
--- w32api-3.13-mingw32/lib/directx/Makefile.in 2008-12-18 00:01:10.000000000 +0100
+++ w32api-3.13-mingw32/lib/directx/Makefile.in 2008-12-18 00:02:08.000000000 +0100
@@ -170,15 +170,15 @@
install: install-libraries install-headers
install-libraries: all
- $(mkinstalldirs) $(inst_libdir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_libdir)
for i in $(LIBS); do \
- $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \
done
install-headers:
- $(mkinstalldirs) $(inst_includedir)
+ $(mkinstalldirs) $(DESTDIR)$(inst_includedir)
for i in $(HEADERS); do \
- $(INSTALL_DATA) $(srcdir)/../../include/directx/$$i $(inst_includedir)/$$i ; \
+ $(INSTALL_DATA) $(srcdir)/../../include/directx/$$i $(DESTDIR)$(inst_includedir)/$$i ; \
done
# uninstall headers and libraries from a target specified directory
@@ -186,15 +186,15 @@
uninstall-libraries:
@for i in $(LIBS); do \
- rm -f $(inst_libdir)/$$i ; \
+ rm -f $(DESTDIR)$(inst_libdir)/$$i ; \
done
- rmdir $(inst_libdir)
+ rmdir $(DESTDIR)$(inst_libdir)
uninstall-headers:
@for i in $(HEADERS); do \
- rm -r $(inst_includedir)/$$i ; \
+ rm -r $(DESTDIR)$(inst_includedir)/$$i ; \
done
- rmdir $(inst_includedir)
+ rmdir $(DESTDIR)$(inst_includedir)
dist:
-------------- next part --------------
# RPM macros for Fedora MinGW.
%_mingw32_target i686-pc-mingw32
# Paths.
%_mingw32_sysroot %{_prefix}/%{_mingw32_target}/sys-root
%_mingw32_prefix %{_mingw32_sysroot}/mingw
%_mingw32_exec_prefix %{_mingw32_prefix}
%_mingw32_bindir %{_mingw32_exec_prefix}/bin
%_mingw32_sbindir %{_mingw32_exec_prefix}/sbin
%_mingw32_libexecdir %{_mingw32_exec_prefix}/libexec
%_mingw32_libdir %{_mingw32_exec_prefix}/lib
%_mingw32_datadir %{_mingw32_prefix}/share
%_mingw32_docdir %{_mingw32_prefix}/share/doc
%_mingw32_infodir %{_mingw32_prefix}/share/info
%_mingw32_mandir %{_mingw32_prefix}/share/man
%_mingw32_sysconfdir %{_mingw32_prefix}/etc
%_mingw32_sharedstatedir %{_mingw32_prefix}/com
%_mingw32_localstatedir %{_mingw32_prefix}/var
%_mingw32_includedir %{_mingw32_prefix}/include
# Build macros.
%_mingw32_host %{_mingw32_target}
%_mingw32_cflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%_mingw32_classpath %_mingw32_datadir/java/libgcj.jar:%_mingw32_datadir/java/libgcj-tools.jar
%_mingw32_cc %{_mingw32_target}-gcc
%_mingw32_cxx %{_mingw32_target}-g++
%_mingw32_cpp %{_mingw32_target}-gcc -E
%_mingw32_addr2line %{_mingw32_target}-addr2line
%_mingw32_ar %{_mingw32_target}-ar
%_mingw32_as %{_mingw32_target}-as
%_mingw32_c++ %{_mingw32_target}-c++
%_mingw32_c++filt %{_mingw32_target}-c++filt
%_mingw32_dlltool %{_mingw32_target}-dlltool
%_mingw32_dllwrap %{_mingw32_target}-dllwrap
%_mingw32_gcov %{_mingw32_target}-gcov
%_mingw32_gprof %{_mingw32_target}-gprof
%_mingw32_ld %{_mingw32_target}-ld
%_mingw32_nm %{_mingw32_target}-nm
%_mingw32_objcopy %{_mingw32_target}-objcopy
%_mingw32_objdump %{_mingw32_target}-objdump
%_mingw32_ranlib %{_mingw32_target}-ranlib
%_mingw32_readelf %{_mingw32_target}-readelf
%_mingw32_size %{_mingw32_target}-size
%_mingw32_strings %{_mingw32_target}-strings
%_mingw32_strip %{_mingw32_target}-strip
%_mingw32_windmc %{_mingw32_target}-windmc
%_mingw32_windres %{_mingw32_target}-windres
%_mingw32_gcj %{_mingw32_target}-gcj
%_mingw32_cache mingw32-config.cache
%_mingw32_findprovides /usr/lib/rpm/mingw32-find-provides.sh
%_mingw32_findrequires /usr/lib/rpm/mingw32-find-requires.sh
%_mingw32_env HOST_CC=gcc; export HOST_CC; \
PKG_CONFIG_PATH="%{_mingw32_libdir}/pkgconfig"; export PKG_CONFIG_PATH; \
CC="${MINGW32_CC:-%_mingw32_cc}"; export CC; \
CXX="${MINGW32_CXX:-%_mingw32_cxx}"; export CXX; \
CFLAGS="${MINGW32_CFLAGS:-%_mingw32_cflags}"; export CFLAGS; \
CXXFLAGS="${MINGW32_CXXFLAGS:-%_mingw32_cflags}"; export CXXFLAGS; \
CLASSPATH="$CLASSPATH:${MINGW32_CLASSPATH:-%_mingw32_classpath}"; export CLASSPATH; \
_PREFIX="%{_bindir}/%{_mingw32_target}-"; \
for i in `ls ${_PREFIX}*|egrep -v "gcc-"`; do \
x=`echo $i|sed "s,${_PREFIX},,"|sed "s,.awk*,,"|tr "a-z+-" "A-ZX_"`; \
declare -x $x="$i" ; export $x; \
done; \
unset _PREFIX; \
for i in `ls %{_mingw32_bindir}/*|grep -- "-config\$"` ; do \
x=`basename $i|tr "a-z+-" "A-ZX_"`; \
declare -x $x="$i" ; export $x; \
done; \
unset x i
%_mingw32_configure %{_mingw32_env} ; \
./configure --cache-file=%{_mingw32_cache} \\\
--host=%{_mingw32_host} \\\
--build=%_build \\\
--target=%{_mingw32_target} \\\
--prefix=%{_mingw32_prefix} \\\
--exec-prefix=%{_mingw32_exec_prefix} \\\
--bindir=%{_mingw32_bindir} \\\
--sbindir=%{_mingw32_sbindir} \\\
--sysconfdir=%{_mingw32_sysconfdir} \\\
--datadir=%{_mingw32_datadir} \\\
--includedir=%{_mingw32_includedir} \\\
--libdir=%{_mingw32_libdir} \\\
--libexecdir=%{_mingw32_libexecdir} \\\
--localstatedir=%{_mingw32_localstatedir} \\\
--sharedstatedir=%{_mingw32_sharedstatedir} \\\
--mandir=%{_mingw32_mandir} \\\
--infodir=%{_mingw32_infodir}
%_mingw32_make %{_mingw32_env} ; \
make \\\
prefix=%{_mingw32_prefix} \\\
exec_prefix=%{_mingw32_exec_prefix} \\\
bindir=%{_mingw32_bindir} \\\
sbindir=%{_mingw32_sbindir} \\\
sysconfdir=%{_mingw32_sysconfdir} \\\
datadir=%{_mingw32_datadir} \\\
includedir=%{_mingw32_includedir} \\\
libdir=%{_mingw32_libdir} \\\
libexecdir=%{_mingw32_libexecdir} \\\
localstatedir=%{_mingw32_localstatedir} \\\
sharedstatedir=%{_mingw32_sharedstatedir} \\\
mandir=%{_mingw32_mandir} \\\
infodir=%{_mingw32_infodir}
%_mingw32_makeinstall %{_mingw32_make} %{?buildroot:DESTDIR=%{buildroot}} install
More information about the mingw
mailing list