dir.h revision 142211
1284345Ssjg/*- 2284345Ssjg * Copyright (c) 1988, 1989, 1990, 1993 3284345Ssjg * The Regents of the University of California. All rights reserved. 4284345Ssjg * Copyright (c) 1988, 1989 by Adam de Boor 5284345Ssjg * Copyright (c) 1989 by Berkeley Softworks 6284345Ssjg * All rights reserved. 7284345Ssjg * 8284345Ssjg * This code is derived from software contributed to Berkeley by 9284345Ssjg * Adam de Boor. 10284345Ssjg * 11284345Ssjg * Redistribution and use in source and binary forms, with or without 12284345Ssjg * modification, are permitted provided that the following conditions 13284345Ssjg * are met: 14284345Ssjg * 1. Redistributions of source code must retain the above copyright 15284345Ssjg * notice, this list of conditions and the following disclaimer. 16284345Ssjg * 2. Redistributions in binary form must reproduce the above copyright 17284345Ssjg * notice, this list of conditions and the following disclaimer in the 18284345Ssjg * documentation and/or other materials provided with the distribution. 19284345Ssjg * 3. All advertising materials mentioning features or use of this software 20284345Ssjg * must display the following acknowledgement: 21284345Ssjg * This product includes software developed by the University of 22284345Ssjg * California, Berkeley and its contributors. 23284345Ssjg * 4. Neither the name of the University nor the names of its contributors 24284345Ssjg * may be used to endorse or promote products derived from this software 25284345Ssjg * without specific prior written permission. 26284345Ssjg * 27284345Ssjg * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 28284345Ssjg * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29284345Ssjg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30284345Ssjg * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 31284345Ssjg * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32284345Ssjg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33284345Ssjg * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34284345Ssjg * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35284345Ssjg * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36284345Ssjg * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37284345Ssjg * SUCH DAMAGE. 38 * 39 * @(#)dir.h 8.2 (Berkeley) 4/28/95 40 * $FreeBSD: head/usr.bin/make/dir.h 142211 2005-02-22 08:17:05Z harti $ 41 */ 42 43#ifndef dir_h_6002e3b8 44#define dir_h_6002e3b8 45 46#include "hash.h" 47 48struct GNode; 49struct Lst; 50 51typedef struct Path { 52 char *name; /* Name of directory */ 53 int refCount; /* Number of paths with this directory */ 54 int hits; /* Number of times a file in this dirextory has 55 * been found */ 56 Hash_Table files; /* Hash table of files in directory */ 57} Path; 58 59void Dir_Init(void); 60void Dir_InitDot(void); 61Boolean Dir_HasWildcards(const char *); 62void Dir_Expand(char *, struct Lst *, struct Lst *); 63char *Dir_FindFile(char *, struct Lst *); 64int Dir_MTime(struct GNode *); 65void Dir_AddDir(struct Lst *, const char *); 66char *Dir_MakeFlags(const char *, const struct Lst *); 67void Dir_ClearPath(struct Lst *); 68void Dir_Concat(struct Lst *, struct Lst *); 69void Dir_PrintDirectories(void); 70void Dir_PrintPath(const struct Lst *); 71void Dir_Destroy(void *); 72void *Dir_CopyDir(void *); 73 74#endif /* dir_h_6002e3b8 */ 75