summaryrefslogtreecommitdiff
path: root/share/sfpm/sfpm.sh
blob: 1e86c5c16afae6fbcb4a833b452ad1dc59095b19 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
sfpm_bindir=${sfpm_root}/bin
sfpm_sbindir=${sfpm_root}/sbin
sfpm_sysconfdir=${sfpm_root}/etc
sfpm_libdir=${sfpm_root}/lib
sfpm_libexecdir=${sfpm_root}/libexec
sfpm_datarootdir=${sfpm_root}/share
sfpm_datadir=${sfpm_datarootdir} # alias for GNU sake
sfpm_docdir=${sfpm_datarootdir}/doc
sfpm_mandir=${sfpm_datadir}/man
sfpm_infodir=${sfpm_datadir}/info
sfpm_localstatedir=${sfpm_root}/var
sfpm_pkgdir=${sfpm_localstatedir}/lib/pkgs
sfpm_cache=${sfpm_localstatedir}/cache
sfpm_srcdir=${sfpm_cache}/src
sfpm_runstatedir=${sfpm_localstatedir}/run
sfpm_includedir=${sfpm_root}/include
sfpm_tmpdir=${sfpm_root}/tmp
sfpm_envdir=${sfpm_root}/envs

# Set default prefix. It happens to be the name of the variable...
sfpm_build_prefix="/sfpm_build_prefix"
sfpm_build_cflags="-I${sfpm_includedir}"
sfpm_build_ldflags="-L${sfpm_libdir} -Wl,-rpath="'\$$ORIGIN'/../lib

sfpm_INTERNAL_PATHS=(
    sfpm_root
    sfpm_bindir
    sfpm_sbindir
    sfpm_sysconfdir
    sfpm_libdir
    sfpm_libexecdir
    sfpm_datarootdir
    sfpm_datadir
    sfpm_docdir
    sfpm_mandir
    sfpm_infodir
    sfpm_localstatedir
    sfpm_pkgdir
    sfpm_cache
    sfpm_srcdir
    sfpm_runstatedir
    sfpm_includedir
    sfpm_tmpdir
    sfpm_envdir
)


export TMPDIR="${sfpm_tmpdir}"


function sfpm_abspath() {
    local filename="${1}"
    local start="$(dirname ${filename})"

    pushd "${start}" &>/dev/null
        end="$(pwd)"
    popd &>/dev/null

    if [[ -f ${filename} ]]; then
        end="${end}/$(basename ${filename})"
    fi

    echo "${end}"
}


function sfpm_gen_sysroot() {
    local env_path="${1}"

    for envpath in "${sfpm_INTERNAL_PATHS[@]}"
    do
        p="${!envpath}"

        # For environment creation, override sysroot with new root path
        if [[ ${env_path} ]]; then
            # Environments will not be chained
            if [[ ${envpath} == sfpm_envdir ]]; then
                continue
            fi
            p="${p/${sfpm_root}/${env_path}}"
        fi

        [[ ! -d ${p} ]] && mkdir -p "${p}"
    done
}