diff options
author | Joey Hess <joey@kitenet.net> | 2013-02-11 16:56:04 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-02-11 16:56:30 -0400 |
commit | c4e7c6af35c3abf66b4c0c68d4224ae010e1f2a8 (patch) | |
tree | 9712147f4c671a6ce92aca7c6f735311103e58fc | |
parent | ae9a235b8c49543df1de1a294a438f0894cd579c (diff) |
configure: hardcode some things that cannot be probed for when cross-compiling for Android
-rw-r--r-- | Build/Configure.hs | 21 | ||||
-rw-r--r-- | Makefile | 10 |
2 files changed, 25 insertions, 6 deletions
diff --git a/Build/Configure.hs b/Build/Configure.hs index 6e12d19af..b6e852d48 100644 --- a/Build/Configure.hs +++ b/Build/Configure.hs @@ -7,6 +7,7 @@ import Data.List import System.Process import Control.Applicative import System.FilePath +import System.Environment import Build.TestConfig import Utility.SafeCommand @@ -121,8 +122,26 @@ cleanup = removeDirectoryRecursive tmpDir run :: [TestCase] -> IO () run ts = do + args <- getArgs setup config <- runTests ts - writeSysConfig config + if args == ["Android"] + then writeSysConfig $ androidConfig config + else writeSysConfig config cleanup cabalSetup + +{- Hard codes some settings to cross-compile for Android. -} +androidConfig :: [Config] -> [Config] +androidConfig c = overrides ++ filter (not . overridden) c + where + overrides = + [ Config "cp_reflink_auto" $ BoolConfig False + , Config "curl" $ BoolConfig False + , Config "sshconnectioncaching" $ BoolConfig False + , Config "sha224" $ MaybeStringConfig Nothing + , Config "sha384" $ MaybeStringConfig Nothing + ] + overridden (Config k _) = k `elem` overridekeys + overridekeys = map (\(Config k _) -> k) overrides + @@ -13,8 +13,8 @@ mans=git-annex.1 git-annex-shell.1 sources=Build/SysConfig.hs Utility/Touch.hs Utility/Mounts.hs all=$(bins) $(mans) docs -OS:=$(shell uname | sed 's/[-_].*//') -ifeq ($(ANDROID),1) +OS?=$(shell uname | sed 's/[-_].*//') +ifeq ($(OS),Android) OPTFLAGS?=-DWITH_INOTIFY -DWITH_ANDROID clibs=Utility/libdiskfree.o Utility/libmounts.o CFLAGS:=-Wall -DWITH_ANDROID @@ -77,7 +77,7 @@ fast: $(bins) Build/SysConfig.hs: configure.hs Build/TestConfig.hs Build/Configure.hs $(GHCMAKE) configure - ./configure + ./configure $(OS) %.hs: %.hsc hsc2hs $< @@ -231,11 +231,11 @@ osxapp: # So the Android should have all the same stuff that configure probes for, # including the same version of git. android: - $(MAKE) Build/SysConfig.hs + OS=Android $(MAKE) Build/SysConfig.hs GHC=$$HOME/.ghc/android-14/arm-linux-androideabi-4.7/bin/arm-unknown-linux-androideabi-ghc \ CC=$$HOME/.ghc/android-14/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc \ FEATURES="-DWITH_ANDROID -DWITH_ASSISTANT -DWITH_GLOB -DWITH_DNS" \ - ANDROID=1 $(MAKE) fast + OS=Android $(MAKE) fast # used by ./ghci getflags: |