1#- 2# Copyright (c) 2011 Google, Inc. 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 14# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24# SUCH DAMAGE. 25# 26# $FreeBSD$ 27 28.include <src.opts.mk> 29.include <bsd.init.mk> 30 31# Store the toolchain executable in ATF_BUILD_{CC,CPP,CXX} to ensure other 32# values -- like -target, -B ..., etc -- don't get leaked into the tests. 33# 34# Be sure to omit ${CCACHE_BIN} (if specified) from the variable as it gets 35# automatically appended to the variables in bsd.compiler.mk when 36# ${MK_CCACHE_BUILD} != no. 37ATF_BUILD_CC:= ${CC:N${CCACHE_BIN}:[1]} 38ATF_BUILD_CPP:= ${CPP:N${CCACHE_BIN}:[1]} 39ATF_BUILD_CXX:= ${CXX:N${CCACHE_BIN}:[1]} 40 41# Only capture defines, includes, linker flags, optimization levels, warnings 42# and preprocessor flags when building ATF_BUILD_{C,CPP,CXX}FLAGS. 43ATF_BUILD_CFLAGS:= ${CFLAGS:M-[DILOWf]*} 44ATF_BUILD_CPPFLAGS:= ${CPPFLAGS:M-[DILOWf]*} 45ATF_BUILD_CXXFLAGS:= ${CXXFLAGS:M-[DILOWf]*} 46 47LIB= atf-c 48PRIVATELIB= true 49SHLIB_MAJOR= 1 50 51ATF= ${SRCTOP}/contrib/atf 52.PATH: ${ATF} 53.PATH: ${ATF}/atf-c 54.PATH: ${ATF}/atf-c/detail 55 56CFLAGS+= -DATF_BUILD_CC='"${ATF_BUILD_CC}"' 57CFLAGS+= -DATF_BUILD_CFLAGS='"${ATF_BUILD_CFLAGS}"' 58CFLAGS+= -DATF_BUILD_CPP='"${ATF_BUILD_CPP}"' 59CFLAGS+= -DATF_BUILD_CPPFLAGS='"${ATF_BUILD_CPPFLAGS}"' 60CFLAGS+= -DATF_BUILD_CXX='"${ATF_BUILD_CXX}"' 61CFLAGS+= -DATF_BUILD_CXXFLAGS='"${ATF_BUILD_CXXFLAGS}"' 62CFLAGS+= -I${ATF} 63CFLAGS+= -I${.CURDIR} 64CFLAGS+= -I. 65 66SRCS= build.c \ 67 check.c \ 68 dynstr.c \ 69 env.c \ 70 error.c \ 71 fs.c \ 72 list.c \ 73 map.c \ 74 process.c \ 75 sanity.c \ 76 text.c \ 77 user.c \ 78 utils.c \ 79 tc.c \ 80 tp.c \ 81 tp_main.c 82 83INCS= build.h \ 84 check.h \ 85 defs.h \ 86 error.h \ 87 error_fwd.h \ 88 macros.h \ 89 tc.h \ 90 tp.h \ 91 utils.h 92INCSDIR= ${INCLUDEDIR}/atf-c 93 94INCS+= atf-c.h 95INCSDIR_atf-c.h= ${INCLUDEDIR} 96 97MAN= atf-c.3 98MLINKS+= atf-c.3 ATF_CHECK.3 \ 99 atf-c.3 ATF_CHECK_MSG.3 \ 100 atf-c.3 ATF_CHECK_EQ.3 \ 101 atf-c.3 ATF_CHECK_EQ_MSG.3 \ 102 atf-c.3 ATF_CHECK_MATCH.3 \ 103 atf-c.3 ATF_CHECK_MATCH_MSG.3 \ 104 atf-c.3 ATF_CHECK_STREQ.3 \ 105 atf-c.3 ATF_CHECK_STREQ_MSG.3 \ 106 atf-c.3 ATF_CHECK_ERRNO.3 \ 107 atf-c.3 ATF_REQUIRE.3 \ 108 atf-c.3 ATF_REQUIRE_MSG.3 \ 109 atf-c.3 ATF_REQUIRE_EQ.3 \ 110 atf-c.3 ATF_REQUIRE_EQ_MSG.3 \ 111 atf-c.3 ATF_REQUIRE_MATCH.3 \ 112 atf-c.3 ATF_REQUIRE_MATCH_MSG.3 \ 113 atf-c.3 ATF_REQUIRE_STREQ.3 \ 114 atf-c.3 ATF_REQUIRE_STREQ_MSG.3 \ 115 atf-c.3 ATF_REQUIRE_ERRNO.3 \ 116 atf-c.3 ATF_TC.3 \ 117 atf-c.3 ATF_TC_BODY.3 \ 118 atf-c.3 ATF_TC_BODY_NAME.3 \ 119 atf-c.3 ATF_TC_CLEANUP.3 \ 120 atf-c.3 ATF_TC_CLEANUP_NAME.3 \ 121 atf-c.3 ATF_TC_HEAD.3 \ 122 atf-c.3 ATF_TC_HEAD_NAME.3 \ 123 atf-c.3 ATF_TC_NAME.3 \ 124 atf-c.3 ATF_TC_WITH_CLEANUP.3 \ 125 atf-c.3 ATF_TC_WITHOUT_HEAD.3 \ 126 atf-c.3 ATF_TP_ADD_TC.3 \ 127 atf-c.3 ATF_TP_ADD_TCS.3 \ 128 atf-c.3 atf_tc_get_config_var.3 \ 129 atf-c.3 atf_tc_get_config_var_wd.3 \ 130 atf-c.3 atf_tc_get_config_var_as_bool.3 \ 131 atf-c.3 atf_tc_get_config_var_as_bool_wd.3 \ 132 atf-c.3 atf_tc_get_config_var_as_long.3 \ 133 atf-c.3 atf_tc_get_config_var_as_long_wd.3 \ 134 atf-c.3 atf_no_error.3 \ 135 atf-c.3 atf_tc_expect_death.3 \ 136 atf-c.3 atf_tc_expect_exit.3 \ 137 atf-c.3 atf_tc_expect_fail.3 \ 138 atf-c.3 atf_tc_expect_pass.3 \ 139 atf-c.3 atf_tc_expect_signal.3 \ 140 atf-c.3 atf_tc_expect_timeout.3 \ 141 atf-c.3 atf_tc_fail.3 \ 142 atf-c.3 atf_tc_fail_nonfatal.3 \ 143 atf-c.3 atf_tc_pass.3 \ 144 atf-c.3 atf_tc_skip.3 \ 145 atf-c.3 atf_utils_cat_file.3 \ 146 atf-c.3 atf_utils_compare_file.3 \ 147 atf-c.3 atf_utils_copy_file.3 \ 148 atf-c.3 atf_utils_create_file.3 \ 149 atf-c.3 atf_utils_file_exists.3 \ 150 atf-c.3 atf_utils_fork.3 \ 151 atf-c.3 atf_utils_free_charpp.3 \ 152 atf-c.3 atf_utils_grep_file.3 \ 153 atf-c.3 atf_utils_grep_string.3 \ 154 atf-c.3 atf_utils_readline.3 \ 155 atf-c.3 atf_utils_redirect.3 \ 156 atf-c.3 atf_utils_wait.3 157MLINKS+= atf-c.3 atf-c-api.3 # Backwards compatibility. 158 159HAS_TESTS= 160SUBDIR.${MK_TESTS}+= tests 161 162.include "../common.mk" 163.include <bsd.lib.mk> 164