+Amazon Corretto @major@ Installer
+You will be guided through the steps necessary to install Amazon Corretto @full@.
+
\ No newline at end of file
diff --git a/installers/mac/tar/build.gradle b/installers/mac/tar/build.gradle
new file mode 100644
index 00000000000..fe488ca59a8
--- /dev/null
+++ b/installers/mac/tar/build.gradle
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2019, Amazon.com, Inc. or its affiliates. All Rights Reserved.
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* This code is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License version 2 only, as
+* published by the Free Software Foundation. Amazon designates this
+* particular file as subject to the "Classpath" exception as provided
+* by Oracle in the LICENSE file that accompanied this code.
+*
+* This code is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+* version 2 for more details (a copy is included in the LICENSE file that
+* accompanied this code).
+*
+* You should have received a copy of the GNU General Public License version
+* 2 along with this work; if not, write to the Free Software Foundation,
+* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+dependencies {
+ compile project(path: ':openjdksrc', configuration: 'archives')
+ compile project(path: ':prebuild', configuration: 'cacerts')
+}
+
+// Two configurations for tgz & Jtreg native library respectively.
+// Separate artifacts to simplify the artifacts fetching in :mac:pkg.
+configurations {
+ buildTar
+ testLib
+}
+// consts
+def imageDir= "$buildRoot/build/${project.jdkImageName}/images"
+def jdkResultingImage = "${imageDir}/jdk-bundle"
+def testResultingImage = "${imageDir}/test"
+def correttoMacDir = "amazon-corretto-${project.version.major}.jdk"
+
+
+// deps
+def depsMap = [:]
+project.configurations.compile.getFiles().each { depsMap[it.getName()] = it }
+
+/**
+ * Create a local copy of the source tree in our
+ * build root -- this is required since OpenJDK's
+ * build wants to occur inside the source tree,
+ * and we don't want to tamper with someone
+ * else's tree.
+ */
+task copySource(type: Exec) {
+ if (!file(buildRoot).exists()) {
+ file(buildRoot).mkdirs()
+ }
+ workingDir '/usr/bin'
+ commandLine 'rsync', '-am',
+ '--exclude=pre-build',
+ '--exclude=installers',
+ '--exclude=corretto-build',
+ "${project.rootDir}/", buildRoot
+}
+
+task configureBuild(type: Exec) {
+ dependsOn project.configurations.compile
+ dependsOn copySource
+ workingDir "$buildRoot"
+
+ // Platform specific flags
+ def command = ['bash', 'configure',
+ "--with-cacerts-file=${depsMap[caCerts]}"
+ ]
+ // Common flags
+ command += project.correttoCommonFlags
+ commandLine command.flatten()
+}
+
+task executeBuild(type: Exec) {
+ dependsOn configureBuild
+ workingDir "$buildRoot"
+ commandLine 'make', 'images'
+}
+
+task executeTestBuild(type: Exec) {
+ dependsOn executeBuild
+ workingDir "$buildRoot"
+ commandLine 'make','test-image-hotspot-jtreg-native','test-image-jdk-jtreg-native'
+}
+
+task prepareArtifacts {
+ dependsOn executeBuild
+ doLast {
+ if(file("${jdkResultingImage}/${correttoMacDir}").exists()) {
+ delete "${jdkResultingImage}/${correttoMacDir}"
+ }
+ // Rename bundle
+ exec {
+ workingDir jdkResultingImage
+ commandLine 'bash', '-c', "\"\"mv jdk-${version.major}*.jdk ${correttoMacDir}\"\""
+ }
+ // Replace Info.plist
+ copy {
+ from('templates/Info.plist.template') {
+ rename { file -> file.replace('.template', '') }
+ filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: project.version)
+ }
+ into "${jdkResultingImage}/${correttoMacDir}/Contents"
+ }
+ // Filter files
+ if(file("${buildDir}/${correttoMacDir}").exists()) {
+ delete "${buildDir}/${correttoMacDir}"
+ }
+ copy {
+ from("${jdkResultingImage}/${correttoMacDir}") {
+ include "Contents/Home/bin/**"
+ include "Contents/Home/conf/**"
+ include "Contents/Home/include/**"
+ include "Contents/Home/jmods/**"
+ include "Contents/Home/legal/**"
+ include "Contents/Home/lib/**"
+ include "Contents/Home/man/man1/**"
+ include "Contents/Home/release"
+ include "Contents/Info.plist"
+ include "Contents/MacOS/**"
+ }
+ into "${buildDir}/${correttoMacDir}"
+ }
+ // Set the directory as bundle
+ exec {
+ commandLine "SetFile", "-a", "B", "${buildDir}/${correttoMacDir}"
+ }
+ // Gradle does not preserve symlink, fix it before packaging
+ exec {
+ workingDir "${buildDir}/${correttoMacDir}/Contents"
+ commandLine "ln", "-sf", "../Home/lib/libjli.dylib", "MacOS/libjli.dylib"
+ }
+ }
+}
+
+task packaging(type: Exec) {
+ dependsOn prepareArtifacts
+ String tarDir = "${distributionDir}/${project.correttoJdkArchiveName}.tar.gz"
+ workingDir buildDir
+ commandLine "tar", "czf", tarDir, correttoMacDir
+ outputs.file tarDir
+}
+
+task packageTestResults(type: Tar) {
+ dependsOn executeTestBuild
+ description 'Package test results'
+ archiveName "${project.correttoTestImageArchiveName}.tar.gz"
+ compression Compression.GZIP
+ from(testResultingImage) {
+ include '**'
+ }
+ into project.correttoTestImageArchiveName
+
+}
+
+build.dependsOn packaging
+build.dependsOn packageTestResults
+
+artifacts {
+ buildTar file: packaging.outputs.getFiles().getSingleFile(), builtBy: packaging
+ testLib packageTestResults
+}
diff --git a/installers/mac/tar/templates/Info.plist.template b/installers/mac/tar/templates/Info.plist.template
new file mode 100644
index 00000000000..d74c7a8177a
--- /dev/null
+++ b/installers/mac/tar/templates/Info.plist.template
@@ -0,0 +1,43 @@
+
+
+