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