diff --git a/makefile.darwin.clang.x86_64 b/makefile.darwin.clang.x86_64 index 5a0dd466..9649f0e0 100644 --- a/makefile.darwin.clang.x86_64 +++ b/makefile.darwin.clang.x86_64 @@ -30,7 +30,7 @@ CCOPT = -fPIC $(INCLUDEPATH) -g CC = cc $(CCOPT) -c CL = cc $(CCOPT) -LD = cc -dynamiclib -o $(LIBRARY).dylib +LD = libtool -dynamic -lSystem -compatibility_version $(RELEASE) -current_version $(RELEASE) -install_name $(PREFIX)/lib/$(LIBRARY).dylib -o $(LIBRARY).dylib # s is necessary to create index inside a archive ARCHIVE = ar rcs $(LIBRARY).a diff --git a/ocat b/ocat index 53abd573..a4727826 100755 Binary files a/ocat and b/ocat differ diff --git a/showdef b/showdef index e8af78b5..3ef157af 100755 Binary files a/showdef and b/showdef differ diff --git a/src/voc/darwin/clang/extTools.Mod b/src/voc/darwin/clang/extTools.Mod index 0dda5009..d8d03c6d 100644 --- a/src/voc/darwin/clang/extTools.Mod +++ b/src/voc/darwin/clang/extTools.Mod @@ -33,6 +33,8 @@ cc : ARRAY 1023 OF CHAR; ccopt : ARRAY 1023 OF CHAR; cmd : ARRAY 1023 OF CHAR; ext : ARRAY 5 OF CHAR; + +cmd2 : ARRAY 1023 OF CHAR; BEGIN (* gcc -g -o hello hello.c -I $RPATH/src/lib/system/linux/gnuc/x86_64 -I. -I$RPATH -lOberon -L. -L$RPATH -static @@ -46,13 +48,34 @@ Strings.Append(" ", cmd); Strings.Append(m, cmd); Strings.Append(ext, cmd); Strings.Append(additionalopts, cmd); -IF statically THEN Strings.Append(" -static ", cmd) END; +Strings.Append(" ", cmd); +(*IF statically THEN Strings.Append(" -static ", cmd) END;*) +IF statically THEN + Strings.Append(version.prefix, cmd); + Strings.Append("/lib/libVishapOberon.a ", cmd); +END; Strings.Append(" -o ", cmd); Strings.Append(m, cmd); Strings.Append(" ", cmd); +IF ~statically THEN +Strings.Append ("-lVishapOberon -L. -L", ccOpt); +Strings.Append (version.prefix, ccOpt); +Strings.Append ("/lib ", ccOpt); +END; Strings.Append(ccOpt, cmd); + Console.Ln; Console.String(cmd); Console.Ln; (* may be it's feasible to add debug mode later *) Unix.system(cmd); + +IF ~statically THEN + cmd2 := ""; + COPY ("install_name_tool -change libVishapOberon.dylib ", cmd2); + Strings.Append(version.prefix, cmd2); + Strings.Append ("/lib/libVishapOberon.dylib ", cmd2); + Strings.Append (m, cmd2); + Console.String(cmd2); Console.Ln; + Unix.system(cmd2); + END END LinkMain; BEGIN @@ -70,9 +93,6 @@ Strings.Append(version.prefix, tmp1); Strings.Append("/", tmp1); Strings.Append(incPath1, tmp1); Strings.Append(tmp1, ccOpt); -Strings.Append ("-lVishapOberon -L. -L", ccOpt); -Strings.Append (version.prefix, ccOpt); -Strings.Append ("/lib ", ccOpt); Args.GetEnv("CFLAGS", CFLAGS); Strings.Append (CFLAGS, ccOpt); Strings.Append (" ", ccOpt); diff --git a/voc b/voc index 5bcb7b99..e91f0b6f 100755 Binary files a/voc and b/voc differ