You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/03/19 01:09:28 UTC
[08/19] lucy-clownfish git commit: Regen charmonizer for CFC static
lib.
Regen charmonizer for CFC static lib.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/dc2b8d4c
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/dc2b8d4c
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/dc2b8d4c
Branch: refs/heads/master
Commit: dc2b8d4c77b949100a1214e12c21325cce2c58f7
Parents: 827a528
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Sat Nov 29 14:07:12 2014 -0800
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Sun Mar 15 18:05:43 2015 -0700
----------------------------------------------------------------------
compiler/common/charmonizer.c | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/dc2b8d4c/compiler/common/charmonizer.c
----------------------------------------------------------------------
diff --git a/compiler/common/charmonizer.c b/compiler/common/charmonizer.c
index 47563a6..217e318 100644
--- a/compiler/common/charmonizer.c
+++ b/compiler/common/charmonizer.c
@@ -7769,8 +7769,12 @@ chaz_VariadicMacros_run(void) {
typedef struct SourceFileContext {
chaz_MakeVar *common_objs;
chaz_MakeVar *test_cfc_objs;
+ chaz_MakeVar *common_test_objs;
} SourceFileContext;
+static const char cfc_version[] = "0.4.0";
+static const char cfc_major_version[] = "0.4";
+
static void
S_add_compiler_flags(struct chaz_CLI *cli);
@@ -7875,6 +7879,17 @@ S_add_compiler_flags(struct chaz_CLI *cli) {
}
static void
+S_add_staticlib_makefile_target(chaz_MakeFile *makefile) {
+ chaz_Lib *static_lib = chaz_Lib_new("cfc", chaz_Lib_STATIC, cfc_version,
+ cfc_major_version);
+ char *static_lib_filename = chaz_Lib_filename(static_lib);
+ chaz_MakeFile_add_rule(makefile, "static", static_lib_filename);
+ chaz_MakeFile_add_static_lib(makefile, static_lib, "$(COMMON_OBJS)");
+ free(static_lib_filename);
+ chaz_Lib_destroy(static_lib);
+}
+
+static void
S_write_makefile(struct chaz_CLI *cli) {
SourceFileContext sfc;
@@ -7941,6 +7956,7 @@ S_write_makefile(struct chaz_CLI *cli) {
sfc.common_objs = chaz_MakeFile_add_var(makefile, "COMMON_OBJS", NULL);
sfc.test_cfc_objs = chaz_MakeFile_add_var(makefile, "TEST_CFC_OBJS", NULL);
+ sfc.common_test_objs = chaz_MakeFile_add_var(makefile, "COMMON_TEST_OBJS", NULL);
chaz_Make_list_files(src_dir, "c", S_source_file_callback, &sfc);
chaz_Make_list_files(cmark_dir, "c", S_source_file_callback, &sfc);
@@ -7960,6 +7976,7 @@ S_write_makefile(struct chaz_CLI *cli) {
/* Rules */
chaz_MakeFile_add_rule(makefile, "all", cfc_exe);
+ S_add_staticlib_makefile_target(makefile);
chaz_MakeFile_add_lemon_exe(makefile, lemon_dir);
chaz_MakeFile_add_lemon_grammar(makefile, parse_header);
@@ -7979,10 +7996,13 @@ S_write_makefile(struct chaz_CLI *cli) {
if (chaz_CLI_defined(cli, "enable-coverage")) {
chaz_CFlags_enable_code_coverage(link_flags);
}
- chaz_MakeFile_add_exe(makefile, cfc_exe, "$(COMMON_OBJS) $(CFC_OBJS)",
- link_flags);
- chaz_MakeFile_add_exe(makefile, test_cfc_exe,
- "$(COMMON_OBJS) $(TEST_CFC_OBJS)", link_flags);
+ if (strcmp(chaz_CLI_strval(cli, "host"), "c") == 0) {
+ chaz_MakeFile_add_exe(makefile, cfc_exe, "$(COMMON_OBJS) $(CFC_OBJS)",
+ link_flags);
+ chaz_MakeFile_add_exe(makefile, test_cfc_exe,
+ "$(COMMON_OBJS) $(COMMON_TEST_OBJS) $(TEST_CFC_OBJS)",
+ link_flags);
+ }
chaz_CFlags_destroy(link_flags);
rule = chaz_MakeFile_add_rule(makefile, "test", test_cfc_exe);
@@ -8012,6 +8032,7 @@ S_write_makefile(struct chaz_CLI *cli) {
clean_rule = chaz_MakeFile_clean_rule(makefile);
chaz_MakeRule_add_rm_command(clean_rule, "$(COMMON_OBJS)");
+ chaz_MakeRule_add_rm_command(clean_rule, "$(COMMON_TEST_OBJS)");
chaz_MakeRule_add_rm_command(clean_rule, "$(CFC_OBJS)");
chaz_MakeRule_add_rm_command(clean_rule, "$(TEST_CFC_OBJS)");
@@ -8054,7 +8075,7 @@ S_source_file_callback(const char *dir, char *file, void *context) {
obj_file = chaz_Util_join("", dir, dir_sep, file, obj_ext, NULL);
if (strlen(file) >= 7 && memcmp(file, "CFCTest", 7) == 0) {
- chaz_MakeVar_append(sfc->test_cfc_objs, obj_file);
+ chaz_MakeVar_append(sfc->common_test_objs, obj_file);
}
else {
chaz_MakeVar_append(sfc->common_objs, obj_file);