Adjust Makefile for Perl build

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

Branch: refs/heads/master
Commit: 5209d70f8e6ea32a0a80371c6141eb7a94d52736
Parents: 57379c7
Author: Nick Wellnhofer <[email protected]>
Authored: Sat Nov 8 18:26:41 2014 +0100
Committer: Nick Wellnhofer <[email protected]>
Committed: Sun Nov 30 17:14:23 2014 +0100

----------------------------------------------------------------------
 common/charmonizer.main | 45 ++++++++++++++++++++++++++++++++++----------
 1 file changed, 35 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/5209d70f/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index 5a85216..7a6e66a 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -168,6 +168,11 @@ int main(int argc, const char **argv) {
     if (chaz_CLI_defined(cli, "enable-makefile")) {
         lucy_MakeFile *mf = lucy_MakeFile_new(cli);
         lucy_MakeFile_write(mf);
+        /* Export filenames. */
+        chaz_ConfWriter_add_def("SHARED_LIB_FILENAME",
+                                mf->shared_lib_filename);
+        chaz_ConfWriter_add_def("STATIC_LIB_FILENAME",
+                                mf->static_lib_filename);
         lucy_MakeFile_destroy(mf);
     }
 
@@ -221,12 +226,6 @@ S_add_compiler_flags(struct chaz_CLI *cli) {
 
 static lucy_MakeFile*
 lucy_MakeFile_new(chaz_CLI *cli) {
-    static const char *c_autogen_src_files[] = {
-        "lucy_parcel",
-        "testlucy_parcel",
-        NULL
-    };
-
     const char *dir_sep      = chaz_OS_dir_sep();
     const char *cfish_prefix = chaz_CLI_strval(cli, "clownfish-prefix");
 
@@ -238,7 +237,12 @@ lucy_MakeFile_new(chaz_CLI *cli) {
     /* Initialize directories. */
     self->base_dir = "..";
     self->core_dir = chaz_Util_join(dir_sep, self->base_dir, "core", NULL);
-    self->host_src_dir = "src";
+    if (chaz_CLI_defined(cli, "enable-perl")) {
+        self->host_src_dir = "xs";
+    }
+    else {
+        self->host_src_dir = "src";
+    }
     self->autogen_src_dir = chaz_Util_join(dir_sep, "autogen", "source", NULL);
     self->autogen_inc_dir
         = chaz_Util_join(dir_sep, "autogen", "include", NULL);
@@ -260,7 +264,24 @@ lucy_MakeFile_new(chaz_CLI *cli) {
                          NULL);
 
     /* Initialize file names. */
-    self->autogen_src_files = c_autogen_src_files;
+    if (chaz_CLI_defined(cli, "enable-perl")) {
+        static const char *perl_autogen_src_files[] = {
+            "boot",
+            "callbacks",
+            "lucy_parcel",
+            "testlucy_parcel",
+            NULL
+        };
+        self->autogen_src_files = perl_autogen_src_files;
+    }
+    else {
+        static const char *c_autogen_src_files[] = {
+            "lucy_parcel",
+            "testlucy_parcel",
+            NULL
+        };
+        self->autogen_src_files = c_autogen_src_files;
+    }
     self->autogen_target
         = chaz_Util_join(dir_sep, "autogen", "hierarchy.json", NULL);
     self->json_parser
@@ -406,7 +427,9 @@ lucy_MakeFile_write(lucy_MakeFile *self) {
     chaz_MakeFile_add_lemon_exe(self->makefile, self->lemon_dir);
     chaz_MakeFile_add_lemon_grammar(self->makefile, self->json_parser);
 
-    lucy_MakeFile_write_c_cfc_rules(self);
+    if (!chaz_CLI_defined(self->cli, "enable-perl")) {
+        lucy_MakeFile_write_c_cfc_rules(self);
+    }
 
     /* Needed for parallel builds. */
     for (i = 0; self->autogen_src_files[i] != NULL; ++i) {
@@ -447,7 +470,9 @@ lucy_MakeFile_write(lucy_MakeFile *self) {
     chaz_CFlags_destroy(link_flags);
     chaz_MakeFile_add_static_lib(self->makefile, self->static_lib, 
"$(LUCY_OBJS)");
 
-    lucy_MakeFile_write_c_test_rules(self);
+    if (!chaz_CLI_defined(self->cli, "enable-perl")) {
+        lucy_MakeFile_write_c_test_rules(self);
+    }
 
     clean_rule = chaz_MakeFile_clean_rule(self->makefile);
 

Reply via email to