123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- # Copyright 1999-2017 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI="6"
- inherit multilib multilib-minimal savedconfig toolchain-funcs user
- ################################################################################
- # axtls CONFIG MINI-HOWTO
- #
- # Note: axtls is highly configurable and uses mconf, like the linux kernel.
- # You can configure it in a couple of ways:
- #
- # 1) USE="-savedconfig" and set/unset the remaining flags to obtain the features
- # you want, and possibly a lot more.
- #
- # 2) You can create your own configuration file by doing
- #
- # FEATURES="keepwork" USE="savedconfig -*" emerge axtls
- # cd /var/tmp/portage/net-libs/axtls*/work/axTLS
- # make menuconfig
- #
- # Now configure axtls as you want. Finally save your config file:
- #
- # cp config/.config /etc/portage/savedconfig/net-libs/axtls-${PV}
- #
- # where ${PV} is the current version. You can then run emerge again with
- # your configuration by doing
- #
- # USE="savedconfig" emerge axtls
- #
- ################################################################################
- MY_PN=${PN/tls/TLS}
- DESCRIPTION="Embedded client/server TLSv1 SSL library and small HTTP(S) server"
- HOMEPAGE="http://axtls.sourceforge.net/"
- SRC_URI="mirror://sourceforge/axtls/${MY_PN}-${PV}.tar.gz"
- S="${WORKDIR}/${PN}-code"
- LICENSE="BSD GPL-2"
- SLOT="0/1"
- KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~x86"
- IUSE="httpd cgi-lua cgi-php static static-libs doc"
- # TODO: add ipv6, and c#, java, lua, perl bindings
- # Currently these all have some issue
- DEPEND="doc? ( app-doc/doxygen )"
- RDEPEND="
- httpd? (
- cgi-lua? ( dev-lang/lua )
- cgi-php? ( dev-lang/php[cgi] )
- )"
- #Note1: static, cgi-* makes no sense if httpd is not given
- REQUIRED_USE="
- static? ( httpd )
- cgi-lua? ( httpd )
- cgi-php? ( httpd )"
- AXTLS_GROUP="axtls"
- AXTLS_USER="axtls"
- pkg_setup() {
- use httpd && {
- ebegin "Creating axtls user and group"
- enewgroup ${AXTLS_GROUP}
- enewuser ${AXTLS_USER} -1 -1 -1 ${AXTLS_GROUP}
- }
- }
- src_prepare() {
- tc-export AR CC
- eapply "${FILESDIR}/explicit-libdir-r1.patch"
- #We want CONFIG_DEBUG to avoid stripping
- #but not for debugging info
- sed -i -e 's: -g::' config/Rules.mak || die
- sed -i -e 's: -g::' config/makefile.conf || die
- eapply_user
- multilib_copy_sources
- }
- use_flag_config() {
- cp "${FILESDIR}"/config config/.config || die
- #Respect CFLAGS/LDFLAGS
- sed -i -e "s:^CONFIG_EXTRA_CFLAGS_OPTIONS.*$:CONFIG_EXTRA_CFLAGS_OPTIONS=\"${CFLAGS}\":" \
- config/.config || die
- sed -i -e "s:^CONFIG_EXTRA_LDFLAGS_OPTIONS.*$:CONFIG_EXTRA_LDFLAGS_OPTIONS=\"${LDLAGS}\":" \
- config/.config || die
- #The logic is that the default config file enables everything and we disable
- #here with sed unless a USE flags says to keep it
- if use httpd; then
- if ! use static; then
- sed -i -e 's:^CONFIG_HTTP_STATIC_BUILD:# CONFIG_HTTP_STATIC_BUILD:' \
- config/.config || die
- fi
- if ! use cgi-php && ! use cgi-lua; then
- sed -i -e 's:^CONFIG_HTTP_HAS_CGI:# CONFIG_HTTP_HAS_CGI:' \
- config/.config || die
- fi
- if ! use cgi-php; then
- sed -i -e 's:,.php::' config/.config || die
- fi
- if ! use cgi-lua; then
- sed -i -e 's:\.lua,::' \
- -e 's:lua:php:' \
- -e 's:^CONFIG_HTTP_ENABLE_LUA:# CONFIG_HTTP_ENABLE_LUA:' \
- config/.config || die
- fi
- else
- sed -i -e 's:^CONFIG_AXHTTPD:# CONFIG_AXHTTPD:' \
- config/.config || die
- fi
- yes "n" | emake -j1 oldconfig > /dev/null || die
- }
- multilib_src_configure() {
- #Per-ABI substitutions.
- sed -i -e 's:^LIBDIR.*/lib:LIBDIR = $(PREFIX)/'"$(get_libdir):" \
- Makefile || die
- #Use CC as the host compiler for mconf
- sed -i -e "s:^HOSTCC.*:HOSTCC=${CC}:" \
- config/Rules.mak || die
- if use savedconfig; then
- restore_config config/.config
- if [[ -f config/.config ]]; then
- ewarn "Using saved config, all other USE flags ignored"
- else
- ewarn "No saved config, seeding with the default"
- cp "${FILESDIR}"/config config/.config || die
- fi
- yes "" | emake -j1 oldconfig > /dev/null || die
- else
- use_flag_config
- fi
- }
- multilib_src_install() {
- if multilib_is_native_abi && use savedconfig; then
- save_config config/.config
- fi
- emake PREFIX="${ED}/usr" install
- if ! use static-libs; then
- rm -f "${ED}"/usr/$(get_libdir)/libaxtls.a || die
- fi
- # The build system needs to install before it builds docs
- if multilib_is_native_abi && use doc; then
- emake docs
- dodoc -r docsrc/html
- fi
- }
- multilib_src_install_all() {
- if [[ -f "${ED}"/usr/bin/htpasswd ]]; then
- mv "${ED}"/usr/bin/{,ax}htpasswd || die
- fi
- if use httpd; then
- newinitd "${FILESDIR}"/axhttpd.initd axhttpd
- newconfd "${FILESDIR}"/axhttpd.confd axhttpd
- fi
- docompress -x /usr/share/doc/${PF}/README
- dodoc README
- }
|