diff --git a/configs/components/_base-ruby-augeas.rb b/configs/components/_base-ruby-augeas.rb index 7f17a2291..ca261c87f 100644 --- a/configs/components/_base-ruby-augeas.rb +++ b/configs/components/_base-ruby-augeas.rb @@ -48,6 +48,11 @@ ruby = "#{host_ruby} -r#{settings[:datadir]}/doc/rbconfig-#{ruby_version}-orig.rb" pkg.environment "LDFLAGS", settings[:ldflags] end +elsif platform.is_macos? + pkg.environment "PATH", "$(PATH):/opt/homebrew/bin" + pkg.environment 'CC', 'clang' + pkg.environment "LDFLAGS", settings[:ldflags] + ruby = File.join(ruby_bindir, 'ruby') else ruby = File.join(ruby_bindir, 'ruby') end diff --git a/configs/components/_base-ruby.rb b/configs/components/_base-ruby.rb index d3b6e67bb..24fbd745c 100644 --- a/configs/components/_base-ruby.rb +++ b/configs/components/_base-ruby.rb @@ -59,6 +59,8 @@ end pkg.environment 'CC', 'clang -target arm64-apple-macos11' if platform.name =~ /osx-11/ pkg.environment 'CC', 'clang -target arm64-apple-macos12' if platform.name =~ /osx-12/ + else + pkg.environment 'CC', 'clang' end end diff --git a/configs/components/augeas.rb b/configs/components/augeas.rb index 84556ca22..538891d00 100644 --- a/configs/components/augeas.rb +++ b/configs/components/augeas.rb @@ -103,13 +103,19 @@ pkg.environment "PKG_CONFIG", "/opt/pl-build-tools/bin/pkg-config" end elsif platform.is_macos? - pkg.environment "PATH", "$(PATH):/usr/local/bin" + if platform.architecture == 'arm64' + pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin' + else + pkg.environment 'PATH', '$(PATH):/usr/local/bin' + end pkg.environment 'CFLAGS', settings[:cflags] pkg.environment 'CPPFLAGS', settings[:cppflags] pkg.environment "LDFLAGS", settings[:ldflags] if platform.is_cross_compiled? pkg.environment 'CC', 'clang -target arm64-apple-macos11' if platform.name =~ /osx-11/ pkg.environment 'CC', 'clang -target arm64-apple-macos12' if platform.name =~ /osx-12/ + else + pkg.environment 'CC', 'clang' end end @@ -120,7 +126,14 @@ end # fix libtool linking on big sur - pkg.configure { ["/usr/local/bin/autoreconf --force --install"] } if platform.is_macos? + if platform.is_macos? + if platform.os_version.to_i >= 13 && platform.architecture == 'arm64' + pkg.configure { ["/opt/homebrew/bin/autoreconf --force --install"] } + else + pkg.configure { ["/usr/local/bin/autoreconf --force --install"] } + end + end + pkg.configure do ["./configure #{extra_config_flags} --prefix=#{settings[:prefix]} #{settings[:host]}"] diff --git a/configs/components/openssl-3.0.rb b/configs/components/openssl-3.0.rb index 94548e251..85be55e36 100644 --- a/configs/components/openssl-3.0.rb +++ b/configs/components/openssl-3.0.rb @@ -64,9 +64,14 @@ # ldflags = "-R/opt/pl-build-tools/#{settings[:platform_triple]}/lib -Wl,-rpath=#{settings[:libdir]} -L/opt/pl-build-tools/#{settings[:platform_triple]}/lib" # target = platform.architecture =~ /86/ ? 'solaris-x86-gcc' : 'solaris-sparcv9-gcc' elsif platform.is_macos? - pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' - target = if platform.is_cross_compiled? + if platform.os_version.to_i >= 13 && platform.architecture == 'arm64' + pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin:/usr/local/bin' + else + pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin' + end + + target = if platform.architecture == "arm64" 'darwin64-arm64' else 'darwin64-x86_64' diff --git a/configs/components/ruby-3.2.2.rb b/configs/components/ruby-3.2.2.rb index 88023608a..01ccc8220 100644 --- a/configs/components/ruby-3.2.2.rb +++ b/configs/components/ruby-3.2.2.rb @@ -70,7 +70,12 @@ if platform.is_macos? pkg.environment 'optflags', settings[:cflags] - pkg.environment 'PATH', '$(PATH):/usr/local/bin' + if platform.architecture == 'arm64' + pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin' + else + pkg.environment 'PATH', '$(PATH):/usr/local/bin' + end + elsif platform.is_windows? pkg.environment 'optflags', settings[:cflags] + ' -O3' pkg.environment 'MAKE', 'make' @@ -235,6 +240,8 @@ # the ancient gcc version on sles-12-ppc64le does not understand -fstack-protector-strong, so remove the `strong` part rbconfig_changes["LDFLAGS"] = "-L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/puppetlabs/puppet/lib" end + elsif platform.is_macos? + rbconfig_changes["CC"] = 'clang' elsif platform.is_windows? if platform.architecture == "x64" rbconfig_changes["CC"] = "x86_64-w64-mingw32-gcc" diff --git a/configs/components/yaml-cpp.rb b/configs/components/yaml-cpp.rb index 62ad3367f..2929e23da 100644 --- a/configs/components/yaml-cpp.rb +++ b/configs/components/yaml-cpp.rb @@ -26,7 +26,11 @@ if platform.is_cross_compiled? pkg.environment 'CXX', 'clang++ -target arm64-apple-macos11' if platform.name =~ /osx-11/ pkg.environment 'CXX', 'clang++ -target arm64-apple-macos12' if platform.name =~ /osx-12/ + else + pkg.environment 'CXX', 'clang++' + cmake = "/opt/homebrew/bin/cmake" if platform.architecture == "arm64" end + elsif platform.is_windows? make = "#{settings[:gcc_bindir]}/mingw32-make" mkdir = '/usr/bin/mkdir' diff --git a/configs/platforms/osx-13-arm64.rb b/configs/platforms/osx-13-arm64.rb new file mode 100644 index 000000000..b55864edf --- /dev/null +++ b/configs/platforms/osx-13-arm64.rb @@ -0,0 +1,9 @@ +platform 'osx-13-arm64' do |plat| + plat.inherit_from_default + + packages = %w[automake cmake pkg-config yaml-cpp] + plat.provision_with "su test -c '/opt/homebrew/bin/brew install #{packages.join(' ')}'" + + plat.output_dir File.join('apple', '13', 'PC1', 'arm64') + end + \ No newline at end of file diff --git a/configs/projects/_shared-agent-settings.rb b/configs/projects/_shared-agent-settings.rb index eec0e18d7..76b289101 100644 --- a/configs/projects/_shared-agent-settings.rb +++ b/configs/projects/_shared-agent-settings.rb @@ -200,7 +200,7 @@ # break gcc or clang if they try to use the RPATH values we forced. proj.setting(:cppflags, "-I#{proj.includedir}") proj.setting(:ldflags, "-L#{proj.libdir}") - if platform.is_cross_compiled? + if platform.architecture == 'arm64' proj.setting(:cflags, "#{proj.cppflags}") else proj.setting(:cflags, "-march=core2 -msse4 #{proj.cppflags}")