Build the C bindings with an external Clownfish installation

Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/9934176b
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/9934176b
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/9934176b

Branch: refs/heads/master
Commit: 9934176b322aa748edaea8b733ed3b047efa8c18
Parents: e857fc4
Author: Nick Wellnhofer <[email protected]>
Authored: Wed Jan 22 21:40:09 2014 +0100
Committer: Nick Wellnhofer <[email protected]>
Committed: Wed Jan 22 23:50:04 2014 +0100

----------------------------------------------------------------------
 c/configure             |  4 ----
 common/charmonizer.main | 57 ++++----------------------------------------
 2 files changed, 5 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/9934176b/c/configure
----------------------------------------------------------------------
diff --git a/c/configure b/c/configure
index fefef4e..875a7bd 100755
--- a/c/configure
+++ b/c/configure
@@ -15,10 +15,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# This also configures CFC
-(cd ../clownfish/runtime/c && ./configure "$@") || exit
-echo
-
 echo Configuring Lucy...
 
 probe_clang() { clang -v; }

http://git-wip-us.apache.org/repos/asf/lucy/blob/9934176b/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index 78aac94..5efd2a3 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -44,8 +44,6 @@ typedef struct SourceFileContext {
 
 static const char lucy_version[]        = "0.3.0";
 static const char lucy_major_version[]  = "0.3";
