Sdcc telepites

Pic

Linux

Receptek

Írások

Magyar English

linux pic sdcc debian

Hogyan telepitsük fel az "sdcc"-t Debian Etch alatt

Alapvetően két lehetőségünk van:

  1. debian repo használata
  2. forrásból való telepítés

1.  Telepítés debian repo-ból

Ez a legegyszerűbb megoldás.
Azonban van egy nagy hátránya: az újabb kontrollerek támogatása még hiányozhat

A telepítéshez, root-ként ki kell adnunk a következő parancsot:

apt-get install sdcc

A rendszer letölti és telepíti a szükséges programokat is (ilyen lehet a gputils csomag).

2.  Telepítés forráskódból

A telepítés során a felhasználó neve: pic,
a gép neve: mobix lesz!

2.1  Rendszer előkészítése telepítésre

A forráskódból való telepítést azért is választottam, mert könnyebb frissen tartani sima felhasználóként. De mielőtt belemerülnénk mit, hogyan csináljunk érdemes beállítani egy-két apróságot.

  1. helyi bin könyvtár létrehozása, és használatba vétele
  2. projekt alkönyvtár létrehozása (itt fogjuk elkövetni a pic-es dolgainkat)

Szóval adjuk ki a következő parancsot és ellenőrizzük a kimenetét:

