libs-base/Tests/GNUmakefile
Frederik Seiffert 5120069a88 Fix running tests under Windows MSVC
Remove -rpath flag when running tests with MSVC toolchain to fix build errors for tests as there is no rpath on Windows, and instead add object directory to PATH for Windows to find DLLs.
2021-08-08 17:27:40 +02:00

92 lines
3.2 KiB
Makefile

#
# Tests Makefile for GNUstep Base Library.
#
# Copyright (C) 2011 Free Software Foundation, Inc.
#
# Written by: Richard Frith-Macdonald <rfm@gnu.org>
#
# This file is part of the GNUstep Base Library.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02111 USA
#
ifeq ($(GNUSTEP_MAKEFILES),)
GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null)
ifeq ($(GNUSTEP_MAKEFILES),)
$(warning )
$(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!)
$(warning Perhaps gnustep-make is not properly installed,)
$(warning so gnustep-config is not in your PATH.)
$(warning )
$(warning Your PATH is currently $(PATH))
$(warning )
endif
endif
ifeq ($(GNUSTEP_MAKEFILES),)
$(error You need to set GNUSTEP_MAKEFILES before running this!)
endif
include $(GNUSTEP_MAKEFILES)/common.make
TOP_DIR := $(shell dirname $(CURDIR))
# This message is also printed when you type 'make' top-level. It is
# the last message printed (since 'Tests' is the last directory in
# SUBPROJECTS top-level), which is good as it becomes a recommendation
# to run 'make check' after 'make'.
all::
@(echo If you want to run the gnustep-base testsuite, please type \'${MAKE} check\')
# To run tests for a separate group please, use 'make check testobj=NSString'
# or 'make check testobj=NSDate/general.m' to run an individual test file
#
#
# 'make check' runs the testsuite (Objective-C tests only)
#
# Use 'make check GNUSTEP_TEST_OBJCXX=yes' to run both Objective-C
# and Objective-C++ tests
#
check::
(\
GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES="$(TOP_DIR)/base.make";\
ADDITIONAL_INCLUDE_DIRS="-I$(TOP_DIR)/Headers -I$(TOP_DIR)/Source/$(GNUSTEP_TARGET_DIR)";\
ADDITIONAL_LIB_DIRS="-L$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR)";\
if [ "$(GNUSTEP_TARGET_OS)" = "windows" ]; then \
PATH="$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR):$(TOP_DIR)/Tools/$(GNUSTEP_OBJ_DIR):${PATH}";\
else \
PATH="$(TOP_DIR)/Tools/$(GNUSTEP_OBJ_DIR):${PATH}";\
ADDITIONAL_LDFLAGS="-Wl,-rpath,$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR)";\
fi; \
LD_LIBRARY_PATH="$(TOP_DIR)/Source/$(GNUSTEP_OBJ_DIR):${LD_LIBRARY_PATH}";\
export GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES;\
export ADDITIONAL_INCLUDE_DIRS;\
export ADDITIONAL_LDFLAGS;\
export ADDITIONAL_LIB_DIRS;\
export LD_LIBRARY_PATH;\
export PATH;\
if [ "$(debug)" = "yes" ]; then \
gnustep-tests --debug 'base/$(testobj)';\
else \
gnustep-tests 'base/$(testobj)';\
fi; \
)
clean::
-gnustep-tests --clean
# This makefile does nothing.
include $(GNUSTEP_MAKEFILES)/rules.make