Updated Branches: refs/heads/c-bindings-cfc c19657114 -> 14979987e
Documentation for Charmonizer/Core/Make Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/14979987 Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/14979987 Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/14979987 Branch: refs/heads/c-bindings-cfc Commit: 14979987e3038309a6bc8346a304837bb463cdf3 Parents: c196571 Author: Nick Wellnhofer <[email protected]> Authored: Thu Feb 14 18:53:51 2013 +0100 Committer: Nick Wellnhofer <[email protected]> Committed: Thu Feb 14 18:53:51 2013 +0100 ---------------------------------------------------------------------- charmonizer/src/Charmonizer/Core/Make.h | 83 ++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy/blob/14979987/charmonizer/src/Charmonizer/Core/Make.h ---------------------------------------------------------------------- diff --git a/charmonizer/src/Charmonizer/Core/Make.h b/charmonizer/src/Charmonizer/Core/Make.h index 2fe1cf6..430ae33 100644 --- a/charmonizer/src/Charmonizer/Core/Make.h +++ b/charmonizer/src/Charmonizer/Core/Make.h @@ -30,56 +30,139 @@ typedef struct chaz_MakeRule chaz_MakeRule; typedef void (*chaz_Make_list_files_callback_t)(char *file, void *context); +/** Initialize the environment. + */ void chaz_Make_init(void); +/** Clean up the environment. + */ void chaz_Make_clean_up(void); +/** Return the name of the detected 'make' executable. + */ const char* chaz_Make_get_make(void); +/** Recursively list files in a directory. For every file a callback is called + * with the filename and a context variable. + * + * @param dir Directory to search in. + * @param ext File extension to search for. + * @param callback Callback to call for every matching file. + * @param context Context variable to pass to callback. + */ void chaz_Make_list_files(const char *dir, const char *ext, chaz_Make_list_files_callback_t callback, void *context); +/** MakeFile constructor. + */ chaz_MakeFile* chaz_MakeFile_new(); +/** Add a variable to a makefile. + * + * @param makefile The makefile. + * @param name Name of the variable. + * @param value Value of the variable. Can be NULL if you want add content + * later. + * @return a MakeVar. + */ chaz_MakeVar* chaz_MakeFile_add_var(chaz_MakeFile *makefile, const char *name, const char *value); +/** Add a rule to a makefile. + * + * @param makefile The makefile. + * @param target The first target of the rule. Can be NULL if you want to add + * targets later. + * @param prereq The first prerequisite of the rule. Can be NULL if you want to + * add prerequisites later. + * @return a MakeRule. + */ chaz_MakeRule* chaz_MakeFile_add_rule(chaz_MakeFile *makefile, const char *target, const char *prereq); +/** Add a file to the 'clean' target. + * + * @param makefile The makefile. + * @param target The filename. + */ void chaz_MakeFile_add_to_cleanup(chaz_MakeFile *makefile, const char *target); +/** Add a rule to link an executable. The executable will also be added to the + * list of files to clean. + * + * @param makefile The makefile. + * @param exe The name of the executable. + * @param objects The list of object files. + */ void chaz_MakeFile_add_exe(chaz_MakeFile *makefile, const char *exe, const char *objects); +/** Add a rule to link a shared object. The shared object will also be added to + * the list of files to clean. + * + * @param makefile The makefile. + * @param shared_obj The name of the shared object. + * @param objects The list of object files. + */ void chaz_MakeFile_add_shared_obj(chaz_MakeFile *makefile, const char *shared_obj, const char *objects); +/** Write the makefile to a file named 'Makefile' in the current directory. + * + * @param makefile The makefile. + */ void chaz_MakeFile_write(chaz_MakeFile *makefile); +/** Append content to a makefile variable. The new content will be separated + * from the existing content with whitespace. + * + * @param var The variable. + * @param element The additional content. + */ void chaz_MakeVar_append(chaz_MakeVar *var, const char *element); +/** Add another target to a makefile rule. + * + * @param rule The rule. + * @param target The additional rule. + */ void chaz_MakeRule_add_target(chaz_MakeRule *rule, const char *target); +/** Add another prerequisite to a makefile rule. + * + * @param rule The rule. + * @param prereq The additional prerequisite. + */ void chaz_MakeRule_add_prereq(chaz_MakeRule *rule, const char *prereq); +/** Add a command to a rule. + * + * @param rule The rule. + * @param command The additional command. + */ void chaz_MakeRule_add_command(chaz_MakeRule *rule, const char *command); +/** Add one or more commands to call another makefile recursively. + * + * @param rule The rule. + * @param dir The directory in which to call the makefile. + * @param target The target to call. Pass NULL for the default target. + */ void chaz_MakeRule_add_command_make(chaz_MakeRule *rule, const char *dir, const char *target);
