szokesandor.hu |
Sdcc telepites |
|
Hogyan telepitsük fel az "sdcc"-t Debian Etch alattOldal tartalomjegyzéke (hide) Alapvetően két lehetőségünk van:
1. Telepítés debian repo-bólEz a legegyszerűbb megoldás. 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ólA telepítés során a felhasználó neve: pic, 2.1 Rendszer előkészítése telepítésreA 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.
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éseLé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éseLé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, Á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 |