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/03/24 17:16:00 UTC

[lucy-commits] [3/5] git commit: refs/heads/master - Add some Charmonizer functions to work with shared libraries

Add some Charmonizer functions to work with shared libraries

* chaz_CC_shared_obj_cflags
* chaz_CC_library_path_flag
* chaz_CC_link_with_shared_obj_flag


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

Branch: refs/heads/master
Commit: 4413eaa13fd0c70d2b55b6d029dc5466f8a2a768
Parents: 9a4efa6
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Mon Mar 11 20:20:45 2013 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sun Mar 24 17:13:47 2013 +0100

----------------------------------------------------------------------
 charmonizer/src/Charmonizer/Core/Compiler.c |   45 +++++++++++++++++++++-
 charmonizer/src/Charmonizer/Core/Compiler.h |    9 ++++
 2 files changed, 53 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/4413eaa1/charmonizer/src/Charmonizer/Core/Compiler.c
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.c b/charmonizer/src/Charmonizer/Core/Compiler.c
index 19dbbb1..a5de6a9 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.c
+++ b/charmonizer/src/Charmonizer/Core/Compiler.c
@@ -409,6 +409,19 @@ chaz_CC_msvc_version_num(void) {
 }
 
 const char*
+chaz_CC_shared_obj_cflags() {
+    if (chaz_CC.intval__MSC_VER) {
+        return "";
+    }
+    else if (chaz_OS_is_darwin()) {
+        return "-fno-common";
+    }
+    else {
+        return "-fPIC";
+    }
+}
+
+const char*
 chaz_CC_link_command() {
     if (chaz_CC.intval__MSC_VER) {
         return "link";
@@ -429,7 +442,7 @@ chaz_CC_link_shared_obj_flag() {
         return "/DLL";
     }
     else if (chaz_OS_is_darwin()) {
-        return "-dynamiclib ";
+        return "-dynamiclib";
     }
     else {
         return "-shared";
@@ -446,4 +459,34 @@ chaz_CC_link_output_flag() {
     }
 }
 
+char*
+chaz_CC_library_path_flag(const char *directory) {
+    char *flag = (char*)malloc(20 + sizeof(directory));
+    if (chaz_CC.intval__MSC_VER) {
+        if (strcmp(directory, ".") == 0) {
+            /* The MS linker searches the current directory by default. */
+            strcpy(flag, "");
+        }
+        else {
+            sprintf(flag, "/LIBPATH:%s", directory);
+        }
+    }
+    else {
+        sprintf(flag, "-L%s", directory);
+    }
+    return flag;
+}
+
+char*
+chaz_CC_link_with_shared_obj_flag(const char *shared_obj) {
+    char *flag = (char*)malloc(20 + sizeof(shared_obj));
+    if (chaz_CC.intval__MSC_VER) {
+        sprintf(flag, "%s.lib", shared_obj);
+    }
+    else {
+        sprintf(flag, "-l%s", shared_obj);
+    }
+    return flag;
+}
+
 

http://git-wip-us.apache.org/repos/asf/lucy/blob/4413eaa1/charmonizer/src/Charmonizer/Core/Compiler.h
----------------------------------------------------------------------
diff --git a/charmonizer/src/Charmonizer/Core/Compiler.h b/charmonizer/src/Charmonizer/Core/Compiler.h
index c398148..6fc4a5e 100644
--- a/charmonizer/src/Charmonizer/Core/Compiler.h
+++ b/charmonizer/src/Charmonizer/Core/Compiler.h
@@ -114,6 +114,9 @@ int
 chaz_CC_msvc_version_num(void);
 
 const char*
+chaz_CC_shared_obj_cflags(void);
+
+const char*
 chaz_CC_link_command(void);
 
 const char*
@@ -125,6 +128,12 @@ chaz_CC_link_shared_obj_flag(void);
 const char*
 chaz_CC_link_output_flag(void);
 
+char*
+chaz_CC_library_path_flag(const char *directory);
+
+char*
+chaz_CC_link_with_shared_obj_flag(const char *shared_obj);
+
 #ifdef __cplusplus
 }
 #endif


[lucy-dev] Re: [lucy-commits] [3/5] git commit: refs/heads/master - Add some Charmonizer functions to work with shared libraries

Posted by Marvin Humphrey <ma...@rectangular.com>.
On Sun, Mar 24, 2013 at 9:16 AM,  <nw...@apache.org> wrote:
> Add some Charmonizer functions to work with shared libraries
>
> * chaz_CC_shared_obj_cflags
> * chaz_CC_library_path_flag
> * chaz_CC_link_with_shared_obj_flag
>
>
> Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
> Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/4413eaa1
> Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/4413eaa1
> Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/4413eaa1

> +char*
> +chaz_CC_library_path_flag(const char *directory) {
> +    char *flag = (char*)malloc(20 + sizeof(directory));

> +char*
> +chaz_CC_link_with_shared_obj_flag(const char *shared_obj) {
> +    char *flag = (char*)malloc(20 + sizeof(shared_obj));

I think those should be `strlen` rather than `sizeof`.

Marvin Humphrey