summaryrefslogtreecommitdiffstats
path: root/Makefile.win
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.win')
-rw-r--r--Makefile.win384
1 files changed, 384 insertions, 0 deletions
diff --git a/Makefile.win b/Makefile.win
new file mode 100644
index 0000000..454b4fe
--- /dev/null
+++ b/Makefile.win
@@ -0,0 +1,384 @@
+# 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 mechanism, 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 entirely relative
+# to one another! At this time, building the libraries themselves
+# is only expected to work if the defaults (../apr, ../apr-iconv
+# and ../apr-util) are used, or if they are built with USEMAK=1.
+#
+# APR_PATH=..\apr-1.3.0
+# API_PATH=..\apr-iconv-1.3.0
+# APU_PATH=..\apr-util-1.3.0
+#
+# Provide a DBD_LIST argument after configuring LIB and INCLUDE with
+# the SDK paths of the corresponding client support libraries.
+# ODBC is always built on Windows, so it does not get included in DBD_LIST
+# Note that at this time, none of these are supported on win32, per say.
+#
+# DBD_LIST="sqlite3 pgsql oracle mysql freetds"
+#
+# Provide a DBM_LIST argument after configuring LIB and INCLUDE with
+# the SDK paths of the corresponding database support libraries. Right
+# now only db has been configured, gdbm and ndbm require additional study.
+# Note that at this time, none of these are supported on win32, per say.
+#
+# DBM_LIST="db gdbm"
+#
+# Provide a CRYPTO_LIST argument after configuring LIB and INCLUDE with
+# the SDK paths of the corresponding cryptographic support libraries.
+#
+# CRYPTO_LIST="nss openssl"
+#
+# Provide the XML_PARSER argument after configuring LIB and INCLUDE with
+# the expat path of the corresponding xml parser, e.g. libexpatMT to choose
+# static, or libexpat (default) to choose the dynamic library for aprutil-1.dll
+# (Static libaprutil-1.lib always presumes libexpatMT with XML_STATIC flag.)
+#
+# XML_PARSER="libexpat"
+#
+# 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 EXIST("..\openssl")
+!IF EXIST("..\openssl\libcrypto.lib")
+SSLOPT=_HAVE_OSSL110=1
+!ENDIF
+!ENDIF
+
+# Legacy default (and unwise alternative) for libapr-1.dll is libexpatMT
+XML_PARSER="libexpat"
+!IF "$(XML_PARSER)" == "libexpat"
+XMLOPT=XML_PARSER=$(XML_PARSER)
+!ELSE
+XMLOPT=XML_PARSER=$(XML_PARSER) XML_OPTIONS="/D XML_STATIC"
+!ENDIF
+
+!IF [$(COMSPEC) /c cl /nologo /? \
+ | $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
+ARCH=x64 Release
+!ELSE
+ARCH=Win32 Release
+!ENDIF
+
+APR_PATH=..\apr
+API_PATH=..\apr-iconv
+APU_PATH=..\apr-util
+
+!MESSAGE ARCH = $(ARCH)
+!MESSAGE APR_PATH = $(APR_PATH)
+!MESSAGE API_PATH = $(API_PATH) (apr-iconv)
+!MESSAGE APU_PATH = $(APU_PATH) (apr-util)
+!MESSAGE PREFIX = $(PREFIX) (install path)
+!MESSAGE DBD_LIST = $(DBD_LIST)
+!MESSAGE DBM_LIST = $(DBM_LIST)
+!MESSAGE CRYPTO_LIST = $(CRYPTO_LIST)
+
+# 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
+
+# To help win32 pick up the locations where they don't fall in the usual
+# path locations. This may not be completely effective for USESLN/USEDSP
+# oriented builds, just yet
+#
+LIB=$(APR_PATH)\$(ARCHOSPATH);$(APR_PATH)\$(LIBSOSPATH);$(API_PATH)\$(ARCHPATH);$(API_PATH)\$(LIBSPATH);$(APU_PATH)\$(ARCHPATH);$(APU_PATH)\$(LIBSPATH);$(LIB)
+INCLUDE=$(APR_PATH)\include;$(API_PATH)\include;$(INCLUDE)
+
+!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)
+ $(MAKE) $(MAKEOPT) $(SSLOPT) $(XMLOPT) -f aprutil.mak CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+ $(MAKE) $(MAKEOPT) $(SSLOPT) $(XMLOPT) -f libaprutil.mak CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ldap
+ $(MAKE) $(MAKEOPT) -f apr_ldap.mak CFG="apr_ldap - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ..
+ cd dbd
+ for %d in (odbc $(DBD_LIST)) do \
+ $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ..
+ cd dbm
+ for %d in ($(DBM_LIST) x) do if not %d == x \
+ $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ..
+ cd crypto
+ for %d in ($(CRYPTO_LIST) x) do if not %d == x \
+ $(MAKE) $(MAKEOPT) $(SSLOPT) -f apr_crypto_%d.mak CFG="apr_crypto_%d - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ..
+
+!ELSEIF $(USESLN) == 1
+
+clean:
+ -for %d in (odbc $(DBD_LIST)) do \
+ devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbd_%d
+ -for %d in ($(DBM_LIST) x) do if not %d == x \
+ devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_dbm_%d
+ -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
+ devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_crypto_%d
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_ldap
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
+ cd $(API_PATH)
+ -$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+ BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+ cd $(APU_PATH)
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapriconv
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apriconv
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprapp
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprapp
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapr
+ -devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr
+
+buildall:
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprapp
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprapp
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_ldap
+ for %d in (odbc $(DBD_LIST)) do \
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbd_%d
+ for %d in ($(DBM_LIST) x) do if not %d == x \
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_dbm_%d
+ for %d in ($(CRYPTO_LIST) x) do if not %d == x \
+ devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_crypto_%d
+
+!ELSE
+# $(USEDSP) == 1
+
+clean:
+ -for %d in (odbc $(DBD_LIST)) do \
+ msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)" /CLEAN
+ -for %d in ($(DBM_LIST) x) do if not %d == x \
+ msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)" /CLEAN
+ -for %d in ($(CRYPTO_LIST) x) do if not %d == x \
+ msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)" /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)
+ -msdev aprutil.dsw /USEENV /MAKE "libapriconv - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "apriconv - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
+ -msdev aprutil.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
+
+buildall:
+ @msdev aprutil.dsw /USEENV /MAKE "aprapp - $(ARCH)"
+ @msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
+ @msdev aprutil.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
+ @msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
+ @msdev aprutil.dsw /USEENV /MAKE "apr_ldap - $(ARCH)"
+ @for %d in (odbc $(DBD_LIST)) do \
+ msdev aprutil.dsw /USEENV /MAKE "apr_dbd_%d - $(ARCH)"
+ @for %d in ($(DBM_LIST) x) do if not %d == x \
+ msdev aprutil.dsw /USEENV /MAKE "apr_dbm_%d - $(ARCH)"
+ @for %d in ($(CRYPTO_LIST) x) do if not %d == x \
+ msdev aprutil.dsw /USEENV /MAKE "apr_crypto_%d - $(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)
+ cd test
+ $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+ OUTDIR=$(LIBSPATH) APROUTDIR=$(LIBSOSPATH) \
+ APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
+ $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+ OUTDIR=$(ARCHPATH) APROUTDIR=$(ARCHOSPATH) \
+ APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) 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
+ copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.dll "$(PREFIX)\bin\" <.y
+ copy $(APU_PATH)\ldap\$(ARCHPATH)\apr_ldap-1.pdb "$(PREFIX)\bin\" <.y
+ for %d in (odbc $(DBD_LIST)) do ( \
+ copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.dll "$(PREFIX)\bin\" <.y && \
+ copy $(APU_PATH)\dbd\$(ARCHPATH)\apr_dbd_%d-1.pdb "$(PREFIX)\bin\" <.y \
+ )
+ for %d in ($(DBM_LIST) x) do if not %d == x ( \
+ copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.dll "$(PREFIX)\bin\" <.y && \
+ copy $(APU_PATH)\dbm\$(ARCHPATH)\apr_dbm_%d-1.pdb "$(PREFIX)\bin\" <.y \
+ )
+ for %d in ($(CRYPTO_LIST) x) do if not %d == x ( \
+ copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-1.dll "$(PREFIX)\bin\" <.y && \
+ copy $(APU_PATH)\crypto\$(ARCHPATH)\apr_crypto_%d-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
+ del .y
+ del .a
+