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:43 UTC

[lucy-commits] [09/21] git commit: refs/heads/master - Eliminate DIR_SEP macro in charmonizer.main

Eliminate DIR_SEP macro in charmonizer.main


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

Branch: refs/heads/master
Commit: e4723761100d817f90e97f99702b6271985dd968
Parents: 239afba
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Wed May 15 00:45:50 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Wed May 15 19:13:54 2013 +0200

----------------------------------------------------------------------
 clownfish/compiler/common/charmonizer.main |   22 +++----
 common/charmonizer.main                    |   80 ++++++++++++----------
 2 files changed, 53 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/e4723761/clownfish/compiler/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/clownfish/compiler/common/charmonizer.main b/clownfish/compiler/common/charmonizer.main
index 4a9df5d..460dd7e 100644
--- a/clownfish/compiler/common/charmonizer.main
+++ b/clownfish/compiler/common/charmonizer.main
@@ -23,12 +23,6 @@
 #include "Charmonizer/Probe.h"
 #include "Charmonizer/Probe/Integers.h"
 
-#if defined(_WIN32) && !defined(__CYGWIN__)
-  #define DIR_SEP "\\"
-#else
-  #define DIR_SEP "/"
-#endif
-
 typedef struct SourceFileContext {
     chaz_MakeVar *common_objs;
     chaz_MakeVar *test_cfc_objs;
@@ -72,6 +66,7 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
 static void
 S_source_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();
     size_t file_len = strlen(file);
     char *obj_file;
@@ -85,7 +80,7 @@ S_source_file_callback(const char *dir, char *file, void *context) {
     }
     file[file_len-2] = '\0';
 
-    obj_file = chaz_Util_join("", dir, DIR_SEP, file, obj_ext, NULL);
+    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);
     }
@@ -101,17 +96,18 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     SourceFileContext sfc;
 
     const char *base_dir = "..";
+    const char *dir_sep  = chaz_OS_dir_sep();
     const char *exe_ext  = chaz_OS_exe_ext();
     const char *obj_ext  = chaz_CC_obj_ext();
 
