<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[137318] trunk/dports/science</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/137318">137318</a></dd>
<dt>Author</dt> <dd>ram@macports.org</dd>
<dt>Date</dt> <dd>2015-06-08 20:46:01 -0700 (Mon, 08 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>science/gds: new port

revision is not zero as this has been in a testing repository and had
changed since it was first added so we want to make sure that all users
get the updates</pre>

<h3>Added Paths</h3>
<ul>
<li>trunk/dports/science/gds/</li>
<li><a href="#trunkdportssciencegdsPortfile">trunk/dports/science/gds/Portfile</a></li>
<li>trunk/dports/science/gds/files/</li>
<li><a href="#trunkdportssciencegdsfilespatchDTTdttMakefileindiff">trunk/dports/science/gds/files/patch-DTT-dtt-Makefile.in.diff</a></li>
<li><a href="#trunkdportssciencegdsfilespatchDTTsrcawgawgbasepyindiff">trunk/dports/science/gds/files/patch-DTT-src-awg-awgbase.py.in.diff</a></li>
<li><a href="#trunkdportssciencegdsfilespatchconfigac_dmtofflinem4diff">trunk/dports/science/gds/files/patch-config-ac_dmtoffline.m4.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportssciencegdsPortfile"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gds/Portfile (0 => 137318)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gds/Portfile                                (rev 0)
+++ trunk/dports/science/gds/Portfile        2015-06-09 03:46:01 UTC (rev 137318)
</span><span class="lines">@@ -0,0 +1,75 @@
</span><ins>+# $Id$
+
+PortSystem    1.0
+PortGroup     conflicts_build 1.0
+
+name          gds
+version       2.17.1
+revision      1
+categories    science
+platforms     darwin
+maintainers   ligo.org:ed.maros
+license       GPL
+
+description   LSC Algorithm Library
+long_description \
+  LIGO Scientific Collaboration Algorithm Library containing core \
+  routines for gravitational wave data analysis.
+
+homepage      https://www.lsc-group.phys.uwm.edu/daswg/projects/lalsuite.html
+master_sites  http://software.ligo.org/lscsoft/source \
+              http://www.ligo.caltech.edu/~jzweizig/gds-unshackled
+
+checksums     rmd160 3ccb950d57415b2384291743e55df90bb8d504b0 \
+              sha256 aeb914eaf9b9f7bc2f14811cddfa1e708823255c950c380d88139ccff5d91653 \
+
+depends_build-append port:pkgconfig \
+              port:swig \
+              port:swig-python
+
+depends_lib   port:python27 \
+              port:curl \
+              port:expat \
+              port:fftw-3 \
+              port:fftw-3-single \
+              port:hdf5 \
+              port:ldas-tools \
+              port:root5 \
+              port:metaio
+
+patchfiles    patch-config-ac_dmtoffline.m4.diff \
+              patch-DTT-dtt-Makefile.in.diff \
+              patch-DTT-src-awg-awgbase.py.in.diff
+
+configure.python ${prefix}/bin/python2.7
+configure.args --enable-online \
+               --enable-dtt \
+               --disable-python \
+               --enable-only-dtt \
+               --disable-root-objects \
+               --disable-monitors
+
+use_parallel_build yes
+
+default_variants    +python
+
+variant python description {build with python support} {
+  configure.args-replace --disable-python --enable-python
+  configure.args-delete  --enable-only-dtt
+
+  set pythondir &quot;${frameworks_dir}/Python.framework/Versions/2.7/lib/python2.7/site-packages&quot;
+
+  destroot.args-append \
+              pythondir=&quot;${pythondir}&quot; \
+              pyexecdir=&quot;${pythondir}&quot; \
+              pkgpythondir=&quot;${pythondir}/${name}&quot; \
+              pkgpyexecdir=&quot;${pythondir}/${name}&quot;
+}
+
+# The macports version of sasl2 leads to a 5 minute latency for each
+# socket connection.
+conflicts_build  cyrus-sasl2
+
+livecheck.type   regex
+livecheck.url    ${master_sites}
+livecheck.regex  {gds-(\d+(?:\.\d+)*).tar.gz}
</ins><span class="cx">Property changes on: trunk/dports/science/gds/Portfile
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkdportssciencegdsfilespatchDTTdttMakefileindiff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gds/files/patch-DTT-dtt-Makefile.in.diff (0 => 137318)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gds/files/patch-DTT-dtt-Makefile.in.diff                                (rev 0)
+++ trunk/dports/science/gds/files/patch-DTT-dtt-Makefile.in.diff        2015-06-09 03:46:01 UTC (rev 137318)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+--- DTT/dtt/Makefile.in.orig        2015-06-08 13:28:58.000000000 -0700
++++ DTT/dtt/Makefile.in        2015-06-08 14:29:17.000000000 -0700
+@@ -551,7 +551,7 @@
+         $(am__ezcawrite_SOURCES_DIST) $(gdserrd_SOURCES) \
+         $(am__tpcmd_SOURCES_DIST) $(xmlconv_SOURCES) \
+         $(xmldata_SOURCES) $(xmldir_SOURCES)
+-am__python_PYTHON_DIST = $(dttsrc)/awg/awgbase.py $(dttsrc)/awg/awg.py
++am__python_PYTHON_DIST = awgbase.py $(dttsrc)/awg/awg.py
+ py_compile = $(top_srcdir)/config/py-compile
+ DATA = $(share_DATA)
+ am__include_dtt_HEADERS_DIST = $(dttsrc)/awg/awgapi.h \
+@@ -1299,7 +1299,7 @@
+ @build_ezca_TRUE@ezcaswitch_CXXFLAGS = $(ezca_cxxflags)
+ @build_ezca_TRUE@ezcaservo_CXXFLAGS = $(ezca_cxxflags) -I$(basepath)/time
+ @build_ezca_TRUE@ezcademod_CXXFLAGS = $(cmd_cxxflags) $(epicscflags)
+-@dtt_online_TRUE@python_PYTHON = $(dttsrc)/awg/awgbase.py $(dttsrc)/awg/awg.py
++@dtt_online_TRUE@python_PYTHON = awgbase.py $(dttsrc)/awg/awg.py
+ CLEANFILES = hdr-time-stamp rpc-time-stamp
+ all: $(BUILT_SOURCES)
+         $(MAKE) $(AM_MAKEFLAGS) all-am
+@@ -4125,6 +4125,9 @@
+ #
+ .NOTPARALLEL:

++awgbase.py: $(dttsrc)/awg/awgbase.py.in
++        $(SED) 's,__libdir__,'$(libdir)',' $&lt; &gt;$@
++
+ hdr-time-stamp: Makefile $(DTTHEADERS)
+         $(mkdir_p) $(DTTINCLUDEDIR)
+         for f in $(DTTHEADERS); do \
</ins></span></pre></div>
<a id="trunkdportssciencegdsfilespatchDTTsrcawgawgbasepyindiff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gds/files/patch-DTT-src-awg-awgbase.py.in.diff (0 => 137318)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gds/files/patch-DTT-src-awg-awgbase.py.in.diff                                (rev 0)
+++ trunk/dports/science/gds/files/patch-DTT-src-awg-awgbase.py.in.diff        2015-06-09 03:46:01 UTC (rev 137318)
</span><span class="lines">@@ -0,0 +1,249 @@
</span><ins>+--- DTT/src/awg/awgbase.py.in.orig        2015-06-08 12:03:34.000000000 -0700
++++ DTT/src/awg/awgbase.py.in        2015-06-08 11:33:53.000000000 -0700
+@@ -0,0 +1,246 @@
++# -*- mode: python -*-
++# Version $Id$
++&quot;&quot;&quot;
++ctypes wrapping of AWG API
++
++Author: Christopher Wipf, Massachusetts Institute of Technology
++  
++This module calls the libawg library for the standard set of
++waveforms, the libtestpoint library for testpoint handling, and the
++libSIStr library (from awgstream) for arbitrary loops and streams.
++
++&quot;&quot;&quot;
++import os
++import platform
++from ctypes import CDLL, Structure, c_int, c_uint, c_longlong, c_ulonglong, \
++    c_float, c_double, c_char, c_char_p, POINTER
++from numpy import array
++from numpy.ctypeslib import ndpointer
++
++__docformat__ = 'restructuredtext'
++
++sys = platform.system( )
++ext = '.so'
++awglibdir = '__libdir__'
++if ( len(awglibdir) &gt; 0 ):
++    awglibdir += os.sep
++if ( sys == 'Darwin' ):
++    ext = '.dylib'
++libawg = CDLL(awglibdir + 'libawg' + ext)
++libtestpoint = CDLL(awglibdir + 'libtestpoint' + ext)
++libSIStr = None
++try:
++    libSIStr = CDLL(awglibdir + 'libSIStr' + ext)
++except:
++    pass
++
++####
++#### tconv.h
++####
++
++# One epoch expressed in ns
++_EPOCH = 1e9 / 16.0
++
++libawg.TAInow.argtypes = []
++libawg.TAInow.restype = c_ulonglong
++TAInow = libawg.TAInow
++GPSnow = TAInow
++
++
++####
++#### awgtype.h
++####
++
++# AWG_WaveType enum values
++awgNone = 0
++awgSine = 1
++awgSquare = 2
++awgRamp = 3
++awgTriangle = 4
++awgImpulse = 5
++awgConst = 6
++awgNoiseN = 7
++awgNoiseU = 8
++awgArb = 9
++awgStream = 10
++
++# Phasing types
++AWG_PHASING_STEP = 0
++AWG_PHASING_LINEAR = 1
++AWG_PHASING_QUADRATIC = 2
++AWG_PHASING_LOG = 3
++
++class AWG_Component(Structure):
++    _fields_ = [(&quot;wtype&quot;, c_uint),
++                (&quot;_par_ctypes&quot;, c_double * 4),
++                (&quot;start&quot;, c_ulonglong),
++                (&quot;duration&quot;, c_ulonglong),
++                (&quot;restart&quot;, c_ulonglong),
++                (&quot;ramptype&quot;, c_int),
++                (&quot;_ramptime_ctypes&quot;, c_ulonglong * 2),
++                (&quot;_ramppar_ctypes&quot;, c_double * 4)]
++    @property
++    def par(self):
++        return tuple(self._par_ctypes)
++
++    @par.setter
++    def par(self, val):
++        self._par_ctypes = (c_double * 4)(*val)
++
++    @property
++    def ramptime(self):
++        return tuple(self._ramptime_ctypes)
++
++    @ramptime.setter
++    def ramptime(self, val):
++        self._ramptime_ctypes = (c_ulonglong * 2)(*val)
++
++    @property
++    def ramppar(self):
++        return tuple(self._ramppar_ctypes)
++
++    @ramppar.setter
++    def ramppar(self, val):
++        self._ramppar_ctypes = (c_double * 4)(*val)
++
++
++####
++#### awgapi.h
++####
++
++libawg.awgSetChannel.argtypes = [c_char_p,]
++libawg.awgSetChannel.restype = c_int
++awgSetChannel = libawg.awgSetChannel
++
++libawg.awgAddWaveform.argtypes = [c_int, POINTER(AWG_Component), c_int]
++libawg.awgAddWaveform.restype = c_int
++def awgAddWaveform(slot, comp):
++    comp_array = (AWG_Component * len(comp))(*comp)
++    return libawg.awgAddWaveform(slot, comp_array, len(comp))
++
++libawg.awgStopWaveform.argtypes = [c_int, c_int, c_ulonglong]
++libawg.awgStopWaveform.restype = c_int
++awgStopWaveform = libawg.awgStopWaveform
++
++libawg.awgClearWaveforms.argtypes = [c_int,]
++libawg.awgClearWaveforms.restype = c_int
++awgClearWaveforms = libawg.awgClearWaveforms
++
++libawg.awgRemoveChannel.argtypes = [c_int,]
++libawg.awgRemoveChannel.restype = c_int
++awgRemoveChannel = libawg.awgRemoveChannel
++
++libawg.awgSetGain.argtypes = [c_int, c_double, c_ulonglong]
++libawg.awgSetGain.restype = c_int
++awgSetGain = libawg.awgSetGain
++
++libawg.awgSetFilter.argtypes = [c_int, POINTER(c_double), c_int]
++libawg.awgSetFilter.restype = c_int
++def awgSetFilter(slot, coeffs):
++    coeffs_array = (c_double * len(coeffs))(*coeffs)
++    return libawg.awgSetFilter(slot, coeffs_array, len(coeffs))
++
++libawg.awg_cleanup.argtypes = []
++libawg.awg_cleanup.restype = None
++awg_cleanup = libawg.awg_cleanup
++
++
++####
++#### testpoint.h
++####
++
++libtestpoint.tpRequestName.argtypes = [c_char_p, c_ulonglong, 
++                                       POINTER(c_ulonglong), POINTER(c_int)]
++libtestpoint.tpRequestName.restype = c_int
++def tpRequestName(tpNames, timeout, time, epoch):
++    if time is not None:
++        time_ptr = POINTER(c_ulonglong)(time)
++    else:
++        time_ptr = POINTER(c_ulonglong)()
++    if epoch is not None:
++        epoch_ptr = POINTER(c_int)(epoch)
++    else:
++        epoch_ptr = POINTER(c_int)()
++    return libtestpoint.tpRequestName(tpNames, timeout, time_ptr, epoch_ptr)
++
++libtestpoint.tpClearName.argtypes = [c_char_p,]
++libtestpoint.tpClearName.restype = c_int
++tpClearName = libtestpoint.tpClearName
++
++libtestpoint.testpoint_cleanup.argtypes = []
++libtestpoint.testpoint_cleanup.restype = None
++testpoint_cleanup = libtestpoint.testpoint_cleanup
++
++
++if libSIStr:
++  ####
++  #### SIStr.h
++  ####
++
++  # Compile-time parameters
++  SIStr_MAXCHANNAMELENGTH = 64
++  # Target &quot;lead time&quot; for sending waveform data, in NANOseconds
++  SIStr_LEADTIME = 7 * 10**9
++  # Status codes
++  SIStr_OK = 0
++
++  class SIStrBuf(Structure):
++    pass
++
++  SIStrBuf._fields_ = [('gpstime', c_int),
++                       ('epoch', c_int),
++                       ('iblock', c_int),
++                       ('size', c_int),
++                       ('ndata', c_int),
++                       ('next', POINTER(SIStrBuf)),
++                       ('data', POINTER(c_float))]
++
++  class SIStream(Structure):
++    _fields_ = [('magic', c_int),
++                ('id', c_int),
++                ('channel', c_char * SIStr_MAXCHANNAMELENGTH),
++                ('samprate', c_int),
++                ('starttime', c_double),
++                ('slot', c_int),
++                ('tp', c_int),
++                ('comp', c_int),
++                ('blocksize', c_int),
++                ('nblocks', c_int),
++                ('curgps', c_int),
++                ('curepoch', c_int),
++                ('sentgps', c_int),
++                ('sentepoch', c_int),
++                ('nbufs', c_int),
++                ('curbuf', POINTER(SIStrBuf)),
++                ('firstbuf', POINTER(SIStrBuf)),
++                ('lastbuf', POINTER(SIStrBuf)),
++                ('lastsend', c_longlong),
++                ('minwait', c_longlong),
++                ('aborted', c_int)]
++
++  libSIStr.SIStrAppInfo.argtypes = [c_char_p,]
++  libSIStr.SIStrAppInfo.restype = None
++  SIStrAppInfo = libSIStr.SIStrAppInfo
++  
++  libSIStr.SIStrOpen.argtypes = [POINTER(SIStream), c_char_p, c_int, c_double]
++  libSIStr.SIStrOpen.restype = c_int
++  SIStrOpen = libSIStr.SIStrOpen
++
++  libSIStr.SIStrErrorMsg.argtypes = [c_int,]
++  libSIStr.SIStrErrorMsg.restype = c_char_p
++  SIStrErrorMsg = libSIStr.SIStrErrorMsg
++
++  libSIStr.SIStrAppend.argtypes = [POINTER(SIStream), ndpointer(c_float),
++                                 c_int, c_float]
++  libSIStr.SIStrAppend.restype = c_int
++  def SIStrAppend(sis, data, scale):
++      data_array = array(data).astype('f')
++      return libSIStr.SIStrAppend(sis, data_array, data_array.size, scale)
++
++  libSIStr.SIStrClose.argtypes = [POINTER(SIStream),]
++  libSIStr.SIStrClose.restype = c_int
++  SIStrClose = libSIStr.SIStrClose
++
++  libSIStr.SIStrAbort.argtypes = [POINTER(SIStream),]
++  libSIStr.SIStrAbort.restype = c_int
++  SIStrAbort = libSIStr.SIStrAbort
</ins></span></pre></div>
<a id="trunkdportssciencegdsfilespatchconfigac_dmtofflinem4diff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/gds/files/patch-config-ac_dmtoffline.m4.diff (0 => 137318)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/gds/files/patch-config-ac_dmtoffline.m4.diff                                (rev 0)
+++ trunk/dports/science/gds/files/patch-config-ac_dmtoffline.m4.diff        2015-06-09 03:46:01 UTC (rev 137318)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+--- config/ac_dmtoffline.m4.orig        2015-05-24 04:31:45.000000000 -0700
++++ config/ac_dmtoffline.m4        2015-06-06 06:44:50.000000000 -0700
+@@ -45,7 +45,7 @@
+ fi
+ GDS_CXX_FLAVOR=&quot;generic&quot;
+ case $CXX in
+-gcc|*/gcc|g++|*/g++|g++-mp-*|*/g++-mp-*) 
++gcc|*/gcc|g++|*/g++|g++-mp-*|*/g++-mp-*|clang++|*/clang++) 
+     GDS_CXX_FLAVOR=&quot;gnu&quot;
+     CXXFLAGS=&quot;${CXXFLAGS} -std=c++0x&quot;
+     if test `$CXX --version | grep -c clang` != 0
+@@ -157,7 +157,7 @@
+ AC_MSG_CHECKING([for gcc style SIMD vector library])
+ gcc_simd=no
+ case ${GDS_CXX_FLAVOR} in
+-gnu | clang)
++gnu|clang)
+     gcc_simd=yes
+     ;;
+ *)
</ins></span></pre>
</div>
</div>

</body>
</html>