1 #ifndef ERROR_H 2 #define ERROR_H 3 /* $OpenBSD: error.h,v 1.14 2024/05/21 05:00:48 jsg Exp $ */ 4 5 /* 6 * Copyright (c) 2001 Marc Espie. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS 18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD 21 * PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 /* Error Print a tagged error message. The global 30 * MAKE variable must have been defined. This 31 * takes a format string and two optional 32 * arguments for it. 33 * 34 * Fatal Print an error message and exit. Also takes 35 * a format string and two arguments. 36 * 37 * Punt Aborts all jobs and exits with a message. Also 38 * takes a format string and two arguments. 39 * 40 * Finish Finish things up by printing the number of 41 * errors which occurred, as passed to it, and 42 * exiting. 43 */ 44 extern void Error(const char *, ...) 45 __attribute__((__format__ (printf, 1, 2))); 46 extern void Fatal(const char *, ...) 47 __attribute__((__format__ (printf, 1, 2))); 48 extern void Punt(const char *, ...) 49 __attribute__((__format__ (printf, 1, 2))); 50 extern void Finish(void); 51 52 /* 53 * Error levels for parsing. PARSE_FATAL means the process cannot continue 54 * once the makefile has been parsed. PARSE_WARNING means it can. Passed 55 * as the first argument to Parse_Error. 56 */ 57 #define PARSE_WARNING 2 58 #define PARSE_FATAL 1 59 extern void Parse_Error(int, const char *, ...) 60 __attribute__((__format__ (printf, 2, 3))); 61 extern int fatal_errors; 62 #endif 63