You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Mat Booth <ma...@wandisco.com> on 2012/02/27 15:13:59 UTC

Makefile.win install target does not install all necessary headers

Hi all,

When using the install target of Makefile.win on Windows, I noticed
that it does not install all the headers necessary for using the
platform specific features of APR. Please see the patch to fix it
below.


--- Makefile.win.orig	2012-02-27 13:54:16.500000000 +0000
+++ Makefile.win	2012-02-27 13:56:07.906250000 +0000
@@ -161,11 +161,15 @@
 	@if NOT EXIST "$(PREFIX)\."		mkdir "$(PREFIX)"
 	@if NOT EXIST "$(PREFIX)\bin\."		mkdir "$(PREFIX)\bin"
 	@if NOT EXIST "$(PREFIX)\include\."	mkdir "$(PREFIX)\include"
+	@if NOT EXIST "$(PREFIX)\include\arch\."	mkdir "$(PREFIX)\include\arch"
+	@if NOT EXIST "$(PREFIX)\include\arch\win32\."	mkdir
"$(PREFIX)\include\arch\win32"
 	@if NOT EXIST "$(PREFIX)\lib\."		mkdir "$(PREFIX)\lib"
 	copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
 	copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
 	copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
 	xcopy include\*.h		"$(PREFIX)\include\" /d < .a
+	xcopy include\arch\*.h		"$(PREFIX)\include\arch\" /d < .a
+	xcopy include\arch\win32\*.h	"$(PREFIX)\include\arch\win32\" /d < .a
 	copy $(LIBSOSPATH)\apr-1.lib		"$(PREFIX)\lib\" <.y
 	copy $(LIBSOSPATH)\apr-1.pdb		"$(PREFIX)\lib\" <.y
 	copy $(LIBSOSPATH)\aprapp-1.lib		"$(PREFIX)\lib\" <.y



Best regards,
Mat

-- 
Mat Booth
Software Engineer
WANdisco, Inc.
http://www.wandisco.com

Re: Makefile.win install target does not install all necessary headers

Posted by "William A. Rowe Jr." <wr...@rowe-clan.net>.
On 2/27/2012 10:15 AM, Mat Booth wrote:
> On 27 February 2012 15:34, Jeff Trawick <tr...@gmail.com> wrote:
>> On Mon, Feb 27, 2012 at 9:13 AM, Mat Booth <ma...@wandisco.com> wrote:
>>> Hi all,
>>>
>>> When using the install target of Makefile.win on Windows, I noticed
>>> that it does not install all the headers necessary for using the
>>> platform specific features of APR. Please see the patch to fix it
>>> below.
>>
>> These aren't APIs so they're not supposed to be installed.  (Using
>> httpd on Windows with out of tree apr by any chance?)
> 
> Well, I'm building Subversion, which #includes
> arch/win32/apr_arch_utf8.h in a couple of places.
> 
> However, had I bothered to read to the source, I would have read this:
> 
> #ifdef WIN32
> /* FIXME: We're using an internal APR header here, which means we
>    have to build Subversion with APR sources. This being Win32-only,
>    that should be fine for now, but a better solution must be found in
>    combination with issue #850. */
> #include <arch/win32/apr_arch_utf8.h>
> #endif

Never mind that Tomcat does the same thing.  httpd does the same thing.

It's the same OS screws as applied against OS/X, a refusal to acknowledge
compiler-driven input (e.g. the same apr.h files on OS/X should work for
both 32 and 64 bit, ppc and intel).  So OS/X is not fixed.  Windows install
is not fixed.

Actual users fork the install step to add the arch spec includes.  But the
contents of include/arch were rejected as public API's, just as the OS/X
patch was rejected.  I'm afraid the group is a little too literal about
a particular definition of 'portability' over usefulness.

So in the real world, Windows and OS/X don't actually appear as the APR
project agreed to.  It's an interesting dichotomy, one that the APR devs
have expressed no desire to reach consensus about.


Re: Makefile.win install target does not install all necessary headers

Posted by Mat Booth <ma...@wandisco.com>.
On 27 February 2012 15:34, Jeff Trawick <tr...@gmail.com> wrote:
> On Mon, Feb 27, 2012 at 9:13 AM, Mat Booth <ma...@wandisco.com> wrote:
>> Hi all,
>>
>> When using the install target of Makefile.win on Windows, I noticed
>> that it does not install all the headers necessary for using the
>> platform specific features of APR. Please see the patch to fix it
>> below.
>
> These aren't APIs so they're not supposed to be installed.  (Using
> httpd on Windows with out of tree apr by any chance?)

Well, I'm building Subversion, which #includes
arch/win32/apr_arch_utf8.h in a couple of places.

