4 # bsd.cabal.options.mk -- Support options for ports based on Haskell Cabal.
6 # Created by: Gabor Pali <pgj@FreeBSD.org>
8 # Maintained by: haskell@FreeBSD.org
11 CABALOPTIONSMKINCLUDED= yes
14 PKGNAMEPREFIX?= ${HSPREFIX}
16 LOCALBASE?= /usr/local
17 GHC_CMD?= ${LOCALBASE}/bin/ghc
18 HADDOCK_CMD?= ${LOCALBASE}/bin/haddock
19 HSCOLOUR_CMD?= ${LOCALBASE}/bin/HsColour
23 HSCOLOUR_DESC?= Colorize generated documentation by HsColour
24 DYNAMIC_DESC?= Add support for dynamic linking
25 PROFILE_DESC?= Add support for profiling
26 LLVM_DESC?= Use the LLVM backend for code generation
28 .if (!exists(${GHC_CMD}) || exists(${LOCALBASE}/lib/ghc-${GHC_VERSION}/ghc-${GHC_VERSION}/GHC.dyn_hi)) && !defined(IGNORE_DYNAMIC)
29 OPTIONS_DEFINE+= DYNAMIC
30 OPTIONS_DEFAULT+= DYNAMIC
33 .if (!exists(${GHC_CMD}) || exists(${LOCALBASE}/lib/ghc-${GHC_VERSION}/ghc-${GHC_VERSION}/GHC.p_hi)) && !defined(IGNORE_PROFILE)
34 OPTIONS_DEFINE+= PROFILE
37 .if !defined(IGNORE_LLVM)
41 .if ((!exists(${GHC_CMD}) || exists(${LOCALBASE}/lib/ghc-${GHC_VERSION}/html)) || exists(${HADDOCK_CMD})) && !defined(IGNORE_DOCS)
43 OPTIONS_DEFAULT+= DOCS
44 HADDOCK_AVAILABLE= yes
46 .if (${PORTNAME} != hscolour || exists(${HSCOLOUR_CMD})) && !defined(IGNORE_HSCOLOUR)
47 OPTIONS_DEFINE+= HSCOLOUR
51 .if defined(OPTIONSMKINCLUDED)
52 IGNORE?= options fail: bsd.cabal.mk already includes bsd.options.mk
55 OPTIONS_DEFINE+= ${FLAGS_DEFINE}
56 OPTIONS_SINGLE+= ${FLAGS_SINGLE}
57 OPTIONS_MULTI+= ${FLAGS_MULTI}
58 OPTIONS_DEFAULT+= ${FLAGS_DEFAULT}
60 _ALL_FLAGS:= ${FLAGS_DEFINE} ${FLAGS_SINGLE} ${FLAGS_MULTI}
61 _COMPLETE_FLAGS= ${_ALL_FLAGS}
63 .for f in ${_ALL_FLAGS}
64 . if defined(FLAGS_SINGLE_${f})
65 _COMPLETE_FLAGS+= ${FLAGS_SINGLE_${f}}
66 OPTIONS_SINGLE_${f}= ${FLAGS_SINGLE_${f}}
68 . if defined(FLAGS_MULTI_${f})
69 _COMPLETE_FLAGS+= ${FLAGS_MULTI_${f}}
70 OPTIONS_MULTI_${f}= ${FLAGS_MULTI_${f}}
74 .include <bsd.port.options.mk>
76 .for f in ${_COMPLETE_FLAGS}
77 . if defined(${f}_FLAG_DEPENDS)
78 . for r in ${${f}_FLAG_DEPENDS}
79 . if !${PORT_OPTIONS:M${r}}
80 _${f}_DEPENDS_FAIL= yes
84 . if ${PORT_OPTIONS:M${f}} && !defined(_${f}_DEPENDS_FAIL)
85 . if defined(${f}_FLAG_ENABLE)
86 CONFIGURE_ARGS+= --flags="${${f}_FLAG_ENABLE}"
88 . if defined(${f}_FLAG_CONFIGURE_ON)
89 CONFIGURE_ARGS+= ${${f}_FLAG_CONFIGURE_ON}
91 . if defined(${f}_FLAG_CABAL)
92 USE_CABAL+= ${${f}_FLAG_CABAL}
94 . if defined(${f}_FLAG_EXECUTABLE)
95 EXECUTABLE+= ${${f}_FLAG_EXECUTABLE}
97 . if defined(${f}_FLAG_LIB)
98 LIB_DEPENDS+= ${${f}_FLAG_LIB}
100 . if defined(${f}_FLAG_XORG)
101 USE_XORG+= ${${f}_FLAG_XORG}
103 . if defined(${f}_BROKEN)
104 BROKEN= ${${f}_BROKEN} with the ${f} flag enabled
106 . if defined(${f}_DYNAMIC_BROKEN) && ${PORT_OPTIONS:MDYNAMIC}
107 BROKEN= ${${f}_DYNAMIC_BROKEN}
110 . if defined(${f}_FLAG_ENABLE)
111 CONFIGURE_ARGS+= --flags="-${${f}_FLAG_ENABLE}"
113 . if defined(${f}_FLAG_CONFIGURE_OFF)
114 CONFIGURE_ARGS+= ${${f}_FLAG_CONFIGURE_OFF}
119 .if defined(FLAGS_ENABLE)
120 CONFIGURE_ARGS+= --flags="${FLAGS_ENABLE}"
123 .if defined(FLAGS_DISABLE)
124 . for f in ${FLAGS_DISABLE}
125 CONFIGURE_ARGS+= --flags="-${f}"