aboutsummaryrefslogtreecommitdiffstats
path: root/science/vmd/Makefile
blob: f3cc7016956ddd08001e53d9de6b7077e8b169d5 (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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Created by: Stephen Montgomery-Smith <stephen@math.missouri.edu>
# $FreeBSD$

PORTNAME=   vmd
DISTVERSION=    1.9.1
PORTREVISION=   2
CATEGORIES= science graphics python tcl tk
MASTER_SITES=   http://jedi.ks.uiuc.edu/~johns/raytracer/files/0.99b2/:tachyon \
        http://www.photonlimited.com/~johns/tachyon/files/0.99b2/:tachyon \
        http://www.ks.uiuc.edu/Research/vmd/extsrcs/:stride
DISTFILES=  ${VMD_DIST} \
        ${TACHYON_DIST}:tachyon \
        ${STRIDE_DIST}:stride

MAINTAINER= ports@FreeBSD.org
COMMENT=    Molecular visualization program

BUILD_DEPENDS=  makedepend:${PORTSDIR}/devel/makedepend \
        ${PYNUMERIC}
LIB_DEPENDS=    libtcl85.so:${PORTSDIR}/lang/tcl85 \
        libtk85.so:${PORTSDIR}/x11-toolkits/tk85 \
        libfltk.so:${PORTSDIR}/x11-toolkits/fltk \
        libnetcdf.so:${PORTSDIR}/science/netcdf
RUN_DEPENDS=    ${PYNUMERIC}

USES=       gmake perl5 python
USE_PERL5=  build
USE_GL=     glu

ONLY_FOR_ARCHS= i386 amd64

RESTRICTED= License has restrictions

VMD_DIST=   ${PORTNAME}-${DISTVERSION}.src.tar.gz
TACHYON_DIST=   tachyon-0.99b2.tar.gz
STRIDE_DIST=    Stride_src.tar.Z

.include <bsd.port.pre.mk>

.if ${ARCH} == "amd64"
VMD_ARCH=       FREEBSDAMD64
VMD_TARGET=     freebsd.amd64.opengl
.else
VMD_ARCH=       FREEBSD
VMD_TARGET=     freebsd.opengl
.endif

PLIST_SUB+=     VMD_ARCH=${VMD_ARCH}

# Check for VMD sources
.if !exists(${DISTDIR}/${VMD_DIST})
IGNORE= license restrictions require manual fetching of the distribution\
    source.  Please visit http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=VMD\
    with a browser.  You will be required to register, log in,  and accept\
    the University of Illinois agreement before you can download the\
    ${VMD_DIST} source file.  Place this file in ${DISTDIR} and try again.
.endif

do-extract:
    ${MKDIR} ${WRKDIR}
    ${TAR} -xzf ${DISTDIR}/${VMD_DIST} -C ${WRKDIR}
    ${TAR} -xzf ${WRKSRC}/lib/surf/surf.tar.Z -C ${WRKSRC}/lib/surf
    ${TAR} -xzf ${DISTDIR}/${TACHYON_DIST} -C ${WRKSRC}/lib
    ${TAR} -xzf ${DISTDIR}/${STRIDE_DIST} -C ${WRKSRC}/lib/stride

post-patch:
    ${REINPLACE_CMD} "s/-lpthread/${PTHREAD_LIBS}/" ${WRKSRC}/configure
    ${REINPLACE_CMD} "s/-ltk8.5/-ltk85/" ${WRKSRC}/configure
    ${REINPLACE_CMD} "s/-ltcl8.5/-ltcl85/" ${WRKSRC}/configure
    ${REINPLACE_CMD} "s%\$$python_dir/lib_\$$config_arch%${PREFIX}%" ${WRKSRC}/configure
    ${REINPLACE_CMD} "s/python2.5/${PYTHON_VERSION}/" ${WRKSRC}/configure
    ${REINPLACE_CMD} "s/.SILENT:/#.SILENT:/" ${WRKDIR}/plugins/Makefile
    ${REINPLACE_CMD} "s/.SILENT:/#.SILENT:/" ${WRKDIR}/plugins/*/Makefile
    ${REINPLACE_CMD} "s%log2f(\([^ ,]*\))%logf(\1)/(float)M_LN2%g" ${WRKSRC}/src/Orbital.C
    ${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" \
        -e "s|/usr/local|${LOCALBASE}|g" ${WRKSRC}/configure

do-build:
    ${SETENV} ${MAKE_ENV} ${MAKE_CMD} bsd -C ${WRKSRC}/lib/tachyon/unix \
        && ${MV} ${WRKSRC}/lib/tachyon/compile/bsd/tachyon \
            ${WRKSRC}/lib/tachyon/tachyon_${VMD_ARCH}
    ${SETENV} ${MAKE_ENV} TCLLIB=-L${PREFIX}/lib/tcl8.5 \
        TCLINC=-I${PREFIX}/include/tcl8.5 PLUGINDIR=${WRKSRC}/plugins \
        ${MAKE_CMD} ${VMD_ARCH} distrib -C ${WRKDIR}/plugins
    ${SETENV} ${MAKE_ENV} TCL_INCLUDE_DIR=${PREFIX}/include/tcl8.5 \
        TK_INCLUDE_DIR=${PREFIX}/include/tk8.5 ${MAKE_CMD} \
        ${VMD_TARGET} -C ${WRKSRC}
    ${SETENV} ${MAKE_ENV} ${MAKE_CMD} all -C ${WRKSRC}/src
    ${SETENV} ${MAKE_ENV} ${MAKE_CMD} depend -C ${WRKSRC}/lib/surf \
        && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} surf -C \
            ${WRKSRC}/lib/surf \
        && ${MV} ${WRKSRC}/lib/surf/surf \
            ${WRKSRC}/lib/surf/surf_${VMD_ARCH}
    ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/lib/stride \
        && ${MV} ${WRKSRC}/lib/stride/stride \
            ${WRKSRC}/lib/stride/stride_${VMD_ARCH}

do-install:
    ${SETENV} ${MAKE_ENV} DESTDIR=${STAGEDIR} \
        ${MAKE_CMD} -C ${WRKSRC}/src install
    ${STRIP_CMD} ${STAGEDIR}${LOCALBASE}/lib/vmd/*${VMD_ARCH} \
        ${STAGEDIR}${LOCALBASE}/lib/vmd/plugins/${VMD_ARCH}/molfile/*.so
.for f in tcl/autopsf1.3/psfcheck.so tcl/hesstrans1.0/hesstrans.so \
      tcl/mutator1.4/libalchemify.so tcl/pmepot1.0/libpmepot.so \
      tcl/psfgen1.6/libpsfgen.so tcl/rnaview1.1/rnaview \
      tcl/signalproc1.1/specden.so tcl/signalproc1.1/fftcmds.so \
      tcl/signalproc1.1/sgsmooth.so tcl/volutil1.3/volutil \
      tcl/clustalw1.1/clustalw tcl/libbiokit1.1/tcl_libbiokit.so \
      tcl/libbiokit1.1/q tcl/libbiokit1.1/seqqr \
      tcl/libbiokit1.1/structqr tcl/libbiokit1.1/qpair \
      tcl/libbiokit1.1/rmsd tcl/libbiokit1.1/percid \
      tcl/phylotree1.2/upgmaclu tcl/stamp1.2/stamp \
      bin/catdcd4.0/catdcd bin/cionize1.0/cionize
    ${STRIP_CMD} ${STAGEDIR}${LOCALBASE}/lib/vmd/plugins/${VMD_ARCH}/${f}
.endfor

.include <bsd.port.post.mk>