| 1 | # See https://ghc.haskell.org/trac/ghc/wiki/Building/CrossCompiling |
| 2 | # https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Linux |
| 3 | # and |
| 4 | # https://github.com/neurocyte/ghc-android |
| 5 | TERMUX_PKG_HOMEPAGE=https://www.haskell.org/ghc/ |
| 6 | TERMUX_PKG_DESCRIPTION="The Glasgow Haskell Compilation system" |
| 7 | TERMUX_PKG_VERSION=8.0.1 |
| 8 | TERMUX_PKG_SRCURL=http://downloads.haskell.org/~ghc/${TERMUX_PKG_VERSION}/ghc-${TERMUX_PKG_VERSION}-src.tar.xz |
| 9 | TERMUX_PKG_FOLDERNAME=ghc-$TERMUX_PKG_VERSION |
| 10 | TERMUX_PKG_BUILD_IN_SRC=yes |
| 11 | # Depend on clang for now until llvm is split into separate package: |
| 12 | TERMUX_PKG_DEPENDS="clang, ncurses" |
| 13 | |
| 14 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-iconv-includes=$TERMUX_PREFIX/include -with-iconv-libraries=$TERMUX_PREFIX/lib" |
| 15 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-curses-includes=$TERMUX_PREFIX/include/ncursesw -with-curses-libraries=$TERMUX_PREFIX/lib" |
| 16 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --host=x86_64-unknown-linux --build=x86_64-unknown-linux" |
| 17 | |
| 18 | termux_step_post_extract_package() { |
| 19 | ORIG_CFLAGS="$CFLAGS" |
| 20 | ORIG_CPPFLAGS="$CPPFLAGS" |
| 21 | ORIG_LDFLAGS="$LDFLAGS" |
| 22 | |
| 23 | unset AR |
| 24 | unset AS |
| 25 | unset CC |
| 26 | export CFLAGS="" |
| 27 | unset CPP |
| 28 | export CPPFLAGS="" |
| 29 | unset CXXFLAGS |
| 30 | unset CXX |
| 31 | export LDFLAGS="" |
| 32 | unset LD |
| 33 | unset PKG_CONFIG |
| 34 | unset RANLIB |
| 35 | |
| 36 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --target=${TERMUX_HOST_PLATFORM}" |
| 37 | } |
| 38 | |
| 39 | termux_step_pre_configure () { |
| 40 | echo "INTEGER_LIBRARY = integer-simple" > mk/build.mk |
| 41 | #echo "GhcStage2HcOpts = $ORIG_CFLAGS $ORIG_CPPFLAGS $ORIG_LDFLAGS" >> mk/build.mk |
| 42 | |
| 43 | # Avoid "Can't use -fPIC or -dynamic on this platform": |
| 44 | echo "DYNAMIC_GHC_PROGRAMS = NO" >> mk/build.mk |
| 45 | echo "GhcLibWays = v" >> mk/build.mk |
| 46 | # "Can not build haddock docs when CrossCompiling or Stage1Only". |
| 47 | echo "HADDOCK_DOCS=NO" >> mk/build.mk |
| 48 | } |