#----------------------------------------------------------------------
# Build an RPM containing both wxGTK and wxPython
+##set -o xtrace
+
spectemplate=distrib/wxPythonFull.spec.in
if [ ! -d wxPython -o ! -e ${spectemplate} ]; then
#----------------------------------------------------------------------
# Initialization
+version=`python -c "import setup;print setup.VERSION"`
wxpdir=`pwd`
wxdir=${wxpdir}/..
distdir=${wxpdir}/dist
#----------------------------------------------------------------------
# Check parameters
-function useage {
- echo "Usage: $0 wx_version py_version [command flags...]"
- echo " wx_version String to use for version in filenames, etc."
+function usage {
+ echo "Usage: $0 py_version [command flags...]"
echo " py_version String to append to $pythonbin (which python"
echo " version to use.)"
echo ""
}
if [ $# -lt 2 ]; then
- useage
+ usage
exit 1
fi
-version=$1
-pyver=$2
-shift;shift
+pyver=$1
+shift
ver2=`echo ${version} | cut -c 1,2,3`
tarver=${tarname}-${version}
srpm) rpmflag=-bs; ;;
*) echo "Unknown flag \"${flag}\""
- useage
+ usage
exit 1
esac
done
#----------------------------------------------------------------------
# Copy the sources from my CVS workspace
+function cleanup {
+ RMFILES=`find . -name "$1"`
+ if [ "$RMFILES" != "" ]; then
+ rm -rf $RMFILES
+ fi
+}
+
+
if [ -z "${skipcopy}" ]; then
echo "*** Copying CVS tree"
pushd ${builddir} > /dev/null
cp -pf --link ${wxdir}/* ${tarver} > /dev/null 2>&1
# copy all top dirs except CVS, build, demos, utils, samples, and wxPython
- for d in art contrib debian distrib docs include lib locale misc patches src; do
+ for d in art build contrib debian distrib docs include lib locale misc patches src; do
if [ -e ${wxdir}/$d ]; then
cp -Rpf --link ${wxdir}/$d ${tarver} #> /dev/null 2>&1
fi
# now do the same thing for wxPython, skipping it's build dirs and such
mkdir ${tarver}/wxPython
cp -pf --link ${wxdir}/wxPython/* ${tarver}/wxPython > /dev/null 2>&1
- for d in contrib demo distrib distutils docs licence samples scripts src wx wxPython; do
+ for d in contrib demo distrib distutils docs include licence samples scripts src SWIG wx wxPython; do
cp -Rpf --link ${wxdir}/wxPython/$d ${tarver}/wxPython #> /dev/null 2>&1
done
+# cp -Rpf --link ${wxdir}/* ${tarver} > /dev/null 2>&1
+# rm -r ${tarver}/bld*
+# rm -r ${tarver}/wxPython/build*
+# rm -r ${tarver}/wxPython/_build_rpm
echo "*** Removing uneeded stuff from copy of CVS tree"
pushd ${tarver} > /dev/null
- rm `find . -name .cvsignore`
- rm -rf `find . -name CVS`
+ cleanup .cvsignore
+ cleanup CVS
+ cleanup CVSROOT
+ rm BuildCVS.txt
rm *.spec
rm -rf docs/html
rm -rf docs/latex
rm -rf contrib/docs
rm -rf contrib/samples
rm locale/*.mo
- rm `find . -name ".#*"`
- rm `find . -name "*~"`
- rm `find . -name "*.pyc"`
- rm `find . -name "core"`
- rm `find . -name "core.[0-9]*"`
+ cleanup ".#*"
+ cleanup "*~"
+ cleanup "*.pyc"
+ cleanup core
+ cleanup "core.[0-9]*"
- rm -f wxPython/wxPython/* > /dev/null 2>&1
+ rm -f wxPython/wx/* > /dev/null 2>&1
rm wxPython/demo/.setup.sh
- rm -rf wxPython/contrib/art2d
- rm -rf wxPython/contrib/canvas
- rm -rf wxPython/contrib/canvas2
- rm -rf wxPython/contrib/gizmos/contrib
- rm -rf wxPython/contrib/ogl/contrib
- rm -rf wxPython/contrib/stc/contrib
- rm -rf wxPython/contrib/xrc/contrib
+ rm -r wxPython/docs/xml-raw
popd > /dev/null
popd > /dev/null
Provides: wxPython = %{version}
Provides: wxPython%{port} = %{version}
-Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so
-Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2})
-Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so
-Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2})
+# Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so
+# Provides: libwx_%{lcport}%{uniflg}%{dbgflg}-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2})
+# Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so
+# Provides: libwx_%{lcport}%{uniflg}%{dbgflg}_gl-%{ver2}.so(WX%{port}%{UNIFLG}%{DBGFLG}_%{ver2})
# old wxPython packages
#----------------------------------------------------------------
%build
-if [ "$SMP" != "" ]; then
- MAKE="make -j$SMP"
-else
- MAKE="make"
-fi
WXDIR=`pwd`
-mkdir build
-cd build
+mkdir bld
+cd bld
# Configure, trying to reduce external dependencies
-$WXDIR/configure --with-%{lcport} \
+../configure --with-%{lcport} \
--prefix=%{wxpref} \
--disable-soname \
+ --disable-monolithic \
--enable-rpath=%{wxpref}/lib \
--with-opengl \
%if %{unicode}
%endif
-# Build wxWindows
-$MAKE
+# Build wxWindows and some contrib libs
+make
+make -C contrib/src/gizmos
+make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0"
+make -C contrib/src/stc
+make -C contrib/src/xrc
+
+
+# Install wxWindows and the contribs so the wxPython build can find
+# all the headers it needs
+make prefix=$RPM_BUILD_ROOT%{wxpref} install
+make -C contrib/src/gizmos prefix=$RPM_BUILD_ROOT%{wxpref} install
+make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" prefix=$RPM_BUILD_ROOT%{wxpref} install
+make -C contrib/src/stc prefix=$RPM_BUILD_ROOT%{wxpref} install
+make -C contrib/src/xrc prefix=$RPM_BUILD_ROOT%{wxpref} install
# Now build wxPython
cd $WXDIR/wxPython
%{python} setup.py \
- IN_CVS_TREE=1 \
NO_SCRIPTS=1 \
WXPORT=%{lcport} \
UNICODE=%{unicode} \
- WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build" \
+ WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \
build
+## $WXDIR/bld/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/bld"
-
-# Build wxrc (XRC resource tool) but don't use the makefiles since they expect
-# a shared version of the xrc lib to have been built...
-cd $WXDIR/contrib/utils/wxrc
-WX_CONFIG="$WXDIR/build/wx-config --prefix=$WXDIR --exec-prefix=$WXDIR/build"
-wCC=`$WX_CONFIG --cc`
-wCXX=`$WX_CONFIG --cxx`
-
-for f in wxrc.cpp ../../src/xrc/xml.cpp ../../src/xrc/xmlres.cpp; do
- echo $f
- $wCXX `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f
-done
-for f in ../../src/xrc/expat/xmlparse/xmlparse.c ../../src/xrc/expat/xmltok/xmlrole.c ../../src/xrc/expat/xmltok/xmltok.c; do
- echo $f
- $wCC `$WX_CONFIG --cxxflags` -I ../../include -I ../../src/xrc/expat/xmlparse -I ../../src/xrc/expat/xmltok -c $f
-done
-
-$wCXX `$WX_CONFIG --libs` *.o -o wxrc
+# Build wxrc (XRC resource tool)
+cd $WXDIR/bld/contrib/utils/wxrc
+make
strip wxrc
-#----------------------------------------------------------------
-%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-
-# install wxWindows
-WXDIR=`pwd`
-cd build
-make prefix=$RPM_BUILD_ROOT%{wxpref} install
-
# install wxPython
cd $WXDIR/wxPython
%{python} setup.py \
- IN_CVS_TREE=1 \
NO_SCRIPTS=1 \
WXPORT=%{lcport} \
UNICODE=%{unicode} \
install \
--root=$RPM_BUILD_ROOT
+
+#----------------------------------------------------------------
+%install
+##[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+
+WXDIR=`pwd`
+
+# # install wxWindows
+# cd bld
+# make prefix=$RPM_BUILD_ROOT%{wxpref} install
+# make -C contrib/src/gizmos prefix=$RPM_BUILD_ROOT%{wxpref} install
+# make -C contrib/src/ogl CXXFLAGS="-DwxUSE_DEPRECATED=0" prefix=$RPM_BUILD_ROOT%{wxpref} install
+# make -C contrib/src/stc prefix=$RPM_BUILD_ROOT%{wxpref} install
+# make -C contrib/src/xrc prefix=$RPM_BUILD_ROOT%{wxpref} install
+
+# # install wxPython
+# cd $WXDIR/wxPython
+# %{python} setup.py \
+# NO_SCRIPTS=1 \
+# WXPORT=%{lcport} \
+# UNICODE=%{unicode} \
+# WX_CONFIG="$RPM_BUILD_ROOT%{wxpref}/bin/wx-config --prefix=$RPM_BUILD_ROOT%{wxpref}" \
+# install \
+# --root=$RPM_BUILD_ROOT
+
+
+
+
+
+# Other "install" tasks...
+cd $WXDIR/wxPython
+
+# install the wxPython headers
+cp -R include $RPM_BUILD_ROOT%{wxpref}
+mkdir -p $RPM_BUILD_ROOT%{wxpref}/include/wx/wxPython/i_files
+cp src/*.i $RPM_BUILD_ROOT%{wxpref}/include/wx/wxPython/i_files
+
+
# Since I want this RPM to be as generic as possible I won't let
-# distutils copy the scripts since it will mangle the #! line to use
-# the real python pathname. Since some distros install python 2.2 as
-# python2 and others as python, then I can't let distutils do that
-# otherwise the dependencies will be fouled up. Copy them manually
-# instead, leaving the #!/bin/env line intact.
-#
-# TODO: Should this be dependent on %{builtin_libs} or something like it?
+# distutils copy the scripts (NO_SCRIPTS=1 above) since it will mangle
+# the #! line to use the real python pathname. Since some distros
+# install python 2.2 as python2 and others as python I can't let
+# distutils do that otherwise the dependencies will be fouled up.
+# Copy them manually instead, leaving the #!/bin/env line intact.
+# TODO: Should this be dependent on %{builtin_libs} or something like
+# it?
mkdir -p $RPM_BUILD_ROOT%{pref}/bin
for s in \
# Install wxrc
-cp $WXDIR/contrib/utils/wxrc/wxrc $RPM_BUILD_ROOT%{pref}/bin
+cp $WXDIR/bld/contrib/utils/wxrc/wxrc $RPM_BUILD_ROOT%{pref}/bin
# link specific name to generic name
+
# Copy icons and make menu entries
#-- This only works for Mandrake. Is there a cross-distro way to do it?
##mkdir -p $RPM_BUILD_ROOT%{_iconsdir}
# So instead we'll build some explicit filelists here and use %attr on
# each entry.
cd $WXDIR
-mkdir -p $RPM_BUILD_ROOT%{pref}/share/doc
-GFL="%{python} wxPython/distrib/genfilelist.py"
-$GFL $RPM_BUILD_ROOT %{pref} > FILELIST
-$GFL -r $RPM_BUILD_ROOT %{pref}/bin >> FILELIST
-$GFL $RPM_BUILD_ROOT %{pref}/lib >> FILELIST
-$GFL -r $RPM_BUILD_ROOT %{pref}/lib/python%{pyver} >> FILELIST
-$GFL -r $RPM_BUILD_ROOT %{pref}/share >> FILELIST
-$GFL $RPM_BUILD_ROOT %{wxpref} >> FILELIST
-$GFL $RPM_BUILD_ROOT %{wxprefbase} >> FILELIST
-$GFL $RPM_BUILD_ROOT %{wxpref}/lib >> FILELIST
-$GFL $RPM_BUILD_ROOT "%{wxpref}/lib/libwx*" >> FILELIST
-$GFL -r $RPM_BUILD_ROOT %{wxpref}/share >> FILELIST
-###GFL -r $RPM_BUILD_ROOT %{_iconsdir} >> FILELIST
-##$GFL -r $RPM_BUILD_ROOT %{_menudir} >> FILELIST
-
-$GFL $RPM_BUILD_ROOT %{wxpref}/include > DEVELLIST
-$GFL -r $RPM_BUILD_ROOT %{wxpref}/include/wx >> DEVELLIST
-$GFL -r $RPM_BUILD_ROOT %{wxpref}/lib/wx >> DEVELLIST
-$GFL $RPM_BUILD_ROOT %{wxconfigname} >> DEVELLIST
-$GFL $RPM_BUILD_ROOT %{wxpref}/bin/wx-config >> DEVELLIST
+# mkdir -p $RPM_BUILD_ROOT%{pref}/share/doc
+# GFL="%{python} wxPython/distrib/genfilelist.py"
+# $GFL $RPM_BUILD_ROOT %{pref} > FILELIST
+# $GFL -r $RPM_BUILD_ROOT %{pref}/bin >> FILELIST
+# $GFL $RPM_BUILD_ROOT %{pref}/lib >> FILELIST
+# $GFL -r $RPM_BUILD_ROOT %{pref}/lib/python%{pyver} >> FILELIST
+# $GFL -r $RPM_BUILD_ROOT %{pref}/share >> FILELIST
+# $GFL $RPM_BUILD_ROOT %{wxpref} >> FILELIST
+# $GFL $RPM_BUILD_ROOT %{wxprefbase} >> FILELIST
+# $GFL $RPM_BUILD_ROOT %{wxpref}/lib >> FILELIST
+# $GFL $RPM_BUILD_ROOT "%{wxpref}/lib/libwx*" >> FILELIST
+# $GFL -r $RPM_BUILD_ROOT %{wxpref}/share >> FILELIST
+# ###GFL -r $RPM_BUILD_ROOT %{_iconsdir} >> FILELIST
+# ##$GFL -r $RPM_BUILD_ROOT %{_menudir} >> FILELIST
+
+# $GFL $RPM_BUILD_ROOT %{wxpref}/include > DEVELLIST
+# $GFL -r $RPM_BUILD_ROOT %{wxpref}/include/wx >> DEVELLIST
+# $GFL -r $RPM_BUILD_ROOT %{wxpref}/lib/wx >> DEVELLIST
+# $GFL $RPM_BUILD_ROOT %{wxconfigname} >> DEVELLIST
+# $GFL $RPM_BUILD_ROOT %{wxpref}/bin/wx-config >> DEVELLIST
#----------------------------------------------------------------
fi
#----------------------------------------------------------------
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+#%clean
+#[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
#----------------------------------------------------------------
-%files -f FILELIST
+%files
%defattr(-,root,root)
-%doc docs/preamble.txt docs/licence.txt docs/readme.txt docs/changes.txt
-%doc wxPython/README.txt wxPython/CHANGES.txt
+%doc docs/preamble.txt docs/licence.txt docs/lgpl.txt docs/readme.txt docs/changes.txt
%doc wxPython/docs/*
+%{_bindir}/*
+%{_libdir}/python%{pyver}/site-packages/*
+%{wxpref}/lib/libwx*
+%{wxpref}/share
+%{wxprefbase}
-%files -n wxPython%{port}-devel -f DEVELLIST
-%defattr(-,root,root)
+%files -n wxPython%{port}-devel
+%defattr(-,root,root)
+%{wxpref}/include
+%{wxpref}/lib/wx
+%{wxconfigname}
+%{wxpref}/bin/wx-config
#----------------------------------------------------------------
# end of file