summaryrefslogtreecommitdiff
path: root/utils/iserv-proxy/iserv-proxy.cabal.in
diff options
context:
space:
mode:
Diffstat (limited to 'utils/iserv-proxy/iserv-proxy.cabal.in')
-rw-r--r--utils/iserv-proxy/iserv-proxy.cabal.in82
1 files changed, 0 insertions, 82 deletions
diff --git a/utils/iserv-proxy/iserv-proxy.cabal.in b/utils/iserv-proxy/iserv-proxy.cabal.in
deleted file mode 100644
index 7cfdd9ad7f..0000000000
--- a/utils/iserv-proxy/iserv-proxy.cabal.in
+++ /dev/null
@@ -1,82 +0,0 @@
--- WARNING: iserv-proxy.cabal is automatically generated from iserv-proxy.cabal.in by
--- ../../configure. Make sure you are editing iserv-proxy.cabal.in, not
--- iserv-proxy.cabal.
-
-Name: iserv-proxy
-Version: @ProjectVersion@
-Copyright: XXX
-License: BSD3
--- XXX License-File: LICENSE
-Author: XXX
-Maintainer: XXX
-Synopsis: iserv allows GHC to delegate Template Haskell computations
-Description:
- GHC can be provided with a path to the iserv binary with
- @-pgmi=/path/to/iserv-bin@, and will in combination with
- @-fexternal-interpreter@, compile Template Haskell though the
- @iserv-bin@ delegate. This is very similar to how ghcjs has been
- compiling Template Haskell, by spawning a separate delegate (so
- called runner on the javascript vm) and evaluating the splices
- there.
- .
- iserv can also be used in combination with cross compilation. For
- this, the @iserv-proxy@ needs to be built on the host, targeting the
- host (as it is running on the host). @cabal install -flibrary
- -fproxy@ will yield the proxy.
- .
- Using the cabal for the target @arch-platform-target-cabal install
- -flibrary@ will build the required library that contains the ffi
- @startSlave@ function, which needs to be invoked on the target
- (e.g. in an iOS application) to start the remote iserv slave.
- .
- calling the GHC cross compiler with @-fexternal-interpreter
- -pgmi=$HOME/.cabal/bin/iserv-proxy -opti\<ip address\> -opti\<port\>@
- will cause it to compile Template Haskell via the remote at \<ip address\>.
- .
- Thus to get cross compilation with Template Haskell follow the
- following receipt:
- .
- * compile the iserv library for your target
- .
- > iserv $ arch-platform-target-cabal install -flibrary
- .
- * setup an application for your target that calls the
- * startSlave function. This could be either haskell or your
- * targets ffi capable language, if needed.
- .
- > void startSlave(false /* verbose */, 5000 /* port */,
- > "/path/to/storagelocation/on/target");
- .
- * build the iserv-proxy
- .
- > iserv $ cabal install -flibrary -fproxy
- * Start your iserv-slave app on your target running on say @10.0.0.1:5000@
- * compiler your sources with -fexternal-interpreter and the proxy
- .
- > project $ arch-platform-target-ghc ModuleContainingTH.hs \
- > -fexternal-interpreter \
- > -pgmi=$HOME/.cabal/bin/iserv-proxy \
- > -opti10.0.0.1 -opti5000
- .
- Should something not work as expected, provide @-opti-v@ for verbose
- logging of the @iserv-proxy@.
-
-Category: Development
-build-type: Simple
-cabal-version: >=1.10
-
-Executable iserv-proxy
- Default-Language: Haskell2010
- Main-Is: Main.hs
- Hs-Source-Dirs: src
- Build-Depends: array >= 0.5 && < 0.6,
- base >= 4 && < 5,
- binary >= 0.7 && < 0.9,
- bytestring >= 0.10 && < 0.11,
- containers >= 0.5 && < 0.8,
- deepseq >= 1.4 && < 1.5,
- directory >= 1.3 && < 1.4,
- network >= 2.6,
- filepath >= 1.4 && < 1.5,
- ghci == @ProjectVersionMunged@,
- libiserv == @ProjectVersionMunged@