| %% -*- tab-width: 4;erlang-indent-level: 4;indent-tabs-mode: nil -*- |
| %% ex: ft=erlang ts=4 sw=4 et |
| |
| %% Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| %% use this file except in compliance with the License. You may obtain a copy of |
| %% the License at |
| %% |
| %% http://www.apache.org/licenses/LICENSE-2.0 |
| %% |
| %% Unless required by applicable law or agreed to in writing, software |
| %% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| %% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| %% License for the specific language governing permissions and limitations under |
| %% the License. |
| |
| Arch = erlang:system_info(system_architecture), |
| |
| ICUConfig = fun(Args) -> |
| {0, Value} = eunit_lib:command("icu-config " ++ Args), |
| [C||C <- Value, C =/= $\n] |
| end, |
| |
| GetFlag = fun(Name, Args) -> |
| case os:getenv(Name) of |
| false -> ICUConfig(Args); |
| Val -> Val |
| end |
| end, |
| |
| ICUCFLAGS = GetFlag("ICU_CFLAGS", "--cflags"), |
| ICUCXXFLAGS = GetFlag("ICU_CXXFLAGS", "--cxxflags"), |
| ICULDFLAGS = GetFlag("ICU_LDFLAGS", "--ldflags"), |
| ICUINCPATH = GetFlag("ICU_INCPATH", "--cppflags-searchpath"), |
| |
| |
| PortEnv = [{port_env, [ |
| {"CFLAGS", ICUCFLAGS ++ " $CFLAGS " ++ ICUINCPATH}, |
| {"CXXFLAGS", ICUCXXFLAGS ++ " $CXXFLAGS " ++ ICUINCPATH}, |
| {"LDFLAGS", ICULDFLAGS ++ " $LDFLAGS"}]}, |
| |
| {port_specs, [ |
| {filename:join(["priv", Arch, "couch_collate.so"]), |
| ["c_src/*.c"]}]} |
| ], |
| |
| lists:keymerge(1,lists:keysort(1, PortEnv), lists:keysort(1, CONFIG)). |