Mehrere Versionen der Toolchain vorhalten ?

Gast #913123
Lesenswert?

Hi,

welches ist der beste ( vernünftigste ) Weg, wie man unter XP mehrere 
Versionen der (Win-) Avr Toolchain "vorhalten" kann ?

Vieleicht VM's ( XP - Linux ) ?

Ich möchte ungern die "alte" von 2006 "platt" machen um die älteren 
Projekte ohne Anpassung des Source-Codes weiter kompilieren zu können.

Viele Grüße,

Stefan
Persönliche Seite #913154
Lesenswert?

Wo ist denn das Problem?

Anstatt im Aufruf avr-gcc zu schreiben, gibt man eben den absoluten Pfad 
zum avr-gcc an. Bei make: Viele Makefiles verwenden/setzen die Variable 
CC für den C-Compiler, welche man überschreiben kann. Einfach mal nen 
Blick ins Makefile wagen, und make starten mit

make CC=pfad-zum-gcc/avr-gcc

Bei der Installation von WinAVR wird eh net mehr gemacht, als das 
Installationsverzeichnis zum Path hinzuzufügen, d.h. in Path kommt

<INSTALL-DIR>/bin und <INSTALL-DIR>/utils/bin

hinzu, und was vorne steht, wird eben zuerst gefunden.

Ich hab's im (selbst geschriebenen) Makefile so gelöst:
1
CPATH=
2

3
ifeq ($(GCC_VERSION),430)
4
    CPATH       = e:/WinAVR-20080512/bin/
5
endif    
6
ifeq ($(GCC_VERSION),422)
7
    CPATH       = e:/WinAVR-20071221/bin/
8
endif 
9

10
CC             = $(CPATH)avr-gcc -mmcu=$(MCU_TARGET)
11
LD             = $(CC)

Wenn GCC_VERSION undefiniert ist, wird die Standard-Installation 
genommen, und wenn GCC_VERSION=430 ist eben der gcc 4.3.0. So kann man 
dann auch die CFLAGS anpassen.
Gast #913233
Lesenswert?

Arghh - ich bin ja so Betriebsblind.

Das Umbennen des WINAVR-Verzeichnises habe ich garnicht ins Auge gefasst 
- weil ich garnicht damit gerechnet hab das das hinreichend sein könnte. 
( ... bin ein wenig verdorben durch die ganze Windows-Software die bei 
installationen gigabytes an zueinander inkompatiblen DLL's in einem 
System verteilen )

Ich probiere es mal auf dem Wege des Umbenennens...

Grüße,

Stefan
Gast #913557
Lesenswert?

Unter XP und mit NTFS File-System geht es auch ganz einfach:

Installiere die WinAvr's in verschiedene Verzeichnisse:

c:\WinAVR-20060421
c:\WinAVR-20070525
c:\WinAVR-20080610

Mit dem Befehl junction erzeugst du einen (nur mit NTFS verwendbaren) 
Hardlink, also ala Linux.

http://technet.microsoft.com/de-de/sysinternals/bb896768.aspx

Dann verwendest du verschiedene Batches

a) winavr-2006421.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20060421

b)WinAVR-20070525.bat

junction -d c:\WinAVR
junction c:\WinAVR c:\WinAVR-20070525

c) ...

In deinen makefiles verwendest du nur C:\Winavr oder verwendest
die globale path-Variable.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren