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