diff --git a/build.sbt b/build.sbt index 52de1ba..035fed2 100644 --- a/build.sbt +++ b/build.sbt @@ -8,26 +8,30 @@ lazy val commonSettings = Seq( case PathList("META-INF", "MANIFEST.MF") => MergeStrategy.discard case _ => MergeStrategy.first}}, scalacOptions ++= Seq("-deprecation","-unchecked","-Xsource:2.11"), - libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test", - libraryDependencies += "org.json4s" %% "json4s-native" % "3.5.3", + libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test", + libraryDependencies += "org.json4s" %% "json4s-native" % "3.6.1", libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value, libraryDependencies += "edu.berkeley.cs" %% "firrtl-interpreter" % "1.2-SNAPSHOT", - libraryDependencies += "com.github.scopt" %% "scopt" % "3.7.1", + libraryDependencies += "com.github.scopt" %% "scopt" % "3.7.0", addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full), resolvers ++= Seq( Resolver.sonatypeRepo("snapshots"), Resolver.sonatypeRepo("releases"), Resolver.mavenLocal)) +lazy val rebarFirrtl = (project in file("tools/firrtl")) + .settings(commonSettings) + lazy val rocketchip = RootProject(file("generators/rocket-chip")) -lazy val testchipip = (project in file("generators/testchipip")).settings(commonSettings) +lazy val testchipip = (project in file("generators/testchipip")) .dependsOn(rocketchip) + .settings(commonSettings) // Checks for -DROCKET_USE_MAVEN. // If it's there, use a maven dependency. // Else, depend on subprojects in git submodules. -def conditionalDependsOn(prj: Project): Project = { +def testchipIpDependsOn(prj: Project): Project = { if (sys.props.contains("ROCKET_USE_MAVEN")) { prj.settings(Seq( libraryDependencies += "edu.berkeley.cs" %% "testchipip" % "1.0-020719-SNAPSHOT", @@ -36,19 +40,22 @@ def conditionalDependsOn(prj: Project): Project = { prj.dependsOn(testchipip) } } -lazy val example = conditionalDependsOn(project in file(".")) + +lazy val example = testchipIpDependsOn(project in file(".")) .settings(commonSettings) -lazy val boom = conditionalDependsOn(project in file("generators/boom")) +lazy val boom = (project in file("generators/boom")) + .dependsOn(rocketchip) .settings(commonSettings) -lazy val tapeout = conditionalDependsOn(project in file("./tools/barstools/tapeout/")) +lazy val tapeout = (project in file("./tools/barstools/tapeout/")) + .dependsOn(rebarFirrtl, rocketchip) .settings(commonSettings) lazy val mdf = (project in file("./tools/barstools/mdf/scalalib/")) + .settings(commonSettings) -lazy val `barstools-macros` = conditionalDependsOn(project in file("./tools/barstools/macros/")) +lazy val `barstools-macros` = (project in file("./tools/barstools/macros/")) + .dependsOn(mdf, rocketchip, rebarFirrtl) .enablePlugins(sbtassembly.AssemblyPlugin) .settings(commonSettings) - .dependsOn(mdf) - diff --git a/common.mk b/common.mk index 3c43484..d53fb4c 100644 --- a/common.mk +++ b/common.mk @@ -20,12 +20,13 @@ TESTCHIPIP_CLASSES ?= "$(TESTCHIP_DIR)/target/scala-$(SCALA_VERSION_MAJOR)/class ######################################################################################### # jar creation variables and rules ######################################################################################### -FIRRTL_JAR ?= $(ROCKETCHIP_DIR)/lib/firrtl.jar +FIRRTL_DIR = $(base_dir)/tools/firrtl +FIRRTL_JAR ?= $(base_dir)/lib/firrtl.jar -$(FIRRTL_JAR): $(call lookup_scala_srcs, $(ROCKETCHIP_DIR)/firrtl/src/main/scala) - $(MAKE) -C $(ROCKETCHIP_DIR)/firrtl SBT="$(SBT)" root_dir=$(ROCKETCHIP_DIR)/firrtl build-scala +$(FIRRTL_JAR): $(call lookup_scala_srcs, $(FIRRTL_DIR)/firrtl/src/main/scala) + $(MAKE) -C $(FIRRTL_DIR) SBT="$(SBT)" root_dir=$(FIRRTL_DIR) build-scala mkdir -p $(dir $@) - cp -p $(ROCKETCHIP_DIR)/firrtl/utils/bin/firrtl.jar $@ + cp -p $(FIRRTL_DIR)/utils/bin/firrtl.jar $@ touch $@ ######################################################################################### @@ -49,7 +50,7 @@ $(FIRRTL_FILE) $(ANNO_FILE): $(SCALA_SOURCES) $(sim_dotf) REPL_SEQ_MEM = --infer-rw --repl-seq-mem -c:$(MODEL):-o:$(SMEMS_CONF) $(VERILOG_FILE) $(SMEMS_CONF) $(TOP_ANNO) $(TOP_FIR) $(sim_top_blackboxes): $(FIRRTL_FILE) $(ANNO_FILE) - cd $(base_dir) && $(SBT) "project tapeout" "runMain barstools.tapeout.transforms.GenerateTop -o $(VERILOG_FILE) -i $(FIRRTL_FILE) --syn-top $(TOP) --harness-top $(MODEL) -faf $(ANNO_FILE) -tsaof $(TOP_ANNO) -tsf $(TOP_FIR) $(REPL_SEQ_MEM) -td $(build_dir)" + cd $(base_dir) && $(SBT) "project tapeout" "runMain barstools.tapeout.transforms.GenerateTop -ll info -o $(VERILOG_FILE) -i $(FIRRTL_FILE) --syn-top $(TOP) --harness-top $(MODEL) -faf $(ANNO_FILE) -tsaof $(TOP_ANNO) -tsf $(TOP_FIR) $(REPL_SEQ_MEM) -td $(build_dir)" cp $(build_dir)/firrtl_black_box_resource_files.f $(sim_top_blackboxes) $(HARNESS_FILE) $(HARNESS_ANNO) $(HARNESS_FIR) $(sim_harness_blackboxes): $(FIRRTL_FILE) $(ANNO_FILE) $(sim_top_blackboxes) diff --git a/project/plugins.sbt b/project/plugins.sbt index df29eab..9d35b37 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,3 +1,17 @@ -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5") -addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.9.2") +resolvers += Resolver.url("scalasbt", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases")) (Resolver.ivyStylePatterns) +resolvers += Classpaths.sbtPluginReleases +resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven" +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.9.2") +addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.2") +addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.3.1") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.7.0") +addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.9.3") +addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.1") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") +addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "1.0.0") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6") +addSbtPlugin("com.simplytyped" % "sbt-antlr4" % "0.8.1") +addSbtPlugin("com.github.gseitz" % "sbt-protobuf" % "0.6.3") + +libraryDependencies += "com.github.os72" % "protoc-jar" % "3.5.1.1"