# # Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this # particular file as subject to the "Classpath" exception as provided # by Oracle in the LICENSE file that accompanied this code. # # This code 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 # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. #
ifeq (,$(_MAKEBASE_GMK))
$(error You must include MakeBase.gmk prior to including MakeIO.gmk) endif
################################################################################ # # Functions for dealing with reading and writing from makefiles. Prior to GNU # Make 4.0, this was tricky business. # ################################################################################
################################################################################ # ListPathsSafely can be used to print command parameters to a file. This is # typically done if the command line length risk being too long for the # OS/shell. In later make versions, the file function can be used for this # purpose. For earlier versions, a more complex implementation is provided. # # The function ListPathsSafely can be called either directly or, more commonly # from a recipe line. If called from a recipe, it will be executed in the # evaluation phase of that recipe, which means that it will write to the file # before any other line in the recipe has been run. ifeq ($(HAS_FILE_FUNCTION), true) # Param 1 - Name of variable containing paths/arguments to output # Param 2 - File to print to # Param 3 - Set to true to append to file instead of overwriting define ListPathsSafely
$$(call MakeDir, $$(dir $$(strip $2)))
$$(file $$(if $$(filter true, $$(strip $3)),>>,>) \
$$(strip $2),$$(subst $$(SPACE),$$(NEWLINE),$$(strip $$($$(strip $1))))) endef
# Param 1 - Name of variable containing paths/arguments to output # Param 2 - File to print to # Param 3 - Set to true to append to file instead of overwriting define ListPathsSafely ifneq (,$$(word 30001,$$($$(strip $1))))
$$(error Cannot list safely more than 30000 paths. $1 has $$(words $$($$(strip $1))) paths!) endif
$$(call MakeDir, $$(dir $2)) ifneq ($$(strip $3), true)
$$(shell $(RM) $$(strip $2)) endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.