]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | dnl Copyright (C) 2009 Facebook |
2 | dnl Copying and distribution of this file, with or without modification, | |
3 | dnl are permitted in any medium without royalty provided the copyright | |
4 | dnl notice and this notice are preserved. | |
5 | ||
6 | AC_DEFUN([FB_INITIALIZE], | |
7 | [ | |
8 | AM_INIT_AUTOMAKE([ foreign 1.9.5 no-define ]) | |
9 | if test "x$1" = "xlocalinstall"; then | |
10 | wdir=`pwd` | |
11 | # To use $wdir undef quote. | |
12 | # | |
13 | ########## | |
14 | AC_PREFIX_DEFAULT([`pwd`/install]) | |
15 | echo | |
16 | fi | |
17 | AC_PROG_CC | |
18 | AC_PROG_CXX | |
19 | AC_PROG_RANLIB(RANLIB, ranlib) | |
20 | AC_PATH_PROGS(BASH, bash) | |
21 | AC_PATH_PROGS(PERL, perl) | |
22 | AC_PATH_PROGS(PYTHON, python) | |
23 | AC_PATH_PROGS(AR, ar) | |
24 | AC_PATH_PROGS(ANT, ant) | |
25 | PRODUCT_MK="" | |
26 | ]) | |
27 | ||
28 | AC_DEFUN([FB_WITH_EXTERNAL_PATH], | |
29 | [ | |
30 | cdir=`pwd` | |
31 | AC_MSG_CHECKING([Checking EXTERNAL_PATH set to]) | |
32 | AC_ARG_WITH([externalpath], | |
33 | [ --with-externalpath=DIR User specified path to external facebook components.], | |
34 | [ | |
35 | if test "x${EXTERNAL_PATH}" != "x"; then | |
36 | echo "" | |
37 | echo "ERROR: You have already set EXTERNAL_PATH in your environment" | |
38 | echo "Cannot override it using --with-externalpath. Unset EXTERNAL_PATH to use this option" | |
39 | exit 1 | |
40 | fi | |
41 | EXTERNAL_PATH=$withval | |
42 | ], | |
43 | [ | |
44 | if test "x${EXTERNAL_PATH}" = "x"; then | |
45 | EXTERNAL_PATH=$1 | |
46 | fi | |
47 | ] | |
48 | ) | |
49 | if test "x${EXTERNAL_PATH}" = "x"; then | |
50 | export EXTERNAL_PATH="$cdir/external" | |
51 | GLOBAL_HEADER_MK="include ${EXTERNAL_PATH}/global_header.mk" | |
52 | GLOBAL_FOOTER_MK="include ${EXTERNAL_PATH}/global_footer.mk" | |
53 | else | |
54 | export EXTERNAL_PATH | |
55 | GLOBAL_HEADER_MK="include ${EXTERNAL_PATH}/global_header.mk" | |
56 | GLOBAL_FOOTER_MK="include ${EXTERNAL_PATH}/global_footer.mk" | |
57 | fi | |
58 | AC_MSG_RESULT($EXTERNAL_PATH) | |
59 | if test ! -d ${EXTERNAL_PATH}; then | |
60 | echo "" | |
61 | echo "ERROR: EXTERNAL_PATH set to an nonexistent directory ${EXTERNAL_PATH}" | |
62 | exit 1 | |
63 | fi | |
64 | AC_SUBST(EXTERNAL_PATH) | |
65 | AC_SUBST(GLOBAL_HEADER_MK) | |
66 | AC_SUBST(GLOBAL_FOOTER_MK) | |
67 | ]) | |
68 | ||
69 | # Set option to enable shared mode. Set DEBUG and OPT for use in Makefile.am. | |
70 | AC_DEFUN([FB_ENABLE_DEFAULT_OPT_BUILD], | |
71 | [ | |
72 | AC_MSG_CHECKING([whether to enable optimized build]) | |
73 | AC_ARG_ENABLE([opt], | |
74 | [ --disable-opt Set up debug mode.], | |
75 | [ | |
76 | ENABLED_OPT=$enableval | |
77 | ], | |
78 | [ | |
79 | ENABLED_OPT="yes" | |
80 | ] | |
81 | ) | |
82 | if test "$ENABLED_OPT" = "yes" | |
83 | then | |
84 | CFLAGS="-Wall -O3" | |
85 | CXXFLAGS="-Wall -O3" | |
86 | else | |
87 | CFLAGS="-Wall -g" | |
88 | CXXFLAGS="-Wall -g" | |
89 | fi | |
90 | AC_MSG_RESULT($ENABLED_OPT) | |
91 | AM_CONDITIONAL([OPT], [test "$ENABLED_OPT" = yes]) | |
92 | AM_CONDITIONAL([DEBUG], [test "$ENABLED_OPT" = no]) | |
93 | ]) | |
94 | ||
95 | # Set option to enable debug mode. Set DEBUG and OPT for use in Makefile.am. | |
96 | AC_DEFUN([FB_ENABLE_DEFAULT_DEBUG_BUILD], | |
97 | [ | |
98 | AC_MSG_CHECKING([whether to enable debug build]) | |
99 | AC_ARG_ENABLE([debug], | |
100 | [ --disable-debug Set up opt mode.], | |
101 | [ | |
102 | ENABLED_DEBUG=$enableval | |
103 | ], | |
104 | [ | |
105 | ENABLED_DEBUG="yes" | |
106 | ] | |
107 | ) | |
108 | if test "$ENABLED_DEBUG" = "yes" | |
109 | then | |
110 | CFLAGS="-Wall -g" | |
111 | CXXFLAGS="-Wall -g" | |
112 | else | |
113 | CFLAGS="-Wall -O3" | |
114 | CXXFLAGS="-Wall -O3" | |
115 | fi | |
116 | AC_MSG_RESULT($ENABLED_DEBUG) | |
117 | AM_CONDITIONAL([DEBUG], [test "$ENABLED_DEBUG" = yes]) | |
118 | AM_CONDITIONAL([OPT], [test "$ENABLED_DEBUG" = no]) | |
119 | ]) | |
120 | ||
121 | # Set option to enable static libs. | |
122 | AC_DEFUN([FB_ENABLE_DEFAULT_STATIC], | |
123 | [ | |
124 | SHARED="" | |
125 | STATIC="" | |
126 | AC_MSG_CHECKING([whether to enable static mode]) | |
127 | AC_ARG_ENABLE([static], | |
128 | [ --disable-static Set up shared mode.], | |
129 | [ | |
130 | ENABLED_STATIC=$enableval | |
131 | ], | |
132 | [ | |
133 | ENABLED_STATIC="yes" | |
134 | ] | |
135 | ) | |
136 | if test "$ENABLED_STATIC" = "yes" | |
137 | then | |
138 | LTYPE=".a" | |
139 | else | |
140 | LTYPE=".so" | |
141 | SHARED_CXXFLAGS="-fPIC" | |
142 | SHARED_CFLAGS="-fPIC" | |
143 | SHARED_LDFLAGS="-shared -fPIC" | |
144 | AC_SUBST(SHARED_CXXFLAGS) | |
145 | AC_SUBST(SHARED_CFLAGS) | |
146 | AC_SUBST(SHARED_LDFLAGS) | |
147 | fi | |
148 | AC_MSG_RESULT($ENABLED_STATIC) | |
149 | AC_SUBST(LTYPE) | |
150 | AM_CONDITIONAL([STATIC], [test "$ENABLED_STATIC" = yes]) | |
151 | AM_CONDITIONAL([SHARED], [test "$ENABLED_STATIC" = no]) | |
152 | ]) | |
153 | ||
154 | # Set option to enable shared libs. | |
155 | AC_DEFUN([FB_ENABLE_DEFAULT_SHARED], | |
156 | [ | |
157 | SHARED="" | |
158 | STATIC="" | |
159 | AC_MSG_CHECKING([whether to enable shared mode]) | |
160 | AC_ARG_ENABLE([shared], | |
161 | [ --disable-shared Set up static mode.], | |
162 | [ | |
163 | ENABLED_SHARED=$enableval | |
164 | ], | |
165 | [ | |
166 | ENABLED_SHARED="yes" | |
167 | ] | |
168 | ) | |
169 | if test "$ENABLED_SHARED" = "yes" | |
170 | then | |
171 | LTYPE=".so" | |
172 | SHARED_CXXFLAGS="-fPIC" | |
173 | SHARED_CFLAGS="-fPIC" | |
174 | SHARED_LDFLAGS="-shared -fPIC" | |
175 | AC_SUBST(SHARED_CXXFLAGS) | |
176 | AC_SUBST(SHARED_CFLAGS) | |
177 | AC_SUBST(SHARED_LDFLAGS) | |
178 | else | |
179 | LTYPE=".a" | |
180 | fi | |
181 | AC_MSG_RESULT($ENABLED_SHARED) | |
182 | AC_SUBST(LTYPE) | |
183 | AM_CONDITIONAL([SHARED], [test "$ENABLED_SHARED" = yes]) | |
184 | AM_CONDITIONAL([STATIC], [test "$ENABLED_SHARED" = no]) | |
185 | ]) | |
186 | ||
187 | # Generates define flags and conditionals as specified by user. | |
188 | # This gets enabled *only* if user selects --enable-<FEATURE> otion. | |
189 | AC_DEFUN([FB_ENABLE_FEATURE], | |
190 | [ | |
191 | ENABLE="" | |
192 | flag="$1" | |
193 | value="$3" | |
194 | AC_MSG_CHECKING([whether to enable $1]) | |
195 | AC_ARG_ENABLE([$2], | |
196 | [ --enable-$2 Enable $2.], | |
197 | [ | |
198 | ENABLE=$enableval | |
199 | ], | |
200 | [ | |
201 | ENABLE="no" | |
202 | ] | |
203 | ) | |
204 | AM_CONDITIONAL([$1], [test "$ENABLE" = yes]) | |
205 | if test "$ENABLE" = "yes" | |
206 | then | |
207 | if test "x${value}" = "x" | |
208 | then | |
209 | AC_DEFINE([$1]) | |
210 | else | |
211 | AC_DEFINE_UNQUOTED([$1], [$value]) | |
212 | fi | |
213 | fi | |
214 | AC_MSG_RESULT($ENABLE) | |
215 | ]) | |
216 | ||
217 | ||
218 | # can also use eval $2=$withval;AC_SUBST($2) | |
219 | AC_DEFUN([FB_WITH_PATH], | |
220 | [ | |
221 | USRFLAG="" | |
222 | USRFLAG=$1 | |
223 | AC_MSG_CHECKING([Checking $1 set to]) | |
224 | AC_ARG_WITH([$2], | |
225 | [ --with-$2=DIR User specified path.], | |
226 | [ | |
227 | LOC=$withval | |
228 | eval $USRFLAG=$withval | |
229 | ], | |
230 | [ | |
231 | LOC=$3 | |
232 | eval $USRFLAG=$3 | |
233 | ] | |
234 | ) | |
235 | AC_SUBST([$1]) | |
236 | AC_MSG_RESULT($LOC) | |
237 | ]) | |
238 | ||
239 | AC_DEFUN([FB_SET_FLAG_VALUE], | |
240 | [ | |
241 | SETFLAG="" | |
242 | AC_MSG_CHECKING([Checking $1 set to]) | |
243 | SETFLAG=$1 | |
244 | eval $SETFLAG=\"$2\" | |
245 | AC_SUBST([$SETFLAG]) | |
246 | AC_MSG_RESULT($2) | |
247 | ]) | |
248 | ||
249 | # NOTES | |
250 | # if using if else bourne stmt you must have more than a macro in it. | |
251 | # EX1 is not correct. EX2 is correct | |
252 | # EX1: if test "$XX" = "yes"; then | |
253 | # AC_SUBST(xx) | |
254 | # fi | |
255 | # EX2: if test "$XX" = "yes"; then | |
256 | # xx="foo" | |
257 | # AC_SUBST(xx) | |
258 | # fi |