Мне удалось скомпилировать модуль. Необходимые условия:
Вот пошаговое руководство.
Загрузите эти пакеты:
Распакуйте пакет dev в c:\temp\svn
, а другой пакет в c:\temp\svn-src
и файлы mod_dontdothat
в C:\Temp\dontdothat
.
Одной из зависимостей модуля mod_dontdothat
является модуль mod_dav_svn
. К сожалению, вы найдете бинарный файл mod_dav_svn
только в качестве общей библиотеки (DLL). Вы не можете связать против
DLL. Поэтому первым шагом является создание статической библиотеки mod_dav_svn
:
cd C:\Temp\svn-src\subversion\mod_dav_svn
apxs -c -I ..\include -L C:\Temp\svn\lib -l libsvn_delta-1.lib -l libsvn_diff-1.lib -l libsvn_fs-1.lib -l libsvn_fs_base-1.lib -l libsvn_fs_fs-1.lib -l libsvn_fs_util-1.lib -l libsvn_repos-1.lib -l libsvn_subr-1.lib -l libapr-1.lib -l libaprutil-1.lib -l libhttpd.lib -l mod_dav.lib -l xml.lib -n mod_dav_svn mod_dav_svn.c activity.c authz.c deadprops.c liveprops.c lock.c merge.c mirror.c repos.c util.c version.c reports\dated-rev.c reports\file-revs.c reports\get-locations.c reports\get-location-segments.c reports\get-locks.c reports\log.c reports\mergeinfo.c reports\replay.c reports\update.c
Вызов apxs напечатает команды, которые он выполняет. Последняя команда - это вызов по ссылке, который создает DLL. Скопируйте его, замените «link» на «lib», удалите параметр «/ dll» и измените имя файла параметров «out» на «libmod_dav_svn.lib
». Вы должны получить что-то похожее на:
lib kernel32.lib /nologo /subsystem:windows /machine:I386 /libpath:"C:\PROGRA~1\APACHE~1\Apache2.2\lib" /out:libmod_dav_svn.lib /libpath:"C:\Temp\svn\lib" libsvn_delta-1.lib libsvn_diff-1.lib libsvn_fs-1.lib libsvn_fs_base-1.lib libsvn_fs_fs-1.lib libsvn_fs_util-1.lib libsvn_repos-1.lib libsvn_subr-1.lib libapr-1.lib libaprutil-1.lib libhttpd.lib mod_dav.lib xml.lib reports\update.lo reports\replay.lo reports\mergeinfo.lo reports\log.lo reports\get-locks.lo reports\get-location-segments.lo reports\get-locations.lo reports\file-revs.lo reports\dated-rev.lo version.lo util.lo repos.lo mirror.lo merge.lo lock.lo liveprops.lo deadprops.lo authz.lo activity.lo mod_dav_svn.lo
Вы получите несколько предупреждений по ссылке. Вы можете игнорировать их. Скопируйте libmod_dav_svn.lib
в каталог mod_dontdothat
. Теперь запустите процесс компиляции для mod_dontdothat
:
C:\Temp\dontdothat
apxs -c -I C:\Temp\svn\include -L C:\Temp\svn\lib -l libsvn_subr-1.lib -l libapr-1.lib -l libaprutil-1.lib -l libhttpd.lib -l mod_dav.lib -l xml.lib -l libmod_dav_svn.lib mod_dontdothat.c
apxs -i -n dontdothat mod_dontdothat.so
Это должно сработать.