packages feed

PortFusion-1.2.0: PortFusion.cabal

name:          PortFusion
version:       1.2.0
stability:     stable on all operating systems
synopsis:      high-performance distributed reverse / forward proxy & tunneling for TCP
description:   PortFusion is a minimalistic, cross-platform, transport-layer
               distributed reverse / forward proxy & tunneling solution for TCP
               (RDP, SSH, HTTP(S), (S)FTP, VNC, ...) released under GPLv3.
               .
               A single package that makes the most of each platform by tapping
               into their unique capabilities, combining this power with an
               intuitive interface, beautiful design and Haskell's excellent
               support for unprecedented levels of concurrency and parallelism.
               .
               It strives for the smallest source code size while delivering
               maximum throughput with near zero overhead.
               .
               [Official Binaries]
               visit <http://fusion.corsis.eu> to download for:
               .
               * Windows
               .
               * GNU/Linux
               .
               * Mac OS X
               .
               * FreeBSD
               .
               [Version Scheme]
               Major-@/R/@-ewrite . New-@/F/@-unctionality . @/I/@-mprovementAndBugFixes . @/P/@-ackagingOnly
               .
               * @PackagingOnly@ changes are made for quality assurance reasons.
               .
               * No new official binary releases are made for @PackagingOnly@ changes.
               .
               * Official @r.f.i@ binaries are bit-for-bit the same as @r.f.i.p@ builds for all @p@.

copyright:     Copyright © 2012 Cetin Sert
license:       GPL-3
license-file:  LICENSE
author:        Cetin Sert <fusion@corsis.eu>, Corsis Research
maintainer:    Cetin Sert <fusion@corsis.eu>, Corsis Research
homepage:      http://fusion.corsis.eu
package-url:   http://fusion.corsis.eu
bug-reports:   http://github.com/corsis/PortFusion/issues
category:      System, Network,
build-type:    Simple
cabal-version: >=1.6



extra-source-files: res/*.svg
                    res/osx/*.icns
                    res/osx/*.hqx
                    res/win/*.rc
                    res/win/*.bat
                    res/win/*.ico
                    res/win/*.res



source-repository head
    type:      git
    location:  git://github.com/corsis/PortFusion.git


flag static
    description: enable fullly static linking
    default    : False


flag llvm
    description: compile via LLVM
    default    : False



executable PortFusion
    hs-source-dirs:  src
    main-is:         Main.hs
    buildable:       True
    build-depends:   base       >= 4 && <= 5,
                     bytestring -any,
                     splice     -any
    if os(mingw32)
      build-depends: network    >= 2.3.0.13
      ghc-options:   res\win\PortFusion.res
    else
      build-depends: network    -any


    ghc-options:     -W -O2

    if !os(mingw32) && !arch(arm)
      ghc-options:   -threaded -rtsopts

    if flag(static)
      ghc-options:   -static
      ld-options:    -static

    if flag(llvm)
      ghc-options:   -fllvm -optlo-O3


--------------------------------------------------------------------------------


   -- CORSIS Build Name Components

    if os(linux)
       cpp-options: -D__OS__="Linux"
    else
       if os(mingw32)
         cpp-options: -D__OS__="Windows"
       else
         if os(freebsd)
           cpp-options: -D__OS__="FreeBSD"
         else
           if os(openbsd) || os(netbsd)
             cpp-options: -D__OS__="BSD"
           else
             if os(darwin)
               cpp-options: -D__OS__="MacOS"
             else
               if os(solaris)
                 cpp-options: -D__OS__="Solaris"
               else
--                 if os(gnu) || os(hurd)
--                   cpp-options: -D__OS__="HURD"
--                 else
                   cpp-options: -D__OS__="Generic"


    if arch(i386)
       cpp-options: -D__ARCH__="x86"
    else
       if arch(x86_64)
         cpp-options: -D__ARCH__="x86-64"
       else
         if arch(arm)
           cpp-options: -D__ARCH__="ARM"
         else
--           if arch(powerpc)
--             cpp-options: -D__ARCH__="PowerPC"
--           else
--             if arch(powerpc64)
--               cpp-options: -D__ARCH__="PowerPC-64"
--             else
               if arch(sparc)
                 cpp-options: -D__ARCH__="SPARC"
               else
                 if arch(ia64)
                   cpp-options: -D__ARCH__="Itanium-64"
                 else
                   if arch(mips)
                     cpp-options: -D__ARCH__="MIPS"
                   else
                     cpp-options: -D__ARCH__="Unknown"