BUILD.conf 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. #!/bin/bash
  2. #### INSTAL PARAMS ####
  3. ARCH=amd64
  4. ### DIRS ###
  5. BASEDIR=${_BUILD_DIR}
  6. INC_DIR=${BASEDIR}/sys/include
  7. INC_ARCH=${BASEDIR}/${ARCH}/include
  8. LIB_DIR=${BASEDIR}/${ARCH}/lib
  9. SRC_DIR=${BASEDIR}/sys/src
  10. UTIL_DIR=${_BUILD_DIR}/util
  11. CMD_DIR=${SRC_DIR}/cmd
  12. KRL_DIR=${SRC_DIR}/9/k10
  13. TEST_DIR=${SRC_DIR}/test
  14. ### TOOLCHAIN ###
  15. AR=ar
  16. RANLIB=ranlib
  17. LD=ld
  18. LEX=lex
  19. PARSER_GEN=yacc
  20. COLLECT=/usr/lib/gcc/x86_64-linux-gnu/4.9/collect2
  21. COLLECTFLAGS="-plugin /usr/lib/gcc/x86_64-linux-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper --sysroot=/ --build-id -m elf_x86_64 --hash-style=gnu"
  22. AWK=awk
  23. XD=xxd
  24. NM=nm
  25. ### KERNEL ###
  26. DATE=$(date +%s)
  27. EXTKERNDATE="-DKERNDATE=${DATE}"
  28. KERNEL_CONF="k8cpu"
  29. ### CMD Provisional!!! ###
  30. #BUILD_CMD="rc bind mount cat cp echo ls ipconfig ps mkdir pwd chmod rio date dd vga ping telnet dhcpclient srv testalarm"
  31. # Now essentials are included in build.go
  32. BUILD_CMD=""
  33. ### functions ###
  34. test_hello()
  35. {
  36. BUILD_IN="hello.c"
  37. BUILD_OUT="hello"
  38. CLEAN_COM="rm -f *.elf.* *.o"
  39. LIBS_TO_LINK="stdio c"
  40. LDFLAGS_EXTRA="-static -e_main"
  41. }
  42. test_to_fork()
  43. {
  44. BUILD_IN="to_fork.c"
  45. BUILD_OUT="to_fork"
  46. CLEAN_COM="rm -f *.elf.* *.o"
  47. LIBS_TO_LINK="stdio c"
  48. LDFLAGS_EXTRA="-static -e_main"
  49. }
  50. test_saymyname()
  51. {
  52. BUILD_IN="say.c"
  53. BUILD_OUT="say"
  54. CLEAN_COM="rm -f *.elf.* *.o"
  55. LIBS_TO_LINK="stdio c"
  56. LDFLAGS_EXTRA="-static -e_main"
  57. }
  58. cmd_dd()
  59. {
  60. BUILD_IN="dd.c"
  61. BUILD_OUT="dd.elf.out"
  62. CLEAN_COM="rm -f *.elf.* *.o"
  63. LIBS_TO_LINK="libc"
  64. LDFLAGS_EXTRA="-static -e_main"
  65. }
  66. cmd_date()
  67. {
  68. BUILD_IN="date.c"
  69. BUILD_OUT="date.elf.out"
  70. CLEAN_COM="rm -f *.elf.* *.o"
  71. LIBS_TO_LINK="libc"
  72. LDFLAGS_EXTRA="-static -e_main"
  73. }
  74. cmd_chmod()
  75. {
  76. BUILD_IN="chmod.c"
  77. BUILD_OUT="chmod.elf.out"
  78. CLEAN_COM="rm -f *.elf.* *.o"
  79. LIBS_TO_LINK="libc"
  80. LDFLAGS_EXTRA="-static -e_main"
  81. }
  82. cmd_pwd()
  83. {
  84. BUILD_IN="pwd.c"
  85. BUILD_OUT="pwd.elf.out"
  86. CLEAN_COM="rm -f *.elf.* *.o"
  87. LIBS_TO_LINK="libc"
  88. LDFLAGS_EXTRA="-static -e_main"
  89. }
  90. cmd_mkdir()
  91. {
  92. BUILD_IN="mkdir.c"
  93. BUILD_OUT="mkdir.elf.out"
  94. CLEAN_COM="rm -f *.elf.* *.o"
  95. LIBS_TO_LINK="libc"
  96. LDFLAGS_EXTRA="-static -e_main"
  97. }
  98. cmd_rio()
  99. {
  100. BUILD_IN="data.c fsys.c rio.c scrl.c time.c util.c wctl.c wind.c xfid.c"
  101. BUILD_OUT="rio.elf.out"
  102. CLEAN_COM="rm -f *.elf.* *.o"
  103. LIBS_TO_LINK="libcomplete libframe libdraw libthread libplumb libc"
  104. LDFLAGS_EXTRA="-static -e_main"
  105. }
  106. cmd_vga()
  107. {
  108. BUILD_DIR=${CMD_DIR}/aux/vga
  109. BUILD_IN="3dfx.c bt485.c ct65540.c error.c i81x.c ics534x.c mach64xx.c neomagic.c radeon.c s3928.c sc15025.c trio64.c tvp3026.c vga.c vision968.c \
  110. ark2000pv.c ch9294.c cyber938x.c et4000.c ibm8514.c io.c main.c nvidia.c rgb524.c s3clock.c stg1702.c tvp3020.c tvp3026clock.c virge.c vmware.c \
  111. att20c49x.c clgd542x.c data.c et4000hwgc.c icd2061a.c mach32.c mga2164w.c palette.c rgb524mn.c s3generic.c t2r4.c tvp3025.c vesa.c vision864.c w30c516.c \
  112. att21c498.c clgd546x.c db.c hiqvideo.c ics2494.c mach64.c mga4xx.c pci.c s3801.c s3hwgc.c template.c tvp3025clock.c vesadb.c vision964.c"
  113. BUILD_OUT="vga.elf.out"
  114. CLEAN_COM="rm -f *.elf.* *.o"
  115. LIBS_TO_LINK="ndb bio libc"
  116. LDFLAGS_EXTRA="-static -e_main"
  117. }
  118. cmd_srv()
  119. {
  120. BUILD_IN="srv.c"
  121. BUILD_OUT="srv.elf.out"
  122. CLEAN_COM="rm -f *.elf.* *.o"
  123. LIBS_TO_LINK="libauth bio ip libc"
  124. LDFLAGS_EXTRA="-static -e_main"
  125. }
  126. cmd_dhcpclient()
  127. {
  128. BUILD_DIR=${CMD_DIR}/ip
  129. BUILD_IN="dhcpclient.c"
  130. BUILD_OUT="dhcpclient.elf.out"
  131. CLEAN_COM="rm -f *.elf.* *.o"
  132. LIBS_TO_LINK="bio ip libc"
  133. LDFLAGS_EXTRA="-static -e_main"
  134. }
  135. cmd_telnet()
  136. {
  137. BUILD_DIR=${CMD_DIR}/ip
  138. BUILD_IN="telnet.c"
  139. BUILD_OUT="telnet.elf.out"
  140. CLEAN_COM="rm -f *.elf.* *.o"
  141. LIBS_TO_LINK="bio ip libc"
  142. LDFLAGS_EXTRA="-static -e_main"
  143. }
  144. cmd_ping()
  145. {
  146. BUILD_DIR=${CMD_DIR}/ip
  147. BUILD_IN="ping.c"
  148. BUILD_OUT="ping.elf.out"
  149. CLEAN_COM="rm -f *.elf.* *.o"
  150. LIBS_TO_LINK="ndb bio ip libc"
  151. LDFLAGS_EXTRA="-static -e_main"
  152. }
  153. cmd_ipconfig()
  154. {
  155. BUILD_DIR=${CMD_DIR}/ip/ipconfig
  156. BUILD_IN="ipv6.c main.c ppp.c"
  157. BUILD_OUT="ipconfig.elf.out"
  158. CLEAN_COM="rm -f *.elf.* *.o"
  159. LIBS_TO_LINK="9p ndb bio ip libc"
  160. LDFLAGS_EXTRA="-static -e_main"
  161. }
  162. cmd_ps()
  163. {
  164. BUILD_IN="ps.c"
  165. BUILD_OUT="ps.elf.out"
  166. CLEAN_COM="rm -f *.elf.* *.o"
  167. LIBS_TO_LINK="bio libc"
  168. LDFLAGS_EXTRA="-static -e_main"
  169. }
  170. cmd_ls()
  171. {
  172. BUILD_IN="ls.c"
  173. BUILD_OUT="ls.elf.out"
  174. CLEAN_COM="rm -f *.elf.* *.o"
  175. LIBS_TO_LINK="bio libc"
  176. LDFLAGS_EXTRA="-static -e_main"
  177. }
  178. cmd_cp()
  179. {
  180. BUILD_IN="cp.c"
  181. BUILD_OUT="cp.elf.out"
  182. CLEAN_COM="rm -f *.elf.* *.o"
  183. LIBS_TO_LINK="libc"
  184. LDFLAGS_EXTRA="-static -e_main"
  185. }
  186. cmd_echo()
  187. {
  188. BUILD_IN="echo.c"
  189. BUILD_OUT="echo.elf.out"
  190. CLEAN_COM="rm -f *.elf.* *.o"
  191. LIBS_TO_LINK="libc"
  192. LDFLAGS_EXTRA="-static -e_main"
  193. }
  194. cmd_testalarm()
  195. {
  196. BUILD_IN="testalarm.c"
  197. BUILD_OUT="testalarm.elf.out"
  198. CLEAN_COM="rm -f *.elf.* *.o"
  199. LIBS_TO_LINK="libc"
  200. LDFLAGS_EXTRA="-static -e_main"
  201. }
  202. cmd_cat()
  203. {
  204. BUILD_IN="cat.c"
  205. BUILD_OUT="cat.elf.out"
  206. CLEAN_COM="rm -f *.elf.* *.o"
  207. LIBS_TO_LINK="libc"
  208. LDFLAGS_EXTRA="-static -e_main"
  209. }
  210. cmd_rc()
  211. {
  212. BUILD_IN=" code.c \
  213. exec.c \
  214. getflags.c \
  215. glob.c \
  216. havefork.c \
  217. here.c \
  218. io.c \
  219. lex.c \
  220. pcmd.c \
  221. pfnc.c \
  222. plan9.c \
  223. simple.c \
  224. subr.c \
  225. trap.c \
  226. tree.c \
  227. var.c \
  228. y.tab.c \
  229. "
  230. BUILD_OUT="rc.elf.out"
  231. CLEAN_COM="rm -f *.o *.tab.* *.elf.*"
  232. LIBS_TO_LINK="String libc"
  233. LDFLAGS_EXTRA="-static -e_main"
  234. #Extra tasks if we're compiling
  235. if [ $1 -eq 1 ]
  236. then
  237. echo "$PARSER_GEN -d syn.y"
  238. $PARSER_GEN -d syn.y
  239. if [ $? -ne 0 ]
  240. then
  241. echo "ERROR executing $PARSER_GEN"
  242. exit 1
  243. fi
  244. echo "cp y.tab.h x.tab.h"
  245. cp y.tab.h x.tab.h
  246. if [ $? -ne 0 ]
  247. then
  248. echo "ERROR copying y.tab.h to x.tab.h"
  249. fi
  250. fi
  251. }
  252. # One for command? ugh, do it better!!
  253. cmd_bind()
  254. {
  255. BUILD_IN="bind.c"
  256. BUILD_OUT="bind.elf.out"
  257. CLEAN_COM="rm -f *.elf.* *.o"
  258. LIBS_TO_LINK="libc"
  259. LDFLAGS_EXTRA="-static -e_main"
  260. }
  261. cmd_mount()
  262. {
  263. BUILD_IN="mount.c"
  264. BUILD_OUT="mount.elf.out"
  265. CLEAN_COM="rm -f *.elf.* *.o"
  266. LIBS_TO_LINK="auth libc"
  267. LDFLAGS_EXTRA="-static -e_main"
  268. }