From 5c86750aed335cadc7c775248cfb4de85d47d979 Mon Sep 17 00:00:00 2001 From: David Brown Date: Wed, 15 Feb 2017 18:58:39 +0000 Subject: [PATCH] Enable Mac static linking. --- src/compiler/extTools.Mod | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/compiler/extTools.Mod b/src/compiler/extTools.Mod index 4c9b2c11..fdd38e94 100644 --- a/src/compiler/extTools.Mod +++ b/src/compiler/extTools.Mod @@ -73,21 +73,32 @@ PROCEDURE LinkMain*(VAR moduleName: ARRAY OF CHAR; statically: BOOLEAN; addition cmd: CommandString; BEGIN InitialiseCompilerCommand(cmd); - Strings.Append(moduleName, cmd); - Strings.Append(".c ", cmd); - Strings.Append(additionalopts, cmd); + Strings.Append(moduleName, cmd); + Strings.Append(".c ", cmd); + Strings.Append(additionalopts, cmd); IF statically THEN - Strings.Append(Configuration.staticLink, cmd) + IF Configuration.os = "darwin" THEN + Strings.Append(OPM.InstallDir, cmd); + Strings.Append('/lib/lib', cmd); + Strings.Append(Configuration.name, cmd); + Strings.Append('-O', cmd); + Strings.Append(OPM.Model, cmd); + Strings.Append('.a', cmd); + ELSE + Strings.Append(Configuration.staticLink, cmd) + END + END; + Strings.Append(Configuration.objflag, cmd); + Strings.Append(moduleName, cmd); + IF (~statically) OR ~(Configuration.os = "darwin") THEN + Strings.Append(Configuration.linkflags, cmd); + Strings.Append(OPM.InstallDir, cmd); + Strings.Append('/lib"', cmd); + Strings.Append(Configuration.libspec, cmd); + Strings.Append('-O', cmd); + Strings.Append(OPM.Model, cmd); + Strings.Append(Configuration.libext, cmd) END; - Strings.Append(Configuration.objflag, cmd); - Strings.Append(moduleName, cmd); - Strings.Append(Configuration.linkflags, cmd); - Strings.Append(OPM.InstallDir, cmd); - Strings.Append('/lib"', cmd); - Strings.Append(Configuration.libspec, cmd); - Strings.Append('-O', cmd); - Strings.Append(OPM.Model, cmd); - Strings.Append(Configuration.libext, cmd); execute("C compile and link: ", cmd); IF (Configuration.os = "darwin") & ~statically THEN