| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # ----------------------------------------------------------------------------
- #
- # GNU Make Standard Library (GMSL)
- #
- # A library of functions to be used with GNU Make's $(call) that
- # provides functionality not available in standard GNU Make.
- #
- # Copyright (c) 2005-2018 John Graham-Cumming
- #
- # This file is part of GMSL
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- #
- # Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in the
- # documentation and/or other materials provided with the distribution.
- #
- # Neither the name of the John Graham-Cumming nor the names of its
- # contributors may be used to endorse or promote products derived from
- # this software without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- # POSSIBILITY OF SUCH DAMAGE.
- #
- # ----------------------------------------------------------------------------
- # Determine if the library has already been included and if so don't
- # bother including it again
- ifndef __gmsl_included
- # Standard definitions for true and false. true is any non-empty
- # string, false is an empty string. These are intended for use with
- # $(if).
- true := T
- false :=
- # ----------------------------------------------------------------------------
- # Function: not
- # Arguments: 1: A boolean value
- # Returns: Returns the opposite of the arg. (true -> false, false -> true)
- # ----------------------------------------------------------------------------
- not = $(if $1,$(false),$(true))
- # Prevent reinclusion of the library
- __gmsl_included := $(true)
- # Try to determine where this file is located. If the caller did
- # include /foo/gmsl then extract the /foo/ so that __gmsl gets
- # included transparently
- __gmsl_root :=
- ifneq ($(MAKEFILE_LIST),)
- __gmsl_root := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
- # If there are any spaces in the path in __gmsl_root then give up
- ifeq (1,$(words $(__gmsl_root)))
- __gmsl_root := $(patsubst %gmsl,%,$(__gmsl_root))
- endif
- endif
- include $(__gmsl_root)__gmsl
- endif # __gmsl_included
|