aboutsummaryrefslogtreecommitdiff
path: root/examples/python2.7/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python2.7/Makefile')
-rw-r--r--examples/python2.7/Makefile243
1 files changed, 243 insertions, 0 deletions
diff --git a/examples/python2.7/Makefile b/examples/python2.7/Makefile
new file mode 100644
index 0000000..cca5e09
--- /dev/null
+++ b/examples/python2.7/Makefile
@@ -0,0 +1,243 @@
+include /usr/share/cibs/rules/ips.mk
+include /usr/share/cibs/rules/autotools.mk
+include /usr/share/cibs/rules/archive.mk
+include /usr/share/cibs/rules/patch.mk
+
+movefiles := /usr/share/cibs/scripts/movefiles
+payload := /usr/share/cibs/scripts/make-payload
+
+$(eval $(call add-variant,default))
+%-default-stamp: bits = 64
+
+summary := an interpreted, interactive, object-oriented, extensible programming language
+license := Python License
+license-file := $(sourcedir)/LICENSE
+
+name := Python
+pyver := 2.7
+version := 2.7.3
+home := http://www.python.org/
+archive := $(name)-$(version).tar.bz2
+download := http://www.python.org/ftp/python/$(version)/$(archive)
+
+PVER := python$(pyver)
+
+checksum-Python-2.7.3.tar.bz2 := \
+ md5:c57477edd6d18bd9eeca2f21add73919 \
+ sha1:842c4e2aff3f016feea3c6e992c7fa96e49c9aa0 \
+ sha256:726457e11cb153adc3f428aaf1901fc561a374c30e5e7da6742c0742a338663c \
+ size:11793433
+
+build-depends += \
+ compress/bzip2 \
+ developer/build/autoconf \
+ file/symlinks \
+ library/libbz2 \
+ library/libdb-5.1 \
+ library/libexpat \
+ library/libffi \
+ library/libgdbm \
+ library/libsqlite3 \
+ library/ncursesw \
+ library/readline \
+ library/tinfo \
+ library/zlib \
+ text/gawk \
+ text/help2man \
+
+define __post_configure
+ egrep \
+ "^#($$(gawk -v ORS='|' '$$2 ~ /^extension$$/ {print $$1}' debian/PVER-minimal.README.Debian.in)XX)" \
+ $(sourcedir)/Modules/Setup.dist \
+ | sed -e 's/^#//' -e 's/-Wl,-Bdynamic//;s/-Wl,-Bstatic//' \
+ >> $(1)/Modules/Setup.local
+
+ : # unconditionally run makesetup
+ cd $(1) && \
+ $(topdir)/$(sourcedir)/Modules/makesetup -c $(topdir)/$(sourcedir)/Modules/config.c.in -s Modules \
+ Modules/Setup.config Modules/Setup.local Modules/Setup
+ mv $(1)/config.c $(1)/Modules/
+
+ : # and fix the timestamps
+ $(MAKE) -C $(1) Makefile Modules/config.c
+
+ : # apply workaround for missing os.fsync
+ sed 's/HAVE_SYNC/HAVE_FSYNC/g' $(1)/pyconfig.h \
+ > $(1)/pyconfig.h.new
+ touch -r $(1)/pyconfig.h $(1)/pyconfig.h.new
+ mv -f $(1)/pyconfig.h.new $(1)/pyconfig.h
+endef
+
+pre-configure-stamp: autoconf-stamp
+autoconf-stamp: patch-stamp
+ cd $(sourcedir) && autoconf
+ touch $@
+
+build-default-stamp: post-configure-stamp
+post-configure-stamp: configure-default-stamp
+ $(call __post_configure,$(builddir))
+ touch $@
+
+configure-options += \
+ --without-gcc \
+ --enable-ipv6 \
+ --enable-unicode=ucs4 \
+ --with-dbmliborder=bdb:gdbm \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-shared \
+
+MIN_MODS := $(shell awk '/^ / && $$2 == "module" { print $$1 }' \
+ debian/PVER-minimal.README.Debian.in)
+MIN_EXTS := $(shell awk '/^ / && $$2 ~ /^extension/ { print $$1 }' \
+ debian/PVER-minimal.README.Debian.in)
+MIN_BUILTINS := $(shell awk '/^ / && $$2 == "builtin" { print $$1 }' \
+ debian/PVER-minimal.README.Debian.in)
+MIN_PACKAGES := $(shell awk '/^ / && $$2 == "package" { print $$1 }' \
+ debian/PVER-minimal.README.Debian.in)
+MIN_ENCODINGS = $(foreach i, \
+ $(filter-out \
+ big5% bz2% cp932.py cp949.py cp950.py euc_% \
+ gb% iso2022% johab.py shift_jis% , \
+ $(shell cd $(sourcedir)/Lib/encodings && echo *.py)), \
+ encodings/$(i)) \
+ codecs.py stringprep.py
+
+# We install libpython.X.Y.so.* in usual place (libdir),
+# but runtime libraries go into the place where python
+# looks them for:
+install-default-stamp: make-vars += \
+ LIBPL=$(prefix)/lib/python$(pyver)/config \
+ DESTSHARED=$(prefix)/lib/python$(pyver)/lib-dynload
+
+# Shorter name:
+d := $(protodir.default)
+b := $(builddir.default)
+VER := $(pyver)
+scriptdir := usr/lib/python$(VER)
+d_min := work/proto/python-minimal
+d_lib := work/proto/libpython
+d_dev := work/proto/dev-python
+d_base := work/proto/python
+libdir := usr/lib$(lib-suffix.$(bits))
+
+python-minimal.p5m: env += proto=$(d_min)
+
+
+install-stamp: postinst-stamp
+postinst-stamp: install-default-stamp
+ gfind $(d) -name '*.py[co]' | gxargs -r rm -f
+ gfind $(d)/usr/lib/python$(VER) -name '*_failed*.so' | gxargs -r rm -f
+ mv $(d)/$(scriptdir)/_sysconfigdata.py \
+ $(d)/$(scriptdir)/_sysconfigdata_nd.py
+ cp $(b)/libpython$(pyver).a \
+ $(d)/$(libdir)/
+ rm $(d)/$(scriptdir)/config/*.a
+ ln -sf $(topdir)/$(d)/$(libdir)/libpython$(pyver).a \
+ $(d)/$(scriptdir)/config/libpython$(pyver).a
+ ln -sf $(topdir)/$(d)/$(libdir)/libpython$(pyver).so \
+ $(d)/$(scriptdir)/config/libpython$(pyver).so
+ symlinks -c $(d)/$(scriptdir)/config/
+
+ cp -p debian/_sysconfigdata.py $(d)/$(scriptdir)/
+ mv $(d)/usr/lib/python$(VER)/site-packages \
+ $(d)/usr/lib/python$(VER)/dist-packages
+ : # remove files, which are not packaged
+ rm -f $(d)/usr/bin/smtpd.py
+ rm -rf $(d)/usr/lib/python$(VER)/ctypes/macholib
+ rm -f $(d)/usr/lib/pkgconfig/python.pc
+ rm -f $(d)/usr/bin/python2{,-config}
+ rm -f $(d)/usr/share/man/man1/python2{,-config}.1
+ gfind $(d) -name 'wininst*.exe' | gxargs -r rm -f
+
+ : # Symlinks to /usr/bin for some tools
+ ln -sf ../lib/python$(VER)/pdb.py $(d)/usr/bin/pdb$(VER)
+ : # versioned install only
+ rm -f $(d)/usr/bin/python-config
+ mv $(d)/usr/bin/pydoc $(d)/usr/bin/pydoc$(VER)
+ : # Remove version information from the egg-info file
+ mv $(d)/$(scriptdir)/lib-dynload/Python-$(VER)*.egg-info \
+ $(d)/$(scriptdir)/lib-dynload/Python-$(VER).egg-info
+ cp -p $(sourcedir)/Tools/i18n/pygettext.py $(d)/usr/bin/pygettext$(VER)
+
+ mv $(d)/usr/bin/2to3 $(d)/usr/bin/2to3-$(VER)
+ PYTHONPATH=$(d)/$(scriptdir) \
+ help2man --no-info --version-string=$(VER) --no-discard-stderr \
+ --name 'Python2 to Python3 converter' \
+ $(d)/usr/bin/2to3-$(VER) \
+ > $(d)/usr/share/man/man1/2to3-$(VER).1
+
+ : # install runtime/python-minimal:
+ mkdir -p $(d_min)
+ cd $(d_min) && mkdir -p \
+ etc/$(PVER) \
+ usr/bin \
+ usr/include/$(PVER) \
+ usr/share/man/man1 \
+ $(scriptdir)/lib-dynload \
+ $(scriptdir)/config
+ cp sitecustomize.py $(d_min)/etc/python$(pyver)/sitecustomize.py
+ ln -sf /etc/python$(pyver)/sitecustomize.py \
+ $(d_min)/usr/lib/python$(pyver)/sitecustomize.py
+ $(movefiles) -s $(d) -d$(d_min) \
+ usr/bin/python$(VER) \
+ usr/share/man/man1/python$(VER).1 \
+ $(foreach i,$(MIN_MODS),$(scriptdir)/$(i).py) \
+ $(foreach i,$(MIN_PACKAGES),$(scriptdir)/$(i)) \
+ $(foreach i,$(MIN_ENCODINGS),$(scriptdir)/$(i)) \
+ $(scriptdir)/config/Makefile \
+ usr/include/$(PVER)/pyconfig.h \
+ $(scriptdir)/site.py \
+ $(shell cd $(d); for i in $(MIN_EXTS); do \
+ test -e $(scriptdir)/lib-dynload/$$i.so \
+ && echo $(scriptdir)/lib-dynload/$$i.so; \
+ done; true)
+
+ : # install libpython:
+ mkdir -p $(d_lib)
+ $(movefiles) -s $(d) -d $(d_lib) \
+ $(libdir)/libpython$(pyver).so.1.0
+ ln -sf libpython$(pyver).so.1.0 \
+ $(d_lib)/$(libdir)/libpython$(pyver).so.1
+
+ : # install developer/python:
+ mkdir -p $(d_dev)
+ mkdir -p $(d_dev)/usr/share/man/man1
+ $(movefiles) -s $(d) -d $(d_dev) \
+ usr/lib/python$(VER)/config \
+ usr/include/python$(VER) \
+ $(libdir)/libpython$(VER).so \
+ $(libdir)/libpython$(VER).a \
+ $(libdir)/pkgconfig/python-$(VER).pc \
+ usr/bin/python$(VER)-config
+ cp -p debian/python-config.1 \
+ $(d_dev)/usr/share/man/man1/python$(VER)-config.1
+
+ : # No IDLE:
+ rm -rf $(d)/usr/bin/idle* \
+ $(d)/usr/lib/python$(VER)/idlelib
+
+ : # No Tk:
+ rm -rf \
+ $(d)/usr/lib/python$(VER)/lib-dynload/_tkinter.so \
+ $(d)/usr/lib/python$(VER)/lib-tk
+
+ : # install runtime/python:
+ mkdir -p $(d_base)
+ $(movefiles) -s $(d) -d $(d_base) \
+ $(scriptdir)/test/{regrtest.py,test_support.py,__init__.py,pystone.py}
+ rm -rf $(d)/$(scriptdir)/test
+ rm -rf $(d)/$(scriptdir)/ctypes/test
+ rm -rf $(d)/$(scriptdir)/bsddb/test
+ rm -rf $(d)/$(scriptdir)/email/test
+ rm -rf $(d)/$(scriptdir)/json/tests
+ rm -rf $(d)/$(scriptdir)/sqlite3/test
+ rm -rf $(d)/$(scriptdir)/distutils/tests
+ rm -rf $(d)/$(scriptdir)/lib2to3/tests
+ rm -rf $(d)/$(scriptdir)/unittest/test
+ rm -rf $(d)/$(scriptdir)/lib-tk/test
+ $(movefiles) -s $(d) -d $(d_base) \
+ $(scriptdir)
+
+ touch $@
+