esomidas-17.02-r1.ebuild

Download (4.3 KB)

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit fortran-2 toolchain-funcs flag-o-matic

# MIDVERS is actually used by MIDAS configuration scripts
export MIDVERS="17FEBpl1.2"

DESCRIPTION="European Southern Observatory Munich Image Data Analysis System"
HOMEPAGE="http://www.eso.org/projects/esomidas/"
SRC_URI="ftp://ftp.eso.org/pub/midaspub/17FEB/sources/${MIDVERS}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0/8"
KEYWORDS="~amd64 ~x86"

IUSE="+libtirpc"

RDEPEND="
	sys-libs/readline:0=
	x11-libs/motif:0=
	x11-libs/libX11:=
	x11-libs/libXt:=
	!libtirpc? ( sys-libs/glibc[rpc(-)] )
	libtirpc? ( net-libs/libtirpc )
"
DEPEND="${RDEPEND}"

S="${WORKDIR}/${MIDVERS}"

PATCHES=(
	"${FILESDIR}/${P}-output_to_stdout.patch"
	"${FILESDIR}/${P}-gentoo-setup.patch"
	"${FILESDIR}/${P}-rpc.patch"
)

src_prepare() {
	default
	# variables for all phases and midas internal build system
	export MIDASHOME="${WORKDIR}"
	export MID_HOME="${S}"
	export MID_HOME0="/usr/$(get_libdir)/esomidas/${MIDVERS}"
	export MID_INSTALL="${MID_HOME}/install/unix"
	export MID_SYS="${MID_HOME}/system/unix/"
	export MID_WORK="${MIDASHOME}/midwork"

	# sadly this enforces static linking
	if use libtirpc ; then
		RPC_OPT="-I/usr/include/tirpc"
		RPC_LIB="-ltirpc"
	else
		RPC_OPT=""
		RPC_LIB=""
	fi

	# create a gentoo option file
	mkdir ${MID_INSTALL}/systems/Gentoo || die
	cat >> ${MID_INSTALL}/systems/Gentoo/make_options <<-EOF
		CC=$(tc-getCC)
		LDCC=$(tc-getCC)
		F77=$(tc-getFC)
		FC=$(tc-getFC)
		LD77_CMD=$(tc-getFC)
		AR=$(tc-getAR)
		RANLIB=$(tc-getRANLIB)
		F_OPT=
		C_OPT=
		E_OPT=$(use amd64 && echo -Z)
		SYS=
		SH_OPT=-fPIC
		SH_CMD=${MIDASHOME}/${MIDVERS}/local/make_shared
		GUI_OPT=-DPATH_MAX=1024
		STRIP=echo
		EDITFLAGS=-DVOID_SIGHANDLER -DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_GETPW_DECLS -DHAVE_DIRENT_H -DHAVE_STRING_H -DLinux -DHAVE_UNISTD_H -DHAVE_STDLIB_H
		EDITLIBS=-lreadline
		UIMX=uimxR5
		INSTALL_FLAG=auto
		RPC_OPT=${RPC_OPT}
		RPC_LIB=${RPC_LIB}
	EOF
	sed -e "s|gcc|$(tc-getCC) \${LDFLAGS}|" \
		${MID_INSTALL}/systems/Linux/make_shared \
		> ${MID_INSTALL}/systems/Gentoo/make_shared || die
	sed -e 's|PC/Linux|Gentoo|' \
		${MID_INSTALL}/systems/Linux/setup \
		> ${MID_INSTALL}/systems/Gentoo/setup || die

	# gentoo readline avoids exporting the xmalloc,xrealloc and xfree
	append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free
}

src_configure() {
	${MID_INSTALL}/select all || die "packages selection failed"
	${MID_INSTALL}/preinstall -a || die "preinstallation failed"
	${MID_INSTALL}/install2 || die "configuration failed"
	chmod 755 ${MID_HOME}/local/make_shared
	append-fflags -fallow-argument-mismatch
	append-cflags -fcommon
}

src_compile() {
	CMND_YES=2 ${MID_INSTALL}/install3 -a || die "compilation failed"
	[[ -x ${MID_HOME}/monit/midasgo.exe ]] || die "somewhere compilation failed"
	emake -C monit syskeys.unix
	${MID_SYS}/inmidas -m ${MID_WORK} -j "@ compile.all"
	${MID_SYS}/inmidas -m ${MID_WORK} -j "@ ascii_bin no ; bye"
}

src_test() {
	local test_dir="${WORKDIR}/test_tmp"
	mkdir ${test_dir} && cd ${test_dir}
	${MID_SYS}/inmidas -m ${MID_WORK} -j "@ vericopy ; @@ veriall -nodisplay ; bye" || die
	test -f ${MID_WORK}/veriall_* || die "tests failed somewhere"
	rm -rf ${test_dir}
}

src_install() {
	yes | ${MID_SYS}/cleanmidas
	find ${MID_HOME} \( \
		-name "*.a" -o \
		-name "makefile" -o \
		-name "default.mk" -o \
		-name "*.h" -o \
		-name "*.inc" -o \
		-name COPYING -o \
		-name "*~" -o \
		-name "*.mod" \) -delete
	rm -rf ${MID_HOME}/libsrc/ftoc*
	find ${MID_HOME} -type d -empty -delete

	sed -e "s:^MIDVERS0=.*:MIDVERS0=${MIDVERS}:" \
		-e "s:^MIDASHOME0=.*:MIDASHOME0=/usr/$(get_libdir)/esomidas:" \
		-i ${MID_HOME}/system/unix/{inmidas,helpmidas,drs}

	cd "${WORKDIR}"
	dodir /usr/$(get_libdir)/esomidas
	mv "${S}" "${ED}"${MID_HOME0}
	chmod 0644 "${ED}"${MID_HOME0}/contrib/baches/*/*.fit \
			   "${ED}"${MID_HOME0}/contrib/baches/*/*.fmt \
			   "${ED}"${MID_HOME0}/contrib/baches/*/*.datorg \
			   "${ED}"${MID_HOME0}/contrib/baches/*/*.prg \
			   "${ED}"${MID_HOME0}/contrib/baches/*/*.README
	find "${ED}"${MID_HOME0} -name \*.sh | xargs chmod 0755
	chmod 0755 "${ED}"${MID_HOME0}/util/bench/brun

	dosym ${MID_HOME0}/system/unix/inmidas /usr/bin/inmidas
	dosym ${MID_HOME0}/system/unix/gomidas /usr/bin/gomidas
	dosym ${MID_HOME0}/system/ftoc-new ${MID_HOME0}/system/good-ftoc
}

Thank you!