Hi,

the below patch simplifies building a w32api package (Hi Jon!) for
Cygwin.  I added a --enable-cygwin option to the mingw-w64-headers
and mingw-w64-crt configure.ac file and tweaked the Makefile.am
files accordingly.

The result is as desired for a Cygwin w32api package:

- In mingw-w64-headers/configure.ac --enable-cygwin implies --disable-crt,
  so only the desired header files are installed. 

- In mingw-w64-headers/Makefile.am the installation path for the headers is
  set to $(prefix)/include/w32api.

- In mingw-w64-crt/configure.ac --enable-cygwin implies --disable-startup,
  so the startup files won't be installed.  The installation path for the
  32 bit libs is set to $(prefix)/lib/w32api, the installation path for
  the 64 bit libs to $(prefix)/lib64/w32api.

- In mingw-w64-crt/Makefile.am the Mingw-specific libs won't be installed
  and the installation path for the libsrc source files is set to
  $(prefix)/include/w32api.

Additionally I set AC_PREREQ to 2.68, rather than 2.69.  2.69 is not
really required, and it disallows to autoconf on Fedora 17.

Jon_Y, with this patch, you can build the entire w32api package in a
single run:

  configure --host=x86_64-w64-mingw32 --prefix=/usr --enable-cygwin

I hope the patch is basically ok.


Thanks,
Corinna

    mingw-w64-headers:

        * configure.ac: Lower autoconf prereq to 2.68.
        Add --enable-cygwin option.
        * Makefile.am (baseheaddir): Conditionalize on HAVE_CYGWIN.
        * Makefile.in: Regenerate.
        * configure: Regenerate.
        * aclocal.m4: Regenerate.

    mingw-w64-crt:

        * configure.ac: Lower autoconf prereq to 2.68.
        Add --enable-cygwin option.
        (LIB64SUFFIXDIR, LIB32SUFFIXDIR): Conditionalize on enable_cygwin.
        * Makefile.am: Drop libraries depending on HAVE_CYGWIN.
        (libsrcdir): Conditionalize on HAVE_CYGWIN.
        * Makefile.in: Regenerate.
        * configure: Regenerate.
        * aclocal.m4: Regenerate.


Index: configure.ac
===================================================================
--- configure.ac        (revision 5336)
+++ configure.ac        (working copy)
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_PREREQ([2.69])
+AC_PREREQ([2.68])
 AC_INIT([mingw-w64-headers],[3.0b],[[email protected]])
 AC_CONFIG_SRCDIR([crt/_mingw.h.in])
 AC_CONFIG_AUX_DIR([build-aux])
@@ -45,6 +45,20 @@
 done
 #FIXME: Add in base directx
 
+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)])],
+  [],
+  [AS_VAR_SET([enable_cygwin],[yes])])
+AC_MSG_RESULT([$enable_cygwin])
+AS_CASE([$enable_cygwin],
+  [no],[],
+  [yes],[AS_VAR_SET([HAVE_CYGWIN])
+        AS_VAR_SET([enable_crt],[no])],
+  [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])])
+AM_CONDITIONAL([HAVE_CYGWIN], [AS_VAR_TEST_SET([HAVE_CYGWIN])])
+
 AC_MSG_CHECKING([for c-runtime headers])
 AC_ARG_ENABLE([crt],
   [AS_HELP_STRING([--disable-crt],
Index: Makefile.am
===================================================================
--- Makefile.am (revision 5336)
+++ Makefile.am (working copy)
@@ -1,5 +1,9 @@
 
+if HAVE_CYGWIN
+baseheaddir = $(includedir)/w32api
+else
 baseheaddir = $(includedir)
+endif
 sysheaddir = $(baseheaddir)/sys
 secheaddir = $(baseheaddir)/sec_api
 secsysheaddir = $(baseheaddir)/sec_api/sys


Index: configure.ac
===================================================================
--- configure.ac        (revision 5336)
+++ configure.ac        (working copy)
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 # Use AM_MAINTANER_MODE somewhere in this file once reconfigurations settle 
down.
 
-AC_PREREQ([2.69])
+AC_PREREQ([2.68])
 AC_INIT([mingw-w64-runtime],[3.0b],[[email protected]])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_SRCDIR([ChangeLog])
@@ -45,6 +45,20 @@
 dnl ---
 AM_PROG_CC_C_O
 
+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-startup)])],
+  [],
+  [AS_VAR_SET([enable_cygwin],[yes])])
+AC_MSG_RESULT([$enable_cygwin])
+AS_CASE([$enable_cygwin],
+  [no],[],
+  [yes],[AS_VAR_SET([HAVE_CYGWIN])
+        AS_VAR_SET([enable_startup],[no])],
+  [AC_MSG_ERROR([invalid argument.  Must be either yes or no.])])
+AM_CONDITIONAL([HAVE_CYGWIN], [AS_VAR_TEST_SET([HAVE_CYGWIN])])
+
 AC_MSG_CHECKING([whether to build the crt startup])
 AC_ARG_ENABLE([startup],
   [AS_HELP_STRING([--disable-startup],
@@ -116,17 +130,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_cygwin],
+  [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.
 
Index: Makefile.am
===================================================================
--- Makefile.am (revision 5336)
+++ Makefile.am (working copy)
@@ -310,22 +310,26 @@
 dxerr.c \
 test.c
 
-lib32_LIBRARIES = lib32/libm.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)
+
+if ! HAVE_CYGWIN
+lib32_LIBRARIES += lib32/libm.a
 nodist_lib32_libm_a_SOURCES = $(src_libm)
 lib32_libm_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+endif
 
+if ! HAVE_CYGWIN
 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)
+endif
 
-lib32_LIBRARIES += lib32/libshell32.a
-lib32_libshell32_a_SOURCES = $(src_libshell32)
-lib32_libshell32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
-lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
-
 lib32_LIBRARIES += lib32/libdinput.a
 lib32_libdinput_a_SOURCES = $(src_libdinput)
 lib32_libdinput_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
@@ -373,22 +377,30 @@
 lib32_libportabledeviceguids_a_SOURCES = $(src_libportabledeviceguids)
 lib32_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
 
+if ! HAVE_CYGWIN
 lib32_LIBRARIES += lib32/liblargeint.a
 lib32_liblargeint_a_SOURCES = $(src_liblargeint)
 lib32_liblargeint_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+endif
 
+if ! HAVE_CYGWIN
 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)
