Files
wxWidgets/debian/rules
Ron Lee d683b85f75 totally rehashed the build system to be much less monolithic, it's now
possible to build subsets of the available packages and easier to add
new packages in a much more modular fashion.
updated for changes to wxPython.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2000-05-22 02:43:31 +00:00

398 lines
12 KiB
Makefile
Executable File

#!/usr/bin/make -f
# debian/rules file to build packages from wxWindows CVS source
#
# Sculpted 13/2/2000 by Ron Lee <ron@debian.org> from new and
# variously stolen code :-)
# It makes copious use of the debhelper utilities written by
# Joey Hess and others.
#export DH_VERBOSE=1
export DH_COMPAT=2
export DH_OPTIONS
release:=$(shell dpkg-parsechangelog | sed -n 's/^Source: wxwindows//p')
# Packages to build:
package_wxbase_lib=libwxbase$(release)
package_wxbase_dev=libwxbase$(release)-dev
package_wxbase_dbg=libwxbase$(release)-dbg
package_gtk_lib=libwxgtk$(release)
package_gtk_dev=libwxgtk$(release)-dev
package_gtk_dbg=libwxgtk$(release)-dbg
package_gtk_py=libwxgtk$(release)-python
package_contrib=wxwin$(release)-contrib
package_contrib_dev=wxwin$(release)-contrib-dev
package_headers=wxwin$(release)-headers
package_doc=wxwin$(release)-doc
package_examples=wxwin$(release)-examples
# Build directories:
objdir_wxbase_shared=objs_wxbase_sh
objdir_wxbase_static=objs_wxbase_st
objdir_gtk_shared=objs_gtk_sh
objdir_gtk_static=objs_gtk_st
objdir_doc_cruft=objs_doc_con
objdir_doc=docs/wxWindows-manual.html
objdir_examples=docs/examples
objdirs=$(objdir_wxbase_shared) $(objdir_wxbase_static) $(objdir_gtk_shared) \
$(objdir_gtk_static) $(objdir_doc) $(objdir_examples)
build_stamps=build-wxbase-shared-stamp build-wxbase-static-stamp \
build-gtk-shared-stamp build-gtk-static-stamp \
build-contrib-shared-stamp build-contrib-static-stamp \
build-gtk-python-stamp build-examples-stamp build-doc-stamp
install_all=install-wxbase-lib install-wxbase-dev install-gtk-lib \
install-gtk-dev install-gtk-contrib install-gtk-contrib-dev \
install-gtk-py install-headers install-doc install-examples
wxconfig:=$(shell pwd)/$(objdir_gtk_shared)/wx-config \
--prefix=$(shell pwd) \
--exec-prefix=$(shell pwd)/$(objdir_gtk_shared)
# The Rules:
debian/control: debian/control.in
sed -e 's/=V/$(release)/g' < debian/control.in > debian/control
debian/wxwin-doc.doc-base: debian/wxwin-doc.doc-base.in
sed -e 's/=V/$(release)/g' < debian/wxwin-doc.doc-base.in > debian/wxwin-doc.doc-base
control-files-stamp: debian/control debian/wxwin-doc.doc-base
dh_testdir
@for f in dirs docs postinst; do \
echo "generating control file $(package_wxbase_lib).$$f"; \
cp debian/libwxbase.$$f debian/$(package_wxbase_lib).$$f; \
done;
@for f in dirs docs files links postinst prerm; do \
echo "generating control file $(package_wxbase_dev).$$f"; \
cp debian/libwxbase-dev.$$f debian/$(package_wxbase_dev).$$f; \
done;
@for f in dirs docs postinst; do \
echo "generating control file $(package_gtk_lib).$$f"; \
cp debian/libwxgtk.$$f debian/$(package_gtk_lib).$$f; \
done;
@for f in dirs docs files links postinst prerm; do \
echo "generating control file $(package_gtk_dev).$$f"; \
cp debian/libwxgtk-dev.$$f debian/$(package_gtk_dev).$$f; \
done;
@for f in dirs docs files postinst prerm; do \
echo "generating control file $(package_gtk_py).$$f"; \
cp debian/libwxgtk-python.$$f debian/$(package_gtk_py).$$f; \
done;
@for f in dirs docs postinst; do \
echo "generating control file $(package_contrib).$$f"; \
cp debian/wxwin-contrib.$$f debian/$(package_contrib).$$f; \
done;
@for f in dirs docs files; do \
echo "generating control file $(package_contrib_dev).$$f"; \
cp debian/wxwin-contrib-dev.$$f debian/$(package_contrib_dev).$$f; \
done;
@for f in dirs docs files; do \
echo "generating control file $(package_headers).$$f"; \
cp debian/wxwin-headers.$$f debian/$(package_headers).$$f; \
done;
@for f in dirs docs doc-base; do \
echo "generating control file $(package_doc).$$f"; \
cp debian/wxwin-doc.$$f debian/$(package_doc).$$f; \
done;
@for f in docs examples; do \
echo "generating control file $(package_examples).$$f"; \
cp debian/wxwin-examples.$$f debian/$(package_examples).$$f; \
done;
touch $@
build: control-files-stamp $(build_stamps)
build-wxbase-shared-stamp:
dh_testdir
mkdir $(objdir_wxbase_shared)
cd $(objdir_wxbase_shared) \
&& ../configure --prefix=/usr \
--disable-gui \
--enable-burnt_name \
--with-zlib=sys \
&& $(MAKE)
touch $@
build-wxbase-static-stamp:
dh_testdir
mkdir $(objdir_wxbase_static)
cd $(objdir_wxbase_static) \
&& ../configure --prefix=/usr \
--disable-gui \
--disable-shared \
--with-zlib=sys \
&& $(MAKE)
touch $@
build-gtk-shared-stamp:
dh_testdir
mkdir $(objdir_gtk_shared)
cd $(objdir_gtk_shared) \
&& ../configure --prefix=/usr \
--with-gtk \
--with-opengl \
--enable-burnt_name \
--with-zlib=sys \
--with-libjpeg=sys \
--with-libpng=sys \
--with-libtiff=sys \
&& $(MAKE)
touch $@
build-gtk-static-stamp:
dh_testdir
mkdir $(objdir_gtk_static)
cd $(objdir_gtk_static) \
&& ../configure --prefix=/usr \
--with-gtk \
--with-opengl \
--disable-shared \
--with-zlib=sys \
--with-libjpeg=sys \
--with-libpng=sys \
--with-libtiff=sys \
&& $(MAKE)
touch $@
build-contrib-shared-stamp: build-gtk-shared-stamp
dh_testdir
cd $(objdir_gtk_shared)/contrib/src && $(MAKE)
touch $@
build-contrib-static-stamp: build-gtk-static-stamp
dh_testdir
cd $(objdir_gtk_static)/contrib/src && $(MAKE)
touch $@
build-gtk-python-stamp: build-gtk-shared-stamp
dh_testdir
cd wxPython/src \
&& touch gtk/*.cpp gtk/*.py \
&& ../distrib/build.py -b WXDIR=../.. WXCONFIG='$(wxconfig)'
touch $@
build-doc-stamp: build-gtk-shared-stamp
dh_testdir
cd $(objdir_gtk_shared)/utils/tex2rtf/src \
&& $(MAKE)
mkdir $(objdir_doc)
mkdir $(objdir_doc_cruft)
cd $(objdir_doc_cruft) \
&& LD_LIBRARY_PATH=../$(objdir_gtk_shared)/lib \
../$(objdir_gtk_shared)/utils/tex2rtf/src/tex2rtf \
../docs/latex/wx/manual.tex ../$(objdir_doc)/wxwin.htm -twice -html
cp docs/latex/wx/*.gif $(objdir_doc)
rm -rf $(objdir_doc_cruft)
rm -f $(objdir_doc)/wxwin.con $(objdir_doc)/wxwin.hh* \
$(objdir_doc)/wxwin.htx $(objdir_doc)/wxwin.ref
touch $@
build-examples-stamp:
dh_testdir
mkdir $(objdir_examples)
cp -a samples $(objdir_examples)
cp -a demos $(objdir_examples)
cp -a wxPython/demo $(objdir_examples)/wxPython
@for d in $(objdir_examples)/demos $(objdir_examples)/samples; do \
(cd $$d \
&& mv Makefile.in Makefile \
&& rm -f configure* \
&& find -name 'Makefile.in' -exec rm -f '{}' ';' \
&& for f in $$(find -type d); do \
if [ -f $$f/makefile.unx ]; then \
mv $$f/makefile.unx $$f/Makefile; \
fi; \
done) \
done;
touch $@
clean: debian/control
dh_testdir
dh_testroot
rm -rf control-files-stamp $(build_stamps) $(objdirs)
-cd wxPython/src && $(MAKE) clean
dh_clean
rm -f debian/$(package_wxbase_lib).*
rm -f debian/$(package_wxbase_dev).*
rm -f debian/$(package_gtk_lib).*
rm -f debian/$(package_gtk_dev).*
rm -f debian/$(package_gtk_py).*
rm -f debian/$(package_contrib).*
rm -f debian/$(package_contrib_dev).*
rm -f debian/$(package_headers).*
rm -f debian/$(package_doc).*
rm -f debian/$(package_examples).*
install: build $(install_all)
install-wxbase-lib: DH_OPTIONS=-p$(package_wxbase_lib)
install-wxbase-lib: build-wxbase-shared-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
cp -a $(objdir_wxbase_shared)/lib/* debian/$(package_wxbase_lib)/usr/lib
cp $(objdir_wxbase_shared)/wxbase-config debian/$(package_wxbase_lib)/usr/bin/
install-wxbase-dev: DH_OPTIONS=-p$(package_wxbase_dev)
install-wxbase-dev: build-wxbase-static-stamp install-wxbase-lib
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
dh_movefiles --sourcedir=debian/$(package_wxbase_lib)
cp $(objdir_wxbase_static)/lib/*.a debian/$(package_wxbase_dev)/usr/lib
install-gtk-lib: DH_OPTIONS=-p$(package_gtk_lib)
install-gtk-lib: build-gtk-shared-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
cd $(objdir_gtk_shared) \
&& $(MAKE) install prefix=`pwd`/../debian/$(package_gtk_lib)/usr
rm -f debian/$(package_gtk_lib)/usr/bin/wx-config
install-gtk-dev: DH_OPTIONS=-p$(package_gtk_dev)
install-gtk-dev: build-gtk-static-stamp install-gtk-lib
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
dh_movefiles --sourcedir=debian/$(package_gtk_lib)
cp $(objdir_gtk_static)/lib/libwx_gtk*.a debian/$(package_gtk_dev)/usr/lib
install-gtk-contrib: DH_OPTIONS=-p$(package_contrib)
install-gtk-contrib: build-contrib-shared-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
cd $(objdir_gtk_shared)/contrib/src \
&& $(MAKE) install prefix=`pwd`/../../../debian/$(package_contrib)/usr
install-gtk-contrib-dev: DH_OPTIONS=-p$(package_contrib_dev)
install-gtk-contrib-dev: build-contrib-static-stamp install-gtk-dev
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
dh_movefiles --sourcedir=debian/$(package_contrib)
cp $(objdir_gtk_static)/lib/*.a debian/$(package_contrib_dev)/usr/lib
rm -f debian/$(package_contrib_dev)/usr/lib/libwx_gtk*.a
install-gtk-py: DH_OPTIONS=-p$(package_gtk_py)
install-gtk-py: build-gtk-python-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
cd wxPython/src \
&& ../distrib/build.py -i \
TARGETDIR=../../debian/$(package_gtk_py)/usr/lib/python1.5/site-packages/wxPython \
HELPERLIBDIR=../../debian/$(package_gtk_py)/usr/lib \
WXDIR=../..
rm -rf debian/$(package_gtk_py)/usr/lib/python1.5/site-packages/wxPython/demo
find debian/$(package_gtk_py)/usr/lib/python1.5/site-packages/wxPython \
-name '*.py?' -exec rm '{}' ';'
install-headers: DH_OPTIONS=-p$(package_headers)
install-headers: install-gtk-lib
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
dh_movefiles --sourcedir=debian/$(package_gtk_lib)
dh_installmanpages \
ansi2knr.1 \
jpegtran.1 \
libpng.3 \
libpngpf.3 \
zlib.3 \
png.5
install-doc: DH_OPTIONS=-p$(package_doc)
install-doc: build-doc-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
install-examples: DH_OPTIONS=-p$(package_examples)
install-examples: build-examples-stamp
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
binary-common:
dh_testversion 1.1.17
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_link
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
dh_shlibdeps -ldebian/$(package_gtk_lib)/usr/lib:debian/$(package_gtk_py)/usr/lib
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture-independent files here.
binary-indep: build install
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture-dependent files here.
binary-arch: build install
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
# Build all packages target.
binary: binary-arch binary-indep
############################################################################
#
# Some rules to build a subset of the complete list of packages that can be
# built from CVS. Beware that packages produced with these rules may *NOT*
# be compatible with packages built using the 'binary' target or even with
# Debian policy. Do not distribute packages built with these rules, they
# are currently useful for rapid in-house testing by developers only.
# libwxgtk shared lib package
binary-gtk: control-files-stamp install-gtk-lib install-headers
$(MAKE) -f debian/rules DH_OPTIONS="-p$(package_gtk_lib) -p$(package_headers)" binary-common
binary-gtk-dev: control-files-stamp install-gtk-dev install-headers
$(MAKE) -f debian/rules \
DH_OPTIONS="-p$(package_gtk_lib) -p$(package_gtk_dev) -p$(package_headers)" \
binary-common
# libwxbase shared lib package
binary-wxbase: control-files-stamp install-wxbase-lib install-headers
$(MAKE) -f debian/rules DH_OPTIONS="-p$(package_wxbase_lib) -p$(package_headers)" binary-common
binary-wxbase-dev: control-files-stamp install-wxbase-dev install-headers
$(MAKE) -f debian/rules \
DH_OPTIONS="-p$(package_wxbase_lib) -p$(package_wxbase_dev) -p$(package_headers)" \
binary-common
# docs package
binary-doc: control-files-stamp install-doc
$(MAKE) -f debian/rules DH_OPTIONS=-p$(package_doc) binary-common
.PHONY: build clean binary-indep binary-arch binary binary-common binary-gtk \
binary-gtk-dev binary-wxbase binary-wxbase-dev binary-doc install \
install-wxbase-lib install-wxbase-dev install-gtk-lib install-gtk-dev \
install-gtk-contrib install-gtk-contrib-dev install-gtk-py \
install-headers install-doc install-examples