# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit gcc EXTRAVER=".1" MY_PV="${PV:0:${#PV}-1}.${PV:${#PV}-1}" MY_P="${PN}_upc${MY_PV}${EXTRAVER}" DESCRIPTION="GEMPAK Meteorological Plotting and Analysis Package" HOMEPAGE="http://www.unidata.ucar.edu/packages/gempak" SRC_URI="${MY_P}.tar.gz" LICENSE="as-is" DEPEND="" RDEPEND="${DEPEND} x11-libs/openmotif !=x11-libs/lesstif" SLOT="0" KEYWORDS="~x86 ~ppc ~sparc" RESTRICT="fetch" S="${WORKDIR}" # Define this here so we don't have to have it more than once. GENTOO_VARS="NAWIPS GARPHOME GARP_PATH NA_OS GEMPAK GEMPAKHOME GEMLIB GEMEXE GEMPDF GEMTBL GEMERR GEMHLP GEMMAPS GEMNTS GEMPARM GEMPTXT GEMGTXT NAWIPS_EXE NAWIPS_LIB NAWIPS_INC NAWIPS_HELP NAWIPS_TABLES NWX_TABLES NMAP_RESTORE MEL_BUFR MEL_BUFR_TABLES BRDGDIR xresources SCRIPTS_EXE GEMDATA OBS NTRANS_META TEXT_DATA SAT RAD RADDIR LDMDATA GOES8 GOES9 HDS MODEL SAO UPA RAW_SAO RAW_SYN RAW_UPA NLDN TORN_WARN TSTRM_WARN TEXT_WARN RBKGPH LP XUSERFILESEARCHPATH grids" pkg_nofetch() { einfo "Please visit ${HOMEPAGE}" einfo "and place ${A} in ${DISTDIR}." } src_unpack() { setup_vars unpack ${A} ebegin "Applying miscellaneous fixes" # Add needed definition sed -e '/^GEMPAKHOME/iNAWIPS = ${S}' ${FILESDIR}/Makeinc.common >> ${CONFIGDIR}/Makeinc.common # One of the GEMPAK cleanup scripts uses '$RM' instead of 'rm'. sed -i -e 's/^\$RM/rm/' ${S}/bin/scripts/cleanvgf # Eliminate bad symlink rm ${S}/unidata/programs/gpnexr2/rsl_colors # This is necessary because otherwise it freaks out due to a missing # lib/linux. mkdir -p lib/linux eend 0 # This is necessary because the paths to some bitmaps are hard-coded. epatch ${FILESDIR}/gui.c.patch # Patch log.c and gprint.c epatch ${FILESDIR}/log.c.patch epatch ${FILESDIR}/gprint.c.patch # Fix changed header header_replace varargs.h stdarg.h # Can't install to /usr/local ebegin "Fixing bad install locations" for BADFILE in `grep -lr '/usr/local' ${S}` do sed -i "s:/usr/local:/usr:g" ${BADFILE} ; done eend 0 } src_compile() { setup_vars make || die } src_install() { setup_vars einfo "Pre-installing GEMPAK..." make install || die # This eliminates all the Makefiles, source code, header files, # and sundry other useless files. ebegin "Removing unnecessary files" rm -rf ${S}/{config,include,ldm,lib,netcdf,nprogs,unidata,gempak/source} rm -rf ${S}/comet/{dcshef,etamap,garp/{gempak,gui,include,init,object,util}} rm ${S}/{,gempak/,comet/{,garp/}}Makefile eend 0 # Create the directory to install GEMPAK to. dodir usr/gempak # Put all the necessary files in the correct place. einfo "Installing GEMPAK..." cp -Rfv ${S}/* ${D}/usr/gempak insinto /usr/gempak doins ${FILESDIR}/Gemenviron.{bash,tcsh} # This is necessary, because otherwise some of the files will not be # world-readable ebegin "Fixing permissions to ensure world-readability" chmod +r -Rf ${D} eend 0 # Install env.d file insinto /etc/env.d newins ${FILESDIR}/gempak.env.d 10gempak } pkg_postinst() { einfo "To use GEMPAK, you'll need to run the command" einfo "\"source /usr/gempak/Gemenviron.bash\", which will" einfo "set the appropriate environmental variables. If you" einfo "prefer tcsh, a Gemenviron.tcsh file is included as well." einfo "" einfo "To use some of the GUI GEMPAK tools (such as Garp)," einfo "it is necessary to create the requisite directory hierarchy." einfo "To auto-create a skeleton directory hierarchy, run" einfo "\"GENTOO_DATA=/path/to/data ebuild" einfo "/var/db/pkg/app-sci/${PN}/${PF}.ebuild config\"," einfo "where \$GENTOO_DATA is your directory of choice." einfo "Note that the default directory is /data/gempak." einfo "If you wish to use something different you will need" einfo "to edit the Gemenviron.bash and/or Gemenviron.tcsh files" einfo "to reflect the change." einfo "" einfo "NOTE: Some of the programs in the GEMPAK suite have paths" einfo "hardcoded into the executables. It is ill-advised" einfo "to start playing around with paths unless you know" einfo "what you are doing." } pkg_config() { if [ -z ${GENTOO_DATA} ] ; then einfo "usage: GENTOO_DATA=/path/to/data ebuild /var/db/pkg/app-sci/${PN}/${PF}.ebuild config" die fi if [ -d ${GENTOO_DATA} ] ; then einfo "${GENTOO_DATA} already exists." die fi mkdir ${GENTOO_DATA}/images/radar/nids -p mkdir ${GENTOO_DATA}/images/sat/GOES-East -p mkdir ${GENTOO_DATA}/meta mkdir ${GENTOO_DATA}/model mkdir ${GENTOO_DATA}/nldn mkdir ${GENTOO_DATA}/nwx mkdir ${GENTOO_DATA}/redbook mkdir ${GENTOO_DATA}/surface mkdir ${GENTOO_DATA}/upperair ln -s model ${GENTOO_DATA}/hds ln -s model ${GENTOO_DATA}/hrs einfo "Created skeleton GEMDATA directory in ${GENTOO_DATA}." } header_replace() { # Replace obsoleted header # Usage: header_fix oldheader newheader ebegin "Replacing obsolete header references" for OLDFILE in `grep -lr "${1}" ${S}` do sed -i "s:${1}:${2}:g" ${OLDFILE} ; done eend 0 } setup_vars() { # All GEMPAK paths need to be unset before attempting to compile. unset ${GENTOO_VARS} # These GEMPAK paths must be set to their new values before # compiling. export CONFIGDIR="${S}/config" export GARPHOME="${S}/comet/garp" export NA_OS="linux" export NAWIPS="${S}" }