build.ck 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*++
  2. Copyright (c) 2013 Minoca Corp. All Rights Reserved
  3. Module Name:
  4. msetup
  5. Abstract:
  6. This executable implements the setup (OS installer) executable.
  7. Author:
  8. Evan Green 10-Apr-2014
  9. Environment:
  10. User
  11. --*/
  12. function build() {
  13. common_sources = [
  14. "cache.c",
  15. "disk.c",
  16. "fatdev.c",
  17. "fileio.c",
  18. "indat.c",
  19. "partio.c",
  20. "plat.c",
  21. "setup.c",
  22. "steps.c",
  23. "util.c"
  24. ];
  25. minoca_sources = [
  26. "minoca/io.c",
  27. "minoca/misc.c",
  28. "minoca/part.c"
  29. ];
  30. uos_sources = [
  31. "uos/io.c",
  32. "uos/misc.c",
  33. "uos/part.c"
  34. ];
  35. win32_sources = [
  36. "win32/io.c",
  37. "win32/misc.c",
  38. "win32/msetuprc.rc",
  39. "win32/part.c",
  40. "win32/win32sup.c"
  41. ];
  42. target_libs = [
  43. "//lib/partlib:partlib",
  44. "//lib/fatlib:fat",
  45. "//lib/bconflib:bconf",
  46. "//lib/rtl/base:basertl",
  47. "//apps/osbase/urtl:urtl",
  48. "//apps/lib/chalk:chalk",
  49. "//lib/yy:yy",
  50. "//apps/setup/config:msetplat"
  51. ];
  52. build_libs = [
  53. "//lib/partlib:build_partlib",
  54. "//lib/fatlib:build_fat",
  55. "//lib/bconflib:build_bconf",
  56. "//lib/rtl/base:build_basertl",
  57. "//lib/rtl/rtlc:build_rtlc",
  58. "//apps/lib/chalk:build_chalk",
  59. "//lib/yy:build_yy",
  60. "//apps/setup/config:build_msetplat"
  61. ];
  62. target_dynlibs = [
  63. "//apps/osbase:libminocaos"
  64. ];
  65. build_includes = [
  66. "$//apps/lib/chalk"
  67. ];
  68. target_includes = build_includes + [
  69. "$//apps/libc/include",
  70. ];
  71. target_sources = common_sources + minoca_sources + target_libs +
  72. target_dynlibs;
  73. build_config = {};
  74. if (build_os == "Windows") {
  75. build_sources = common_sources + win32_sources;
  76. build_config["DYNLIBS"] = ["-lsetupapi"];
  77. } else if (build_os == "Minoca") {
  78. build_sources = common_sources + minoca_sources + target_dynlibs;
  79. build_includes = target_includes;
  80. } else {
  81. build_sources = common_sources + uos_sources;
  82. }
  83. app = {
  84. "label": "msetup",
  85. "inputs": target_sources,
  86. "includes": target_includes
  87. };
  88. build_app = {
  89. "label": "build_msetup",
  90. "output": "msetup",
  91. "inputs": build_sources + build_libs,
  92. "includes": build_includes,
  93. "config": build_config,
  94. "build": TRUE,
  95. "prefix": "build"
  96. };
  97. entries = application(app);
  98. entries += application(build_app);
  99. setup_tool = {
  100. "type": "tool",
  101. "name": "msetup_image",
  102. "command": "$^/apps/setup/build/msetup $MSETUP_FLAGS -d $OUT",
  103. "description": "Building Image - $OUT",
  104. "pool": "image"
  105. };
  106. image_pool = {
  107. "type": "pool",
  108. "name": "image",
  109. "depth": 1
  110. };
  111. entries += [setup_tool, image_pool];
  112. return entries;
  113. }
  114. return build();