summaryrefslogtreecommitdiff
path: root/debian/fp-compiler.postinst.in
blob: fc7de53489f1c2d943accd56e58d037f52f2562f (plain)
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
#! /bin/sh

set -e

# Load debconf
. /usr/share/debconf/confmodule

CFG_PATH='/etc/fpc.cfg'
PKG_CFG_PATH="/etc/fpc-${VERSION}.cfg"
LIB_DIR="/usr/lib/fpc"
MAN_DIR="/usr/share/man/man1"

# Debhelper code
#DEBHELPER#

USER_HAS_ENABLED_NEW_CONF="test -L ${CFG_PATH} -o  ! -e ${CFG_PATH}"

if ! ${USER_HAS_ENABLED_NEW_CONF}
then
	db_get fp-compiler/rename_cfg
	if test "${RET}" = "true" -a -e ${CFG_PATH}
	then
		mv "${CFG_PATH}" "${CFG_PATH}.bak"
	fi
fi

# Create new compiler configuration file
fpcmkcfg-${VERSION} -0 -d "basepath=${LIB_DIR}/\$fpcversion" -o "${PKG_CFG_PATH}"
# Add multiarch path to /etc/fpc.cfg so executables linked against libc can be corectly linked
echo '# multiarch library search path' >> ${PKG_CFG_PATH}
echo '-Fl/usr/lib/$fpctarget-*' >> ${PKG_CFG_PATH}
# Define a default location, multi-arch compatible, for third party units.
cat >> ${PKG_CFG_PATH} <<EOF
# Third party units should be installe in a, multi-arch compatible location.
# Units should be installed in /usr/lib/\$fpctarget-gnu/fp-units-2.6.2/\$pkg/.
# Ech fp-units package should install a configuration file called \$pkg.cfg in
#CFGDIR /etc/fpc-\$fpcversion.cfg.d/\$fpctarget
EOF

if test -n ${WINDRES_BIN}
then
	db_get fp-compiler/windres
	if test -n "${RET}"
	then
		WINDRES_BIN=${RET}
	fi
fi
sed -e '\@# MS Windows .rc resource compiler@d' -e '\@-FC@d' -i  ${PKG_CFG_PATH}
if test -n "${WINDRES_BIN}"
then
	echo '# MS Windows .rc resource compiler' >> ${PKG_CFG_PATH}
	echo "-FC${WINDRES_BIN}" >> ${PKG_CFG_PATH}
fi

# add alternatives
update-alternatives \
    --install /usr/bin/fpc fpc /usr/bin/fpc-${VERSION} ${PRIORITY} \
    --slave /usr/bin/${PPCBIN} ${PPCBIN} ${LIB_DIR}/${VERSION}/${PPCBIN} \
    --slave /usr/bin/fpc-depends fpc-depends /usr/bin/fpc-depends-${VERSION} \
	--slave /usr/bin/fpcres fpcres /usr/bin/fpcres-${VERSION} \
    --slave ${MAN_DIR}/${PPCBIN}.1.gz ${PPCBIN}.1.gz ${MAN_DIR}/${PPCBIN}-${VERSION}.1.gz \
    --slave ${MAN_DIR}/fpc.1.gz fpc.1.gz ${MAN_DIR}/fpc-${VERSION}.1.gz \
    --slave ${MAN_DIR}/fpc-depends.1.gz fpc-depends.1.gz ${MAN_DIR}/fpc-depends-${VERSION}.1.gz \
	--slave ${MAN_DIR}/fpcres.1.gz fpcres.1.gz ${MAN_DIR}/fpcres-${VERSION}.1.gz
# Configuration file is a special case as it is backward compatible and is
# likely to be handled as a special alternative pointing to the latest release
if ${USER_HAS_ENABLED_NEW_CONF}
then
	update-alternatives \
		--install ${CFG_PATH} fpc.cfg ${PKG_CFG_PATH} ${PRIORITY}
fi
# Replace legacy/gnu pascal compilers
update-alternatives \
    --install /usr/bin/pc pc /usr/bin/fpc-${VERSION} 20 \
    --slave ${MAN_DIR}/pc.1.gz pc.1.gz ${MAN_DIR}/fpc-${VERSION}.1.gz