You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/05/16 00:28:44 UTC
[lucy-commits] [10/21] git commit: refs/heads/master - Add dependency on .cfh files
in Makefile
Add dependency on .cfh files in Makefile
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/3b365024
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/3b365024
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/3b365024
Branch: refs/heads/master
Commit: 3b36502434c43a08d60c5fa20cac7e767ce1f15d
Parents: e472376
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Wed May 15 02:50:48 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Wed May 15 19:19:52 2013 +0200
----------------------------------------------------------------------
common/charmonizer.main | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/3b365024/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index 88219d6..5b8519c 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -102,7 +102,7 @@ S_ends_with(const char *string, const char *postfix) {
}
static void
-S_source_file_callback(const char *dir, char *file, void *context) {
+S_c_file_callback(const char *dir, char *file, void *context) {
SourceFileContext *sfc = (SourceFileContext*)context;
const char *dir_sep = chaz_OS_dir_sep();
const char *obj_ext = chaz_CC_obj_ext();
@@ -111,7 +111,7 @@ S_source_file_callback(const char *dir, char *file, void *context) {
/* Strip extension */
if (!S_ends_with(file, ".c")) {
- chaz_Util_warn("Unexpected source file name: %s", file);
+ chaz_Util_warn("Unexpected C filename: %s", file);
return;
}
file[file_len-2] = '\0';
@@ -124,6 +124,22 @@ S_source_file_callback(const char *dir, char *file, void *context) {
}
static void
+S_cfh_file_callback(const char *dir, char *file, void *context) {
+ SourceFileContext *sfc = (SourceFileContext*)context;
+ const char *dir_sep = chaz_OS_dir_sep();
+ char *cfh_file;
+
+ if (!S_ends_with(file, ".cfh")) {
+ chaz_Util_warn("Unexpected Clownfish header filename: %s", file);
+ return;
+ }
+
+ cfh_file = chaz_Util_join(dir_sep, dir, file, NULL);
+ chaz_MakeVar_append(sfc->var, cfh_file);
+ free(cfh_file);
+}
+
+static void
S_write_makefile(struct chaz_CLIArgs *args) {
SourceFileContext sfc;
@@ -215,11 +231,11 @@ S_write_makefile(struct chaz_CLIArgs *args) {
var = chaz_MakeFile_add_var(makefile, "LUCY_OBJS", NULL);
sfc.var = var;
- chaz_Make_list_files("src", "c", S_source_file_callback, &sfc);
- chaz_Make_list_files(core_dir, "c", S_source_file_callback, &sfc);
- chaz_Make_list_files(snowstem_dir, "c", S_source_file_callback, &sfc);
- chaz_Make_list_files(snowstop_dir, "c", S_source_file_callback, &sfc);
- chaz_Make_list_files(utf8proc_dir, "c", S_source_file_callback, &sfc);
+ chaz_Make_list_files("src", "c", S_c_file_callback, &sfc);
+ chaz_Make_list_files(core_dir, "c", S_c_file_callback, &sfc);
+ chaz_Make_list_files(snowstem_dir, "c", S_c_file_callback, &sfc);
+ chaz_Make_list_files(snowstop_dir, "c", S_c_file_callback, &sfc);
+ chaz_Make_list_files(utf8proc_dir, "c", S_c_file_callback, &sfc);
scratch = chaz_Util_join("", json_parser, obj_ext, NULL);
chaz_MakeVar_append(var, scratch);
@@ -230,6 +246,13 @@ S_write_makefile(struct chaz_CLIArgs *args) {
chaz_MakeVar_append(var, scratch);
free(scratch);
+ /* Clownfish header files */
+
+ var = chaz_MakeFile_add_var(makefile, "CLOWNFISH_HEADERS", NULL);
+ sfc.var = var;
+
+ chaz_Make_list_files(core_dir, "cfh", S_cfh_file_callback, &sfc);
+
/* Rules */
lib = chaz_SharedLib_new("lucy", lucy_version, lucy_major_version);
@@ -247,9 +270,14 @@ S_write_makefile(struct chaz_CLIArgs *args) {
chaz_MakeRule_add_make_command(rule, cfc_dir, NULL);
rule = chaz_MakeFile_add_rule(makefile, "autogen", cfc_exe);
+ chaz_MakeRule_add_prereq(rule, "$(CLOWNFISH_HEADERS)");
scratch = chaz_Util_join("", cfc_exe, " --source=", core_dir,
" --dest=autogen --header=cfc_header", NULL);
chaz_MakeRule_add_command(rule, scratch);
+ /* TODO: Find a way to touch the autogen directory on Windows. */
+ if (chaz_Make_shell_type() == CHAZ_OS_POSIX) {
+ chaz_MakeRule_add_command(rule, "touch autogen");
+ }
free(scratch);
/* Needed for parallel builds. */