On Aug 7 08:40, NightStrike wrote:
> On Tue, Aug 7, 2012 at 5:48 AM, Corinna Vinschen <[email protected]> wrote:
> > +AC_MSG_CHECKING([whether to build a w32api package for Cygwin])
> > +AC_ARG_ENABLE([cygwin],
> > + [AS_HELP_STRING([--enable-cygwin],
> > + [Enable building a w32api package for Cygwin (implies
> > --disable-crt)])],
>
> Change to:
> Enable building a w32api package for Cygwin (shorthand for
> --includedir=PREFIX/include/w32api --disable-startup)
Here's a new patch according to the discussion on IRC. I also moved the
lib build statements depending on W32API to the end of the lists.
mingw-w64-headers:
* configure.ac: Add --enable-w32api option.
mingw-w64-crt:
* configure.ac: Replace --enable-startup with --enable-w32api option.
(LIB64SUFFIXDIR, LIB32SUFFIXDIR): Conditionalize on enable_w32api.
* Makefile.am: Replace STARTUP conditions with W32API conditions.
Drop libraries depending on W32API.
(libsrcdir): Conditionalize on W32API.
Index: mingw-w64-headers/configure.ac
===================================================================
--- mingw-w64-headers/configure.ac (revision 5336)
+++ mingw-w64-headers/configure.ac (working copy)
@@ -45,6 +45,21 @@
done
#FIXME: Add in base directx
+AC_MSG_CHECKING([whether to build a w32api package for Cygwin])
+AC_ARG_ENABLE([w32api],
+ [AS_HELP_STRING([--enable-w32api],
+ [Enable building a w32api package for Cygwin (shorthand for
--includedir=PREFIX/include/w32api --disable-crt)])],
+ [],
+ [AS_VAR_SET([enable_w32api],[yes])])
+AC_MSG_RESULT([$enable_w32api])
+AS_CASE([$enable_w32api],
+ [no],[],
+ [yes],[AS_VAR_SET([HAVE_W32API])
+ AS_VAR_SET([enable_crt],[no])
+ AS_VAR_SET([includedir],[${prefix}/include/w32api])],
+ [AC_MSG_ERROR([invalid argument. Must be either yes or no.])])
+AM_CONDITIONAL([HAVE_W32API], [AS_VAR_TEST_SET([HAVE_W32API])])
+
AC_MSG_CHECKING([for c-runtime headers])
AC_ARG_ENABLE([crt],
[AS_HELP_STRING([--disable-crt],
Index: mingw-w64-crt/Makefile.am
===================================================================
--- mingw-w64-crt/Makefile.am (revision 5336)
+++ mingw-w64-crt/Makefile.am (working copy)
@@ -269,7 +269,7 @@
lib32dir=$(prefix)/@LIB32SUFFIXDIR@
crt32dir=$(lib32dir)
-if STARTUP
+if ! W32API
crt32_DATA = \
lib32/crt1.o lib32/crt2.o lib32/crt1u.o lib32/crt2u.o
lib32/dllcrt1.o lib32/dllcrt2.o \
lib32/CRT_fp8.o lib32/CRT_fp10.o lib32/txtmode.o lib32/binmode.o
lib32/crtbegin.o lib32/crtend.o \
@@ -310,18 +310,7 @@
dxerr.c \
test.c
-lib32_LIBRARIES = lib32/libm.a
-nodist_lib32_libm_a_SOURCES = $(src_libm)
-lib32_libm_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-
-lib32_LIBRARIES += lib32/libgmon.a
-lib32_libgmon_a_SOURCES = profile/mcount.c \
- profile/profil.h profile/profil.c \
- profile/gmon.h profile/gmon.c \
- profile/mcountFunc.S
-lib32_libgmon_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-
-lib32_LIBRARIES += lib32/libshell32.a
+lib32_LIBRARIES = lib32/libshell32.a
lib32_libshell32_a_SOURCES = $(src_libshell32)
lib32_libshell32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
@@ -373,23 +362,6 @@
lib32_libportabledeviceguids_a_SOURCES = $(src_libportabledeviceguids)
lib32_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-lib32_LIBRARIES += lib32/liblargeint.a
-lib32_liblargeint_a_SOURCES = $(src_liblargeint)
-lib32_liblargeint_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-
-lib32_LIBRARIES += lib32/libmingw32.a
-lib32_libmingw32_a_CPPFLAGS=$(CPPFLAGS32) -D_SYSCRT=1 -DCRTDLL=1
$(extra_include) $(AM_CPPFLAGS)
-lib32_libmingw32_a_SOURCES = $(src_libmingw32)
-
-lib32_LIBRARIES += lib32/libmingwex.a
-lib32_libmingwex_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
-lib32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex32)
-
-lib32_LIBRARIES += lib32/libmoldname.a
-lib32_libmoldname_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
-lib32_libmoldname_a_SOURCES = $(src_libmoldname)
-lib32_libmoldname_a_AR = $(DTDEF32) $(top_srcdir)/lib32/moldname-msvcrt.def -U
--dllname msvcrt.dll && $(AR) $(ARFLAGS)
-
lib32_LIBRARIES += lib32/libscrnsave.a
lib32_libscrnsave_a_SOURCES = $(src_libscrnsave)
lib32_libscrnsave_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
@@ -403,10 +375,6 @@
lib32_libstrmiids_a_SOURCES = $(src_libstrmiids)
lib32_libstrmiids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-lib32_LIBRARIES += lib32/libmingwthrd.a
-lib32_libmingwthrd_a_SOURCES = $(src_libmingwthrd)
-lib32_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-
lib32_LIBRARIES += lib32/libuuid.a
lib32_libuuid_a_SOURCES = $(src_libuuid)
lib32_libuuid_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
@@ -424,6 +392,40 @@
lib32_LIBRARIES += lib32/libdelayimp.a
lib32_libdelayimp_a_SOURCES =
+if ! W32API
+lib32_LIBRARIES += lib32/libm.a
+nodist_lib32_libm_a_SOURCES = $(src_libm)
+lib32_libm_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+
+lib32_LIBRARIES += lib32/libgmon.a
+lib32_libgmon_a_SOURCES = profile/mcount.c \
+ profile/profil.h profile/profil.c \
+ profile/gmon.h profile/gmon.c \
+ profile/mcountFunc.S
+lib32_libgmon_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+
+lib32_LIBRARIES += lib32/liblargeint.a
+lib32_liblargeint_a_SOURCES = $(src_liblargeint)
+lib32_liblargeint_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+
+lib32_LIBRARIES += lib32/libmingw32.a
+lib32_libmingw32_a_CPPFLAGS=$(CPPFLAGS32) -D_SYSCRT=1 -DCRTDLL=1
$(extra_include) $(AM_CPPFLAGS)
+lib32_libmingw32_a_SOURCES = $(src_libmingw32)
+
+lib32_LIBRARIES += lib32/libmingwex.a
+lib32_libmingwex_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
+lib32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex32)
+
+lib32_LIBRARIES += lib32/libmoldname.a
+lib32_libmoldname_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
+lib32_libmoldname_a_SOURCES = $(src_libmoldname)
+lib32_libmoldname_a_AR = $(DTDEF32) $(top_srcdir)/lib32/moldname-msvcrt.def -U
--dllname msvcrt.dll && $(AR) $(ARFLAGS)
+
+lib32_LIBRARIES += lib32/libmingwthrd.a
+lib32_libmingwthrd_a_SOURCES = $(src_libmingwthrd)
+lib32_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+endif
+
#These defs have no accompanying sources. Look into using the rule below to
run the dlltool command
#for all libraries, including those with sources.
lib32_DATA = \
@@ -570,7 +572,7 @@
lib64dir=$(prefix)/@LIB64SUFFIXDIR@
crt64dir=$(lib64dir)
-if STARTUP
+if ! W32API
crt64_DATA = \
lib64/crt1.o lib64/crt2.o lib64/crt1u.o lib64/crt2u.o
lib64/dllcrt1.o lib64/dllcrt2.o \
lib64/CRT_fp8.o lib64/CRT_fp10.o lib64/txtmode.o lib64/binmode.o
lib64/crtbegin.o lib64/crtend.o \
@@ -603,11 +605,7 @@
lib64/%.o: crt/%.c
$(COMPILE) $(CPPFLAGS64) -c $< -o $@
-lib64_LIBRARIES = lib64/libm.a
-nodist_lib64_libm_a_SOURCES = $(src_libm)
-lib64_libm_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-
-lib64_LIBRARIES += lib64/libshell32.a
+lib64_LIBRARIES = lib64/libshell32.a
lib64_libshell32_a_SOURCES = $(src_libshell32)
lib64_libshell32_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
lib64_libshell32_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS)
@@ -650,13 +648,6 @@
lib64_libportabledeviceguids_a_SOURCES = $(src_libportabledeviceguids)
lib64_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-lib64_LIBRARIES += lib64/libgmon.a
-lib64_libgmon_a_SOURCES = profile/mcount.c \
- profile/profil.h profile/profil.c \
- profile/gmon.h profile/gmon.c \
- profile/mcountFunc.S
-lib64_libgmon_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-
lib64_LIBRARIES += lib64/libksuser.a
lib64_libksuser_a_SOURCES = $(src_libksuser)
lib64_libksuser_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
@@ -666,10 +657,6 @@
lib64_libksguid_a_SOURCES = $(src_libksguid)
lib64_libksguid_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-lib64_LIBRARIES += lib64/liblargeint.a
-lib64_liblargeint_a_SOURCES = $(src_liblargeint)
-lib64_liblargeint_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-
lib64_LIBRARIES += lib64/libscrnsave.a
lib64_libscrnsave_a_SOURCES = $(src_libscrnsave)
lib64_libscrnsave_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
@@ -683,6 +670,39 @@
lib64_libstrmiids_a_SOURCES = $(src_libstrmiids)
lib64_libstrmiids_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+lib64_LIBRARIES += lib64/libuuid.a
+lib64_libuuid_a_SOURCES = $(src_libuuid)
+lib64_libuuid_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+
+lib64_LIBRARIES += lib64/libgdiplus.a
+lib64_libgdiplus_a_SOURCES = $(src_libgdiplus)
+lib64_libgdiplus_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+lib64_libgdiplus_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS)
+
+lib64_LIBRARIES += lib64/libws2_32.a
+lib64_libws2_32_a_SOURCES = $(src_libws2_32)
+lib64_libws2_32_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+lib64_libws2_32_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS)
+
+lib64_LIBRARIES += lib64/libdelayimp.a
+lib64_libdelayimp_a_SOURCES =
+
+if ! W32API
+lib64_LIBRARIES += lib64/libm.a
+nodist_lib64_libm_a_SOURCES = $(src_libm)
+lib64_libm_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+
+lib64_LIBRARIES += lib64/libgmon.a
+lib64_libgmon_a_SOURCES = profile/mcount.c \
+ profile/profil.h profile/profil.c \
+ profile/gmon.h profile/gmon.c \
+ profile/mcountFunc.S
+lib64_libgmon_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+
+lib64_LIBRARIES += lib64/liblargeint.a
+lib64_liblargeint_a_SOURCES = $(src_liblargeint)
+lib64_liblargeint_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+
lib64_LIBRARIES += lib64/libmingw32.a
lib64_libmingw32_a_CPPFLAGS=$(CPPFLAGS64) -D_SYSCRT=1 -DCRTDLL=1
$(extra_include) $(AM_CPPFLAGS)
lib64_libmingw32_a_SOURCES = $(src_libmingw32)
@@ -699,24 +719,8 @@
lib64_LIBRARIES += lib64/libmingwthrd.a
lib64_libmingwthrd_a_SOURCES = $(src_libmingwthrd)
lib64_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+endif
-lib64_LIBRARIES += lib64/libuuid.a
-lib64_libuuid_a_SOURCES = $(src_libuuid)
-lib64_libuuid_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-
-lib64_LIBRARIES += lib64/libgdiplus.a
-lib64_libgdiplus_a_SOURCES = $(src_libgdiplus)
-lib64_libgdiplus_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-lib64_libgdiplus_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS)
-
-lib64_LIBRARIES += lib64/libws2_32.a
-lib64_libws2_32_a_SOURCES = $(src_libws2_32)
-lib64_libws2_32_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
-lib64_libws2_32_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS)
-
-lib64_LIBRARIES += lib64/libdelayimp.a
-lib64_libdelayimp_a_SOURCES =
-
lib64_DATA = \
lib64/libwinusb.a \
lib64/lib6to4svc.a lib64/libaaaamon.a lib64/libacledit.a
lib64/libaclui.a \
@@ -1036,7 +1040,11 @@
# Don't compile these, but install as is:
#
-libsrcdir=$(prefix)/libsrc
+if W32API
+libsrcdir=$(prefix)/include/w32api
+else
+libsrcdir=$(prefix)/include
+endif
libsrc_DATA = \
libsrc/agtctl_i.c libsrc/agtsvr_i.c libsrc/cdoex_i.c
libsrc/cdoexm_i.c \
libsrc/cdosys_i.c libsrc/emostore_i.c libsrc/iisext_i.c
libsrc/mtsadmin_i.c \
Index: mingw-w64-crt/configure.ac
===================================================================
--- mingw-w64-crt/configure.ac (revision 5336)
+++ mingw-w64-crt/configure.ac (working copy)
@@ -45,18 +45,18 @@
dnl ---
AM_PROG_CC_C_O
-AC_MSG_CHECKING([whether to build the crt startup])
-AC_ARG_ENABLE([startup],
- [AS_HELP_STRING([--disable-startup],
- [Disable building the crt runtime startup code (*.o files)])],
+AC_MSG_CHECKING([whether to build a w32api package for Cygwin])
+AC_ARG_ENABLE([w32api],
+ [AS_HELP_STRING([--enable-w32api],
+ [Enable building a w32api package for Cygwin])],
[],
- [AS_VAR_SET([enable_startup],[yes])])
-AC_MSG_RESULT([$enable_startup])
-AS_CASE([$enable_startup],
+ [AS_VAR_SET([enable_w32api],[yes])])
+AC_MSG_RESULT([$enable_w32api])
+AS_CASE([$enable_w32api],
[no],[],
- [yes],[AS_VAR_SET([STARTUP])],
+ [yes],[AS_VAR_SET([W32API])],
[AC_MSG_ERROR([invalid argument. Must be either yes or no.])])
-AM_CONDITIONAL([STARTUP], [AS_VAR_TEST_SET([STARTUP])])
+AM_CONDITIONAL([W32API], [AS_VAR_TEST_SET([W32API])])
AC_MSG_CHECKING([whether to build the Win32 libraries])
AC_ARG_ENABLE([lib32],
@@ -116,17 +116,23 @@
AS_IF([AS_VAR_TEST_SET([LIB32]) || AS_VAR_TEST_SET([LIB64])],
[AC_MSG_WARN([Building the runtime to use libce with lib32 or lib64 is
unsupported.])])])
-AS_CASE([$host_cpu],
- [x86_64],[
- AC_SUBST([LIB64SUFFIXDIR],[lib])
- AC_SUBST([LIB32SUFFIXDIR],[lib32])],
- [i*86],[
- AC_SUBST([LIB64SUFFIXDIR],[lib64])
- AC_SUBST([LIB32SUFFIXDIR],[lib])],
- [*],[
- AC_SUBST([LIB64SUFFIXDIR],[lib64])
- AC_SUBST([LIB32SUFFIXDIR],[lib32])]
- )
+AS_CASE([$enable_w32api],
+ [yes],[
+ AC_SUBST([LIB64SUFFIXDIR],[lib64/w32api])
+ AC_SUBST([LIB32SUFFIXDIR],[lib/w32api])
+ ],
+ [AS_CASE([$host_cpu],
+ [x86_64],[
+ AC_SUBST([LIB64SUFFIXDIR],[lib])
+ AC_SUBST([LIB32SUFFIXDIR],[lib32])],
+ [i*86],[
+ AC_SUBST([LIB64SUFFIXDIR],[lib64])
+ AC_SUBST([LIB32SUFFIXDIR],[lib])],
+ [*],[
+ AC_SUBST([LIB64SUFFIXDIR],[lib64])
+ AC_SUBST([LIB32SUFFIXDIR],[lib32])]
+ )]
+)
# Checks for features.
@@ -221,6 +227,7 @@
#AC_FUNC_VPRINTF
#AC_CHECK_FUNCS([alarm atexit btowc fesetround floor ftruncate gettimeofday
isascii localeconv mbrlen memmove memset pow rint setlocale sqrt strcasecmp
strchr strncasecmp strtoull strtoumax])
+
AC_CHECK_HEADER([_mingw_mac.h], [], [AC_MSG_ERROR([Please check if the
mingw-w64 header set and the build/host option are set properly.])])
#Warnings and errors, default level is 3
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public