-static const char cfish_version[]       = "0.3.0";
-static const char cfish_major_version[] = "0.3";
 
 static void
 S_add_compiler_flags(struct chaz_CLIArgs *args) {
@@ -154,12 +152,6 @@ S_write_makefile(struct chaz_CLIArgs *args) {
 
     char *core_dir      = chaz_Util_join(dir_sep, base_dir, "core", NULL);
     char *lemon_dir     = chaz_Util_join(dir_sep, base_dir, "lemon", NULL);
-    char *cfc_dir       = chaz_Util_join(dir_sep, base_dir, "clownfish",
-                                         "compiler", "c", NULL);
-    char *cfr_dir       = chaz_Util_join(dir_sep, base_dir, "clownfish",
-                                         "runtime", "c", NULL);
-    char *cfr_core_dir  = chaz_Util_join(dir_sep, base_dir, "clownfish",
-                                         "runtime", "core", NULL);
     char *modules_dir   = chaz_Util_join(dir_sep, base_dir, "modules", NULL);
     char *snowstem_dir  = chaz_Util_join(dir_sep, modules_dir, "analysis",
                                          "snowstem", "source", NULL);
@@ -171,8 +163,6 @@ S_write_makefile(struct chaz_CLIArgs *args) {
                                          "utf8proc", NULL);
     char *json_parser   = chaz_Util_join(dir_sep, core_dir, "Lucy", "Util",
                                          "Json", "JsonParser", NULL);
-    char *cfc_exe       = chaz_Util_join("", cfc_dir, dir_sep, "cfc", exe_ext,
-                                         NULL);
     char *test_lucy_exe = chaz_Util_join("", "t", dir_sep, "test_lucy",
                                          exe_ext, NULL);
 
@@ -185,7 +175,6 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     chaz_MakeVar  *var;
     chaz_MakeRule *rule;
     chaz_MakeRule *clean_rule;
-    chaz_MakeRule *distclean_rule;
 
     chaz_CFlags *extra_cflags = chaz_CC_get_extra_cflags();
     chaz_CFlags *makefile_cflags;
@@ -193,10 +182,8 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     chaz_CFlags *test_cflags;
 
     chaz_SharedLib *lib;
-    chaz_SharedLib *cfish_lib;
 
     char *lib_filename;
-    char *cfish_lib_filename;
     char *test_command;
     char *scratch;
 
@@ -277,30 +264,9 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     chaz_MakeFile_add_lemon_exe(makefile, lemon_dir);
     chaz_MakeFile_add_lemon_grammar(makefile, json_parser);
 
-    /*
-     * CFC also builds LEMON_EXE, so it might be built twice at the same time
-     * in parallel builds. Adding LEMON_EXE as prereq of CFC_EXE avoids this.
-     */
-    rule = chaz_MakeFile_add_rule(makefile, cfc_exe, "$(LEMON_EXE)");
-    chaz_MakeRule_add_make_command(rule, cfc_dir, NULL);
-
-    cfish_lib = chaz_SharedLib_new("cfish", cfish_version,
-                                   cfish_major_version);
-    scratch = chaz_SharedLib_filename(cfish_lib);
-    cfish_lib_filename = chaz_Util_join(dir_sep, cfr_dir, scratch, NULL);
-    free(scratch);
-
-    /*
-     * The Clownfish runtime also builds CFC, so it might be built twice at
-     * the same time in parallel builds. Add CFC as prereq to avoid this.
-     */
-    rule = chaz_MakeFile_add_rule(makefile, cfish_lib_filename, cfc_exe);
-    chaz_MakeRule_add_make_command(rule, cfr_dir, NULL);
-
-    rule = chaz_MakeFile_add_rule(makefile, "autogen", cfc_exe);
+    rule = chaz_MakeFile_add_rule(makefile, "autogen", NULL);
     chaz_MakeRule_add_prereq(rule, "$(CLOWNFISH_HEADERS)");
-    scratch = chaz_Util_join("", cfc_exe, " --source=", core_dir,
-                             " --include=", cfr_core_dir,
+    scratch = chaz_Util_join("", "cfc --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. */
@@ -330,7 +296,6 @@ S_write_makefile(struct chaz_CLIArgs *args) {
 
     link_flags = chaz_CC_new_cflags();
     chaz_CFlags_enable_debugging(link_flags);
-    chaz_CFlags_add_library_path(link_flags, cfr_dir);
     if (math_lib) {
         chaz_CFlags_add_external_library(link_flags, math_lib);
     }
@@ -343,13 +308,11 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     }
     rule = chaz_MakeFile_add_shared_lib(makefile, lib, "$(LUCY_OBJS)",
                                         link_flags);
-    chaz_MakeRule_add_prereq(rule, cfish_lib_filename);
     chaz_CFlags_destroy(link_flags);
 
     test_cflags = chaz_CC_new_cflags();
     chaz_CFlags_enable_optimization(test_cflags);
     chaz_CFlags_add_include_dir(test_cflags, autogen_inc_dir);
-    chaz_CFlags_add_library_path(test_cflags, cfr_dir);
     chaz_CFlags_add_library(test_cflags, lib);
     chaz_CFlags_add_external_library(test_cflags, "cfish");
     scratch = chaz_Util_join(dir_sep, "t", "test_lucy.c", NULL);
@@ -357,13 +320,12 @@ S_write_makefile(struct chaz_CLIArgs *args) {
                                           test_cflags);
     free(scratch);
     chaz_MakeRule_add_prereq(rule, lib_filename);
-    chaz_MakeRule_add_prereq(rule, cfish_lib_filename);
     chaz_CFlags_destroy(test_cflags);
 
     rule = chaz_MakeFile_add_rule(makefile, "test", test_lucy_exe);
     if (strcmp(chaz_OS_shared_lib_ext(), ".so") == 0) {
-        test_command = chaz_Util_join("", "LD_LIBRARY_PATH=.:", cfr_dir, " ",
-                                      test_lucy_exe, NULL);
+        test_command = chaz_Util_join(" ", "LD_LIBRARY_PATH=.", test_lucy_exe,
+                                      NULL);
     }
     else {
         test_command = chaz_Util_strdup(test_lucy_exe);
@@ -415,33 +377,24 @@ S_write_makefile(struct chaz_CLIArgs *args) {
         chaz_MakeRule_add_recursive_rm_command(clean_rule, "coverage");
     }
 
-    chaz_MakeRule_add_make_command(clean_rule, cfr_dir, "clean");
-
-    distclean_rule = chaz_MakeFile_distclean_rule(makefile);
-    chaz_MakeRule_add_make_command(distclean_rule, cfr_dir, "distclean");
+    chaz_MakeFile_distclean_rule(makefile);
 
     chaz_MakeFile_write(makefile);
 
     chaz_MakeFile_destroy(makefile);
     chaz_SharedLib_destroy(lib);
-    chaz_SharedLib_destroy(cfish_lib);
     free(core_dir);
     free(lemon_dir);
-    free(cfc_dir);
-    free(cfr_dir);
-    free(cfr_core_dir);
     free(modules_dir);
     free(snowstem_dir);
     free(snowstop_dir);
     free(ucd_dir);
     free(utf8proc_dir);
     free(json_parser);
-    free(cfc_exe);
     free(test_lucy_exe);
     free(autogen_inc_dir);
     free(snowstem_inc_dir);
     free(lib_filename);
-    free(cfish_lib_filename);
     free(test_command);
 }
 

Reply via email to