MODULES="package-deb package-rpm"

configure()
{
    mk_declare -o \
        MK_BINDIR \
        MK_SBINDIR \
        MK_PREFIX \
        MK_DATADIR \
        MK_LIBEXECDIR \
        MK_DEBUG \
        MK_ROOT_DIR \
        MK_STAGE_DIR \
        MK_HOST_ARCH \
        MK_SYSCONFDIR \
        LW_CACHEDIR \
        LW_CONFIGDIR \
        LW_INITDIR \
        PRIMARY_LIBDIR="$MK_LIBDIR"

    if mk_deb_enabled
    then
        mk_declare -o PKG_DEB_NAME="likewise-open"
        mk_declare -o PKG_DEB_VERSION="${LW_VERSION}-0"
        mk_declare -o PKG_DEB_DATE="`date -R`"
    fi

    if mk_rpm_enabled
    then
        mk_declare -o PKG_RPM_NAME="likewise-open"
        mk_declare -o PKG_RPM_VERSION="${LW_VERSION}"
        mk_declare -o PKG_RPM_RELEASE="0"
    fi
}

package_deb()
{
    mk_deb_do \
        PACKAGE="$PKG_DEB_NAME" \
        VERSION="$PKG_DEB_VERSION" \
        DEBIANFILES="deb/changelog.in deb/control.in \
                     deb/likewise-open.postinst.in deb/likewise-open.postrm.in deb/compat.in \
                     deb/likewise-open.preinst.in deb/likewise-open.prerm.in deb/rules.in"

        open_files
        open_files_compat

        mk_deb_sub_do SUBPACKAGE="dev"
            open_files_dev
        mk_deb_sub_done
    mk_deb_done
}

package_rpm()
{
    mk_rpm_do \
        PACKAGE="$PKG_RPM_NAME" \
        VERSION="$PKG_RPM_VERSION" \
        SPECFILE="rpm/open.spec.in"

        open_files
        open_files_compat

        mk_rpm_sub_do SUBPACKAGE="devel"
            open_files_dev
        mk_rpm_sub_done
    mk_rpm_done
}

make()
{
    OPEN_SUBDIRS="\
        @krb5 @cyrus-sasl @openldap @libiconv @sqlite \
        @libuuid @openssl @curl @libxml2 \
        @lwbase @lwmsg @lwreg @lwadvapi @netlogon \
        @lwio @libschannel @dcerpc @centutils @lwsm \
        @eventlog @lsass @reapsysl @lwdns @lwnetapi \
        @domainjoin/libdomainjoin @domainjoin/domainjoin-cli \
        @domainjoin/scripts @lwconfig @lwupgrade @samba-interop @config"

    mk_deb_enabled && package_deb
    mk_rpm_enabled && package_rpm
}

open_files()
{
    open_files_prefix
    open_files_usr
    open_files_root
}

open_files_prefix()
{
    mk_package_patterns \
        SUBDIRS="$OPEN_SUBDIRS" \
        "${MK_BINDIR}/*" \
        "${MK_SBINDIR}/*" \
        "${MK_LIBEXECDIR}/*" \
        "${MK_LIBDIR}/*${MK_LIB_EXT}.*" \
        "${MK_LIBDIR}/*${MK_DLO_EXT}" \
        "${MK_LIBDIR}/sasl2/*${MK_DLO_EXT}.*" \
        "${MK_LIBDIR}/sasl2/*${MK_DLO_EXT}" \
        "${MK_LIBDIR}/gss/*${MK_DLO_EXT}" \
        "${MK_LIBDIR}/krb5/plugins/libkrb5/*${MK_DLO_EXT}" \
        "${MK_LIBDIR}/lwsm-loader/*${MK_DLO_EXT}" \
        "${MK_DATADIR}/likewise.pam-auth-update" \
        "${LW_CONFIGDIR}/*.reg" \
        "${MK_PREFIX}/data/VERSION"

    [ "$MK_DLO_EXT" != "$MK_LIB_EXT" ] && mk_package_patterns \
        SUBDIRS="$OPEN_SUBDIRS" \
        "${MK_LIBDIR}/*${MK_LIB_EXT}"
}

open_files_usr()
{
    open_files_interop

    mk_package_patterns SUBDIRS="@docs" "*"
}

open_files_root()
{
    mk_package_patterns \
        SUBDIRS="$OPEN_SUBDIRS" \
        "${MK_SYSCONFDIR}/*" \
        "${MK_SYSCONFDIR}/gss/mech" \
        "${MK_SYSCONFDIR}/LaunchDaemons/*" \
        "${MK_SYSCONFDIR}/svcs-solaris/*" \
        "${LW_INITDIR}/*" \
        "${LW_CACHEDIR}/*"

    mk_package_dirs \
        "${LW_CACHEDIR}" \
        "${LW_CACHEDIR}/db" \
        "${LW_CACHEDIR}/rpc"
}

open_files_compat()
{
    open_files_compat_prefix
    open_files_compat_usr
}

open_files_compat_prefix()
{
    mk_compat_do
        mk_package_patterns \
            SUBDIRS="$OPEN_SUBDIRS" \
            "${MK_LIBDIR}/*${MK_LIB_EXT}.*"
    mk_compat_done
}

open_files_compat_usr()
{
    mk_compat_do
        open_files_interop
    mk_compat_done
}

open_files_dev()
{
    mk_package_patterns \
        SUBDIRS="$OPEN_SUBDIRS" \
        "${MK_LIBDIR}/*.la" \
        "*.h" \
        "*.idl"
}

open_files_interop()
{
    case "$MK_HOST_OS:$MK_ISA" in
        aix:ppc32)
            mk_package_targets \
                "@${MK_STAGE_DIR}/usr/lib/security/pam_lsass.so" \
                "@${MK_STAGE_DIR}/usr/lib/security/LSASS" \
                "@${MK_STAGE_DIR}/usr/lib/netsvc/dynload/lsass.so"
            ;;
        aix:ppc64)
            mk_package_targets \
                "@${MK_STAGE_DIR}/usr/lib/security/64/pam_lsass.so" \
                "@${MK_STAGE_DIR}/usr/lib/security/LSASS_64" \
                "@${MK_STAGE_DIR}/usr/lib/netsvc/dynload/lsass_64.so"
            ;;
        darwin:*)
            mk_package_patterns \
                SUBDIRS="@lsass/interop/dsplugin @lsass/interop/auth/pam @lsass/interop/lwauthplugin @lsass/tools/ticketcopy" \
                "*"
            ;;
        *)
            mk_package_patterns \
                SUBDIRS="@lsass/interop" \
                "${NSSDIR}/*" \
                "${PAMDIR}/*"
            ;;
    esac
}