pic@mobix:~$ set|grep PATH
PATH=/home/pic/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    if [ -z "${CDPATH:-}" ] || [[ "$cur" == ?(.)?(.)/* ]]; then
    for i in ${CDPATH//:/'      '};
    if [ "${INFOPATH: -1:1}" == ':' ]; then
        infopath=${INFOPATH}${infopath};
        if [ ${INFOPATH:+set} ]; then
            infopath=$INFOPATH;
    [ -z "$classpath" ] && classpath=$CLASSPATH;
        manpath=$MANPATH;
    PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin _command $1 $2 $3
pic@mobix:~$ 

Amennyiben nem találjuk meg a "/home/pic/bin" könyvtárat sehol (önnek a pic helyett a saját login nevét kell keresnie), akkor adja ki a következő parancsokat:

pic@mobix:~$ mkdir ~/bin
pic@mobix:~$ export PATH=$HOME/bin:$PATH
pic@mobix:~$ echo PATH=$HOME/bin:$PATH >> ~/.bashrc

Még egy fontos dolog, a munkakönyvtár létrehozása:

pic@mobix:~$ mkdir projects

Ezzel el is érkeztünk az érdekes részhez.

2.2  gputils telepítése

Lépjünk be a projekt könyvtárba:

pic@mobix:~$ cd projects

Töltsük le a gputils legfrissebb forráskódját:

pic@mobix:~/projects$ svn co https://gputils.svn.sourceforge.net/svnroot/gputils/trunk/gputils gputils_svn
A    gputils_svn/configure
A    gputils_svn/Makefile.in
A    gputils_svn/include
A    gputils_svn/include/ansidecl.h
A    gputils_svn/include/getopt.h
A    gputils_svn/include/libiberty.h
A    gputils_svn/include/stdhdr.h
A    gputils_svn/gplink
A    gputils_svn/gplink/parse.y
A    gputils_svn/gplink/Makefile.in
A    gputils_svn/gplink/lst.c
A    gputils_svn/gplink/script.c
A    gputils_svn/gplink/cod.c
.
.
.
A    gputils_svn/libgputils/gpsymbol.c
A    gputils_svn/libgputils/gpcod.c
A    gputils_svn/libgputils/gpcoffopt.h
Checked out revision 554.

Állítsuk be azt, az aktuális felhasználó használatára:

pic@mobix:~/projects$ cd gputils_svn/
pic@mobix:~/projects/gputils_svn$ ./configure --prefix=$HOME
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
.
.
.
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands


gputils-0.13.6 is now configured for

  Build:                i686-pc-linux-gnu
  Host:                 i686-pc-linux-gnu
  Source directory:     .
  Installation prefix:  /home/pic
  C compiler:           gcc -g -O2

Fordítsuk le, majd telepítsük egyeben (mivel magunknak telepítjük, nem kell semmit root-ként csinálni ):

pic@mobix:~/projects/gputils_svn$ make install
Making install in libgputils
make[1]: Entering directory `/home/pic/projects/gputils_svn/libgputils'
if gcc -DHAVE_CONFIG_H -I. -I. -I..  -I../include -DHEADER_PATH=\"/home/pic/share/gputils/header\" 
-DLKR_PATH=\"/home/pic/share/gputils/lkr\" -DLIB_PATH=\"/home/pic/share/gputils/lib\" -DPUB_PATH=\"@GPUTILS_PUB_PATH@\"  
-Wall -pedantic -g -O2 -MT gparchive.o -MD -MP -MF ".deps/gparchive.Tpo" -c -o gparchive.o gparchive.c; \
        then mv -f ".deps/gparchive.Tpo" ".deps/gparchive.Po"; else rm -f ".deps/gparchive.Tpo"; exit 1; fi
.
.
.
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/pic/projects/gputils_svn'
make[1]: Leaving directory `/home/pic/projects/gputils_svn'
pic@mobix:~/projects/gputils_svn$

Ezzel a gputils használatra kész.

2.3  sdcc telepítése

Lépjünk vissza a projekt könyvtárba:

pic@mobix:~/projects/gputils_svn$ cd ..

Töltsük le az sdcc legfrissebb forráskódját svn-ből:

pic@mobix:~/projects$ svn co https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc sdcc_svn
A    sdcc_svn/sdcc_vc_in.h
A    sdcc_svn/main_in.mk
A    sdcc_svn/configure
A    sdcc_svn/Makefile.in
A    sdcc_svn/debugger
A    sdcc_svn/debugger/mcs51
A    sdcc_svn/debugger/mcs51/symtab.c
A    sdcc_svn/debugger/mcs51/configure
A    sdcc_svn/debugger/mcs51/simi.c
A    sdcc_svn/debugger/mcs51/Makefile.in
A    sdcc_svn/debugger/mcs51/cmd.c
A    sdcc_svn/debugger/mcs51/symtab.h
A    sdcc_svn/debugger/mcs51/configure.in
A    sdcc_svn/debugger/mcs51/sdcdbsrc.el
.
.
.
A    sdcc_svn/support/Util/pstdint.h
A    sdcc_svn/support/Util/dbuf_string.h
A    sdcc_svn/install-sh
Checked out revision 5292.

Csak akkor használjuk az "--enable-doc" kapcsolót,
ha már korábban telepítettük a lyx és latex2html
programokat (nekem telepítve voltak).

Állítsuk be azt, az aktuális felhasználó használatára:

pic@mobix:~/projects$ cd sdcc_svn/
pic@mobix:~/projects/sdcc_svn$ ./configure --prefix=$HOME --disable-mcs51-port\
--disable-gbz80-port --disable-z80-port --disable-avr-port --disable-ds390-port\
--disable-ds400-port --disable-xa51-port --disable-hc08-port --disable-ucsim\
--disable-packihx --disable-sdcdb --enable-doc
checking for gawk... gawk
checking version of the package... 2.8.5
.
.
.
config.status: creating config.h
config.status: executing depfiles commands

sdcc 2.8.5 is now configured for

  Build:
  Host:
  Source directory:     .
  C compiler:           gcc
  CFLAGS:               -pipe -ggdb -g -O2

  ENABLED Ports:
    avr                 no
    ds390               no
    ds400               no
    gbz80               no
    hc08                no
    mcs51               no
    pic                 yes
    pic16               yes
    xa51                no
    z80                 no

  Disable packihx:      1
  Disable ucsim:        1
  Disable device lib:   0
  Disable sdcpp:        0
  Disable sdcdb:        1
  Enable documentation: 1
  Enable libgc:         0

  Install paths:
    binary files:       ${prefix}
    include files:      ${datarootdir}/sdcc/include
    library files:      ${datarootdir}/sdcc/lib
    documentation:      ${datarootdir}/doc/${PACKAGE}

    prefix:             /home/pic
    datadir:            ${datarootdir}
    datarootdir:        ${prefix}/share

  Search paths (incomplete, see manual for all search paths):
    binary files:       $SDCC_HOME/bin
    include files:      /share/sdcc/include
                        path(argv[0])/../share/sdcc/include
                        /home/pic/share/sdcc/include
    library files:      $SDCC_HOME/share/sdcc/lib/<model>
                        path(argv[0])/../share/sdcc/lib/<model>
                        /home/pic/share/sdcc/lib/<model>

pic@mobix:~/projects/sdcc_svn$ 

4. Az optimális eredmény eléréséhez módosíthatjuk a "/home/pic/projects/sdcc_svn/device/lib/pic/Makefile.common" fájl. A következő sort keressük meg és módosítsuk az általunk használt típusra (16fXXX):

ARCH   ?= 877

A pic16 port által támogatott pic-ek listáját a "/home/pic/projects/sdcc_svn/device/lib/pic/pics.all" fájlban találja meg. Fordítási hiba esetén kikommentelheti a hibás pic-et.

Fordítsuk le a program fő forráskódját:

pic@mobix:~/projects/sdcc_svn$ make
for lib in support/makebin support/cpp; do make -C $lib; done
make[1]: Entering directory `/home/pic/projects/sdcc_svn/support/makebin'
gcc -Wall -pipe -ggdb -g -O2  -I. -I../.. -I./../../support/Util -I.  -c -o makebin.o makebin.c
mkdir -p ../../bin
gcc  -o ../../bin/makebin makebin.o
make[1]: Leaving directory `/home/pic/projects/sdcc_svn/support/makebin'
make[1]: Entering directory `/home/pic/projects/sdcc_svn/support/cpp'
gawk -f ./opt-gather.awk ./sdcpp.opt  > tmp-optionlist
/bin/sh ./move-if-change tmp-optionlist optionlist
echo timestamp > s-options
gawk -f ./opt-functions.awk -f ./opth-gen.awk \
               < optionlist > tmp-options.h
/bin/sh ./move-if-change tmp-options.h options.h
echo timestamp > s-options-h
gcc -c    -g -O2 -Wall   -DHAVE_CONFIG_H    -I. -I./libcpp -I./libcpp/include -I./libiberty -I. sdcpp.c -o sdcpp.o
.
.
.
make[1]: Entering directory `/home/pic/projects/sdcc_svn/support/librarian'
gcc -Wall -pipe -ggdb -g -O2 -Wall  -I. -I../.. -I./../../support/Util -I. -c sdcclib.c -o sdcclib.o
gcc  -o ../../bin/sdcclib sdcclib.o
make[1]: Leaving directory `/home/pic/projects/sdcc_svn/support/librarian'

Ez a számítógépétől függően néhány percet igénybe vehet.

Állítsuk be és fordítsuk le a pic és pic16 könyvtárakat

pic@mobix:~/projects/sdcc_svn$ cd device/lib/pic
pic@mobix:~/projects/sdcc_svn/device/lib/pic$ ./configure
checking for gpasm... gpasm
checking for gplink... gplink
checking for gplib... gplib
checking for rm... rm -f
checking for cp... cp
checking for mv... mv
checking for ls... ls
checking for sed... sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for mkdir... mkdir -p
checking for rmdir... rmdir
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makefile.common
config.status: creating libdev/Makefile
config.status: creating libsdcc/Makefile
config.status: creating libm/Makefile
pic@mobix:~/projects/sdcc_svn/device/lib/pic$ make all
.
.
.

Ez a számítógépétől függően néhány percet igénybe vehet.

pic@mobix:~/projects/sdcc_svn/device/lib/pic$ cd ../pic16/
pic@mobix:~/projects/sdcc_svn/device/lib/pic16$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gpasm... /home/pic/bin/gpasm
checking for gplink... /home/pic/bin/gplink
checking for gplib... /home/pic/bin/gplib
checking for style of include used by make... GNU
checking dependency style of '/home/pic/projects/sdcc_svn/device/lib/pic16//../../../bin/sdcc'... none
checking dependency style of '/home/pic/bin/gpasm'... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating debug/Makefile
config.status: creating libc/Makefile
config.status: creating libdev/Makefile
config.status: creating libio/Makefile
config.status: creating libm/Makefile
config.status: creating libsdcc/Makefile
config.status: creating startup/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
pic@mobix:~/projects/sdcc_svn/device/lib/pic16$ make
.
.
.

Ez a számítógépétől függően néhány percet igénybe vehet.

9. Telepítsük fel a fordító programot (nem kell root-ként dolgoznunk!):

pic@mobix:~/projects/sdcc_svn/device/lib/pic16$ cd /home/pic/projects/sdcc_svn/
pic@mobix:~/projects/sdcc_svn$ make install
make -f main.mk install
make[1]: Entering directory `/home/pic/projects/sdcc_svn'
make[1]: Leaving directory `/home/pic/projects/sdcc_svn'
make[1]: Entering directory `/home/pic/projects/sdcc_svn/device/lib'
if [ "`grep pic ../../ports.build | grep -v pic16`" = pic ]; then \
          make PORT=pic objects-pic14; \
        fi
make[2]: Entering directory `/home/pic/projects/sdcc_svn/device/lib'
.
.
.
make[1]: Leaving directory `/home/pic/projects/sdcc_svn/device/include'
make[1]: Entering directory `/home/pic/projects/sdcc_svn/support/librarian'
/usr/bin/install -c -d /home/pic/bin
/usr/bin/install -c ../../bin/sdcclib `echo /home/pic/bin/sdcclib|sed 's,x,x,'`
strip `echo /home/pic/bin/sdcclib|sed 's,x,x,'`
make[1]: Leaving directory `/home/pic/projects/sdcc_svn/support/librarian'
pic@mobix:~/projects/sdcc_svn$   

Ezzel sikeresen telepítettük az sdcc-t! Most már elkezdhetjük vele a munkát.

Jó programozást kívánok.

Utolsó módosítás: 2008.12.19. 17:19:29

Copyright Alex 2007-2015