However, had I bothered to read to the source, I would have read this:

#ifdef WIN32
/* FIXME: We're using an internal APR header here, which means we
   have to build Subversion with APR sources. This being Win32-only,
   that should be fine for now, but a better solution must be found in
   combination with issue #850. */
#include <arch/win32/apr_arch_utf8.h>
#endif

Apologies for the noise!

>
>>
>>
>> --- Makefile.win.orig   2012-02-27 13:54:16.500000000 +0000
>> +++ Makefile.win        2012-02-27 13:56:07.906250000 +0000
>> @@ -161,11 +161,15 @@
>>        @if NOT EXIST "$(PREFIX)\."             mkdir "$(PREFIX)"
>>        @if NOT EXIST "$(PREFIX)\bin\."         mkdir "$(PREFIX)\bin"
>>        @if NOT EXIST "$(PREFIX)\include\."     mkdir "$(PREFIX)\include"
>> +       @if NOT EXIST "$(PREFIX)\include\arch\."        mkdir "$(PREFIX)\include\arch"
>> +       @if NOT EXIST "$(PREFIX)\include\arch\win32\."  mkdir
>> "$(PREFIX)\include\arch\win32"
>>        @if NOT EXIST "$(PREFIX)\lib\."         mkdir "$(PREFIX)\lib"
>>        copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
>>        copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
>>        copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
>>        xcopy include\*.h               "$(PREFIX)\include\" /d < .a
>> +       xcopy include\arch\*.h          "$(PREFIX)\include\arch\" /d < .a
>> +       xcopy include\arch\win32\*.h    "$(PREFIX)\include\arch\win32\" /d < .a
>>        copy $(LIBSOSPATH)\apr-1.lib            "$(PREFIX)\lib\" <.y
>>        copy $(LIBSOSPATH)\apr-1.pdb            "$(PREFIX)\lib\" <.y
>>        copy $(LIBSOSPATH)\aprapp-1.lib         "$(PREFIX)\lib\" <.y
>>
>>
>>
>> Best regards,
>> Mat
>>
>> --
>> Mat Booth
>> Software Engineer
>> WANdisco, Inc.
>> http://www.wandisco.com
>
>
>
> --
> Born in Roswell... married an alien...



-- 
Mat Booth
Software Engineer
WANdisco, Inc.
http://www.wandisco.com

Re: Makefile.win install target does not install all necessary headers

Posted by Jeff Trawick <tr...@gmail.com>.
On Mon, Feb 27, 2012 at 9:13 AM, Mat Booth <ma...@wandisco.com> wrote:
> Hi all,
>
> When using the install target of Makefile.win on Windows, I noticed
> that it does not install all the headers necessary for using the
> platform specific features of APR. Please see the patch to fix it
> below.

These aren't APIs so they're not supposed to be installed.  (Using
httpd on Windows with out of tree apr by any chance?)

>
>
> --- Makefile.win.orig   2012-02-27 13:54:16.500000000 +0000
> +++ Makefile.win        2012-02-27 13:56:07.906250000 +0000
> @@ -161,11 +161,15 @@
>        @if NOT EXIST "$(PREFIX)\."             mkdir "$(PREFIX)"
>        @if NOT EXIST "$(PREFIX)\bin\."         mkdir "$(PREFIX)\bin"
>        @if NOT EXIST "$(PREFIX)\include\."     mkdir "$(PREFIX)\include"
> +       @if NOT EXIST "$(PREFIX)\include\arch\."        mkdir "$(PREFIX)\include\arch"
> +       @if NOT EXIST "$(PREFIX)\include\arch\win32\."  mkdir
> "$(PREFIX)\include\arch\win32"
>        @if NOT EXIST "$(PREFIX)\lib\."         mkdir "$(PREFIX)\lib"
>        copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
>        copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
>        copy NOTICE  "$(PREFIX)\APR-NOTICE.txt"  <.y
>        xcopy include\*.h               "$(PREFIX)\include\" /d < .a
> +       xcopy include\arch\*.h          "$(PREFIX)\include\arch\" /d < .a
> +       xcopy include\arch\win32\*.h    "$(PREFIX)\include\arch\win32\" /d < .a
>        copy $(LIBSOSPATH)\apr-1.lib            "$(PREFIX)\lib\" <.y
>        copy $(LIBSOSPATH)\apr-1.pdb            "$(PREFIX)\lib\" <.y
>        copy $(LIBSOSPATH)\aprapp-1.lib         "$(PREFIX)\lib\" <.y
>
>
>
> Best regards,
> Mat
>
> --
> Mat Booth
> Software Engineer
> WANdisco, Inc.
> http://www.wandisco.com



-- 
Born in Roswell... married an alien...