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