Added bash versions of my build scripts and updated BUILD.txt for how
to do it by hand without the scripts git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
137
wxPython/distrib/msw/.make
Normal file
137
wxPython/distrib/msw/.make
Normal file
@@ -0,0 +1,137 @@
|
||||
#! /bin/bash
|
||||
|
||||
|
||||
function error {
|
||||
echo -----------------
|
||||
echo -- ERROR! --
|
||||
echo -----------------
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
if [ "$1" == "both" ]; then
|
||||
shift
|
||||
.make debug $@ && .make hybrid $@
|
||||
exit $?
|
||||
|
||||
elif [ "$1" == "both-uni" ]; then
|
||||
shift
|
||||
.make debug-uni $@ && .make hybrid-uni $@
|
||||
exit $?
|
||||
|
||||
elif [ "$1" == "both-hybrid" ]; then
|
||||
shift
|
||||
.make hybrid $@ && .make hybrid-uni $@
|
||||
exit $?
|
||||
|
||||
elif [ "$1" == "all" ]; then
|
||||
shift
|
||||
.make debug $@ && \
|
||||
.make hybrid $@ && \
|
||||
.make debug-uni $@ && \
|
||||
.make hybrid-uni $@
|
||||
exit $?
|
||||
|
||||
elif [ "$1" == "debug" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=mswd
|
||||
shift
|
||||
|
||||
elif [ "$1" == "hybrid" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=mswh
|
||||
shift
|
||||
|
||||
elif [ "$1" == "release" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=msw
|
||||
shift
|
||||
|
||||
elif [ "$1" == "debug-uni" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=mswud
|
||||
shift
|
||||
|
||||
elif [ "$1" == "hybrid-uni" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=mswuh
|
||||
shift
|
||||
|
||||
elif [ "$1" == "release-uni" ]; then
|
||||
BUILD_TYPE=$1
|
||||
WXLIBDIR=mswu
|
||||
shift
|
||||
|
||||
else
|
||||
echo "Invalid build type: $1 options are"
|
||||
echo " debug"
|
||||
echo " hybrid"
|
||||
echo " debug-uni"
|
||||
echo " hybrid-uni"
|
||||
echo " both"
|
||||
echo " both-uni"
|
||||
echo " both-hybrid"
|
||||
echo " all"
|
||||
echo " release"
|
||||
echo " release-uni"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd $WXWIN/build/msw
|
||||
cd $WXWIN/build/msw
|
||||
nmake -f .makesetup.mk $WXWIN/lib/vc_dll/$WXLIBDIR/wx/setup.h
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd $WXWIN/build/msw
|
||||
cd $WXWIN/build/msw
|
||||
$WXWIN/build/msw/.mymake $BUILD_TYPE $@
|
||||
if [ ! $? ]; then error; fi
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd ../../contrib/build/gizmos
|
||||
cd ../../contrib/build/gizmos
|
||||
$WXWIN/build/msw/.mymake $BUILD_TYPE $@
|
||||
if [ ! $? ]; then error; fi
|
||||
cd -
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd ../../contrib/build/xrc
|
||||
cd ../../contrib/build/xrc
|
||||
$WXWIN/build/msw/.mymake $BUILD_TYPE $@
|
||||
if [ ! $? ]; then error; fi
|
||||
cd -
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd ../../contrib/build/stc
|
||||
cd ../../contrib/build/stc
|
||||
$WXWIN/build/msw/.mymake $BUILD_TYPE $@
|
||||
if [ ! $? ]; then error; fi
|
||||
cd -
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd ../../contrib/build/ogl
|
||||
cd ../../contrib/build/ogl
|
||||
$WXWIN/build/msw/.mymake $BUILD_TYPE CPPFLAGS="-DwxUSE_DEPRECATED=0" $@
|
||||
if [ ! $? ]; then error; fi
|
||||
cd -
|
||||
|
||||
|
||||
|
||||
echo -----------------
|
||||
echo -- SUCCESS! --
|
||||
echo -----------------
|
||||
# copy DLLs to a dir on the PATH
|
||||
# copy /U $WXWIN/lib/vc_dll/*.dll $WXWIN/BIN
|
||||
# copy /U $WXWIN/lib/vc_dll/*.pdb $WXWIN/BIN
|
||||
exit 0
|
||||
|
||||
|
||||
|
||||
|
@@ -4,28 +4,28 @@ setlocal
|
||||
|
||||
iff "%1" == "both" then
|
||||
shift
|
||||
call .make debug %$ & if %? != 0 quit %?
|
||||
call .make hybrid %$ & if %? != 0 quit %?
|
||||
call .make.btm debug %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid %$ & if %? != 0 quit %?
|
||||
quit
|
||||
|
||||
elseiff "%1" == "both-uni" then
|
||||
shift
|
||||
call .make debug-uni %$ & if %? != 0 quit %?
|
||||
call .make hybrid-uni %$ & if %? != 0 quit %?
|
||||
call .make.btm debug-uni %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid-uni %$ & if %? != 0 quit %?
|
||||
quit
|
||||
|
||||
elseiff "%1" == "both-hybrid" then
|
||||
shift
|
||||
call .make hybrid %$ & if %? != 0 quit %?
|
||||
call .make hybrid-uni %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid-uni %$ & if %? != 0 quit %?
|
||||
quit
|
||||
|
||||
elseiff "%1" == "all" then
|
||||
shift
|
||||
call .make debug %$ & if %? != 0 quit %?
|
||||
call .make hybrid %$ & if %? != 0 quit %?
|
||||
call .make debug-uni %$ & if %? != 0 quit %?
|
||||
call .make hybrid-uni %$ & if %? != 0 quit %?
|
||||
call .make.btm debug %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid %$ & if %? != 0 quit %?
|
||||
call .make.btm debug-uni %$ & if %? != 0 quit %?
|
||||
call .make.btm hybrid-uni %$ & if %? != 0 quit %?
|
||||
quit
|
||||
|
||||
elseiff "%1" == "debug" then
|
||||
@@ -73,21 +73,21 @@ nmake -f .makesetup.mk %WXWIN%\lib\vc_dll\%WXLIBDIR%\wx\setup.h
|
||||
echo ------------------
|
||||
echo cd %WXWIN%\build\msw
|
||||
cd %WXWIN%\build\msw
|
||||
call %WXWIN%\build\msw\.mymake %BUILD_TYPE% %$
|
||||
call %WXWIN%\build\msw\.mymake.btm %BUILD_TYPE% %$
|
||||
if %? != 0 goto done
|
||||
|
||||
|
||||
echo ------------------
|
||||
echo cd ..\..\contrib\build\gizmos
|
||||
cd ..\..\contrib\build\gizmos
|
||||
call %WXWIN%\build\msw\.mymake %BUILD_TYPE% %$
|
||||
call %WXWIN%\build\msw\.mymake.btm %BUILD_TYPE% %$
|
||||
if %? != 0 goto done
|
||||
cd -
|
||||
|
||||
echo ------------------
|
||||
echo cd ..\..\contrib\build\xrc
|
||||
cd ..\..\contrib\build\xrc
|
||||
call %WXWIN%\build\msw\.mymake %BUILD_TYPE% %$
|
||||
call %WXWIN%\build\msw\.mymake.btm %BUILD_TYPE% %$
|
||||
if %? != 0 goto done
|
||||
cd -
|
||||
|
||||
@@ -95,7 +95,7 @@ cd -
|
||||
echo ------------------
|
||||
echo cd ..\..\contrib\build\stc
|
||||
cd ..\..\contrib\build\stc
|
||||
call %WXWIN%\build\msw\.mymake %BUILD_TYPE% %$
|
||||
call %WXWIN%\build\msw\.mymake.btm %BUILD_TYPE% %$
|
||||
if %? != 0 goto done
|
||||
cd -
|
||||
|
||||
@@ -103,7 +103,7 @@ cd -
|
||||
echo ------------------
|
||||
echo cd ..\..\contrib\build\ogl
|
||||
cd ..\..\contrib\build\ogl
|
||||
call %WXWIN%\build\msw\.mymake %BUILD_TYPE% CXX="cl -DwxUSE_DEPRECATED=0" %$
|
||||
call %WXWIN%\build\msw\.mymake.btm %BUILD_TYPE% CXX="cl -DwxUSE_DEPRECATED=0" %$
|
||||
if %? != 0 goto done
|
||||
cd -
|
||||
|
||||
|
18
wxPython/distrib/msw/.make_tools
Normal file
18
wxPython/distrib/msw/.make_tools
Normal file
@@ -0,0 +1,18 @@
|
||||
#! /bin/bash
|
||||
|
||||
nmake -f .makesetup.mk $WXWIN/lib/vc_lib/msw/wx/setup.h
|
||||
nmake -f makefile.vc BUILD=release $@
|
||||
|
||||
cd $WXWIN/contrib/build/xrc
|
||||
nmake -f makefile.vc BUILD=release $@
|
||||
|
||||
cd $WXWIN/contrib/utils/wxrc
|
||||
nmake -f makefile.vc BUILD=release $@
|
||||
cp vc_msw/wxrc.exe $WXWIN/lib/vc_dll/wxrc.exe
|
||||
|
||||
|
||||
cd $WXWIN/utils/tex2rtf/src
|
||||
nmake -f makefile.vc BUILD=release $@
|
||||
cp vc_msw/tex2rtf.exe $WXWIN/lib/vc_dll/tex2rtf.exe
|
||||
|
||||
|
@@ -7,6 +7,8 @@ FILES= $(DIR)\vc_dll\mswd\wx\setup.h \
|
||||
$(DIR)\vc_dll\mswuh\wx\setup.h \
|
||||
$(DIR)\vc_dll\msw\wx\setup.h \
|
||||
$(DIR)\vc_dll\mswu\wx\setup.h \
|
||||
\
|
||||
$(DIR)\vc_lib\msw\wx\setup.h \
|
||||
|
||||
|
||||
UNI_SEDCMD=sed "s!wxUSE_UNICODE 0!wxUSE_UNICODE 1!g;s!wxUSE_UNICODE_MSLU 0!wxUSE_UNICODE_MSLU 1!g"
|
||||
@@ -14,7 +16,8 @@ HYB_SEDCMD=sed "s!wxUSE_MEMORY_TRACING 1!wxUSE_MEMORY_TRACING 0!g;s!wxUSE_DEBUG_
|
||||
|
||||
all : $(FILES)
|
||||
|
||||
|
||||
test :
|
||||
echo $(DIR)\vc_lib\msw\wx\setup.h
|
||||
|
||||
# debug
|
||||
$(DIR)\vc_dll\mswd\wx\setup.h : $(SRC) .makesetup.mk
|
||||
@@ -31,6 +34,10 @@ $(DIR)\vc_dll\msw\wx\setup.h : $(SRC) .makesetup.mk
|
||||
-if not exist $(DIR)\vc_dll\msw\wx mkdir /s $(DIR)\vc_dll\msw\wx
|
||||
cat $(SRC) > $@
|
||||
|
||||
$(DIR)\vc_lib\msw\wx\setup.h : $(SRC) .makesetup.mk
|
||||
-if not exist $(DIR)\vc_lib\msw\wx mkdir /s $(DIR)\vc_lib\msw\wx
|
||||
cat $(SRC) > $@
|
||||
|
||||
# debug-uni
|
||||
$(DIR)\vc_dll\mswud\wx\setup.h : $(SRC) .makesetup.mk
|
||||
-if not exist $(DIR)\vc_dll\mswud\wx mkdir /s $(DIR)\vc_dll\mswud\wx
|
||||
|
52
wxPython/distrib/msw/.mymake
Normal file
52
wxPython/distrib/msw/.mymake
Normal file
@@ -0,0 +1,52 @@
|
||||
#! /bin/bash
|
||||
|
||||
COMMON_FLAGS="OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=0 USE_OPENGL=1"
|
||||
HYBRID_FLAGS="DEBUG_FLAG=1 CXXFLAGS=/D__NO_VC_CRTDBG__ WXDEBUGFLAG=h"
|
||||
MAKE_FLAGS=$COMMON_FLAGS
|
||||
|
||||
|
||||
# set flags based on build type if given
|
||||
if [ "$1" = "debug" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=debug UNICODE=0 MSLU=0"
|
||||
shift
|
||||
|
||||
elif [ "$1" = "hybrid" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=release $HYBRID_FLAGS UNICODE=0 MSLU=0"
|
||||
shift
|
||||
|
||||
elif [ "$1" = "release" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=release UNICODE=0 MSLU=0"
|
||||
shift
|
||||
|
||||
elif [ "$1" = "debug-uni" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=debug UNICODE=1 MSLU=1"
|
||||
shift
|
||||
|
||||
elif [ "$1" = "hybrid-uni" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=release $HYBRID_FLAGS UNICODE=1 MSLU=1"
|
||||
shift
|
||||
|
||||
elif [ "$1" = "release-uni" ]; then
|
||||
MAKE_FLAGS="$COMMON_FLAGS BUILD=release UNICODE=1 MSLU=1"
|
||||
shift
|
||||
else
|
||||
echo "----------------------------------------------"
|
||||
echo " Build type not specified"
|
||||
echo " debug"
|
||||
echo " hybrid"
|
||||
echo " release"
|
||||
echo " debug-uni"
|
||||
echo " hybrid-uni"
|
||||
echo " release-uni"
|
||||
echo "----------------------------------------------"
|
||||
fi
|
||||
|
||||
|
||||
# now run nmake, echoing the command-line first
|
||||
echo nmake -f makefile.vc $MAKE_FLAGS $@
|
||||
nmake -f makefile.vc $MAKE_FLAGS $@
|
||||
|
||||
# quit with nmake's exit code
|
||||
exit $?
|
||||
|
||||
|
@@ -246,16 +246,25 @@ version is fine, and you can use the regular python executables with
|
||||
it.
|
||||
|
||||
Just like the unix versions I also use some scripts to help me build
|
||||
wxWidgets, but I use some non-standard stuff to do it. So if you want
|
||||
to use my scripts you'll need to get a copy or 4DOS or 4NT from
|
||||
http://www.jpsoft.com/ and also a copy of unix-like cat and sed
|
||||
programs. You can also do by hand what my scripts are doing, but
|
||||
there are alot of steps involved and I won't be going into details
|
||||
here. There is a copy of my build scripts in %WXDIR%\\wxPython\\distrib\\msw
|
||||
that you can use for reference (if you don't use them directly) for
|
||||
adapting these instructions to your specific needs. The directions
|
||||
below assume that you are using my scripts.
|
||||
wxWidgets, but I use some non-standard stuff to do it. So if you have
|
||||
bash (cygwin or probably MSYS too) or 4NT plus unix-like cat and sed
|
||||
programs then there is a copy of my wxWidgets build scripts in
|
||||
%WXDIR%\\wxPython\\distrib\\msw. Just copy them to
|
||||
%WXDIR%\\build\\msw and you can use them to do your build, otherwise
|
||||
you can do everything by hand as described below. But if you do work
|
||||
by hand and something doesn't seem to be working correctly please
|
||||
refer to the build scripts to see what may need to be done
|
||||
differently.
|
||||
|
||||
The *.btm files are for 4NT and the others are for bash. They are:
|
||||
|
||||
.make/.make.btm Builds the main lib and the needed contribs
|
||||
.mymake/.mymake.btm Builds just one lib, use by .make
|
||||
.makesetup.mk A makefile that will copy and edit setup.h
|
||||
as needed for the different types of builds
|
||||
|
||||
Okay. Here's what you've been waiting for, the instructions! Adapt
|
||||
accordingly if you are using the bash shell.
|
||||
|
||||
1. Set an environment variable to the root of the wxWidgets source
|
||||
tree. This is used by the makefiles::
|
||||
@@ -268,10 +277,7 @@ below assume that you are using my scripts.
|
||||
copy setup0.h setup.h
|
||||
|
||||
|
||||
3. Edit %WXDIR%\\include\\wx\\msw\\setup.h and change a few settings.
|
||||
Some of them are changed by my build scripts depending on the type
|
||||
of build (debug/hybrid, unicode/ansi). I change a few of the other
|
||||
defaults to have these values::
|
||||
3. Edit %WXDIR%\\include\\wx\\msw\\setup.h and change a few settings::
|
||||
|
||||
wxDIALOG_UNIT_COMPATIBILITY 0
|
||||
wxUSE_DEBUG_CONTEXT 1
|
||||
@@ -281,21 +287,35 @@ below assume that you are using my scripts.
|
||||
wxUSE_POSTSCRIPT 1
|
||||
wxUSE_AFM_FOR_POSTSCRIPT 0
|
||||
wxUSE_DISPLAY 1
|
||||
|
||||
|
||||
If you are using my build scripts then a few more settings will be
|
||||
changed and then a copy of setup.h is placed in a subdir of
|
||||
%WXWIN%\\lib\vc_dll. If you are doing it by hand and making a
|
||||
UNICODE build, then also change these::
|
||||
|
||||
wxUSE_UNICODE 1
|
||||
wxUSE_UNICODE_MSLU 1
|
||||
|
||||
If you are doing a "hybrid" build (which is the same as the
|
||||
binaries that I release) then also change these::
|
||||
|
||||
wxUSE_MEMORY_TRACING 0
|
||||
wxUSE_DEBUG_CONTEXT 0
|
||||
|
||||
|
||||
4. Make sure that %WXDIR%\\lib\\vc_dll directory is on the PATH. The
|
||||
wxWidgets DLLs will end up there as part of the build and so you'll
|
||||
need it on the PATH for them to be found at runtime.
|
||||
|
||||
|
||||
5. Change to the %WXDIR%\\build\\msw directory and copy my build scripts
|
||||
there from their default location in %WXDIR%\\wxPython\\distrib\\msw
|
||||
if they are not present already.
|
||||
5. Change to the %WXDIR%\\build\\msw directory
|
||||
|
||||
cd %WXDIR%\\build\\msw
|
||||
|
||||
|
||||
6. Use the .make.btm command to build wxWidgets. It needs one
|
||||
command-line parameter which controls what kind of build(s) to do.
|
||||
Use one of the following::
|
||||
6. If using my scripts then use the .make.btm command to build
|
||||
wxWidgets. It needs one command-line parameter which controls what
|
||||
kind of build(s) to do. Use one of the following::
|
||||
|
||||
debug Build debug version
|
||||
hybrid Build hybrid version
|
||||
@@ -308,16 +328,44 @@ below assume that you are using my scripts.
|
||||
|
||||
.make hybrid
|
||||
|
||||
You can also pass additional command line parameters as needed and
|
||||
they will all be passed on to the nmake commands, for example to
|
||||
clean up the build::
|
||||
You can also pass additional command line parameters as needed and
|
||||
they will all be passed on to the nmake commands, for example to
|
||||
clean up the build::
|
||||
|
||||
.make hybrid clean
|
||||
|
||||
If *not* using my scripts then you can do it by hand by directly
|
||||
executing nmake with a bunch of extra command line parameters.
|
||||
The base set are::
|
||||
|
||||
7. When that is done it will have built the main wxWidgets DLLs and
|
||||
also some of the contribs DLLs. There should be a ton of DLLs and
|
||||
lots of lib files and other stuff in %WXDIR%\\lib\\vc_dll.
|
||||
-f makefile.vc OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=0 USE_OPENGL=1
|
||||
|
||||
If doing a debug build then add::
|
||||
|
||||
BUILD=debug
|
||||
|
||||
otherwise add these::
|
||||
|
||||
DEBUG_FLAG=1 CXXFLAGS=/D__NO_VC_CRTDBG__ WXDEBUGFLAG=h BUILD=release
|
||||
|
||||
If doing a Unicode build then add these flags::
|
||||
|
||||
UNICODE=1 MSLU=1
|
||||
|
||||
Now, from the %WXDIR%\\build\\msw directory run nmake with your
|
||||
selection of command-line flags as described above. Repeat this
|
||||
same command from the following directories in order to build the
|
||||
contrib libraries::
|
||||
|
||||
%WXDIR%\contrib\build\gizmos
|
||||
%WXDIR%\contrib\build\xrc
|
||||
%WXDIR%\contrib\build\stc
|
||||
%WXDIR%\contrib\build\ogl
|
||||
|
||||
|
||||
7. When that is all done it will have built the main wxWidgets DLLs
|
||||
and also some of the contribs DLLs. There should be a ton of DLLs
|
||||
and lots of lib files and other stuff in %WXDIR%\\lib\\vc_dll.
|
||||
|
||||
|
||||
8. Building wxPython on Windows is very similar to doing it for the
|
||||
@@ -329,7 +377,7 @@ below assume that you are using my scripts.
|
||||
development version please refer to INSTALL.txt.
|
||||
|
||||
Change to the %WXDIR%\\wxPython dir and run the this command,
|
||||
makeing sure that you use the version of python that you want to
|
||||
making sure that you use the version of python that you want to
|
||||
build for (if you have more than one on your system)::
|
||||
|
||||
cd %WXDIR%\wxPython
|
||||
|
Reference in New Issue
Block a user