You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by wr...@apache.org on 2007/10/19 09:33:04 UTC

svn commit: r586295 - /apr/apr-util/trunk/Makefile.win

Author: wrowe
Date: Fri Oct 19 00:33:04 2007
New Revision: 586295

URL: http://svn.apache.org/viewvc?rev=586295&view=rev
Log:
At last, a command-line makefile that apr-winxx-folk can enjoy. 

Added:
    apr/apr-util/trunk/Makefile.win   (with props)

Added: apr/apr-util/trunk/Makefile.win
URL: http://svn.apache.org/viewvc/apr/apr-util/trunk/Makefile.win?rev=586295&view=auto
==============================================================================
--- apr/apr-util/trunk/Makefile.win (added)
+++ apr/apr-util/trunk/Makefile.win Fri Oct 19 00:33:04 2007
@@ -0,0 +1,341 @@
+# Makefile.win for Win32 APR + APR-iconv + APR-util
+#
+# Targets are:
+#
+#     buildall - compile everything
+#     checkall - run APR + APR-util regression tests
+#     install  - compile everything
+#     clean    - mop up everything
+#
+# You can override the build mechansim, choose only one;
+#
+#     USEMAK=1 - compile from exported make files
+#     USEDSW=1 - compile from .dsw / .dsp VC6 projects
+#     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
+#
+# Define ARCH to your desired preference (your PATH must point
+# to the correct compiler tools!)  Choose only one;
+#
+#     ARCH="Win32 Release"
+#     ARCH="Win32 Debug"
+#     ARCH="Win32 Release9x"
+#     ARCH="Win32 Debug9x"
+#     ARCH="x64 Release"
+#     ARCH="x64 Debug"
+#
+# Provide the APR_PATH, API_PATH and APU_PATH all as absolute paths, 
+# or all as paths RELATIVE TO ONE ANOTHER!
+#
+#     APR_PATH=..\apr-1.3.0
+#     API_PATH=..\apr-iconv-1.3.0
+#     APU_PATH=..\apr-util-1.3.0
+#
+# For example;
+#
+#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
+#
+
+!IF EXIST("aprutil.sln") && ([devenv /help > NUL 2>&1] == 0) \
+    && !defined(USEMAK) && !defined(USEDSW)
+USESLN=1
+USEMAK=0
+USEDSW=0
+!ELSEIF EXIST("aprutil.mak") && !defined(USEDSW)
+USESLN=0
+USEMAK=1
+USEDSW=0
+!ELSE
+USESLN=0
+USEMAK=0
+USEDSW=1
+!ENDIF
+
+PREFIX=..\apr-dist
+
+!IF [$(COMSPEC) /c cl /nologo /? | find "x64" >NUL ] == 0
+ARCH=x64 Release
+!ELSE
+ARCH=Win32 Release
+!ENDIF
+
+APR_PATH=..\apr
+API_PATH=..\apr-iconv
+APU_PATH=..\apr-util
+
+# Never build ssl by default, plus this needs work
+#
+#OPENSSL_DIR=..\openssl
+
+!MESSAGE ARCH        = $(ARCH)
+!MESSAGE APR_PATH    = $(APR_PATH)
+!MESSAGE API_PATH    = $(API_PATH)  (apr-iconv)
+!MESSAGE APU_PATH    = $(APU_PATH)  (apr-util)
+!IFDEF OPENSSL_DIR
+!MESSAGE OPENSSL_DIR = $(OPENSSL_DIR)  (openssl)
+!ENDIF
+!MESSAGE PREFIX      = $(PREFIX)  (install path)
+
+
+# Utility and Translation things, nothing here for the user
+#
+!IF "$(ARCH)" == "Win32 Release"
+SLNARCH=Release|Win32
+ARCHPATH=Release
+LIBSPATH=LibR
+ARCHOSPATH=Release
+LIBSOSPATH=LibR
+!ELSEIF "$(ARCH)" == "Win32 Debug"
+SLNARCH=Debug|Win32
+ARCHPATH=Debug
+LIBSPATH=LibD
+ARCHOSPATH=Debug
+LIBSOSPATH=LibD
+!ELSEIF "$(ARCH)" == "Win32 Release9x"
+SLNARCH=Release9x|Win32
+ARCHPATH=Release
+LIBSPATH=LibR
+ARCHOSPATH=9x\Release
+LIBSOSPATH=9x\LibR
+!ELSEIF "$(ARCH)" == "Win32 Debug9x"
+SLNARCH=Debug9x|Win32
+ARCHPATH=Debug
+LIBSPATH=LibD
+ARCHOSPATH=9x\Debug
+LIBSOSPATH=9x\LibD
+!ELSEIF "$(ARCH)" == "x64 Release"
+SLNARCH=Release|x64
+ARCHPATH=x64\Release
+LIBSPATH=x64\LibR
+ARCHOSPATH=x64\Release
+LIBSOSPATH=x64\LibR
+!ELSEIF "$(ARCH)" == "x64 Debug"
+SLNARCH=Debug|x64
+ARCHPATH=x64\Debug
+LIBSPATH=x64\LibD
+ARCHOSPATH=x64\Debug
+LIBSOSPATH=x64\LibD
+!ENDIF
+
+!IFNDEF MAKEOPT
+# Only default the behavior if MAKEOPT= is omitted
+!IFDEF _NMAKE_VER
+# Microsoft NMake options
+MAKEOPT=-nologo
+!ELSEIF "$(MAKE)" == "make"
+# Borland make options?  Not really supported (yet)
+MAKEOPT=-s -N
+!ENDIF
+!ENDIF
+
+
+# Sanity Checks
+#
+!IF !EXIST("$(APR_PATH)\apr.dsp") || !EXIST("$(API_PATH)\apriconv.dsp") \
+ || !EXIST("$(APU_PATH)\aprutil.dsp")
+!MESSAGE Please check out or download and unpack the Apache Portability Runtime
+!MESSAGE sources (apr, apr-iconv and apr-util) under a single parent dir,
+!MESSAGE or provide APR_PATH, API_PATH and APU_PATH (all relative to each other,
+!MESSAGE or all absolute paths).
+!MESSAGE Apache cannot build without these libraries!
+!MESSAGE 
+!ERROR Need apr and apr-iconv alongside apr-util to build!
+!ENDIF
+
+
+all: buildall checkall
+
+
+!IF $(USEMAK) == 1
+
+clean:
+	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
+		CTARGET=CLEAN buildall
+
+buildall:
+	cd $(APR_PATH)
+	 $(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
+	 cd build
+	  $(MAKE) $(MAKEOPT) -f aprapp.mak     CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
+	  $(MAKE) $(MAKEOPT) -f libaprapp.mak  CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
+	 cd ..
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f apriconv.mak    CFG="apriconv - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - $(ARCH)" RECURSE=0 $(CTARGET)
+!IF "$(CTARGET)" == "CLEAN"
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+!ELSE
+	 cd ccs
+	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared
+	 cd ..\ces
+	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared
+	 cd ..
+!ENDIF
+	cd $(APU_PATH)\xml\expat\lib
+	 $(MAKE) $(MAKEOPT) -f xml.mak         CFG="xml - $(ARCH)" RECURSE=0 $(CTARGET)
+	cd ..\..\..
+	 $(MAKE) $(MAKEOPT) -f aprutil.mak     CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libaprutil.mak  CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+
+!ELSEIF $(USESLN) == 1
+
+clean:
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+	cd $(APU_PATH)
+
+buildall:
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
+
+!ELSE
+#	$(USEDSP) == 1
+
+clean:
+	-msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)" /CLEAN
+	-msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)" /CLEAN
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+	cd $(APU_PATH)
+
+buildall:
+	@msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
+	@msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
+
+!ENDIF
+
+
+checkapr:
+	cd $(APR_PATH)\test
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+		OUTDIR=$(LIBSOSPATH) check
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+		OUTDIR=$(ARCHOSPATH) check
+	 cd ..
+	cd $(APU_PATH)
+
+checkapu:
+	cd $(APU_PATH)\test
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+		OUTDIR=$(LIBSPATH) check
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+		OUTDIR=$(ARCHPATH) check
+	 cd ..
+
+checkall: checkapr checkapu
+
+
+install:
+	echo Y >.y
+	echo A >.A
+	@if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
+	@if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
+	@if NOT EXIST "$(PREFIX)\bin\iconv\." mkdir "$(PREFIX)\bin\iconv"
+	@if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
+	@if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
+	copy CHANGES "$(PREFIX)\CHANGES.txt" <.y
+	copy LICENSE "$(PREFIX)\LICENSE.txt" <.y
+	copy NOTICE  "$(PREFIX)\NOTICE.txt"  <.y
+	xcopy $(APR_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
+	xcopy $(APU_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
+	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.pdb	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.pdb	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.exp	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.exp	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.pdb	"$(PREFIX)\bin\" <.y
+	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.pdb	"$(PREFIX)\bin\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.pdb	"$(PREFIX)\bin\" <.y
+	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.so  "$(PREFIX)\bin\iconv\" /d < .a
+	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.pdb "$(PREFIX)\bin\iconv\" /d < .a
+!IFDEF OPENSSL_DIR
+	copy $(OPENSSL_DIR)\$(SSLBIN)\openssl.exe	"$(PREFIX)\bin\" <.y
+	copy $(OPENSSL_DIR)\$(SSLBIN)\openssl.pdb	"$(PREFIX)\bin\" <.y
+	copy $(OPENSSL_DIR)\$(SSLBIN)\libeay32.dll	"$(PREFIX)\bin\" <.y
+	copy $(OPENSSL_DIR)\$(SSLBIN)\libeay32.pdb	"$(PREFIX)\bin\" <.y
+	copy $(OPENSSL_DIR)\$(SSLBIN)\ssleay32.dll	"$(PREFIX)\bin\" <.y
+	copy $(OPENSSL_DIR)\$(SSLBIN)\ssleay32.pdb	"$(PREFIX)\bin\" <.y
+	@if NOT EXIST "$(PREFIX)\conf\." mkdir "$(PREFIX)\conf"
+	copy $(OPENSSL_DIR)\apps\openssl.cnf "$(PREFIX)\conf\openssl.cnf" <.y
+	type << >> "$(PREFIX)\NOTICE.txt"
+
+  This binary distribution includes cryptographic software written by
+  Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
+  (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
+  for use in the OpenSSL Toolkit <http://www.openssl.org/>.
+<<
+	copy LICENSE + << + "$(OPENSSL_DIR)\LICENSE" "$(PREFIX)\LICENSE.txt" <.y
+
+For the libeay32.dll, ssleay32.dll and openssl.exe components:
+
+<<
+	copy << + $(OPENSSL_DIR)\NEWS "$(PREFIX)\OPENSSL-NEWS.txt" <.y
+
+ Apache Portablity Runtime (APR) 1.3 Limited OpenSSL Distribution
+
+ This binary distribution includes the minimal components of OpenSSL required
+ to support aprutil 1.3 and later libraries from the Apache APR Project.
+ (Details are listed in OPENSSL-README.txt.)  For the complete list of CHANGES
+ to this and later versions of OpenSSL, please refer to the definative source,
+ <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
+ full binary or source distribution package from <http://www.openssl.org/>.
+
+ These OpenSSL binaries were built for distribution from the U.S. without 
+ support for the patented encryption methods IDEA, MDC-2 or RC5.
+
+--------------------------------------------------------------------------------
+<<
+	copy << + $(OPENSSL_DIR)\README "$(PREFIX)\OPENSSL-README.txt" <.y
+
+ Apache Portablity Runtime APR-util Limited OpenSSL Distribution
+
+ This binary installation of OpenSSL is a limited distribution of the
+ files derived from the OpenSSL project:
+
+   LICENSE.txt (includes openssl LICENSE)
+   OPENSSL-NEWS.txt
+   OPENSSL-README.txt
+   conf\openssl.cnf
+   bin\libeay32.dll
+   bin\libeay32.pdb
+   bin\ssleay32.dll
+   bin\ssleay32.pdb
+   bin\openssl.exe
+   bin\openssl.pdb
+
+ These are the minimal libraries and tools required to use the aprutil 1.3
+ and later library releases distributed by the Apache APR project.  No library
+ link files, headers or sources are distributed with this binary distribution.
+ Please refer to the <http://www.openssl.org/> site for complete source or
+ binary distributions.
+
+ These OpenSSL binaries were built for distribution from the U.S. without 
+ support for the patented encryption methods IDEA, MDC-2 or RC5.
+
+ The Apache APR Project only supports the binary distribution of these files
+ and development of the mod_ssl module.  We cannot provide support assistance
+ for using or configuring the OpenSSL package or these modules.  Please refer
+ all installation and configuration questions to the appropriate forum,
+ such as the user supported lists, <http://apr.apache.org/mailing-lists.html> 
+ the Apache APR Projects developer list or <http://www.openssl.org/support/> 
+ the OpenSSL support page.
+
+--------------------------------------------------------------------------------
+<<
+!ENDIF
+	del .y
+	del .a
+

Propchange: apr/apr-util/trunk/Makefile.win
------------------------------------------------------------------------------
    svn:eol-style = native