1 /* $Id: kmkbuiltin.h 3108 2017-10-20 17:01:40Z bird $ */ 2 /** @file 3 * kMk Builtin command handling. 4 */ 5 6 /* 7 * Copyright (c) 2005-2016 knut st. osmundsen <bird-kBuild-spamx@anduin.net> 8 * 9 * This file is part of kBuild. 10 * 11 * kBuild is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 3 of the License, or 14 * (at your option) any later version. 15 * 16 * kBuild is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with kBuild. If not, see <http://www.gnu.org/licenses/> 23 * 24 */ 25 26 #ifndef ___kmk_kmkbuiltin_h___ 27 #define ___kmk_kmkbuiltin_h___ 28 29 #ifdef _MSC_VER 30 # ifndef pid_t /* see config.h.win */ 31 # define pid_t intptr_t /* Note! sub_proc.c needs it to be pointer sized. */ 32 # endif 33 #else 34 # include <sys/types.h> 35 #endif 36 37 /* For the GNU/hurd weirdo. */ 38 #ifndef PATH_MAX 39 # ifdef MAXPATHLEN 40 # define PATH_MAX MAXPATHLEN 41 # else 42 # define PATH_MAX 4096 43 # endif 44 #endif 45 #ifndef MAXPATHLEN 46 # define MAXPATHLEN PATH_MAX 47 #endif 48 49 50 #include "kbuild_version.h" 51 52 struct child; 53 int kmk_builtin_command(const char *pszCmd, struct child *pChild, char ***ppapszArgvToSpawn, pid_t *pPidSpawned); 54 int kmk_builtin_command_parsed(int argc, char **argv, struct child *pChild, char ***ppapszArgvToSpawn, pid_t *pPidSpawned); 55 56 extern int kmk_builtin_append(int argc, char **argv, char **envp); 57 extern int kmk_builtin_cp(int argc, char **argv, char **envp); 58 extern int kmk_builtin_cat(int argc, char **argv, char **envp); 59 extern int kmk_builtin_chmod(int argc, char **argv, char **envp); 60 extern int kmk_builtin_cmp(int argc, char **argv, char **envp); 61 extern int kmk_builtin_dircache(int argc, char **argv, char **envp); 62 extern int kmk_builtin_echo(int argc, char **argv, char **envp); 63 extern int kmk_builtin_expr(int argc, char **argv, char **envp); 64 extern int kmk_builtin_install(int argc, char **argv, char **envp); 65 extern int kmk_builtin_ln(int argc, char **argv, char **envp); 66 extern int kmk_builtin_md5sum(int argc, char **argv, char **envp); 67 extern int kmk_builtin_mkdir(int argc, char **argv, char **envp); 68 extern int kmk_builtin_mv(int argc, char **argv, char **envp); 69 extern int kmk_builtin_printf(int argc, char **argv, char **envp); 70 extern int kmk_builtin_redirect(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPidSpawned); 71 extern int kmk_builtin_rm(int argc, char **argv, char **envp); 72 extern int kmk_builtin_rmdir(int argc, char **argv, char **envp); 73 extern int kmk_builtin_sleep(int argc, char **argv, char **envp); 74 extern int kmk_builtin_test(int argc, char **argv, char **envp 75 #ifndef kmk_builtin_test 76 , char ***ppapszArgvSpawn 77 #endif 78 ); 79 extern int kmk_builtin_touch(int argc, char **argv, char **envp); 80 #ifdef KBUILD_OS_WINDOWS 81 extern int kmk_builtin_kSubmit(int argc, char **argv, char **envp, struct child *pChild, pid_t *pPidSpawned); 82 extern int kSubmitSubProcGetResult(intptr_t pvUser, int *prcExit, int *piSigNo); 83 extern int kSubmitSubProcKill(intptr_t pvUser, int iSignal); 84 extern void kSubmitSubProcCleanup(intptr_t pvUser); 85 #endif 86 extern int kmk_builtin_kDepIDB(int argc, char **argv, char **envp); 87 extern int kmk_builtin_kDepObj(int argc, char **argv, char **envp); 88 89 extern char *kmk_builtin_func_printf(char *o, char **argv, const char *funcname); 90 91 /* common-env-and-cwd-opt.c: */ 92 extern int kBuiltinOptEnvSet(char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 93 int cVerbosity, const char *pszValue); 94 extern int kBuiltinOptEnvAppend(char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 95 int cVerbosity, const char *pszValue); 96 extern int kBuiltinOptEnvPrepend(char ***ppapszEnv, unsigned *pcEnvVars, unsigned *pcAllocatedEnvVars, 97 int cVerbosity, const char *pszValue); 98 extern int kBuiltinOptEnvUnset(char **papszEnv, unsigned *pcEnvVars, int cVerbosity, const char *pszVarToRemove); 99 extern int kBuiltinOptChDir(char *pszCwd, size_t cbCwdBuf, const char *pszValue); 100 101 #endif 102 103