OSDN Git Service

Resolve incorrect type casts in time.h.
[mingw/mingw-org-wsl.git] / Makefile.in
index 7de1e78..bde26c3 100644 (file)
@@ -1,5 +1,35 @@
+##
+# @file Makefile.in
+# Copyright (C) 2012-2013 MinGW.org Project
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+##
+#
+# @configure_input@
+#
 VPATH=$(srcdir)
 PACKAGE_TARNAME=@PACKAGE_TARNAME@
+PACKAGE_VERSION=@PACKAGE_VERSION@
+PACKAGE_RELEASE=@PACKAGE_RELEASE@
+RELEASE_STATUS=@RELEASE_STATUS@
+RELEASE_REFERENCE=@RELEASE_REFERENCE@
 srcdir=@srcdir@
 top_srcdir=@top_srcdir@
 top_builddir=@top_builddir@
@@ -11,20 +41,24 @@ bindir=@bindir@
 libdir=@libdir@
 includedir=@includedir@
 docdir=@docdir@
+mingwrtdocdir=$(docdir)/../mingwrt
+w32apidocdir=$(docdir)/../w32api
 
 mkinstalldirs=@MKDIR_P@
 
-CFLAGS=@CFLAGS@
-RANLIB=@RANLIB@
-AS=@AS@
-DLLTOOL=@DLLTOOL@
-DLLTOOL_FLAGS := --as $(AS) -k -U --dllname
-INSTALL=@INSTALL@
-MKDIR_P=@MKDIR_P@
+CC = @CC@
+CFLAGS = @CFLAGS@
+RANLIB = @RANLIB@
+AS = @AS@
+DLLTOOL = @DLLTOOL@
+DLLTOOL_FLAGS = --as $(AS) -k --dllname
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKDIR_P = @MKDIR_P@
 
 INCLUDES=-I$(top_srcdir)/include -I$(srcdir)/include \
-  -I$(top_srcdir)/src/libcrt/include -nostdinc \
-  -iwithprefixbefore include
+  -I$(top_srcdir)/src/libcrt/include -I$(top_srcdir)/misc/src/include \
+  -nostdinc -iwithprefixbefore include
 ALL_CFLAGS=$(CFLAGS) $(INCLUDES) -DNTDDI_VERSION=0x04000000
 
 .SUFFIXES: .def.in .def
@@ -61,13 +95,40 @@ mingwrt_lib_LIBRARIES = \
   libmingwex.a \
   libgmon.a
 
