httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@lnd.com>
Subject [PATCH 2.0] WinBuild - The End of the long and winding discussion (I hope!)
Date Thu, 20 Apr 2000 02:15:20 GMT
Ok... here is my final patch to the overall project structure,
let's put this thing to bed so I and others can move on with
our coding (there seems to be many bad Win32 CGI things going on!)

Please commit it... other's are welcome to build on this.
I do have one patch once this is committed... I will fix
the htdigest/logresolve modules to build on Win32, and
the htpasswd to build on apr (if it doesn't already).
That should make us ready for a -good- Win32 alpha!

1) Implement new src/os/win32/BaseAddr.ref for all offsets.
   Addresses concerns that binaries should be consistent from
   build to build, base addresses are centralized in a single
   file, and relocations won't be an issue.

2) aprlib.dsp becomes a static library in src/lib/apr/Lib[D|R].
   All apr source remains in this project, to minimize confusion.
   aprlib.def must move to the actual dll project. Standalone
   executables (p/w support and install files) and other binaries
   using a -minimal- set of functions may link here.

3) Move gen_test_char.exe and gen_uri_delim.exe pipes into the
   ApacheCore project, as custom actions, not post build steps.
   See success in apr.hw->apr.h custom actions.  This eliminates
   extra cleanup from makefile.win.

4) Implement new src/lib/apr/aprlibdll.dsp to build the actual
   aprlib.dll.  The location remains src/lib/apr/[Debug|Release],
   and the aprlib.def file moves into this project.  Only the
   empty src/lib/apr/misc/win32/aprlib.c source file is included
   to eliminate compiler warning of no objects to link.

5) Implement new src/InstallBin.dsp to wrap the makefile.win for
   the copy functions.  Default INSTDIR folder is set to ../ to
   simplify building and installing multiple versions or deveopment
   iterations, but this may be changed by the user to simplify
   their life.

6) Create the src/Apache.dsw workspace.  The top target is
   InstallBin.dsp, which carries dependencies on all projects.
   Each project is dependent on the libraries and modules it
   links to.  There must be no dependencies on broken sources
   (htdigest, logresolve, ApacheModuleProxy and ApacheModuleInfo).

------------------

The two patches for htdigest and logresolve will drop in tommorow.

The advantage to aprlib/aprlibdll is that the library is always
called aprlib.lib, just link to the correct folder for your
desired result (LibD/LibR/Debug/Release).

BTW - don't overthink this... if you would rather see apr.lib/apr.dll
wait for this patch to be applied, then propose it as it's own patch.
I didn't change the name of this project since I felt that was it's
own issue.  I also didn't add, but support, Greg's build directory
tree overhaul.  That too should be a seperate patch.

I KNOW this patch will be harder to review.  This is the diff between
the aprlib.dsp and aprlibdll.dsp, since aprlibdsp was cloned from the
aprlib settings, and you won't waste as much time reviewing the new
aprlibdll.dsp file...

--- d:aprlib.dsp	Mon Apr 17 13:20:43 2000
+++ aprlibdll.dsp	Wed Apr 19 17:39:38 2000
@@ -1,24 +1,26 @@
-# Microsoft Developer Studio Project File - Name="aprlib" - Package Owner=<4>
+# Microsoft Developer Studio Project File - Name="aprlibdll" - Package Owner=<4>
 # Microsoft Developer Studio Generated Build File, Format Version 5.00
 # ** DO NOT EDIT **

 # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

-CFG=aprlib - Win32 Debug
+CFG=aprlibdll - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE
-!MESSAGE NMAKE /f "aprlib.mak".
+!MESSAGE NMAKE /f "aprlibdll.mak".
 !MESSAGE
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE
-!MESSAGE NMAKE /f "aprlib.mak" CFG="aprlib - Win32 Debug"
+!MESSAGE NMAKE /f "aprlibdll.mak" CFG="aprlibdll - Win32 Debug"
 !MESSAGE
 !MESSAGE Possible choices for configuration are:
 !MESSAGE
-!MESSAGE "aprlib - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "aprlib - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "aprlibdll - Win32 Release" (based on\
+ "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "aprlibdll - Win32 Debug" (based on\
+ "Win32 (x86) Dynamic-Link Library")
 !MESSAGE

 # Begin Project
@@ -28,7 +30,7 @@
 MTL=midl.exe
 RSC=rc.exe

-!IF  "$(CFG)" == "aprlib - Win32 Release"
+!IF  "$(CFG)" == "aprlibdll - Win32 Release"

 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 0
@@ -52,10 +54,10 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x278A0000"
/subsystem:windows /dll /map
/machine:I386
-# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x278A0000"
/subsystem:windows /dll /map /machine:I386
+# ADD BASE LINK32 aprlib.lib kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:@"..\..\os\win32\BaseAddr.ref",aprlib
/subsystem:windows /dll /map /machine:I386 /out:"Release/aprlib.dll" /libpath:"LibR"
+# ADD LINK32 aprlib.lib kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:@"..\..\os\win32\BaseAddr.ref",aprlib
/subsystem:windows /dll /map /machine:I386 /out:"Release/aprlib.dll" /libpath:"LibR"

-!ELSEIF  "$(CFG)" == "aprlib - Win32 Debug"
+!ELSEIF  "$(CFG)" == "aprlibdll - Win32 Debug"

 # PROP BASE Use_MFC 0
 # PROP BASE Use_Debug_Libraries 1
@@ -79,320 +82,24 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x278A0000"
/subsystem:windows /dll /map /debug
/machine:I386
-# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x278A0000"
/subsystem:windows /dll /map /debug
/machine:I386
+# ADD BASE LINK32 aprlib.lib kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:@"..\..\os\win32\BaseAddr.ref",aprlib
/subsystem:windows /dll /map /debug /machine:I386 /out:"Debug/aprlib.dll" /libpath:"LibD"
+# ADD LINK32 aprlib.lib kernel32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:@"..\..\os\win32\BaseAddr.ref",aprlib
/subsystem:windows /dll /map /debug /machine:I386 /out:"Debug/aprlib.dll" /libpath:"LibD"
 !ENDIF

 # Begin Target

 # Name "aprlibdll - Win32 Release"
 # Name "aprlibdll - Win32 Debug"
===
===[ALL SOURCES STRIPPED AND REPLACED WITH]
===
 # Begin Source File

+SOURCE=.\misc\win32\aprlib.c
 # End Source File
 # Begin Source File

 SOURCE=.\aprlib.def
 # End Source File
 # End Target
 # End Project


Mime
View raw message