Kaydet (Commit) 4f8bd30b authored tarafından Ariel Constenla-Haile's avatar Ariel Constenla-Haile

Hack to build with VS2008 Express and ATL/ActiveX enabled

üst aba80407
...@@ -167,13 +167,62 @@ AC_ARG_ENABLE(directx, ...@@ -167,13 +167,62 @@ AC_ARG_ENABLE(directx,
AC_ARG_ENABLE(activex, AC_ARG_ENABLE(activex,
[ --disable-activex Disable the use of ActiveX for windows build. [ --disable-activex Disable the use of ActiveX for windows build.
This switch is mandatory when using VC++ 2005/2008 Express. This switch is mandatory when using VC++ 2005/2008 Express.
Alternatively you can use the Windows Driver Kit (WDK) and
configure with the following switches:
--with-atl-include-dir=$WDK_HOME\inc\atl71
--with-atl-lib-dir=$WDK_HOME\lib\ATL\i386
--with-mfc-include-dir=$WDK_HOME\inc\mfc42
--with-mfc-lib-dir=$WDK_HOME\lib\Mfc\i386
],,) ],,)
AC_ARG_ENABLE(atl, AC_ARG_ENABLE(atl,
[ --disable-atl Disable the use of ATL for windows build. [ --disable-atl Disable the use of ATL for windows build.
This switch is mandatory when using VC++ 2005/2008 Express. This switch is mandatory when using VC++ 2005/2008 Express.
Alternatively you can use the Windows Driver Kit (WDK) and
configure with the following switches:
--with-atl-include-dir=$WDK_HOME\inc\atl71
--with-atl-lib-dir=$WDK_HOME\lib\ATL\i386
--with-mfc-include-dir=$WDK_HOME\inc\mfc42
--with-mfc-lib-dir=$WDK_HOME\lib\Mfc\i386
],,) ],,)
AC_ARG_WITH(atl-include-dir,
[ --with-atl-include-dir Path to ATL include directory for windows build.
This switch is mandatory when using VC++ 2008 Express
and configuring with ATL/ActiveX enabled.
You can use the Windows Driver Kit (WDK) and
configure with the following switch:
--with-atl-include-dir=$WDK_HOME\inc\atl71
],,)
AC_ARG_WITH(atl-lib-dir,
[ --with-atl-lib-dir Path to ATL libraries directory for windows build.
This switch is mandatory when using VC++ 2008 Express
and configuring with ATL/ActiveX enabled.
You can use the Windows Driver Kit (WDK) and
configure with the following switch:
--with-atl-lib-dir=$WDK_HOME\lib\ATL\i386
],,)
AC_ARG_WITH(mfc-include-dir,
[ --with-mfc-include-dir Path to MFC include directory for windows build.
This switch is mandatory when using VC++ 2008 Express
and configuring with ATL/ActiveX enabled.
You can use the Windows Driver Kit (WDK) and
configure with the following switch:
--with-mfc-include-dir=$WDK_HOME\inc\mfc42
],,)
AC_ARG_WITH(mfc-lib-dir,
[ --with-mfc-lib-dir Path to MFC libraries directory for windows build.
This switch is mandatory when using VC++ 2008 Express
and configuring with ATL/ActiveX enabled.
You can use the Windows Driver Kit (WDK) and
configure with the following switch:
--with-mfc-lib-dir=$WDK_HOME\lib\Mfc\i386
],,)
AC_ARG_ENABLE(symbols, AC_ARG_ENABLE(symbols,
[ --enable-symbols Include debugging symbols in output. [ --enable-symbols Include debugging symbols in output.
WARNING - a complete build needs 8 Gb of space and WARNING - a complete build needs 8 Gb of space and
...@@ -5694,6 +5743,97 @@ AC_SUBST(ENABLE_DIRECT_DRAW) ...@@ -5694,6 +5743,97 @@ AC_SUBST(ENABLE_DIRECT_DRAW)
AC_SUBST(DIRECTXSDK_HOME) AC_SUBST(DIRECTXSDK_HOME)
AC_SUBST(DIRECTXSDK_LIB) AC_SUBST(DIRECTXSDK_LIB)
dnl ============================================
dnl Check for ATL and MFC
dnl ============================================
if test \( "$_os" = "WINNT" \) ; then
AC_MSG_CHECKING([for ATL and MFC])
if test "$DISABLE_ATL" = "TRUE" -o "$DISABLE_ACTIVEX" = "TRUE" ; then
AC_MSG_RESULT([ATL/MFC disabled])
else
AC_MSG_NOTICE([testing ATL/MFC libs and includes])
if test -z "$with_atl_include_dir"; then
ATL_INCLUDE=$COMPATH/atlmfc/include
else
ATL_INCLUDE=`cygpath -u "$with_atl_include_dir"`
fi
if test -z "$with_atl_lib_dir"; then
ATL_LIB=$COMPATH/atlmfc/lib
else
ATL_LIB=`cygpath -u "$with_atl_lib_dir"`
fi
if test -z "$with_mfc_include_dir"; then
MFC_INCLUDE=$COMPATH/atlmfc/include
else
MFC_INCLUDE=`cygpath -u "$with_mfc_include_dir"`
fi
if test -z "$with_mfc_lib_dir"; then
MFC_LIB=$COMPATH/atlmfc/lib
else
MFC_LIB=`cygpath -u "$with_mfc_lib_dir"`
fi
ATL_INCLUDE=`echo $ATL_INCLUDE | $SED 's/\/$//'`
ATL_LIB=`echo $ATL_LIB | $SED 's/\/$//'`
MFC_INCLUDE=`echo $MFC_INCLUDE | $SED 's/\/$//'`
MFC_LIB=`echo $MFC_LIB | $SED 's/\/$//'`
if test -f "$ATL_INCLUDE/atlase.h"; then
HAVE_ATL_H="yes"
else
HAVA_ATL_H="no"
fi
if test -f "$MFC_INCLUDE/afx.h"; then
HAVE_MFC_H="yes"
else
HAVA_MFC_H="no"
fi
if test -f "$ATL_LIB/atls.lib"; then
HAVE_ATL_LIB="yes"
if test -f "$ATL_LIB/atlthunk.lib"; then
HAVE_ATLTHUNK="YES"
else
HAVE_ATLTHUNK="NO"
fi
else
HAVE_ATL_LIB="no"
fi
dnl TODO check also MFC libraries, they seem to have diferent names
dnl mfc42.lib mfc90.lib
if test -d "$MFC_LIB"; then
HAVE_MFC_LIB="yes"
else
HAVE_MFC_LIB="no"
fi
if test "$HAVE_ATL_H" = "no" -o "$HAVE_MFC_H" = "no" -o "$HAVE_ATL_LIB" = "no" -o "$HAVE_MFC_LIB" = "no"; then
ATL_INCLUDE=
ATL_LIB=
MFC_INCLUDE=
MFC_LIB=
HAVE_ATL_LIB=
dnl TODO shouldn't this be an error?
DISABLE_ACTIVEX="TRUE"
DISABLE_ATL="TRUE"
AC_MSG_RESULT([ATL/MFC disabled])
else
ATL_INCLUDE=`cygpath -dm "$ATL_INCLUDE"`
ATL_LIB=`cygpath -dm "$ATL_LIB"`
MFC_INCLUDE=`cygpath -dm "$MFC_INCLUDE"`
MFC_LIB=`cygpath -dm "$MFC_LIB"`
AC_MSG_RESULT([ATL/MFC enabled])
fi
fi
fi
AC_SUBST(ATL_INCLUDE)
AC_SUBST(ATL_LIB)
AC_SUBST(HAVE_ATLTHUNK)
AC_SUBST(MFC_INCLUDE)
AC_SUBST(MFC_LIB)
dnl ============================================ dnl ============================================
dnl Check for Nullsoft Scriptable Install System dnl Check for Nullsoft Scriptable Install System
dnl ============================================ dnl ============================================
......
...@@ -80,9 +80,11 @@ SHL1STDLIBS=\ ...@@ -80,9 +80,11 @@ SHL1STDLIBS=\
.IF "$(COM)"!="GCC" .IF "$(COM)"!="GCC"
.IF "$(CCNUMVER)" > "001300000000" .IF "$(CCNUMVER)" > "001300000000"
SHL1STDLIBS+= $(ATL_LIB)$/atls.lib SHL1STDLIBS+= $(ATL_LIB)$/atls.lib
.IF "$(HAVE_ATLTHUNK)" == "YES"
SHL1STDLIBS+= $(ATL_LIB)$/atlthunk.lib SHL1STDLIBS+= $(ATL_LIB)$/atlthunk.lib
.ENDIF .ENDIF
.ENDIF .ENDIF
.ENDIF
# $(KERNEL32LIB) \ # $(KERNEL32LIB) \
......
...@@ -107,7 +107,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL, ...@@ -107,7 +107,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL,
$PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, $PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB,
$SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL, $SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL,
$COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME, $COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME,
$USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR, $USE_DIRECTX5, $ATL_LIB, $HAVE_ATLTHUNK, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR,
$COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS, $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS,
$WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD, $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD,
$PROEXT, $TARFILE_LOCATION, $PROEXT, $TARFILE_LOCATION,
...@@ -701,10 +701,6 @@ elsif ( $platform =~ m/cygwin/ ) ...@@ -701,10 +701,6 @@ elsif ( $platform =~ m/cygwin/ )
$COMEX = '@COMEX@'; $COMEX = '@COMEX@';
if ( "@COMEX@" eq "10" ) { # .NET 2003 needs M1310 if ( "@COMEX@" eq "10" ) { # .NET 2003 needs M1310
$CVER = "M1310"; $CVER = "M1310";
$ATL_LIB = $COMPATH.$ds."atlmfc".$ds."lib";
$ATL_INCLUDE = $COMPATH.$ds."atlmfc".$ds."include";
$MFC_LIB = "";
$MFC_INCLUDE = "";
} elsif ( "@COMEX@" ge "11" ) { # .NET 2005 needs M1400 } elsif ( "@COMEX@" ge "11" ) { # .NET 2005 needs M1400
if ( "@COMEX@" eq "11" ) { if ( "@COMEX@" eq "11" ) {
$CVER = "M1400"; $CVER = "M1400";
...@@ -713,17 +709,6 @@ elsif ( $platform =~ m/cygwin/ ) ...@@ -713,17 +709,6 @@ elsif ( $platform =~ m/cygwin/ )
} else { # Unsupported } else { # Unsupported
die "Unsupported value for COMEX variable.\n"; die "Unsupported value for COMEX variable.\n";
} }
if ( "@DISABLE_ACTIVEX@" ) {
$ATL_LIB = $PSDK_HOME.$ds."lib"; # Doesn't exist for VSE
$ATL_INCLUDE = $PSDK_HOME.$ds."include".$ds."atl";
$MFC_LIB = $PSDK_HOME.$ds."lib"; # Doesn't exist for VSE
$MFC_INCLUDE = $PSDK_HOME.$ds."include".$ds."mfc";
} else {
$ATL_LIB = $COMPATH.$ds."atlmfc".$ds."lib";
$ATL_INCLUDE = $COMPATH.$ds."atlmfc".$ds."include";
$MFC_LIB = $COMPATH.$ds."atlmfc".$ds."lib";
$MFC_INCLUDE = $PSDK_HOME.$ds."include".$ds."mfc";
}
} }
print "Setting W32 build with bash shell specific values... "; print "Setting W32 build with bash shell specific values... ";
# No speacial treatment for CC an CXX anymore. # No speacial treatment for CC an CXX anymore.
...@@ -1782,15 +1767,14 @@ if ( $platform =~ m/cygwin/ ) ...@@ -1782,15 +1767,14 @@ if ( $platform =~ m/cygwin/ )
ToFile( "WINDOWS_VISTA_PSDK","@WINDOWS_VISTA_PSDK@","e" ); ToFile( "WINDOWS_VISTA_PSDK","@WINDOWS_VISTA_PSDK@","e" );
ToFile( "DIRECTXSDK_LIB", $DIRECTXSDK_LIB, "e" ); ToFile( "DIRECTXSDK_LIB", $DIRECTXSDK_LIB, "e" );
ToFile( "USE_DIRECTX5", $USE_DIRECTX5, "e" ); ToFile( "USE_DIRECTX5", $USE_DIRECTX5, "e" );
ToFile( "ATL_LIB", $ATL_LIB, "e" ); ToFile( "ATL_LIB", "@ATL_LIB@", "e" );
if ( $MINGW ne "yes" ) ToFile( "ATL_INCLUDE", "@ATL_INCLUDE@", "e" );
{ ToFile( "ATL_INCLUDE", $ATL_INCLUDE, "e" ); ToFile( "HAVE_ATLTHUNK", "@HAVE_ATLTHUNK@", "e" );
} ToFile( "MFC_LIB", "@MFC_LIB@", "e" );
ToFile( "MFC_LIB", $MFC_LIB, "e" ); ToFile( "MFC_INCLUDE", "@MFC_INCLUDE@", "e" );
ToFile( "MFC_INCLUDE", $MFC_INCLUDE, "e" );
ToFile( "NSIS_PATH", $NSIS_PATH, "e" ); ToFile( "NSIS_PATH", $NSIS_PATH, "e" );
ToFile( "DISABLE_ACTIVEX", "@DISABLE_ACTIVEX@","e" ); ToFile( "DISABLE_ACTIVEX", "@DISABLE_ACTIVEX@","e" );
ToFile( "DISABLE_ATL", "@DISABLE_ATL@","e" ); ToFile( "DISABLE_ATL", "@DISABLE_ATL@", "e" );
ToFile( "USE_NEW_SDK", $USE_NEW_SDK, "e" ); ToFile( "USE_NEW_SDK", $USE_NEW_SDK, "e" );
# Hack around dmake's mktmp not generating DOS paths. # Hack around dmake's mktmp not generating DOS paths.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment