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:
Robin Dunn
2004-06-08 23:42:22 +00:00
parent ad3fca675f
commit a8dc231770
6 changed files with 305 additions and 43 deletions

137
wxPython/distrib/msw/.make Normal file
View 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

View File

@@ -4,28 +4,28 @@ setlocal
iff "%1" == "both" then iff "%1" == "both" then
shift shift
call .make debug %$ & if %? != 0 quit %? call .make.btm debug %$ & if %? != 0 quit %?
call .make hybrid %$ & if %? != 0 quit %? call .make.btm hybrid %$ & if %? != 0 quit %?
quit quit
elseiff "%1" == "both-uni" then elseiff "%1" == "both-uni" then
shift shift
call .make debug-uni %$ & if %? != 0 quit %? call .make.btm debug-uni %$ & if %? != 0 quit %?
call .make hybrid-uni %$ & if %? != 0 quit %? call .make.btm hybrid-uni %$ & if %? != 0 quit %?
quit quit
elseiff "%1" == "both-hybrid" then elseiff "%1" == "both-hybrid" then
shift shift
call .make hybrid %$ & if %? != 0 quit %? call .make.btm hybrid %$ & if %? != 0 quit %?
call .make hybrid-uni %$ & if %? != 0 quit %? call .make.btm hybrid-uni %$ & if %? != 0 quit %?
quit quit
elseiff "%1" == "all" then elseiff "%1" == "all" then
shift shift
call .make debug %$ & if %? != 0 quit %? call .make.btm debug %$ & if %? != 0 quit %?
call .make hybrid %$ & if %? != 0 quit %? call .make.btm hybrid %$ & if %? != 0 quit %?
call .make debug-uni %$ & if %? != 0 quit %? call .make.btm debug-uni %$ & if %? != 0 quit %?
call .make hybrid-uni %$ & if %? != 0 quit %? call .make.btm hybrid-uni %$ & if %? != 0 quit %?
quit quit
elseiff "%1" == "debug" then elseiff "%1" == "debug" then
@@ -73,21 +73,21 @@ nmake -f .makesetup.mk %WXWIN%\lib\vc_dll\%WXLIBDIR%\wx\setup.h
echo ------------------ echo ------------------
echo cd %WXWIN%\build\msw echo cd %WXWIN%\build\msw
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 if %? != 0 goto done
echo ------------------ echo ------------------
echo cd ..\..\contrib\build\gizmos echo cd ..\..\contrib\build\gizmos
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 if %? != 0 goto done
cd - cd -
echo ------------------ echo ------------------
echo cd ..\..\contrib\build\xrc echo cd ..\..\contrib\build\xrc
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 if %? != 0 goto done
cd - cd -
@@ -95,7 +95,7 @@ cd -
echo ------------------ echo ------------------
echo cd ..\..\contrib\build\stc echo cd ..\..\contrib\build\stc
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 if %? != 0 goto done
cd - cd -
@@ -103,7 +103,7 @@ cd -
echo ------------------ echo ------------------
echo cd ..\..\contrib\build\ogl echo cd ..\..\contrib\build\ogl
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 if %? != 0 goto done
cd - cd -

View 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

View File

@@ -7,6 +7,8 @@ FILES= $(DIR)\vc_dll\mswd\wx\setup.h \
$(DIR)\vc_dll\mswuh\wx\setup.h \ $(DIR)\vc_dll\mswuh\wx\setup.h \
$(DIR)\vc_dll\msw\wx\setup.h \ $(DIR)\vc_dll\msw\wx\setup.h \
$(DIR)\vc_dll\mswu\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" 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) all : $(FILES)
test :
echo $(DIR)\vc_lib\msw\wx\setup.h
# debug # debug
$(DIR)\vc_dll\mswd\wx\setup.h : $(SRC) .makesetup.mk $(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 -if not exist $(DIR)\vc_dll\msw\wx mkdir /s $(DIR)\vc_dll\msw\wx
cat $(SRC) > $@ 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 # debug-uni
$(DIR)\vc_dll\mswud\wx\setup.h : $(SRC) .makesetup.mk $(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 -if not exist $(DIR)\vc_dll\mswud\wx mkdir /s $(DIR)\vc_dll\mswud\wx

View 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 $?

View File

@@ -246,16 +246,25 @@ version is fine, and you can use the regular python executables with
it. it.
Just like the unix versions I also use some scripts to help me build 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 wxWidgets, but I use some non-standard stuff to do it. So if you have
to use my scripts you'll need to get a copy or 4DOS or 4NT from bash (cygwin or probably MSYS too) or 4NT plus unix-like cat and sed
http://www.jpsoft.com/ and also a copy of unix-like cat and sed programs then there is a copy of my wxWidgets build scripts in
programs. You can also do by hand what my scripts are doing, but %WXDIR%\\wxPython\\distrib\\msw. Just copy them to
there are alot of steps involved and I won't be going into details %WXDIR%\\build\\msw and you can use them to do your build, otherwise
here. There is a copy of my build scripts in %WXDIR%\\wxPython\\distrib\\msw you can do everything by hand as described below. But if you do work
that you can use for reference (if you don't use them directly) for by hand and something doesn't seem to be working correctly please
adapting these instructions to your specific needs. The directions refer to the build scripts to see what may need to be done
below assume that you are using my scripts. 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 1. Set an environment variable to the root of the wxWidgets source
tree. This is used by the makefiles:: tree. This is used by the makefiles::
@@ -268,10 +277,7 @@ below assume that you are using my scripts.
copy setup0.h setup.h copy setup0.h setup.h
3. Edit %WXDIR%\\include\\wx\\msw\\setup.h and change a few settings. 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::
wxDIALOG_UNIT_COMPATIBILITY 0 wxDIALOG_UNIT_COMPATIBILITY 0
wxUSE_DEBUG_CONTEXT 1 wxUSE_DEBUG_CONTEXT 1
@@ -282,20 +288,34 @@ below assume that you are using my scripts.
wxUSE_AFM_FOR_POSTSCRIPT 0 wxUSE_AFM_FOR_POSTSCRIPT 0
wxUSE_DISPLAY 1 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 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 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. 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 5. Change to the %WXDIR%\\build\\msw directory
there from their default location in %WXDIR%\\wxPython\\distrib\\msw
if they are not present already. cd %WXDIR%\\build\\msw
6. Use the .make.btm command to build wxWidgets. It needs one 6. If using my scripts then use the .make.btm command to build
command-line parameter which controls what kind of build(s) to do. wxWidgets. It needs one command-line parameter which controls what
Use one of the following:: kind of build(s) to do. Use one of the following::
debug Build debug version debug Build debug version
hybrid Build hybrid version hybrid Build hybrid version
@@ -314,10 +334,38 @@ below assume that you are using my scripts.
.make hybrid clean .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 -f makefile.vc OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=0 USE_OPENGL=1
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. 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 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. development version please refer to INSTALL.txt.
Change to the %WXDIR%\\wxPython dir and run the this command, 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):: build for (if you have more than one on your system)::
cd %WXDIR%\wxPython cd %WXDIR%\wxPython