108 lines
3.7 KiB
Python
108 lines
3.7 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# Licensed under the GNU General Public License, version 3.
|
|
# See the file http://www.gnu.org/licenses/gpl.txt
|
|
|
|
from pisi.actionsapi import autotools
|
|
from pisi.actionsapi import pisitools
|
|
from pisi.actionsapi import shelltools
|
|
from pisi.actionsapi import get
|
|
|
|
import os
|
|
|
|
arch = "x86-64" if get.ARCH() == "x86_64" and not get.buildTYPE() == "emul32" else "i686"
|
|
defaultflags = "-O3 -g -fasynchronous-unwind-tables -mtune=generic -march=%s" % arch
|
|
if get.buildTYPE() == "emul32": defaultflags += " -m32"
|
|
|
|
def setup():
|
|
shelltools.export("LANGUAGE","C")
|
|
shelltools.export("LANG","C")
|
|
shelltools.export("LC_ALL","C")
|
|
|
|
shelltools.export("CC", "gcc %s " % defaultflags)
|
|
shelltools.export("CXX", "g++ %s " % defaultflags)
|
|
|
|
shelltools.export("CFLAGS", defaultflags)
|
|
shelltools.export("CXXFLAGS", defaultflags)
|
|
|
|
shelltools.system("mkdir build-libxcrypt build-libxcrypt-compat")
|
|
|
|
if not get.buildTYPE() == "emul32":
|
|
shelltools.cd("build-libxcrypt")
|
|
# autotools.autoreconf("-fi")
|
|
shelltools.system("../configure --prefix=/usr \
|
|
--disable-static \
|
|
--enable-hashes=strong,glibc \
|
|
--enable-obsolete-api=no \
|
|
--disable-failure-tokens")
|
|
|
|
shelltools.cd("..")
|
|
|
|
shelltools.cd("build-libxcrypt-compat")
|
|
# autotools.autoreconf("-fi")
|
|
autotools.system("../configure --prefix=/usr \
|
|
--disable-static \
|
|
--enable-hashes=strong,glibc \
|
|
--enable-obsolete-api=glibc \
|
|
--disable-failure-tokens")
|
|
|
|
shelltools.cd("..")
|
|
|
|
if get.buildTYPE() == "emul32":
|
|
# shelltools.export("CC", "%s -m32" % get.CC())
|
|
shelltools.export("PKG_CONFIG_PATH", "/usr/lib32/pkgconfig")
|
|
|
|
shelltools.cd("build-libxcrypt")
|
|
shelltools.system("../configure --prefix=/usr \
|
|
--libdir=/usr/lib32 \
|
|
--libexecdir=/usr/lib32 \
|
|
--disable-static \
|
|
--enable-hashes=strong,glibc \
|
|
--enable-obsolete-api=no \
|
|
--disable-failure-tokens \
|
|
--enable-multi-arch i686-pc-linux-gnu")
|
|
|
|
shelltools.cd("..")
|
|
|
|
shelltools.cd("build-libxcrypt-compat")
|
|
# autotools.autoreconf("-fi")
|
|
autotools.system("../configure --prefix=/usr \
|
|
--libdir=/usr/lib32 \
|
|
--libexecdir=/usr/lib32 \
|
|
--disable-static \
|
|
--enable-hashes=strong,glibc \
|
|
--enable-obsolete-api=glibc \
|
|
--disable-failure-tokens \
|
|
--enable-multi-arch i686-pc-linux-gnu")
|
|
|
|
# shelltools.cd("..")
|
|
|
|
def build():
|
|
shelltools.cd("build-libxcrypt")
|
|
autotools.make()
|
|
|
|
shelltools.cd("..")
|
|
shelltools.cd("build-libxcrypt-compat")
|
|
autotools.make()
|
|
|
|
def install():
|
|
shelltools.cd("build-libxcrypt")
|
|
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
|
|
|
shelltools.cd("..")
|
|
shelltools.cd("build-libxcrypt-compat")
|
|
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
|
|
|
if get.buildTYPE() == "emul32":
|
|
pisitools.dosym("/usr/lib/libcrypt.so.1.1.0", "/lib/libcrypt.so.1")
|
|
pisitools.dosym("/usr/lib32/libcrypt.so.1.1.0", "/lib32/libcrypt.so.1")
|
|
return
|
|
|
|
# Fix conflicts with glibc
|
|
# pisitools.rename("/usr/lib/libcrypt.so", "libxcrypt.so")
|
|
# pisitools.rename("/usr/include/crypt.h", "xcrypt.h")
|
|
|
|
shelltools.cd("..")
|
|
pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING.LIB")
|