+endif
 
+if ! HAVE_CYGWIN
 lib32_LIBRARIES += lib32/libmingwex.a
 lib32_libmingwex_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(AM_CPPFLAGS)
 lib32_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex32)
+endif
 
+if ! HAVE_CYGWIN
 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)
+endif
 
 lib32_LIBRARIES += lib32/libscrnsave.a
 lib32_libscrnsave_a_SOURCES = $(src_libscrnsave)
@@ -403,9 +415,11 @@
 lib32_libstrmiids_a_SOURCES = $(src_libstrmiids)
 lib32_libstrmiids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
 
+if ! HAVE_CYGWIN
 lib32_LIBRARIES += lib32/libmingwthrd.a
 lib32_libmingwthrd_a_SOURCES = $(src_libmingwthrd)
 lib32_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+endif
 
 lib32_LIBRARIES += lib32/libuuid.a
 lib32_libuuid_a_SOURCES = $(src_libuuid)
@@ -603,15 +617,17 @@
 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)
 
+if ! HAVE_CYGWIN
+lib64_LIBRARIES += lib64/libm.a
+nodist_lib64_libm_a_SOURCES = $(src_libm)
+lib64_libm_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+endif
+
 lib64_LIBRARIES += lib64/libdinput.a
 lib64_libdinput_a_SOURCES = $(src_libdinput)
 lib64_libdinput_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
@@ -650,12 +666,14 @@
 lib64_libportabledeviceguids_a_SOURCES = $(src_libportabledeviceguids)
 lib64_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
 
+if ! HAVE_CYGWIN
 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)
+endif
 
 lib64_LIBRARIES += lib64/libksuser.a
 lib64_libksuser_a_SOURCES = $(src_libksuser)
@@ -666,9 +684,11 @@
 lib64_libksguid_a_SOURCES = $(src_libksguid)
 lib64_libksguid_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
 
+if ! HAVE_CYGWIN
 lib64_LIBRARIES += lib64/liblargeint.a
 lib64_liblargeint_a_SOURCES = $(src_liblargeint)
 lib64_liblargeint_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
+endif
 
 lib64_LIBRARIES += lib64/libscrnsave.a
 lib64_libscrnsave_a_SOURCES = $(src_libscrnsave)
@@ -683,22 +703,30 @@
 lib64_libstrmiids_a_SOURCES = $(src_libstrmiids)
 lib64_libstrmiids_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes)
 
+if ! HAVE_CYGWIN
 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)
+endif
 
+if ! HAVE_CYGWIN
 lib64_LIBRARIES += lib64/libmingwex.a
 lib64_libmingwex_a_CPPFLAGS=$(CPPFLAGS64) $(extra_include) $(AM_CPPFLAGS)
 lib64_libmingwex_a_SOURCES = $(src_libmingwex) $(src_libmingwex64)
+endif
 
+if ! HAVE_CYGWIN
 lib64_LIBRARIES += lib64/libmoldname.a
 lib64_libmoldname_a_CPPFLAGS=$(CPPFLAGS64) $(extra_include) $(AM_CPPFLAGS)
 lib64_libmoldname_a_SOURCES = $(src_libmoldname)
 lib64_libmoldname_a_AR = $(DTDEF64) $(top_srcdir)/lib64/moldname-msvcrt.def -U 
--dllname msvcrt.dll && $(AR) $(ARFLAGS)
+endif
 
+if ! HAVE_CYGWIN
 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)
@@ -1036,7 +1064,11 @@
 
 # Don't compile these, but install as is:
 #
-libsrcdir=$(prefix)/libsrc
+if HAVE_CYGWIN
+libsrcdir=$(prefix)/include/w32api
+else
+libsrcdir=$(prefix)/lib
+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   \

------------------------------------------------------------------------------
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

Reply via email to