13cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# Copyright (C) 2009 The Android Open Source Project 23cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 33cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# Licensed under the Apache License, Version 2.0 (the "License"); 43cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# you may not use this file except in compliance with the License. 53cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# You may obtain a copy of the License at 63cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 73cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# http://www.apache.org/licenses/LICENSE-2.0 83cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 93cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# Unless required by applicable law or agreed to in writing, software 103cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# distributed under the License is distributed on an "AS IS" BASIS, 113cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# See the License for the specific language governing permissions and 133cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# limitations under the License. 143cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 153cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# Build control file for Bionic's test programs 163cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# define the BIONIC_TESTS environment variable to build the test programs 173cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 183cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 193cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniaifdef BIONIC_TESTS 203cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 213cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko CataniaLOCAL_PATH:= $(call my-dir) 223cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 233cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# used to define a simple test program and build it as a standalone 243cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# device executable. 253cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 263cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# you can use EXTRA_CFLAGS to indicate additional CFLAGS to use 273cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# in the build. the variable will be cleaned on exit 283cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 293cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniadefine device-test 303cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(foreach file,$(1), \ 313cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval include $(CLEAR_VARS)) \ 323cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_SRC_FILES := $(file)) \ 333cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \ 343cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_CFLAGS += $(EXTRA_CFLAGS)) \ 353cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_MODULE_TAGS := tests) \ 363cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval include $(BUILD_EXECUTABLE)) \ 373cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania ) \ 383cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval EXTRA_CFLAGS :=) 393cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniaendef 403cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 413cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# same as 'device-test' but builds a host executable instead 423cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# you can use EXTRA_LDLIBS to indicate additional linker flags 433cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania# 443cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniadefine host-test 453cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(foreach file,$(1), \ 463cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval include $(CLEAR_VARS)) \ 473cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_SRC_FILES := $(file)) \ 483cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \ 493cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_CFLAGS += $(EXTRA_CFLAGS)) \ 503cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_LDLIBS += $(EXTRA_LDLIBS)) \ 513cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval LOCAL_MODULE_TAGS := tests) \ 523cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval include $(BUILD_HOST_EXECUTABLE)) \ 533cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania ) \ 543cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval EXTRA_CFLAGS :=) \ 553cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania $(eval EXTRA_LDLIBS :=) 563cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniaendef 573cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 583cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniasources := \ 5984011c7599ab8a4463cefda5e8ce8a59987640d8Niko Catania test_cassert.cpp \ 6084011c7599ab8a4463cefda5e8ce8a59987640d8Niko Catania test_cctype.cpp \ 6184011c7599ab8a4463cefda5e8ce8a59987640d8Niko Catania test_climits.cpp \ 624c0461001130e5ea3cd45997598863599837d9d8David 'Digit' Turner test_cmath.cpp \ 631aa5708e437b96e04f31d9c9f167427411ba5510Niko Catania test_csetjmp.cpp \ 641aa5708e437b96e04f31d9c9f167427411ba5510Niko Catania test_csignal.cpp \ 6584011c7599ab8a4463cefda5e8ce8a59987640d8Niko Catania test_cstddef.cpp \ 661aa5708e437b96e04f31d9c9f167427411ba5510Niko Catania test_cstdio.cpp \ 671aa5708e437b96e04f31d9c9f167427411ba5510Niko Catania test_cstdlib.cpp \ 688c88d7d48dc60adcfef4c1e6b6ef6ac255cfc16dNiko Catania test_cstring.cpp \ 6984011c7599ab8a4463cefda5e8ce8a59987640d8Niko Catania test_ctime.cpp 703cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 713cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania$(call host-test, $(sources)) 721aa5708e437b96e04f31d9c9f167427411ba5510Niko Catania 73b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' TurnerEXTRA_CFLAGS := -DBIONIC=1 -I bionic/libstdc++/include 74b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner 75b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner# <cstdint> is not part of the C++ standard yet, and some 76b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner# host environments don't provide it unless you use specific 77b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner# compiler flags, so only build this test for device/Bionic 78b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner# builds at the moment. 79b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner# 80b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turnersources += test_cstdint.cpp 81b381ead492251a797d2df4b260cb01eb1f64cfadDavid 'Digit' Turner 823cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania$(call device-test, $(sources)) 833cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Catania 843cb2639f22f8aaf46852c9f03e825e05fc7e7362Niko Cataniaendif # BIONIC_TESTS 85