+OBJDIR := src/libcrt/crt
+mingwrt_lib_OBJECTS = \
+  $(OBJDIR)/CRT_fp10.o \
+  $(OBJDIR)/CRT_fp8.o \
+  $(OBJDIR)/CRT_noglob.o \
+  $(OBJDIR)/binmode.o \
+  $(OBJDIR)/crt2.o \
+  $(OBJDIR)/crtmt.o \
+  $(OBJDIR)/crtst.o \
+  $(OBJDIR)/dllcrt2.o \
+  $(OBJDIR)/txtmode.o
+
+OBJDIR2 := misc/gpl/profile
+mingwrt_lib_OBJECTS += \
+  $(OBJDIR2)/gcrt2.o 
+
 winapi_DEF := $(notdir $(wildcard ${top_srcdir}/lib/lib32/*.def))
+winapi_DDK_DEF := $(notdir $(wildcard $(top_srcdir)/lib/lib32/ddk/*.def))
+winapi_DIRECTX_DEF := $(notdir $(wildcard $(top_srcdir)/lib/lib32/directx/*.def))
+winapi_DIRECTX_DEF := $(subst dinput.def ,,$(winapi_DIRECTX_DEF))
+winapi_DIRECTX_DEF := $(subst dinput8.def ,,$(winapi_DIRECTX_DEF))
+winapi_DIRECTX_DINPUT_DEF := dinput.def dinput8.def
 winapi_MRI := $(notdir $(wildcard ${top_srcdir}/lib/lib32/*.mri))
 winapi_lib_LIBRARIES := $(addprefix lib,$(winapi_DEF:.def=.a))
+winapi_lib_DDK_LIBRARIES := $(addprefix lib,$(winapi_DDK_DEF:.def=.a))
+winapi_lib_DIRECTX_LIBRARIES := $(addprefix lib,$(winapi_DIRECTX_DEF:.def=.a))
+winapi_lib_DIRECTX_DINPUT_LIBRARIES := $(addprefix lib,$(winapi_DIRECTX_DINPUT_DEF:.def=.a))
 winapi_mri_LIBRARIES := $(addprefix lib,$(winapi_MRI:.mri=.a))
-winapi_lib_EXTRA_LIBRARIES := libuuid.a libscrnsave.a libscrnsavw.a liblargeint.a
+winapi_lib_EXTRA_LIBRARIES := libuuid.a libscrnsave.a libscrnsavw.a liblargeint.a libdmoguids.a libdxguid.a libdxerr8.a libdxerr9.a libstrmiids.a
 
-lib_LIBRARIES := $(mingwrt_lib_LIBRARIES) $(winapi_lib_LIBRARIES) $(winapi_lib_EXTRA_LIBRARIES) $(winapi_mri_LIBRARIES)
+lib_LIBRARIES := $(mingwrt_lib_LIBRARIES) $(winapi_lib_LIBRARIES) \
+  $(winapi_lib_EXTRA_LIBRARIES) $(winapi_mri_LIBRARIES) \
+  $(winapi_lib_DDK_LIBRARIES) $(winapi_lib_DIRECTX_LIBRARIES) \
+  $(winapi_lib_DIRECTX_DINPUT_LIBRARIES)
 
 SRCDIR := src/libcrt/crt
 crt0_SOURCES := \
@@ -79,8 +140,10 @@ crt0_SOURCES := \
   $(SRCDIR)/CRT_fp8.c \
   $(SRCDIR)/CRT_fp10.c \
   $(SRCDIR)/txtmode.c \
-  $(SRCDIR)/binmode.c
+  $(SRCDIR)/binmode.c \
+  $(SRCDIR)/ofmt_stub.s
 crt0_OBJECTS := $(crt0_SOURCES:.c=.o) $(SRCDIR)/crt2.o $(SRCDIR)/dllcrt2.o
+crt0_OBJECTS := $(crt0_OBJECTS:.s=.o)
 
 SRCDIR := src/libcrt/crt
 mingwm10_dll_SOURCES := \
@@ -101,14 +164,14 @@ mold_SOURCES := \
   $(SRCDIR)/wscmpi.c
 mold_OBJECTS := $(mode_SOURCES:.c=.o)
 
-SRCDIR := gpl/profile
+SRCDIR := misc/gpl/profile
 gcrt0_SOURCES := $(SRCDIR)/gcrt0.c
-gcrt0_OBJECTS := $(SRCDIR)/gcrt1.o $(SRCDIR)/gcrt2.o
+gcrt0_OBJECTS := $(SRCDIR)/gcrt2.o
 
 lib_OBJECTS := $(crt0_OBJECTS) $(gcrt0_OBJECTS)
 
 bin_LIBRARIES := mingwm10.dll
-doc_DOCUMENTS := README LICENSE
+doc_DOCUMENTS := ChangeLog README LICENSE NEWS TODO NOTES
 doc_DOCUMENTS_EXTRA := doc/historical/mingw doc/historical/w32api
 
 libuuid_a_SOURCES := $(addprefix src/libuuid/,$(notdir $(wildcard ${top_srcdir}/src/libuuid/*.c)))
@@ -119,39 +182,38 @@ libscrnsave_a_OBJECTS := $(libscrnsave_a_SOURCES:.c=.o)
 scrnsave_o_CFLAGS := -UUNICODE
 
 libscrnsavw_a_SOURCES := src/libscrnsave/scrnsave.c
-libscrnsavw_a_OBJECTS := src/libscrnsave/srcnsavw.o
+libscrnsavw_a_OBJECTS := src/libscrnsave/scrnsavw.o
 scrnsavw_o_CFLAGS := -DUNICODE
 
+libshell32_a_SOURCES := src/libshell32/shell32.c
+libshell32_a_OBJECTS := src/libshell32/shell32.o
+shell32_o_CFLAGS := -DUNICODE
+
 liblargeint_a_SOURCES := src/liblargeint/largeint.c
 liblargeint_a_OBJECTS := $(liblargeint_a_SOURCES:.c=.o)
 
+libdmoguids_a_SOURCES := misc/src/libdmoguids/dmoguids.c
+libdmoguids_a_OBJECTS := $(libdmoguids_a_SOURCES:.c=.o)
+
+libdxguid_a_SOURCES := misc/src/libdxguid/dxguid.c
+libdxguid_a_OBJECTS := $(libdxguid_a_SOURCES:.c=.o)
+
+libstrmiids_a_SOURCES := misc/src/libstrmiids/strmiids.c
+libstrmiids_a_OBJECTS := $(libstrmiids_a_SOURCES:.c=.o)
+
+libws2_32_a_SOURCES := src/libws2_32/ws2_32.c
+libws2_32_a_OBJECTS := $(libws2_32_a_SOURCES:.c=.o)
+
+extra_OBJECTS := $(libws2_32_a_OBJECTS) src/libcrt/crt/ofmt_stub.o
+
 msvcrt_DEF = \
-  msvcrt.def \
-  msvcr70.def \
-  msvcr71.def \
-  msvcr80.def \
-  msvcr90.def \
-  msvcr100.def \
-  msvcrtd.def \
-  msvcr70d.def \
-  msvcr71d.def \
-  msvcr80d.def \
-  msvcr90d.def \
-  msvcr100d.def
+  msvcrt.def msvcr70.def msvcr71.def msvcr80.def msvcr90.def msvcr100.def \
+  msvcrtd.def msvcr70d.def msvcr71d.def msvcr80d.def msvcr90d.def msvcr100d.def
 
 moldname_DEF = \
-  moldname.def \
-  moldnamed.def \
-  moldname70.def \
-  moldname71.def \
-  moldname80.def \
-  moldname90.def \
-  moldname100.def \
-  moldname70d.def \
-  moldname71d.def \
-  moldname80d.def \
-  moldname90d.def \
-  moldname100d.def
+  moldname.def moldnamed.def moldname70.def moldname71.def moldname80.def \
+  moldname90.def moldname100.def moldname70d.def moldname71d.def \
+  moldname80d.def moldname90d.def moldname100d.def
 
 SRCDIR := src/libcrt/crt
 libmingw32_a_SOURCES := \
@@ -241,6 +303,7 @@ complex_SOURCES := \
   $(SRCDIR)/cprojl.c \
   $(SRCDIR)/csinl.c \
   $(SRCDIR)/ctanl.c
+complex_SOURCES := $(wildcard src/libcrt/complex/*.c)
 
 SRCDIR := src/libcrt/ctype
 ctype_SOURCES := $(SRCDIR)/isblank.c $(SRCDIR)/iswblank.c
@@ -259,7 +322,7 @@ fenv_SOURCES := \
   $(SRCDIR)/feraiseexcept.c \
   $(SRCDIR)/fesetround.c
 
-SRCDIR := src/libcrt/gdtoa
+SRCDIR := misc/src/libcrt/gdtoa
 gdtoa_SOURCES := \
   $(SRCDIR)/g__fmt.c \
   $(SRCDIR)/gethex.c \
@@ -293,6 +356,7 @@ inttypes_SOURCES := \
   $(SRCDIR)/wcstoumax.c
 
 SRCDIR := src/libcrt/math
+MSRCDIR := misc/src/libcrt/math
 math_SOURCES := \
   $(SRCDIR)/acosf.c \
   $(SRCDIR)/acosh.c \
@@ -301,8 +365,6 @@ math_SOURCES := \
   $(SRCDIR)/acosl.c \
   $(SRCDIR)/asinf.c \
   $(SRCDIR)/asinh.c \
-  $(SRCDIR)/asinhf.c \
-  $(SRCDIR)/asinhl.c \
   $(SRCDIR)/asinl.c \
   $(SRCDIR)/atan2f.c \
   $(SRCDIR)/atan2l.c \
@@ -311,9 +373,9 @@ math_SOURCES := \
   $(SRCDIR)/atanhf.c \
   $(SRCDIR)/atanhl.c \
   $(SRCDIR)/atanl.c \
-  $(SRCDIR)/cbrt.c \
-  $(SRCDIR)/cbrtf.c \
-  $(SRCDIR)/cbrtl.c \
+  $(MSRCDIR)/cbrt.c \
+  $(MSRCDIR)/cbrtf.c \
+  $(MSRCDIR)/cbrtl.c \
   $(SRCDIR)/ceilf.S \
   $(SRCDIR)/ceill.S \
   $(SRCDIR)/copysign.S \
@@ -321,9 +383,9 @@ math_SOURCES := \
   $(SRCDIR)/copysignl.S \
   $(SRCDIR)/cosf.S \
   $(SRCDIR)/coshf.c \
-  $(SRCDIR)/coshl.c \
+  $(MSRCDIR)/coshl.c \
   $(SRCDIR)/cosl.S \
-  $(SRCDIR)/erfl.c \
+  $(MSRCDIR)/erfl.c \
   $(SRCDIR)/exp2.S \
   $(SRCDIR)/exp2f.S \
   $(SRCDIR)/exp2l.S \
@@ -358,10 +420,10 @@ math_SOURCES := \
   $(SRCDIR)/fpclassifyf.c \
   $(SRCDIR)/fpclassifyl.c \
   $(SRCDIR)/frexpf.c \
-  $(SRCDIR)/frexpl.S \
+  $(MSRCDIR)/frexpl.S \
   $(SRCDIR)/fucom.c \
   $(SRCDIR)/hypotf.c \
-  $(SRCDIR)/hypotl.c \
+  $(MSRCDIR)/hypotl.c \
   $(SRCDIR)/ilogb.S \
   $(SRCDIR)/ilogbf.S \
   $(SRCDIR)/ilogbl.S \
@@ -370,9 +432,9 @@ math_SOURCES := \
   $(SRCDIR)/isnanl.c \
   $(SRCDIR)/ldexpf.c \
   $(SRCDIR)/ldexpl.c \
-  $(SRCDIR)/lgamma.c \
-  $(SRCDIR)/lgammaf.c \
-  $(SRCDIR)/lgammal.c \
+  $(MSRCDIR)/lgamma.c \
+  $(MSRCDIR)/lgammaf.c \
+  $(MSRCDIR)/lgammal.c \
   $(SRCDIR)/llrint.c \
   $(SRCDIR)/llrintf.c \
   $(SRCDIR)/llrintl.c \
@@ -392,7 +454,9 @@ math_SOURCES := \
   $(SRCDIR)/lrint.c \
   $(SRCDIR)/lrintf.c \
   $(SRCDIR)/lrintl.c \
-  $(SRCDIR)/lround_generic.c \
+  $(SRCDIR)/lround.c \
+  $(SRCDIR)/lroundl.c \
+  $(SRCDIR)/lroundf.c \
   $(SRCDIR)/modff.c \
   $(SRCDIR)/modfl.c \
   $(SRCDIR)/nearbyint.S \
@@ -402,12 +466,12 @@ math_SOURCES := \
   $(SRCDIR)/nextafterl.c \
   $(SRCDIR)/nexttoward.c \
   $(SRCDIR)/nexttowardf.c \
-  $(SRCDIR)/pow.c \
+  $(MSRCDIR)/pow.c \
   $(SRCDIR)/powf.c \
-  $(SRCDIR)/powi.c \
-  $(SRCDIR)/powif.c \
-  $(SRCDIR)/powil.c \
-  $(SRCDIR)/powl.c \
+  $(MSRCDIR)/powi.c \
+  $(MSRCDIR)/powif.c \
+  $(MSRCDIR)/powil.c \
+  $(MSRCDIR)/powl.c \
   $(SRCDIR)/remainder.S \
   $(SRCDIR)/remainderf.S \
   $(SRCDIR)/remainderl.S \
@@ -417,28 +481,30 @@ math_SOURCES := \
   $(SRCDIR)/rint.c \
   $(SRCDIR)/rintf.c \
   $(SRCDIR)/rintl.c \
-  $(SRCDIR)/round_generic.c \
-  $(SRCDIR)/s_erf.c \
+  $(SRCDIR)/round.c \
+  $(SRCDIR)/roundf.c \
+  $(SRCDIR)/roundl.c \
+  $(MSRCDIR)/s_erf.c \
   $(SRCDIR)/scalbn.S \
   $(SRCDIR)/scalbnf.S \
   $(SRCDIR)/scalbnl.S \
-  $(SRCDIR)/sf_erf.c \
+  $(MSRCDIR)/sf_erf.c \
   $(SRCDIR)/signbit.c \
   $(SRCDIR)/signbitf.c \
   $(SRCDIR)/signbitl.c \
   $(SRCDIR)/sinf.S \
   $(SRCDIR)/sinhf.c \
-  $(SRCDIR)/sinhl.c \
+  $(MSRCDIR)/sinhl.c \
   $(SRCDIR)/sinl.S \
   $(SRCDIR)/sqrtf.c \
   $(SRCDIR)/sqrtl.c \
   $(SRCDIR)/tanf.S \
   $(SRCDIR)/tanhf.c \
-  $(SRCDIR)/tanhl.c \
+  $(MSRCDIR)/tanhl.c \
   $(SRCDIR)/tanl.S \
-  $(SRCDIR)/tgamma.c \
-  $(SRCDIR)/tgammaf.c \
-  $(SRCDIR)/tgammal.c \
+  $(MSRCDIR)/tgamma.c \
+  $(MSRCDIR)/tgammaf.c \
+  $(MSRCDIR)/tgammal.c \
   $(SRCDIR)/trunc.c \
   $(SRCDIR)/truncf.c \
   $(SRCDIR)/truncl.c
@@ -448,7 +514,8 @@ misc_SOURCES := \
   $(SRCDIR)/getopt.c \
   $(SRCDIR)/membarrier.c \
   $(SRCDIR)/mingw-aligned-malloc.c \
-  $(SRCDIR)/mingw-fseek.c
+  $(SRCDIR)/mingw-fseek.c \
+  $(SRCDIR)/glob.c
 
 SRCDIR := src/libcrt/posix/libgen
 posix_libgen_SOURCES := $(SRCDIR)/basename.c $(SRCDIR)/dirname.c
@@ -456,11 +523,11 @@ SRCDIR := src/libcrt/posix/unistd
 posix_unistd_SOURCES := $(SRCDIR)/ftruncate.c $(SRCDIR)/usleep.c
 posix_SOURCES := $(posix_libgen_SOURCES) $(posix_unistd_SOURCES)
 
-SRCDIR := src/libcrt/profile
+SRCDIR := misc/src/libcrt/profile
 profile_SOURCES := \
   $(SRCDIR)/gmon.c \
   $(SRCDIR)/mcount.c \
-  gpl/profile/profil.c \
+  misc/gpl/profile/profil.c \
 libgmon_a_SOURCES := $(profile_SOURCES)
 libgmon_a_OBJECTS := $(libgmon_a_SOURCES:.c=.o)
 
@@ -472,6 +539,7 @@ search_SOURCES := \
   $(SRCDIR)/twalk.c
 
 SRCDIR := src/libcrt/stdio
+MSRCDIR := misc/src/libcrt/stdio
 stdio_SOURCES := \
   $(SRCDIR)/btowc.c \
   $(SRCDIR)/fopen64.c \
@@ -479,7 +547,7 @@ stdio_SOURCES := \
   $(SRCDIR)/fseeko64.c \
   $(SRCDIR)/ftello64.c \
   $(SRCDIR)/lseek64.c \
-  $(SRCDIR)/pformat.c \
+  $(MSRCDIR)/pformat.c \
   $(SRCDIR)/printf.c \
   $(SRCDIR)/snprintf.c \
   $(SRCDIR)/snwprintf.c \
@@ -540,7 +608,7 @@ libmingwex_a_SOURCES := \
   $(ctype_SOURCES) \
   $(fenv_SOURCES) \
   $(gdtoa_SOURCES) \
-  $(inittypes_SOURCES) \
+  $(inttypes_SOURCES) \
   $(math_SOURCES) \
   $(misc_SOURCES) \
   $(posix_SOURCES) \
@@ -554,14 +622,38 @@ libmingwex_a_SOURCES := \
 libmingwex_a_OBJECTS := $(libmingwex_a_SOURCES:.c=.o)
 libmingwex_a_OBJECTS := $(libmingwex_a_OBJECTS:.S=.o)
 
+SRCDIR := src/libcrt/math
+libmingwex_a_OBJECTS := $(libmingwex_a_OBJECTS) $(SRCDIR)/asinhl.o
+libmingwex_a_OBJECTS := $(libmingwex_a_OBJECTS) $(SRCDIR)/asinhf.o
+
+SRCDIR := misc/src/libdinput
+libdinput_a_SOURCES := \
+  $(SRCDIR)/dinput_joy.c \
+  $(SRCDIR)/dinput_joy2.c \
+  $(SRCDIR)/dinput_kbd.c \
+  $(SRCDIR)/dinput_mouse.c \
+  $(SRCDIR)/dinput_mouse2.c
+libdinput_a_OBJECTS := $(libdinput_a_SOURCES:.c=.o)
+
+SRCDIR := misc/src/libdxerr8
+libdxerr8_a_SOURCES := $(SRCDIR)/dxerr.c $(SRCDIR)/dxerr8.c $(SRCDIR)/dxerr8w.c
+libdxerr8_a_OBJECTS := $(libdxerr8_a_SOURCES:.c=.o)
+
+SRCDIR := misc/src/libdxerr9
+libdxerr9_a_SOURCES := $(SRCDIR)/dxerr.c $(SRCDIR)/dxerr9.c $(SRCDIR)/dxerr9w.c
+libdxerr9_a_OBJECTS := $(libdxerr9_a_SOURCES:.c=.o)
+
 ALL_SOURCES := \
   $(libmingw32_a_SOURCES) \
   $(libmingwthrd_a_SOURCES) \
   $(libgmon_a_SOURCES) \
   $(libmingwex_a_SOURCES) \
-  $(mingwm10_dll_SOURCES)
+  $(mingwm10_dll_SOURCES) \
+  $(libdinput_a_SOURCES) \
+  $(libdxerr8_a_SOURCES) \
+  $(libdxerr9_a_SOURCES)
 
-all: $(msvcrt_DEF) $(moldname_DEF) $(lib_LIBRARIES) $(bin_LIBRARIES) $(lib_OBJECTS)
+all: $(extra_OBJECTS) $(msvcrt_DEF) $(moldname_DEF) $(lib_LIBRARIES) $(bin_LIBRARIES) $(lib_OBJECTS)
 
 $(msvcrt_DEF): lib/lib32/msvcrt.def.in
        N=`echo $@ | sed -e 's|\([a-z]*\)\([0-9]*\).*|\1|'`; \
@@ -573,10 +665,9 @@ $(msvcrt_DEF): lib/lib32/msvcrt.def.in
        $(CC) -DRUNTIME=$(basename $(notdir $@)) \
                -D__FILENAME__=$@ \
                -D__$(basename $(notdir $@))__=1 \
-               -D__MSVCRT__ -C -E -P -xc-header \
+               -C -E -P -xc-header \
                $? > $@
 
-
 $(moldname_DEF): lib/lib32/moldname.def.in
        N=`echo $@ | sed -e 's|\([a-z]*\)\([0-9]*\).*|\1|'`; \
        test "$$N" == "msvcr" && N="msvcrt"; \
@@ -588,14 +679,13 @@ $(moldname_DEF): lib/lib32/moldname.def.in
        $(CC) -DRUNTIME=$(basename $(notdir $@)) \
                -D__FILENAME__=$$F \
                -D__$(basename $(notdir $@))__=1 \
-               -D__MSVCRT__ -C -E -P -xc-header \
+               -C -E -P -xc-header \
                $? > $@
 
 SRCDIR := lib/lib32
 $(notdir $(winapi_lib_LIBRARIES)): $(addprefix lib/lib32/,$(winapi_DEF))
-       @echo Making library $@ from $<.
-       DLLNAME=$(notdir $(<:.def=.dll))
-       $(DLLTOOL) $(DLLTOOL_FLAGS) $${DLLNAME} --def $< --output-lib $@
+       @echo Making library $@ from $(subst lib,,$(@:.a=.def)).
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/,$(subst lib,,$(@:.a=.def))) --output-lib $@
        $(RANLIB) $@
 
 $(notdir $(winapi_mri_LIBRARIES)): $(addprefix lib/lib32/,$(winapi_MRI))
@@ -603,26 +693,76 @@ $(notdir $(winapi_mri_LIBRARIES)): $(addprefix lib/lib32/,$(winapi_MRI))
        $(AR) -M < $<
        $(RANLIB) $@
 
+SRCDIR := lib/lib32/ddk
+$(notdir $(winapi_lib_DDK_LIBRARIES)): $(addprefix lib/lib32/ddk/,$(winapi_DDK_DEF))
+       @echo Making library $@ from $(subst lib,,$(@:.a=.def)).
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/ddk/,$(subst lib,,$(@:.a=.def))) --output-lib $@
+       $(RANLIB) $@
+
+SRCDIR := lib/lib32/directx
+$(notdir $(winapi_lib_DIRECTX_LIBRARIES)): $(addprefix lib/lib32/directx/,$(winapi_DIRECTX_DEF))
+       @echo Making library $@ from $(subst lib,,$(@:.a=.def)).
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/directx/,$(subst lib,,$(@:.a=.def))) --output-lib $@
+       $(RANLIB) $@
+
+libmoldname.a: moldname.def
+       @echo Making library $@ from $?.
+       DLLNAME="msvcrt.dll"; \
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $${DLLNAME} -U --def $< --output-lib $@
+       $(RANLIB) $@
+
+libmoldname%.a: moldname%.def
+       @echo Making library $@ from $?.
+       V=`echo $@ | sed -e 's|lib\([a-z]*\)\([0-9]*\).*|\2|'`; \
+       DLLNAME="msvcr$${V}.dll"; \
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $${DLLNAME} -U --def $< --output-lib $@
+       $(RANLIB) $@
+
 lib%.a: %.def
        @echo Making library $@ from $?.
        N=`echo $@ | sed -e 's|lib\([a-z]*\)\([0-9]*\).*|\1|'`; \
        V=`echo $@ | sed -e 's|lib\([a-z]*\)\([0-9]*\).*|\2|'`; \
        DLLNAME="$${N}$${V}.dll"; \
-       $(DLLTOOL) $(DLLTOOL_FLAGS) $${DLLNAME} --def $< --output-lib $@
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $${DLLNAME} --def $< --output-lib $@ ; \
+       if [[ $${DLLNAME} = msvcrt.dll || \
+             $${DLLNAME} = msvcrtd.dll || \
+             $${DLLNAME} = msvcr70.dll || \
+             $${DLLNAME} = msvcr70d.dll || \
+             $${DLLNAME} = msvcr71.dll || \
+             $${DLLNAME} = msvcr71d.dll ]]; then \
+         $(AR) rc $@ src/libcrt/crt/ofmt_stub.o; \
+       fi
+       $(RANLIB) $@
+
+lib%.a: src/lib%/%.o
+       @echo Making library $@ from $?.
+       $(AR) rc $@ $*.o
        $(RANLIB) $@
 
 %.o : %.c
        $(MKDIR_P) $(@D)
        $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
 
-SRCDIR := src/libcrt/crt
-$(SRCDIR)/crt1.o $(SRCDIR)/dllcrt1.o:
+%.o : %.s
        $(MKDIR_P) $(@D)
-       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -U__MSVCRT__ -D__CRTDLL__ -o $@ $<
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
+
+SRCDIR := src/libcrt/math
+$(SRCDIR)/%f.o: $(SRCDIR)/%.c
+       $(MKDIR_P) $(@D)
+       $(CC) -c -D FUNCTION=$(@F:.o=) $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
 
+$(SRCDIR)/%l.o: $(SRCDIR)/%.c
+       $(MKDIR_P) $(@D)
+       $(CC) -c -D FUNCTION=$(@F:.o=) $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
+
+SRCDIR := src/libcrt/crt
 $(SRCDIR)/crt2.o $(SRCDIR)/dllcrt2.o:
        $(MKDIR_P) $(@D)
-       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -D__MSVCRT__ -U__CRTDLL__ -o $@ $<
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
+
+$(SRCDIR)/crt2.o: $(SRCDIR)/crt1.c
+$(SRCDIR)/dllcrt2.o: $(SRCDIR)/dllcrt1.c
 
 SRCDIR := src/libscrnsave
 $(libscrnsave_a_OBJECTS): $(libscrnsave_a_SOURCES)
@@ -633,21 +773,17 @@ $(libscrnsavw_a_OBJECTS): $(libscrnsavw_a_SOURCES)
        $(MKDIR_P) $(@D)
        $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(scrnsavw_o_CFLAGS) -o $@ $<
 
-$(SRCDIR)/crt1.o: $(SRCDIR)/crt1.c
-$(SRCDIR)/dllcrt1.o: $(SRCDIR)/dllcrt1.c
-$(SRCDIR)/crt2.o: $(SRCDIR)/crt1.c
-$(SRCDIR)/dllcrt2.o: $(SRCDIR)/dllcrt1.c
-
-SRCDIR := gpl/profile
-$(SRCDIR)/gcrt1.o:
-       mkdir -p $(@D)
-       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -U__MSVCRT__ -D__CRTDLL__ -o $@ $<
+SRCDIR := src/libshell32
+$(libshell32_a_OBJECTS): $(libshell32_a_SOURCES)
+       $(MKDIR_P) $(@D)
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(shell32_o_CFLAGS) -o $@ $<
 
+SRCDIR := misc/gpl/profile
 $(SRCDIR)/gcrt2.o:
        mkdir -p $(@D)
-       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -D__MSVCRT__ -U__CRTDLL__ -o $@ $<
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
 
-$(SRCDIR)/gcrt1.o $(SRCDIR)/gcrt2.o: $(SRCDIR)/gcrt0.c
+$(SRCDIR)/gcrt2.o: $(SRCDIR)/gcrt0.c
 
 libmingw32.a: $(libmingw32_a_OBJECTS)
        $(AR) rc $@ $(libmingw32_a_OBJECTS)
@@ -687,6 +823,55 @@ liblargeint.a: $(liblargeint_a_OBJECTS)
        $(AR) rc $@ $(liblargeint_a_OBJECTS)
        $(RANLIB) $@
 
+libdinput.a libdinput8.a: $(libdinput_a_OBJECTS)
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/directx/,$(subst lib,,$(@:.a=.def))) --output-lib $@
+       $(AR) rc $@ $(libdinput_a_OBJECTS)
+       $(RANLIB) $@
+
+$(libdinput_a_OBJECTS) : $(libdinput_a_SOURCES)
+$(libdmoguids_a_OBJECTS) : $(libdmoguids_a_SOURCES)
+$(libdxguid_a_OBJECTS) : $(libdxguid_a_SOURCES)
+$(libstrmiids_a_OBJECTS) : $(libstrmiids_a_SOURCES)
+$(libws2_32_a_OBJECTS) : $(libws2_32_a_SOURCES)
+       $(MKDIR_P) $(@D)
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $<
+
+libdxerr8.a: $(libdxerr8_a_OBJECTS)
+       $(AR) rc $@ $(libdxerr8_a_OBJECTS)
+       $(RANLIB) $@
+
+libdxerr9.a: $(libdxerr9_a_OBJECTS)
+       $(AR) rc $@ $(libdxerr9_a_OBJECTS)
+       $(RANLIB) $@
+
+libdmoguids.a: $(libdmoguids_a_OBJECTS)
+       $(AR) rc $@ $(libdmoguids_a_OBJECTS)
+       $(RANLIB) $@
+
+libdxguid.a: $(libdxguid_a_OBJECTS)
+       $(AR) rc $@ $(libdxguid_a_OBJECTS)
+       $(RANLIB) $@
+
+libstrmiids.a: $(libstrmiids_a_OBJECTS)
+       $(AR) rc $@ $(libstrmiids_a_OBJECTS)
+       $(RANLIB) $@
+
+# Note this target will override the previous global rules and give a warning
+# from the make process. It is needed due to the extra ws2_32.o object file.
+libws2_32.a: lib/lib32/ws2_32.def $(libws2_32_a_OBJECTS)
+       @echo Making library $@ from $(subst lib,,$(@:.a=.def)).
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/,$(subst lib,,$(@:.a=.def))) --output-lib $@
+       $(AR) rc $@ $(libws2_32_a_OBJECTS)
+       $(RANLIB) $@
+
+# Note this target will override the previous global rules and give a warning
+# from the make process. It is needed due to the extra shell32.o object file.
+libshell32.a: lib/lib32/shell32.def $(libshell32_a_OBJECTS)
+       @echo Making library $@ from $(subst lib,,$(@:.a=.def)).
+       $(DLLTOOL) $(DLLTOOL_FLAGS) $(subst lib,,$(@:.a=.dll)) --def $(addprefix $(top_srcdir)/lib/lib32/,$(subst lib,,$(@:.a=.def))) --output-lib $@
+       $(AR) rc $@ $(libshell32_a_OBJECTS)
+       $(RANLIB) $@
+
 _libm_dummy.c:
        @echo "static int __mingw_libm_dummy;" > _libm_dummy.c
 
@@ -699,18 +884,18 @@ mingwthrd.def: $(mingwm10_dll_OBJECTS)
 
 mingwm10.dll: $(mingwm10_dll_OBJECTS) mingwthrd.def libmingwex.a
        $(CC) $(mingwm10_dll_FLAGS) $(mingwm10_dll_OBJECTS) mingwthrd.def \
-         -o mingwm10.dll
+         -o mingwm10.dll -L .
 
 clean:
-       rm -f *.def *.s *.a _libm_dummy.c stamp*
-       rm -rf .deps/
-       find . -type f -name \*.o -delete
-       find . -type f -name \*.dll -delete
-       test ! -f "Makefile.in" && find . -type d -delete
+       rm -f *.def *.s *.o *.dll *.a _libm_dummy.c stamp*
+       rm -rf .deps/ src/ misc/
+       cd tests && $(MAKE) $@
 
 distclean: clean
        rm -f config.log config.status config.cache config.h
        rm -f core a.out *~ Makefile
+       rm -rf dist/
+       cd tests && $(MAKE) $@
 
 need-DESTDIR-compatibility := prefix bindir includedir libdir mandir
 
@@ -726,6 +911,9 @@ fail-DESTDIR-compatibility:
        try 'make install $(REJECT)=$(shell echo '$($(REJECT))' | \
        sed s,:,:$(DESTDIR),) ...' instead)
 
+check:
+       cd tests && $(MAKE) $@
+
 install-dirs: $(need-DESTDIR-compatibility)
        $(mkinstalldirs) $(DESTDIR)$(bindir)
        $(mkinstalldirs) $(DESTDIR)$(libdir)
@@ -742,34 +930,34 @@ install-dirs: $(need-DESTDIR-compatibility)
 
 install-libs: all
        for LIB in $(lib_LIBRARIES); do \
-         $(INSTALL) $(INSTALL_FLAGS) $$LIB $(DESTDIR)$(libdir)/$$LIB ; \
+         $(INSTALL_DATA) $$LIB $(DESTDIR)$(libdir)/$$LIB ; \
        done
 
 install-objs: all
        for OBJ in $(lib_OBJECTS); do \
-         $(INSTALL) $(INSTALL_FLAGS) $$OBJ $(DESTDIR)$(libdir) ; \
+         $(INSTALL_DATA) $$OBJ $(DESTDIR)$(libdir) ; \
        done
 
 install-docs:
        for DOC in $(doc_DOCUMENTS); do \
-         $(INSTALL) $(INSTALL_FLAGS) $(top_srcdir)/$$DOC $(DESTDIR)$(docdir)/$$DOC ; \
+         $(INSTALL_DATA) $(top_srcdir)/$$DOC $(DESTDIR)$(docdir)/$$DOC ; \
        done
-       cp -a $(top_srcdir)/doc/historical $(DESTDIR)$(docdir) ;
+       cp -af $(top_srcdir)/doc/historical $(DESTDIR)$(docdir) ;
 
 install-includes:
        for INC in $(top_srcdir)/include/*.h; do \
-         $(INSTALL) $(INSTALL_FLAGS) $$INC $(DESTDIR)$(includedir) ; \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir) ; \
        done
        for I in `find $(top_srcdir)/include/* -type d`; do \
          J=`basename $$I`; \
          for INC in $$I/*.h; do \
-           $(INSTALL) $(INSTALL_FLAGS) $$INC $(DESTDIR)$(includedir)/$$J ; \
+           $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/$$J ; \
          done \
        done
 
 install-bins: all
        for BIN in $(bin_LIBRARIES); do \
-         $(INSTALL) $(INSTALL_FLAGS) $$BIN $(DESTDIR)$(bindir)/$$BIN ; \
+         $(INSTALL_DATA) $$BIN $(DESTDIR)$(bindir)/$$BIN ; \
        done
 
 install: all \
@@ -780,3 +968,469 @@ install: all \
   install-includes \
   install-bins
 
+install-mingwrt-dirs: $(need-DESTDIR-compatibility)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       $(mkinstalldirs) $(DESTDIR)$(mingwrtdocdir)
+       $(mkinstalldirs) $(DESTDIR)$(mingwrtdocdir)/historical
+       rmdir $(DESTDIR)$(mingwrtdocdir)/../mingw-org-wsl
+       $(mkinstalldirs) $(DESTDIR)$(includedir)
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/sys
+
+mingwrt_bin_LIBRARIES := mingwm10.dll
+mingwrt_lib_INCLUDES := \
+  _mingw.h   dirent.h  glob.h      getopt.h    math.h    setjmp.h  strings.h \
+  assert.h   dos.h     inttypes.h  mbctype.h   share.h   wchar.h   varargs.h \
+  complex.h  errno.h   io.h        mbstring.h  signal.h  tchar.h   wctype.h \
+  conio.h    excpt.h   libgen.h    mem.h       stdint.h  time.h \
+  ctype.h    fcntl.h   limits.h    memory.h    stdio.h   unistd.h \
+  dir.h      fenv.h    locale.h    process.h   stdlib.h  utime.h \
+  direct.h   float.h   malloc.h    search.h    string.h  values.h
+
+mingwrt_lib_SYS_INCLUDES := \
+  fcntl.h  locking.h  stat.h  timeb.h  unistd.h \
+  file.h   param.h    time.h  types.h  utime.h
+
+
+install-mingwrt: install-mingwrt-dirs
+       for BIN in $(mingwrt_bin_LIBRARIES); do \
+         $(INSTALL_DATA) $$BIN $(DESTDIR)$(bindir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/,$(mingwrt_lib_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/sys/,$(mingwrt_lib_SYS_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/sys/ ; \
+       done
+       for LIB in $(mingwrt_lib_LIBRARIES); do \
+         $(INSTALL_DATA) $$LIB $(DESTDIR)$(libdir)/ ; \
+       done
+       for OBJ in $(mingwrt_lib_OBJECTS); do \
+         $(INSTALL_DATA) $$OBJ $(DESTDIR)$(libdir)/ ; \
+       done
+       cp -af $(top_srcdir)/doc/historical/mingw/* $(DESTDIR)$(mingwrtdocdir)/historical/ ;
+
+dist: all dist-mingwrt dist-w32api dist-wsl
+
+dist-mingwrt:
+       $(MAKE) prefix=./dist/mingwrt/installed _dist-mingwrt-all_
+
+_dist-mingwrt-all_: all dist-mingwrt-dll dist-mingwrt-dev dist-mingwrt-lic dist-mingwrt-doc dist-mingwrt-src
+
+dist-mingwrt-mkdir:
+       $(MKDIR_P) ./dist/mingwrt/packages
+
+dist-mingwrt-install: all
+       $(MAKE) prefix=./dist/mingwrt/installed install-mingwrt
+
+dist-mingwrt-dll: dist-mingwrt-mkdir dist-mingwrt-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-dll.tar.lzma bin/*.dll
+else
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-dll.tar.lzma bin/*.dll
+endif
+
+dist-mingwrt-dev: dist-mingwrt-mkdir dist-mingwrt-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-dev.tar.lzma include/ lib/
+else
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-dev.tar.lzma include/ lib/
+endif
+
+$(DESTDIR)$(mingwrtdocdir)/LICENSE: dist-mingwrt-mkdir dist-mingwrt-install
+       cp $(top_srcdir)/LICENSE $(DESTDIR)$(mingwrtdocdir)
+
+dist-mingwrt-lic: $(DESTDIR)$(mingwrtdocdir)/LICENSE
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-lic.tar.lzma share/doc/mingwrt/LICENSE
+else
+       cd ./dist/mingwrt/installed ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-lic.tar.lzma share/doc/mingwrt/LICENSE
+endif
+
+dist-mingwrt-doc: dist-mingwrt-install
+ifeq ($(RELEASE_STATUS),prod)
+       for DOC in $(doc_DOCUMENTS); do \
+         $(INSTALL) $(INSTALL_FLAGS) $(top_srcdir)/$$DOC $(DESTDIR)$(mingwrtdocdir)/$$DOC ; \
+       done
+       cd ./dist/mingwrt/installed ; \
+       rm -f share/doc/mingwrt/LICENSE ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-doc.tar.lzma share/doc/mingwrt
+else
+       for DOC in $(doc_DOCUMENTS); do \
+         $(INSTALL) $(INSTALL_FLAGS) $(top_srcdir)/$$DOC $(DESTDIR)$(mingwrtdocdir)/$$DOC ; \
+       done
+       cd ./dist/mingwrt/installed ; \
+       rm -f share/doc/mingwrt/LICENSE ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-doc.tar.lzma share/doc/mingwrt
+endif
+
+dist-mingwrt-src:
+ifeq ($(RELEASE_STATUS),prod)
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       mv mingw.org-wsl mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src.tar.lzma mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src
+else
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       mv mingw.org-wsl mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       tar acf ../packages/mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src.tar.lzma mingwrt-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src
+endif
+
+install-w32api-dirs: $(need-DESTDIR-compatibility)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       $(mkinstalldirs) $(DESTDIR)$(w32apidocdir)
+       $(mkinstalldirs) $(DESTDIR)$(w32apidocdir)/historical
+       rmdir $(DESTDIR)$(w32apidocdir)/../mingw-org-wsl
+       $(mkinstalldirs) $(DESTDIR)$(includedir)
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/ddk
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/gdiplus
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/GL
+
+w32api_lib_INCLUDES := \
+  accctrl.h aclapi.h aclui.h adsprop.h afxres.h audevcod.h aviriff.h \
+  aygshell.h basetsd.h basetyps.h bdatypes.h cderr.h cguid.h cmnquery.h \
+  comcat.h commctrl.h commdlg.h control.h cpl.h cplext.h custcntl.h \
+  dbt.h dde.h ddeml.h devguid.h dhcpcsdk.h dlgs.h \
+  docobj.h dsadmin.h dsclient.h dsgetdc.h dshow.h dsquery.h dsrole.h \
+  dvdevcod.h dvdmedia.h edevdefs.h errorrep.h errors.h \
+  evcode.h exdisp.h exdispid.h fltdefs.h gdiplus.h httpext.h icm.h idispids.h \
+  il21dec.h imagehlp.h imm.h initguid.h intshcut.h ipexport.h iphlpapi.h \
+  ipifcons.h ipinfoid.h iprtrmib.h iptypes.h ipxconst.h ipxrtdef.h ipxtfflt.h \
+  isguids.h ks.h ksmedia.h largeint.h lm.h lmaccess.h lmalert.h lmapibuf.h \
+  lmat.h lmaudit.h lmbrowsr.h lmchdev.h lmconfig.h lmcons.h lmerr.h lmerrlog.h \
+  lmmsg.h lmremutl.h lmrepl.h lmserver.h lmshare.h lmsname.h lmstats.h lmsvc.h \
+  lmuse.h lmuseflg.h lmwksta.h lzexpand.h mapi.h mciavi.h mcx.h mgm.h \
+  mgmtapi.h mlang.h mmreg.h mmsystem.h mpegtype.h mprapi.h mq.h msacm.h \
+  mshtml.h mswsock.h nb30.h nddeapi.h nspapi.h ntdef.h ntdll.h ntdsapi.h \
+  ntdsbcli.h ntldap.h ntsecapi.h ntsecpkg.h oaidl.h objbase.h objfwd.h \
+  objidl.h objsafe.h objsel.h ocidl.h odbcinst.h ole.h ole2.h ole2ver.h \
+  oleacc.h oleauto.h olectl.h olectlid.h oledlg.h oleidl.h pbt.h poppack.h \
+  powrprof.h prsht.h psapi.h pshpack1.h pshpack2.h pshpack4.h pshpack8.h \
+  qedit.h rapi.h ras.h rasdlg.h raserror.h rassapi.h reason.h regstr.h \
+  richedit.h richole.h routprot.h rpc.h rpcdce.h rpcdce2.h rpcdcep.h rpcndr.h \
+  rpcnsi.h rpcnsip.h rpcnterr.h rpcproxy.h rtutils.h schannel.h schnlsp.h \
+  scrnsave.h sddl.h sdkddkver.h secext.h security.h servprov.h setupapi.h \
+  shellapi.h shldisp.h shlguid.h shlobj.h shlwapi.h shobjidl.h snmp.h \
+  specstrings.h sql.h sqlext.h sqltypes.h sqlucode.h sspi.h stm.h strmif.h \
+  subauth.h svcguid.h tlhelp32.h tmschema.h unknwn.h userenv.h usp10.h \
+  uxtheme.h vfw.h vidcap.h vmr9.h vptype.h w32api.h winable.h winbase.h \
+  winber.h wincon.h wincrypt.h windef.h windns.h windows.h windowsx.h \
+  winerror.h wingdi.h wininet.h winioctl.h winldap.h winnetwk.h winnls.h \
+  winnt.h winperf.h winreg.h winresrc.h winsnmp.h winsock.h winsock2.h \
+  winspool.h winsvc.h winuser.h winver.h ws2spi.h ws2tcpip.h wsahelp.h wsipx.h \
+  wsnetbs.h wtsapi32.h wtypes.h xprtdefs.h zmouse.h
+
+w32api_lib_DDK_INCLUDES := \
+  atm.h batclass.h cfg.h cfgmgr32.h d4drvif.h d4iface.h ddkmapi.h hidclass.h \
+  hidpi.h hidsdi.h hidusage.h kbdmou.h mcd.h miniport.h minitape.h mountdev.h \
+  mountmgr.h ndis.h ndisguid.h ndistapi.h ndiswan.h netevent.h netpnp.h \
+  newdev.h ntapi.h ntdd8042.h ntddbeep.h ntddcdrm.h ntddcdvd.h ntddchgr.h \
+  ntdddisk.h ntddk.h ntddkbd.h ntddmou.h ntddndis.h ntddpar.h ntddpcm.h \
+  ntddscsi.h ntddser.h ntddstor.h ntddtape.h ntddtdi.h ntddvdeo.h ntddvol.h \
+  ntifs.h ntpoapi.h ntstatus.h parallel.h pfhook.h poclass.h scsi.h scsiscan.h \
+  scsiwmi.h smbus.h srb.h storport.h tdi.h tdiinfo.h tdikrnl.h tdistat.h \
+  tvout.h upssvc.h usb.h usb100.h usbcamdi.h usbdi.h usbioctl.h usbiodef.h \
+  usbscan.h usbuser.h video.h videoagp.h win2k.h winddi.h winddk.h winnt4.h \
+  winxp.h ws2san.h xfilter.h
+
+w32api_lib_GDIPLUS_INCLUDES := \
+  gdiplus.h gdiplusbase.h gdiplusbrush.h gdipluscolor.h gdipluscolormatrix.h \
+  gdipluseffects.h gdiplusenums.h gdiplusflat.h gdiplusgpstubs.h \
+  gdiplusgraphics.h gdiplusheaders.h gdiplusimageattributes.h \
+  gdiplusimagecodec.h gdiplusimaging.h gdiplusimpl.h gdiplusinit.h \
+  gdipluslinecaps.h gdiplusmatrix.h gdiplusmem.h gdiplusmetafile.h \
+  gdiplusmetaheader.h gdipluspath.h gdipluspen.h gdipluspixelformats.h \
+  gdiplusstringformat.h gdiplustypes.h
+
+w32api_lib_GL_INCLUDES := gl.h glext.h glu.h
+
+w32api_lib_DIRECTX_INCLUDES := d3d9.h d3d9caps.h d3d9types.h dxerr8.h dxerr9.h
+
+w32api_lib_LIBRARIES := \
+  libaclui.a libadvapi32.a libapcups.a libavicap32.a libavifil32.a \
+  libbthprops.a libcap.a libcfgmgr32.a libcomctl32.a libcomdlg32.a \
+  libcrypt32.a libctl3d32.a libd3d8.a libd3d9.a libd3dim.a libd3drm.a \
+  libd3dx8d.a libd3dx9d.a libd3dxof.a libddraw.a libdhcpcsvc.a libdinput.a \
+  libdinput8.a libdlcapi.a libdmoguids.a libdnsapi.a libdplayx.a libdpnaddr.a \
+  libdpnet.a libdpnlobby.a libdpvoice.a libdsetup.a libdsound.a libdxapi.a \
+  libdxerr8.a libdxerr9.a libdxguid.a libfaultrep.a libgdi32.a libgdiplus.a \
+  libglaux.a libglu32.a libhal.a libhid.a libhidparse.a libicmui.a \
+  libigmpagnt.a libimagehlp.a libimm32.a libiphlpapi.a libkernel32.a \
+  libksproxy.a libksuser.a liblargeint.a liblz32.a libmapi32.a libmcd.a \
+  libmfcuia32.a libmgmtapi.a libmpr.a libmprapi.a libmqrt.a libmsacm32.a \
+  libmscms.a libmsdmo.a libmsimg32.a libmsvcp60.a libmsvfw32.a libmswsock.a \
+  libnddeapi.a libndis.a libnetapi32.a libnewdev.a libntdll.a libntoskrnl.a \
+  libodbc32.a libodbccp32.a libole32.a liboleacc.a liboleaut32.a libolecli32.a \
+  liboledlg.a libolepro32.a libolesvr32.a libopengl32.a libpenwin32.a \
+  libpkpd32.a libpowrprof.a libpsapi.a libquartz.a librapi.a librasapi32.a \
+  librasdlg.a librpcdce4.a librpcns4.a librpcrt4.a librtm.a librtutils.a \
+  libscrnsave.a libscrnsavw.a libscsiport.a libsecur32.a libsetupapi.a \
+  libshell32.a libshfolder.a libshlwapi.a libsnmpapi.a libstrmiids.a \
+  libsvrapi.a libtapi32.a libtdi.a libthunk32.a liburl.a libusbcamd.a \
+  libusbcamd2.a libuser32.a libuserenv.a libusp10.a libuuid.a libuxtheme.a \
+  libvdmdbg.a libversion.a libvfw32.a libvideoprt.a libwin32k.a libwin32spl.a \
+  libwininet.a libwinmm.a libwinspool.a libwinstrm.a libwldap32.a libwow32.a \
+  libws2_32.a libwsnmp32.a libwsock32.a libwst.a libwtsapi32.a
+
+install-w32api: install-w32api-dirs
+       for INC in $(addprefix $(top_srcdir)/include/,$(w32api_lib_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/ddk/,$(w32api_lib_DDK_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ddk/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/gdiplus/,$(w32api_lib_GDIPLUS_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/gdiplus/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/misc/include/GL/,$(w32api_lib_GL_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/GL/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/directx/,$(w32api_lib_DIRECTX_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir) ; \
+       done
+       for LIB in $(w32api_lib_LIBRARIES); do \
+         $(INSTALL_DATA) $$LIB $(DESTDIR)$(libdir)/ ; \
+       done
+       cp -af $(top_srcdir)/doc/historical/w32api/* $(DESTDIR)$(w32apidocdir)/historical/ ;
+
+dist-w32api:
+       $(MAKE) prefix=./dist/w32api/installed _dist-w32api-all_
+
+_dist-w32api-all_: all dist-w32api-dev dist-w32api-lic dist-w32api-doc dist-w32api-src
+
+dist-w32api-mkdir:
+       $(MKDIR_P) ./dist/w32api/packages
+
+dist-w32api-install: all dist-w32api-mkdir
+       $(MAKE) prefix=./dist/w32api/installed install-w32api
+
+dist-w32api-dev: dist-w32api-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/w32api/installed ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-dev.tar.lzma include/ lib/
+else
+       cd ./dist/w32api/installed ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-dev.tar.lzma include/ lib/
+endif
+
+$(DESTDIR)$(w32apidocdir)/LICENSE: dist-w32api-mkdir dist-w32api-install
+       cp $(top_srcdir)/LICENSE $(DESTDIR)$(w32apidocdir)
+
+dist-w32api-lic: $(DESTDIR)$(w32apidocdir)/LICENSE
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/w32api/installed ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-lic.tar.lzma share/doc/w32api/LICENSE
+else
+       cd ./dist/w32api/installed ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-lic.tar.lzma share/doc/w32api/LICENSE
+endif
+
+dist-w32api-doc: dist-w32api-install
+ifeq ($(RELEASE_STATUS),prod)
+       for DOC in $(doc_DOCUMENTS); do \
+         $(INSTALL) $(INSTALL_FLAGS) $(top_srcdir)/$$DOC $(DESTDIR)$(w32apidocdir)/$$DOC ; \
+       done
+       cd ./dist/w32api/installed ; \
+       rm -f share/doc/w32api/LICENSE ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-doc.tar.lzma share/doc/w32api
+else
+       for DOC in $(doc_DOCUMENTS); do \
+         $(INSTALL) $(INSTALL_FLAGS) $(top_srcdir)/$$DOC $(DESTDIR)$(w32apidocdir)/$$DOC ; \
+       done
+       cd ./dist/w32api/installed ; \
+       rm -f share/doc/w32api/LICENSE ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-doc.tar.lzma share/doc/w32api
+endif
+
+dist-w32api-src:
+ifeq ($(RELEASE_STATUS),prod)
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       mv mingw.org-wsl w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src.tar.lzma w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src
+else
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       mv mingw.org-wsl w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       tar acf ../packages/w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src.tar.lzma w32api-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src
+endif
+
+install-wsl-dirs: $(need-DESTDIR-compatibility)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       $(mkinstalldirs) $(DESTDIR)$(docdir)
+       $(mkinstalldirs) $(DESTDIR)$(docdir)/historical
+       $(mkinstalldirs) $(DESTDIR)$(includedir)
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/sys
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/ddk
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/gdiplus
+       $(mkinstalldirs) $(DESTDIR)$(includedir)/GL
+
+install-wsl: install-wsl-dirs
+       for BIN in $(mingwrt_bin_LIBRARIES); do \
+         $(INSTALL_DATA) $$BIN $(DESTDIR)$(bindir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/,$(mingwrt_lib_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/sys/,$(mingwrt_lib_SYS_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/sys/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/,$(w32api_lib_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/ddk/,$(w32api_lib_DDK_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/ddk/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/gdiplus/,$(w32api_lib_GDIPLUS_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/gdiplus/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/misc/include/GL/,$(w32api_lib_GL_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir)/GL/ ; \
+       done
+       for INC in $(addprefix $(top_srcdir)/include/directx/,$(w32api_lib_DIRECTX_INCLUDES)); do \
+         $(INSTALL_DATA) $$INC $(DESTDIR)$(includedir) ; \
+       done
+       for LIB in $(mingwrt_lib_LIBRARIES) $(w32api_lib_LIBRARIES); do \
+         $(INSTALL_DATA) $$LIB $(DESTDIR)$(libdir)/ ; \
+       done
+       for OBJ in $(mingwrt_lib_OBJECTS); do \
+         $(INSTALL_DATA) $$OBJ $(DESTDIR)$(libdir)/ ; \
+       done
+       cp -af $(top_srcdir)/LICENSE $(DESTDIR)$(docdir)
+       cp -af $(top_srcdir)/README $(DESTDIR)$(docdir)
+       cp -af $(top_srcdir)/doc/historical/* $(DESTDIR)$(docdir)/historical
+
+dist-wsl:
+       $(MAKE) prefix=./dist/wsl/installed _dist-wsl-all_
+
+_dist-wsl-all_: all dist-wsl-dll dist-wsl-dev dist-wsl-doc dist-wsl-lic dist-wsl-src
+
+dist-wsl-mkdir:
+       $(MKDIR_P) ./dist/wsl/packages
+
+dist-wsl-install: all dist-wsl-mkdir
+       $(MAKE) prefix=./dist/wsl/installed install-wsl
+
+dist-wsl-dll: dist-wsl-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-dll.tar.lzma bin/*.dll ;
+else
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-dll.tar.lzma bin/*.dll ;
+endif
+
+dist-wsl-dev: dist-wsl-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-dev.tar.lzma include/ lib/
+else
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-dev.tar.lzma include/ lib/
+endif
+
+dist-wsl-lic: dist-wsl-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-lic.tar.lzma share/doc/mingw.org-wsl/LICENSE
+else
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-lic.tar.lzma share/doc/mingw.org-wsl/LICENSE
+endif
+
+dist-wsl-doc: dist-wsl-install
+ifeq ($(RELEASE_STATUS),prod)
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-doc.tar.lzma share/doc/mingw.org-wsl/README
+else
+       cd ./dist/wsl/installed ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-doc.tar.lzma share/doc/mingw.org-wsl/README
+endif
+
+dist-wsl-src: dist-wsl-install
+ifeq ($(RELEASE_STATUS),prod)
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       mv mingw.org-wsl mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src ; \
+       tar acf ../packages/mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src.tar.lzma mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-src
+else
+       cp -af $(top_srcdir) $(DESTDIR)$(prefix)/mingw.org-wsl
+       cd $(DESTDIR)$(prefix)/mingw.org-wsl ; \
+       rm -rf .git autom4te.cache ; \
+       rm -f config.log config.status config.cache config.h ; \
+       rm -f .gitignore core a.out Makefile ; \
+       find . -type f -name \*~ -delete ; \
+       find . -type f -name \*.log -delete ; \
+       find . -type f -name \*.bak -delete ; \
+       find . -type f -name .\*.swp -delete ; \
+       cd .. ; \
+       rm -rf $(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       mv mingw.org-wsl $(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src ; \
+       tar acf ../packages/$(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src.tar.lzma $(RELEASE_STATUS)_mingw.org-wsl-$(PACKAGE_VERSION)-$(PACKAGE_RELEASE)-mingw32-$(RELEASE_STATUS)-$(RELEASE_REFERENCE)-src
+endif
+
+clean-dist: clean-dist-mingwrt clean-dist-w32api clean-dist-wsl
+       rm -rf dist/
+
+clean-dist-mingwrt:
+       rm -rf dist/mingwrt/
+
+clean-dist-w32api:
+       rm -rf dist/w32api/
+
+clean-dist-wsl:
+       rm -rf dist/wsl/