Hex Artifact Content

Artifact 8ae54b257135e791a9200048126897a07bd63446:

Wiki page [Build instructions] by schelte 2018-02-03 12:46:21.
0000: 44 20 32 30 31 38 2d 30 32 2d 30 33 54 31 32 3a  D 2018-02-03T12:
0010: 34 36 3a 32 31 2e 36 38 38 0a 4c 20 42 75 69 6c  46:21.688.L Buil
0020: 64 5c 73 69 6e 73 74 72 75 63 74 69 6f 6e 73 0a  d\sinstructions.
0030: 4e 20 74 65 78 74 2f 78 2d 6d 61 72 6b 64 6f 77  N text/x-markdow
0040: 6e 0a 50 20 62 34 66 61 36 35 32 64 33 64 66 39  n.P b4fa652d3df9
0050: 62 64 34 63 31 65 61 30 63 38 32 37 30 30 34 64  bd4c1ea0c827004d
0060: 35 65 63 37 38 61 66 65 36 61 66 39 0a 55 20 73  5ec78afe6af9.U s
0070: 63 68 65 6c 74 65 0a 57 20 31 37 35 35 0a 23 20  chelte.W 1755.# 
0080: 42 75 69 6c 64 20 69 6e 73 74 72 75 63 74 69 6f  Build instructio
0090: 6e 73 20 23 0d 0a 0d 0a 23 23 20 52 65 67 75 6c  ns #....## Regul
00a0: 61 72 20 62 75 69 6c 64 20 23 23 0d 0a 54 6f 20  ar build ##..To 
00b0: 62 65 20 61 62 6c 65 20 74 6f 20 62 75 69 6c 64  be able to build
00c0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 6f 6e 20   the library on 
00d0: 61 20 52 61 73 70 62 65 72 72 79 20 50 69 20 69  a Raspberry Pi i
00e0: 74 73 65 6c 66 2c 20 79 6f 75 20 6e 65 65 64 20  tself, you need 
00f0: 74 6f 20 64 6f 20 74 68 65 20 66 6f 6c 6c 6f 77  to do the follow
0100: 69 6e 67 3a 0d 0a 0d 0a 2d 20 49 6e 73 74 61 6c  ing:....- Instal
0110: 6c 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 74  l the packages t
0120: 63 6c 38 2e 35 2d 64 65 76 2c 20 6c 69 62 69 32  cl8.5-dev, libi2
0130: 63 2d 64 65 76 2c 20 61 6e 64 20 61 75 74 6f 63  c-dev, and autoc
0140: 6f 6e 66 2c 20 69 66 20 6e 65 63 65 73 73 61 72  onf, if necessar
0150: 79 3a 20 60 73 75 64 6f 20 61 70 74 2d 67 65 74  y: `sudo apt-get
0160: 20 69 6e 73 74 61 6c 6c 20 74 63 6c 38 2e 35 2d   install tcl8.5-
0170: 64 65 76 20 6c 69 62 69 32 63 2d 64 65 76 20 61  dev libi2c-dev a
0180: 75 74 6f 63 6f 6e 66 60 0d 0a 2d 20 44 6f 77 6e  utoconf`..- Down
0190: 6c 6f 61 64 20 74 68 65 20 5b 70 69 69 6f 20 73  load the [piio s
01a0: 6f 75 72 63 65 73 5d 28 68 74 74 70 3a 2f 2f 63  ources](http://c
01b0: 68 69 73 65 6c 61 70 70 2e 63 6f 6d 2f 75 73 65  hiselapp.com/use
01c0: 72 2f 73 63 68 65 6c 74 65 2f 72 65 70 6f 73 69  r/schelte/reposi
01d0: 74 6f 72 79 2f 70 69 69 6f 2f 74 61 72 62 61 6c  tory/piio/tarbal
01e0: 6c 2f 70 69 69 6f 2e 74 61 72 2e 67 7a 29 2e 0d  l/piio.tar.gz)..
01f0: 0a 2d 20 55 6e 70 61 63 6b 20 74 68 65 20 74 61  .- Unpack the ta
0200: 72 62 61 6c 6c 3a 20 60 74 61 72 20 78 76 66 20  rball: `tar xvf 
0210: 70 69 69 6f 2e 74 61 72 2e 67 7a 60 0d 0a 2d 20  piio.tar.gz`..- 
0220: 47 6f 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65  Go to the source
0230: 20 64 69 72 65 63 74 6f 72 79 3a 20 60 63 64 20   directory: `cd 
0240: 70 69 69 6f 60 0d 0a 2d 20 47 65 74 20 74 68 65  piio`..- Get the
0250: 20 73 74 61 6e 64 61 72 64 20 74 63 6c 63 6f 6e   standard tclcon
0260: 66 69 67 20 66 69 6c 65 73 3a 20 60 77 67 65 74  fig files: `wget
0270: 20 2d 71 4f 2d 20 68 74 74 70 3a 2f 2f 63 6f 72   -qO- http://cor
0280: 65 2e 74 63 6c 2e 74 6b 2f 74 63 6c 63 6f 6e 66  e.tcl.tk/tclconf
0290: 69 67 2f 74 61 72 62 61 6c 6c 2f 74 63 6c 63 6f  ig/tarball/tclco
02a0: 6e 66 69 67 2e 74 61 72 2e 67 7a 20 7c 20 74 61  nfig.tar.gz | ta
02b0: 72 20 78 7a 76 60 0d 0a 2d 20 43 72 65 61 74 65  r xzv`..- Create
02c0: 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20 73   the configure s
02d0: 63 72 69 70 74 20 66 72 6f 6d 20 63 6f 6e 66 69  cript from confi
02e0: 67 75 72 65 2e 69 6e 3a 20 60 61 75 74 6f 63 6f  gure.in: `autoco
02f0: 6e 66 60 0d 0a 2d 20 49 20 70 72 65 66 65 72 20  nf`..- I prefer 
0300: 74 6f 20 62 75 69 6c 64 20 69 6e 20 61 20 73 65  to build in a se
0310: 70 61 72 61 74 65 20 64 69 72 65 63 74 6f 72 79  parate directory
0320: 3a 20 60 6d 6b 64 69 72 20 62 75 69 6c 64 3b 63  : `mkdir build;c
0330: 64 20 62 75 69 6c 64 60 0d 0a 2d 20 52 75 6e 20  d build`..- Run 
0340: 63 6f 6e 66 69 67 75 72 65 3a 20 60 2e 2e 2f 63  configure: `../c
0350: 6f 6e 66 69 67 75 72 65 20 2d 2d 77 69 74 68 2d  onfigure --with-
0360: 74 63 6c 3d 2f 75 73 72 2f 6c 69 62 2f 74 63 6c  tcl=/usr/lib/tcl
0370: 38 2e 35 60 0d 0a 2d 20 42 75 69 6c 64 20 74 68  8.5`..- Build th
0380: 65 20 6c 69 62 72 61 72 79 3a 20 60 6d 61 6b 65  e library: `make
0390: 60 0d 0a 2d 20 4f 70 74 69 6f 6e 61 6c 6c 79 20  `..- Optionally 
03a0: 69 6e 73 74 61 6c 6c 20 69 74 3a 20 60 73 75 64  install it: `sud
03b0: 6f 20 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 60 0d  o make install`.
03c0: 0a 0d 0a 23 23 20 43 72 6f 73 73 20 63 6f 6d 70  ...## Cross comp
03d0: 69 6c 69 6e 67 20 23 23 0d 0a 43 6f 6d 70 69 6c  iling ##..Compil
03e0: 69 6e 67 20 6f 6e 20 74 68 65 20 52 61 73 70 62  ing on the Raspb
03f0: 65 72 72 79 20 50 69 20 69 74 73 65 6c 66 20 69  erry Pi itself i
0400: 73 20 73 6c 6f 77 2e 20 53 69 6e 63 65 20 74 68  s slow. Since th
0410: 65 20 63 6f 64 65 20 6f 66 20 74 68 65 20 70 69  e code of the pi
0420: 69 6f 20 6c 69 62 72 61 72 79 20 69 73 6e 27 74  io library isn't
0430: 20 76 65 72 79 20 62 69 67 2c 20 69 74 27 73 20   very big, it's 
0440: 6e 6f 74 20 61 20 62 69 67 20 70 72 6f 62 6c 65  not a big proble
0450: 6d 2e 20 42 75 74 20 6f 66 20 63 6f 75 72 73 65  m. But of course
0460: 2c 20 69 74 27 73 20 61 6c 73 6f 20 70 6f 73 73  , it's also poss
0470: 69 62 6c 65 20 74 6f 20 63 72 6f 73 73 20 63 6f  ible to cross co
0480: 6d 70 69 6c 65 20 74 68 65 20 6c 69 62 72 61 72  mpile the librar
0490: 79 20 6f 6e 20 61 20 6d 6f 72 65 20 70 6f 77 65  y on a more powe
04a0: 72 66 75 6c 20 6c 69 6e 75 78 20 73 79 73 74 65  rful linux syste
04b0: 6d 2e 20 54 6f 20 64 6f 20 74 68 61 74 2c 20 79  m. To do that, y
04c0: 6f 75 20 6e 65 65 64 20 61 20 63 72 6f 73 73 20  ou need a cross 
04d0: 63 6f 6d 70 69 6c 65 20 65 6e 76 69 72 6f 6e 6d  compile environm
04e0: 65 6e 74 2e 20 4f 6e 65 20 77 61 79 20 74 6f 20  ent. One way to 
04f0: 63 72 65 61 74 65 20 74 68 61 74 20 69 73 20 75  create that is u
0500: 73 69 6e 67 20 5b 74 68 65 20 62 75 69 6c 64 2d  sing [the build-
0510: 63 63 20 73 63 72 69 70 74 5d 28 68 74 74 70 3a  cc script](http:
0520: 2f 2f 62 75 69 6c 64 2d 63 63 2e 72 6b 65 65 6e  //build-cc.rkeen
0530: 65 2e 6f 72 67 2f 29 2e 20 4d 61 6b 65 20 73 75  e.org/). Make su
0540: 72 65 20 79 6f 75 20 68 61 76 65 20 69 6e 73 74  re you have inst
0550: 61 6c 6c 65 64 20 61 6c 6c 20 6e 65 63 65 73 73  alled all necess
0560: 61 72 79 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20  ary development 
0570: 70 61 63 6b 61 67 65 73 20 62 65 66 6f 72 65 20  packages before 
0580: 72 75 6e 6e 69 6e 67 20 74 68 65 20 73 63 72 69  running the scri
0590: 70 74 2e 0d 0a 0d 0a 59 6f 75 27 6c 6c 20 61 6c  pt.....You'll al
05a0: 73 6f 20 6e 65 65 64 20 61 20 73 74 75 62 73 20  so need a stubs 
05b0: 6c 69 62 72 61 72 79 20 63 6f 6d 70 69 6c 65 64  library compiled
05c0: 20 66 6f 72 20 61 20 52 61 73 70 62 65 72 72 79   for a Raspberry
05d0: 20 50 69 2e 20 59 6f 75 20 63 61 6e 20 67 65 6e   Pi. You can gen
05e0: 65 72 61 74 65 20 74 68 61 74 20 62 79 20 63 72  erate that by cr
05f0: 6f 73 73 20 63 6f 6d 70 69 6c 69 6e 67 20 54 63  oss compiling Tc
0600: 6c 20 66 69 72 73 74 2e 0d 0a 0d 0a 4e 65 78 74  l first.....Next
0610: 2c 20 72 75 6e 20 74 68 65 20 66 6f 6c 6c 6f 77  , run the follow
0620: 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 0d 0a 0d  ing commands:...
0630: 0a 20 20 20 20 77 67 65 74 20 2d 71 4f 2d 20 68  .    wget -qO- h
0640: 74 74 70 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2e 74  ttp://core.tcl.t
0650: 6b 2f 74 63 6c 63 6f 6e 66 69 67 2f 74 61 72 62  k/tclconfig/tarb
0660: 61 6c 6c 2f 74 63 6c 63 6f 6e 66 69 67 2e 74 61  all/tclconfig.ta
0670: 72 2e 67 7a 20 7c 20 74 61 72 20 78 7a 76 0d 0a  r.gz | tar xzv..
0680: 20 20 20 20 61 75 74 6f 63 6f 6e 66 0d 0a 20 20      autoconf..  
0690: 20 20 6d 6b 64 69 72 20 62 75 69 6c 64 0d 0a 20    mkdir build.. 
06a0: 20 20 20 63 64 20 62 75 69 6c 64 0d 0a 20 20 20     cd build..   
06b0: 20 65 76 61 6c 20 24 28 7e 2f 72 6f 6f 74 2f 63   eval $(~/root/c
06c0: 72 6f 73 73 2d 63 6f 6d 70 69 6c 65 72 73 2f 73  ross-compilers/s
06d0: 65 74 75 70 2d 63 63 20 61 72 6d 76 36 2d 68 61  etup-cc armv6-ha
06e0: 72 64 66 6c 6f 61 74 2d 6c 69 6e 75 78 2d 67 6e  rdfloat-linux-gn
06f0: 75 65 61 62 69 29 0d 0a 20 20 20 20 2e 2e 2f 63  ueabi)..    ../c
0700: 6f 6e 66 69 67 75 72 65 20 2d 68 6f 73 74 3d 61  onfigure -host=a
0710: 72 6d 76 36 2d 68 61 72 64 66 6c 6f 61 74 2d 6c  rmv6-hardfloat-l
0720: 69 6e 75 78 2d 67 6e 75 65 61 62 69 20 2d 2d 77  inux-gnueabi --w
0730: 69 74 68 2d 74 63 6c 3d 7e 2f 72 70 69 2f 74 63  ith-tcl=~/rpi/tc
0740: 6c 38 2e 35 2e 31 35 2f 62 75 69 6c 64 0d 0a 20  l8.5.15/build.. 
0750: 20 20 20 6d 61 6b 65 0d 0a 0a 5a 20 30 35 38 63     make...Z 058c
0760: 37 37 36 65 34 62 37 63 66 37 65 35 38 38 30 66  776e4b7cf7e5880f
0770: 32 65 66 64 34 39 38 39 36 65 38 30 0a           2efd49896e80.