-    char *lemon_dir    = chaz_Util_join(DIR_SEP, base_dir, "..", "..", "lemon",
+    char *lemon_dir    = chaz_Util_join(dir_sep, base_dir, "..", "..", "lemon",
                                         NULL);
-    char *src_dir      = chaz_Util_join(DIR_SEP, base_dir, "src", NULL);
-    char *include_dir  = chaz_Util_join(DIR_SEP, base_dir, "include", NULL);
-    char *parse_header = chaz_Util_join(DIR_SEP, src_dir, "CFCParseHeader",
+    char *src_dir      = chaz_Util_join(dir_sep, base_dir, "src", NULL);
+    char *include_dir  = chaz_Util_join(dir_sep, base_dir, "include", NULL);
+    char *parse_header = chaz_Util_join(dir_sep, src_dir, "CFCParseHeader",
                                         NULL);
     char *cfc_exe      = chaz_Util_join("", "cfc", exe_ext, NULL);
-    char *test_cfc_exe = chaz_Util_join("", "t", DIR_SEP, "test_cfc", exe_ext,
+    char *test_cfc_exe = chaz_Util_join("", "t", dir_sep, "test_cfc", exe_ext,
                                         NULL);
 
     char *scratch;
@@ -165,7 +161,7 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     chaz_MakeVar_append(sfc.common_objs, scratch);
     free(scratch);
 
-    scratch = chaz_Util_join("", "t", DIR_SEP, "test_cfc", obj_ext, NULL);
+    scratch = chaz_Util_join("", "t", dir_sep, "test_cfc", obj_ext, NULL);
     chaz_MakeVar_append(sfc.test_cfc_objs, scratch);
     free(scratch);
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/e4723761/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/common/charmonizer.main b/common/charmonizer.main
index 60cd820..88219d6 100644
--- a/common/charmonizer.main
+++ b/common/charmonizer.main
@@ -38,12 +38,6 @@
 #include "Charmonizer/Core/ConfWriterPerl.h"
 #include "Charmonizer/Core/ConfWriterRuby.h"
 
-#if defined(_WIN32) && !defined(__CYGWIN__)
-  #define DIR_SEP "\\"
-#else
-  #define DIR_SEP "/"
-#endif
-
 typedef struct SourceFileContext {
     chaz_MakeVar *var;
 } SourceFileContext;
@@ -99,27 +93,34 @@ S_add_compiler_flags(struct chaz_CLIArgs *args) {
     chaz_CFlags_add_define(extra_cflags, "CFP_LUCY", NULL);
 }
 
+static int
+S_ends_with(const char *string, const char *postfix) {
+    size_t len         = strlen(string);
+    size_t postfix_len = strlen(postfix);
+    return len >= postfix_len
+           && memcmp(string + len - postfix_len, postfix, postfix_len) == 0;
+}
+
 static void
 S_source_file_callback(const char *dir, char *file, void *context) {
     SourceFileContext *sfc = (SourceFileContext*)context;
-    const char *obj_ext       = chaz_CC_obj_ext();
-    const char *json_parser_c = "Lucy" DIR_SEP "Util" DIR_SEP "Json" DIR_SEP
-                                "JsonParser.c";
+    const char *dir_sep = chaz_OS_dir_sep();
+    const char *obj_ext = chaz_CC_obj_ext();
     size_t file_len = strlen(file);
     char *obj_file;
 
-    if (strcmp(file, json_parser_c) == 0) { return; }
-
     /* Strip extension */
-    if (file_len <= 2 || memcmp(file + file_len - 2, ".c", 2) != 0) {
+    if (!S_ends_with(file, ".c")) {
         chaz_Util_warn("Unexpected source file name: %s", file);
         return;
     }
     file[file_len-2] = '\0';
 
-    obj_file = chaz_Util_join("", dir, DIR_SEP, file, obj_ext, NULL);
-    chaz_MakeVar_append(sfc->var, obj_file);
-    free(obj_file);
+    if (!S_ends_with(file, "JsonParser")) {
+        obj_file = chaz_Util_join("", dir, dir_sep, file, obj_ext, NULL);
+        chaz_MakeVar_append(sfc->var, obj_file);
+        free(obj_file);
+    }
 }
 
 static void
@@ -127,31 +128,35 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     SourceFileContext sfc;
 
     const char *base_dir = "..";
+    const char *dir_sep  = chaz_OS_dir_sep();
     const char *exe_ext  = chaz_OS_exe_ext();
     const char *obj_ext  = chaz_CC_obj_ext();
 
-    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",
+    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 *modules_dir   = chaz_Util_join(DIR_SEP, base_dir, "modules", NULL);
-    char *snowstem_dir  = chaz_Util_join(DIR_SEP, modules_dir, "analysis",
+    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);
-    char *snowstem_inc_dir = chaz_Util_join(DIR_SEP, snowstem_dir, "include",
-                                            NULL);
-    char *snowstop_dir  = chaz_Util_join(DIR_SEP, modules_dir, "analysis",
+    char *snowstop_dir  = chaz_Util_join(dir_sep, modules_dir, "analysis",
                                          "snowstop", "source", NULL);
-    char *ucd_dir       = chaz_Util_join(DIR_SEP, modules_dir, "unicode",
+    char *ucd_dir       = chaz_Util_join(dir_sep, modules_dir, "unicode",
                                          "ucd", NULL);
-    char *utf8proc_dir  = chaz_Util_join(DIR_SEP, modules_dir, "unicode",
+    char *utf8proc_dir  = chaz_Util_join(dir_sep, modules_dir, "unicode",
                                          "utf8proc", NULL);
-    char *json_parser   = chaz_Util_join(DIR_SEP, core_dir, "Lucy", "Util",
+    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,
+    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",
+    char *test_lucy_exe = chaz_Util_join("", "t", dir_sep, "test_lucy",
                                          exe_ext, NULL);
 
+    char *autogen_inc_dir
+        = chaz_Util_join(dir_sep, "autogen", "include", NULL);
+    char *snowstem_inc_dir
+        = chaz_Util_join(dir_sep, snowstem_dir, "include", NULL);
+
     chaz_MakeFile *makefile;
     chaz_MakeVar  *var;
     chaz_MakeRule *rule;
@@ -193,7 +198,7 @@ S_write_makefile(struct chaz_CLIArgs *args) {
 
     chaz_CFlags_add_include_dir(makefile_cflags, ".");
     chaz_CFlags_add_include_dir(makefile_cflags, core_dir);
-    chaz_CFlags_add_include_dir(makefile_cflags, "autogen" DIR_SEP "include");
+    chaz_CFlags_add_include_dir(makefile_cflags, autogen_inc_dir);
     chaz_CFlags_add_include_dir(makefile_cflags, snowstem_inc_dir);
     chaz_CFlags_add_include_dir(makefile_cflags, ucd_dir);
     chaz_CFlags_add_include_dir(makefile_cflags, utf8proc_dir);
@@ -220,7 +225,7 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     chaz_MakeVar_append(var, scratch);
     free(scratch);
 
-    scratch = chaz_Util_join("", "autogen", DIR_SEP, "source", DIR_SEP,
+    scratch = chaz_Util_join("", "autogen", dir_sep, "source", dir_sep,
                              "parcel", obj_ext, NULL);
     chaz_MakeVar_append(var, scratch);
     free(scratch);
@@ -248,8 +253,9 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     free(scratch);
 
     /* Needed for parallel builds. */
-    rule = chaz_MakeFile_add_rule(makefile, "autogen" DIR_SEP "source"
-                                  DIR_SEP "parcel.c", "autogen");
+    scratch = chaz_Util_join(dir_sep, "autogen", "source", "parcel.c", NULL);
+    rule = chaz_MakeFile_add_rule(makefile, scratch, "autogen");
+    free(scratch);
 
     rule = chaz_MakeFile_add_rule(makefile, "$(LUCY_OBJS)", "autogen");
     /*
@@ -279,11 +285,12 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     test_cflags = chaz_CC_new_cflags();
     chaz_CFlags_enable_optimization(test_cflags);
     chaz_CFlags_add_include_dir(test_cflags, ".");
-    chaz_CFlags_add_include_dir(test_cflags, "autogen" DIR_SEP "include");
+    chaz_CFlags_add_include_dir(test_cflags, autogen_inc_dir);
     chaz_CFlags_add_library(link_flags, lib);
-    rule = chaz_MakeFile_add_compiled_exe(makefile, test_lucy_exe,
-                                          "t" DIR_SEP "test_lucy.c",
+    scratch = chaz_Util_join(dir_sep, "t", "test_lucy.c", NULL);
+    rule = chaz_MakeFile_add_compiled_exe(makefile, test_lucy_exe, scratch,
                                           test_cflags);
+    free(scratch);
     chaz_MakeRule_add_prereq(rule, lib_filename);
     chaz_CFlags_destroy(test_cflags);
 
@@ -353,13 +360,14 @@ S_write_makefile(struct chaz_CLIArgs *args) {
     free(cfc_dir);
     free(modules_dir);
     free(snowstem_dir);
-    free(snowstem_inc_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(test_command);
 }