- Complete build-system revamp.
* Updated sources files to target install\WDDK * Remove wdfinstaller.h dependency from dll/divert.dll * Fix passthru error in newer compilers.
This commit is contained in:
+3
-5
@@ -28,8 +28,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef __MINGW32__
|
||||
// Mingw does not have wdfinstaller.h
|
||||
/*
|
||||
* From wdfinstaller.h
|
||||
*/
|
||||
typedef struct _WDF_COINSTALLER_INSTALL_OPTIONS
|
||||
{
|
||||
ULONG Size;
|
||||
@@ -59,9 +60,6 @@ typedef ULONG (WINAPI *PFN_WDFPOSTDEVICEREMOVE)(
|
||||
LPCWSTR inf_path,
|
||||
LPCWSTR inf_sec_name
|
||||
);
|
||||
#else /* __MINGW32__ */
|
||||
#include <wdfinstaller.h>
|
||||
#endif /* __MINGW32__ */
|
||||
|
||||
// #define DIVERT_DEBUG
|
||||
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@
|
||||
|
||||
TARGETNAME=WinDivert
|
||||
TARGETTYPE=DYNLINK
|
||||
TARGETPATH=..\install
|
||||
TARGETPATH=..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(SDK_LIB_PATH)\advapi32.lib \
|
||||
$(SDK_LIB_PATH)\setupapi.lib \
|
||||
|
||||
@@ -22,7 +22,7 @@ CPU=$(_BUILDARCH)
|
||||
|
||||
TARGETNAME=netdump
|
||||
TARGETTYPE=PROGRAM
|
||||
TARGETPATH=..\..\install
|
||||
TARGETPATH=..\..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(SDK_LIB_PATH)\setupapi.lib \
|
||||
$(SDK_LIB_PATH)\user32.lib \
|
||||
|
||||
@@ -22,7 +22,7 @@ CPU=$(_BUILDARCH)
|
||||
|
||||
TARGETNAME=netfilter
|
||||
TARGETTYPE=PROGRAM
|
||||
TARGETPATH=..\..\install
|
||||
TARGETPATH=..\..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(SDK_LIB_PATH)\setupapi.lib \
|
||||
$(SDK_LIB_PATH)\user32.lib \
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#define MAXBUF 0xFFFF
|
||||
|
||||
static DWORD passthru(LPVOID arg);
|
||||
static __stdcall DWORD passthru(LPVOID arg);
|
||||
|
||||
/*
|
||||
* Entry.
|
||||
@@ -88,7 +88,7 @@ int __cdecl main(int argc, char **argv)
|
||||
}
|
||||
|
||||
// Passthru thread.
|
||||
static DWORD passthru(LPVOID arg)
|
||||
static __stdcall DWORD passthru(LPVOID arg)
|
||||
{
|
||||
char packet[MAXBUF];
|
||||
UINT packet_len;
|
||||
|
||||
@@ -22,7 +22,7 @@ CPU=$(_BUILDARCH)
|
||||
|
||||
TARGETNAME=passthru
|
||||
TARGETTYPE=PROGRAM
|
||||
TARGETPATH=..\..\install
|
||||
TARGETPATH=..\..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(SDK_LIB_PATH)\setupapi.lib \
|
||||
$(SDK_LIB_PATH)\user32.lib \
|
||||
|
||||
@@ -22,7 +22,7 @@ CPU=$(_BUILDARCH)
|
||||
|
||||
TARGETNAME=webfilter
|
||||
TARGETTYPE=PROGRAM
|
||||
TARGETPATH=..\..\install
|
||||
TARGETPATH=..\..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(SDK_LIB_PATH)\setupapi.lib \
|
||||
$(SDK_LIB_PATH)\user32.lib \
|
||||
|
||||
+44
-7
@@ -17,22 +17,59 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Script for MinGW/Linux cross compilation.
|
||||
# NOTE: This script only builds divert.dll, not the driver divert.sys
|
||||
# NOTE: run wddk-build.bat before this script.
|
||||
|
||||
set -e
|
||||
|
||||
ENVS="i586-mingw32msvc amd64-mingw32msvc"
|
||||
|
||||
for ENV in $ENVS
|
||||
do
|
||||
if [ $ENV = "i586-mingw32msvc" ]
|
||||
then
|
||||
CPU=i386
|
||||
else
|
||||
CPU=amd64
|
||||
fi
|
||||
if [ ! -d install/WDDK/$CPU ]
|
||||
then
|
||||
echo "WARNING: missing WDDK build; run wddk-build.bat first"
|
||||
echo "SKIP WDDK-$CPU"
|
||||
continue
|
||||
fi
|
||||
echo "BUILD WDDK-$CPU"
|
||||
CC="$ENV-gcc"
|
||||
if [ -x "`which $CC`" ]
|
||||
then
|
||||
mkdir -p "install/$ENV"
|
||||
echo "$CC -Wall -O2 -Iinclude/ -c dll/divert.c"
|
||||
$CC -Wall -O2 -Iinclude/ -c dll/divert.c
|
||||
echo "$CC -Wall -shared -o install/$ENV/WinDivert.dll divert.o"
|
||||
$CC -Wall -shared -o "install/$ENV/WinDivert.dll" divert.o
|
||||
echo "\tmake install/MINGW/$CPU..."
|
||||
mkdir -p "install/MINGW/$CPU"
|
||||
echo "\tbuild install/MINGW/$CPU/WinDivert.dll..."
|
||||
$CC -Wall -O2 -Iinclude/ -c dll/divert.c -o dll/divert.o
|
||||
$CC -Wall -shared -o "install/MINGW/$CPU/WinDivert.dll" dll/divert.o
|
||||
echo "\tbuild install/MINGW/$CPU/netdump.exe..."
|
||||
$CC -O2 -Iinclude/ examples/netdump/netdump.c \
|
||||
-o "install/MINGW/$CPU/netdump.exe" -lWinDivert -lws2_32 \
|
||||
-L"install/MINGW/$CPU/"
|
||||
echo "\tbuild install/MINGW/$CPU/netfilter.exe..."
|
||||
$CC -O2 -Iinclude/ examples/netfilter/netfilter.c \
|
||||
-o "install/MINGW/$CPU/netfilter.exe" -lWinDivert -lws2_32 \
|
||||
-L"install/MINGW/$CPU/"
|
||||
echo "\tbuild install/MINGW/$CPU/passthru.exe..."
|
||||
$CC -O2 -Iinclude/ examples/passthru/passthru.c \
|
||||
-o "install/MINGW/$CPU/passthru.exe" -lWinDivert -lws2_32 \
|
||||
-L"install/MINGW/$CPU/"
|
||||
echo "\tbuild install/MINGW/$CPU/webfilter.exe..."
|
||||
$CC -O2 -Iinclude/ examples/webfilter/webfilter.c \
|
||||
-o "install/MINGW/$CPU/webfilter.exe" -lWinDivert -lws2_32 \
|
||||
-L"install/MINGW/$CPU/"
|
||||
echo "\tcopy install/MINGW/$CPU/WinDivert.inf..."
|
||||
cp install/WDDK/$CPU/WinDivert.inf install/MINGW/$CPU
|
||||
echo "\tcopy install/MINGW/$CPU/WinDivert.sys..."
|
||||
cp install/WDDK/$CPU/WinDivert.sys install/MINGW/$CPU
|
||||
echo "\tcopy install/MINGW/$CPU/WdfCoInstaller01009.dll..."
|
||||
cp install/WDDK/$CPU/WdfCoInstaller01009.dll install/MINGW/$CPU
|
||||
else
|
||||
echo "$CC: not found"
|
||||
echo "WARNING: $CC not found"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
+100
-42
@@ -23,46 +23,104 @@ set -e
|
||||
VERSION=1.0
|
||||
NAME=WinDivert-$VERSION
|
||||
|
||||
echo -n "COPYING FILES..."
|
||||
INSTALL=install/$NAME
|
||||
mkdir -p $INSTALL
|
||||
cp README $INSTALL
|
||||
cp LICENSE $INSTALL
|
||||
cp sys/divert.inf $INSTALL/WinDivert.inf
|
||||
cp include/divert.h $INSTALL
|
||||
mkdir -p $INSTALL/x86
|
||||
cp install/i386/WinDivert.sys $INSTALL/x86
|
||||
cp install/i386/WdfCoInstaller01009.dll $INSTALL/x86
|
||||
mkdir -p $INSTALL/amd64
|
||||
cp install/amd64/WinDivert.sys $INSTALL/amd64
|
||||
cp install/amd64/WdfCoInstaller01009.dll $INSTALL/amd64
|
||||
echo "DONE"
|
||||
|
||||
PACKAGE=$NAME-MSVC.tar.gz
|
||||
echo -n "BUILDING $PACKAGE..."
|
||||
cp install/i386/WinDivert.dll $INSTALL/x86
|
||||
cp install/amd64/WinDivert.dll $INSTALL/amd64
|
||||
(cd install; tar cvz --owner root --group root -f $PACKAGE $NAME > /dev/null)
|
||||
echo "DONE"
|
||||
|
||||
PACKAGE=$NAME-MSVC.zip
|
||||
echo -n "BUILDING $PACKAGE..."
|
||||
(cd install; zip -r $PACKAGE $NAME > /dev/null)
|
||||
echo "DONE"
|
||||
|
||||
PACKAGE=$NAME-MinGW.tar.gz
|
||||
echo -n "BUILDING $PACKAGE..."
|
||||
cp install/i586-mingw32msvc/WinDivert.dll $INSTALL/x86
|
||||
cp install/amd64-mingw32msvc/WinDivert.dll $INSTALL/amd64
|
||||
(cd install; tar cvz --owner root --group root -f $PACKAGE $NAME > /dev/null)
|
||||
echo "DONE"
|
||||
|
||||
PACKAGE=$NAME-MinGW.zip
|
||||
echo -n "BUILDING $PACKAGE..."
|
||||
(cd install; zip -r $PACKAGE $NAME > /dev/null)
|
||||
echo "DONE"
|
||||
|
||||
echo -n "CLEANING UP..."
|
||||
rm -rf $INSTALL
|
||||
echo "DONE"
|
||||
for TARGET in WDDK MSVC MINGW
|
||||
do
|
||||
if [ ! -d "install/$TARGET" ]
|
||||
then
|
||||
echo "SKIP $NAME-$TARGET"
|
||||
continue
|
||||
fi
|
||||
echo "BUILD $NAME-$TARGET"
|
||||
INSTALL=install/$NAME-$TARGET
|
||||
echo "\tmake $INSTALL..."
|
||||
mkdir -p $INSTALL
|
||||
echo "\tcopy $INSTALL/README..."
|
||||
cp README $INSTALL
|
||||
echo "\tcopy $INSTALL/LICENSE..."
|
||||
cp LICENSE $INSTALL
|
||||
echo "\tmake $INSTALL/include..."
|
||||
mkdir -p $INSTALL/include
|
||||
echo "\tcopy $INSTALL/include/divert.h..."
|
||||
cp include/divert.h $INSTALL/include
|
||||
echo "\tmake $INSTALL/doc..."
|
||||
mkdir -p $INSTALL/doc
|
||||
echo "\tcopy $INSTALL/doc/WinDivert.html..."
|
||||
cp doc/divert.html $INSTALL/doc/WinDivert.html
|
||||
echo "\tmake $INSTALL/x86..."
|
||||
mkdir -p $INSTALL/x86
|
||||
echo "\tcopy $INSTALL/x86/WinDivert.inf..."
|
||||
cp sys/divert.inf $INSTALL/x86/WinDivert.inf
|
||||
echo "\tcopy $INSTALL/x86/WinDivert.sys..."
|
||||
cp install/$TARGET/i386/WinDivert.sys $INSTALL/x86
|
||||
if [ $TARGET != MINGW ]
|
||||
then
|
||||
echo "\tcopy $INSTALL/x86/WinDivert.lib..."
|
||||
cp install/$TARGET/i386/WinDivert.lib $INSTALL/x86
|
||||
fi
|
||||
echo "\tcopy $INSTALL/x86/WinDivert.dll..."
|
||||
cp install/$TARGET/i386/WinDivert.dll $INSTALL/x86
|
||||
echo "\tcopy $INSTALL/x86/WdfCoInstaller01009.dll..."
|
||||
cp install/$TARGET/i386/WdfCoInstaller01009.dll $INSTALL/x86
|
||||
COINST_SIZE=`stat --printf="%s" $INSTALL/x86/WdfCoInstaller01009.dll`
|
||||
if [ $COINST_SIZE -gt 1000000 ]
|
||||
then
|
||||
echo "\tWARNING: using fat WdfCoInstaller01009.dll..."
|
||||
fi
|
||||
echo "\tcopy $INSTALL/x86/netdump.exe..."
|
||||
cp install/$TARGET/i386/netdump.exe $INSTALL/x86
|
||||
echo "\tcopy $INSTALL/x86/netfilter.exe..."
|
||||
cp install/$TARGET/i386/netfilter.exe $INSTALL/x86
|
||||
echo "\tcopy $INSTALL/x86/passtru.exe..."
|
||||
cp install/$TARGET/i386/passthru.exe $INSTALL/x86
|
||||
echo "\tcopy $INSTALL/x86/webfilter.exe..."
|
||||
cp install/$TARGET/i386/webfilter.exe $INSTALL/x86
|
||||
if [ -d "install/$TARGET/amd64" ]
|
||||
then
|
||||
echo "\tmake $INSTALL/amd64..."
|
||||
mkdir -p $INSTALL/amd64
|
||||
echo "\tcopy $INSTALL/amd64/WinDivert.inf..."
|
||||
cp sys/divert.inf $INSTALL/amd64/WinDivert.inf
|
||||
echo "\tcopy $INSTALL/amd64/WinDivert.sys..."
|
||||
cp install/$TARGET/amd64/WinDivert.sys $INSTALL/amd64
|
||||
if [ $TARGET != MINGW ]
|
||||
then
|
||||
echo "\tcopy $INSTALL/amd64/WinDivert.lib..."
|
||||
cp install/$TARGET/amd64/WinDivert.lib $INSTALL/amd64
|
||||
fi
|
||||
echo "\tcopy $INSTALL/amd64/WinDivert.dll..."
|
||||
cp install/$TARGET/amd64/WinDivert.dll $INSTALL/amd64
|
||||
echo "\tcopy $INSTALL/amd64/WdfCoInstaller01009.dll..."
|
||||
cp install/$TARGET/amd64/WdfCoInstaller01009.dll $INSTALL/amd64
|
||||
COINST_SIZE=`stat --printf="%s" $INSTALL/amd64/WdfCoInstaller01009.dll`
|
||||
if [ $COINST_SIZE -gt 1000000 ]
|
||||
then
|
||||
echo "\tWARNING: using fat WdfCoInstaller01009.dll..."
|
||||
fi
|
||||
echo "\tcopy $INSTALL/amd64/netdump.exe..."
|
||||
cp install/$TARGET/amd64/netdump.exe $INSTALL/amd64
|
||||
echo "\tcopy $INSTALL/amd64/netfilter.exe..."
|
||||
cp install/$TARGET/amd64/netfilter.exe $INSTALL/amd64
|
||||
echo "\tcopy $INSTALL/amd64/passtru.exe..."
|
||||
cp install/$TARGET/amd64/passthru.exe $INSTALL/amd64
|
||||
echo "\tcopy $INSTALL/amd64/webfilter.exe..."
|
||||
cp install/$TARGET/amd64/webfilter.exe $INSTALL/amd64
|
||||
else
|
||||
echo "\tWARNING: skipping missing AMD64 build..."
|
||||
fi
|
||||
PACKAGE=$NAME-$TARGET.tar.gz
|
||||
echo "\tbuilding $PACKAGE..."
|
||||
(
|
||||
cd install;
|
||||
tar cvz --owner root --group root -f $PACKAGE $NAME-$TARGET > /dev/null
|
||||
)
|
||||
PACKAGE=$NAME-$TARGET.zip
|
||||
echo "\tbuilding $PACKAGE..."
|
||||
(
|
||||
cd install;
|
||||
zip -r $PACKAGE $NAME-$TARGET > /dev/null
|
||||
)
|
||||
echo -n "\tclean $INSTALL..."
|
||||
rm -rf $INSTALL
|
||||
echo "DONE"
|
||||
done
|
||||
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ CPU=$(_BUILDARCH)
|
||||
|
||||
TARGETNAME=WinDivert
|
||||
TARGETTYPE=DRIVER
|
||||
TARGETPATH=..\install
|
||||
TARGETPATH=..\install\WDDK
|
||||
TARGETLIBS=\
|
||||
$(DDK_LIB_PATH)\wdmsec.lib \
|
||||
$(DDK_LIB_PATH)\ndis.lib \
|
||||
|
||||
Reference in New Issue
Block a user