Gibt es eigentlich Unterschiede in den make-Files für Unix und Win ? 1. im Namen "make" oder "make.bat" 2. in den zu verwendenden Befehlen z.B. für Kommentare "#" oder"REM". Jedenfalls "versteht" mein PC die Befehle MCS oder CC nicht. Konrad
Unterschiedliche make-Varianten implementieren teilweise unterschiedliche feature sets. Auch im Unix-Bereich gibt es da Unterschiede zwischen den drei Grundrichtungen SystemV make, GNU make und BSD make. Im PC-Bereich kommen noch andere Dialekte hinzu. Alle haben aber typischerweise gleiche Basisfunktionalität und -syntax. Das ausführbare Programm heißt unter Unix schlicht »make«, unter DOS und Windows dann »make.exe« (wobei Du das .exe ja nicht eintippen musst). Der bevorzugte Dateiname für das Makefile kann vielleicht unter DOS/Win auch ein anderer sein, unter Unix ist es zuerst »makefile«, dann »Makefile«. Was soll CC und MCS in Deinem Zusammenhang sein? Make-Makros? Externe Kommandonamen? (MCS kenn ich gar nicht, CC verbinde ich in Großbuchstaben mit einem make-Makro für den Kommandonamen des C-Compilers, der standardmäßig auf "cc" steht, aber im Controller-Umfeld oft anders belegt wird, in Deinem Falle vielleicht "arm-gcc".) Make tut natürlich weiter nichts, als eine Abfolge von externen Kommandos aufzubauen, das Vorhanensein von Kommandos mit entsprechendem Namen und deren Zugreifbarkeit über den Standard-Kommando-Suchpfad mußt Du schon selbst organisieren.
Ich habe bis jetzt folgendes herausgefunden: zu dem GNU-Compiler für Win gibt es ein file: make.bat, das DOS-Befehle enthält und damit den Compiler etc steuert. Dies sehen natürlich anders aus als die Befehle in einem make-file. "make" ist ja ein Programm, das das File interpretiert. Aber das gibt es nicht bei Window, oder?
Welche Distribution verwendest Du denn? make/Makefiles gibt es auch auf Windows, aber man MUSS es nicht nutzen...
Distribution ? Ich habe den Compiler von Hitex bekommen, die auch einen Debugger und ein HW-Tool für die Jtag-Schnittstelle (Tantino) liefern. Version 3.3.2
Bei "Hitex" kenne ich den Umfang der Toolchain nicht, daher kann ich da kaum was zu sagen (ob make verfügbar etc)...
Eine Rückfrage be HITEX hat ergeben, dass sie z.Z. mit dem DOS-Batchfile arbeiten und nicht make verwenden. Und das funktioniert inzwischen auch. Bis hierhin alles alles ok.
"make.bat" ist typischerweise kein "Makefile", aber ein gebraeuchlicher Name. Mit diesen Batch-Dateien ("shell-scripts") wird direkt der Compiler (bzw. Linker) aufgerufen. Ich kenne die HITEX-Produkte auch nicht, aber die Erstellung einer Batch-Datei durch die "IDE" und der anschliessende Aufruf des Kommandointerpreters (cmd.exe/command.com) zur Abarbeitung dieser Skript-Datei ist im Windows/DOS-Umfeld nicht unueblich. Makefiles im "klassischen" Sinn sind Steuerdateien fuer ein Programm make(.exe) (bei MS nmake). make ruft seinerseits auf Grundlage der Angaben in dieser Steuerdatei den Compiler/Linker mit entsprechenden Parametern auf. Für Windows gibt es z.B. nmake von MS, bei Visual C/Studio dabei und wenn recht erinnert auch "kostenlos" irgendwo auf der MS-Seite zu "saugen", ist aber nicht ganz gnu-make kompatibel. Ein gnumake für Windows gibt es allerdings auch. Ist z.B. in WinAVR und WinARM enthalten.
Vielen Dank für die Infos bisher. Noch eine Frage: Woher bekommt der Linker (Aufruf aus make.bat siehe unten) die Information ber den zur Verfügung stehenden Speicher? Doch nicht aus den dann compilieren Header-Files? ####### Linker Optionen set ld_opt=--cref -t -static -lc -lm -Map=TST3.map -T.\TST3.ld REM --------------------------------------------------- ECHO Linking REM --------------------------------------------------- cd objects set obj_file=TST3.elf set obj_lst=startup.o a_main.o a_interrupt.o arm-elf-ld.exe %ld_opt% --start-group %obj_lst% -o %obj_file% ########
-T.\TST3.ld Diese Option sagt dem Linker, welches Linkerfile er verwenden soll. In diesem Linkerfile werden diese Angaben enthalten sein, und zusätzlich vermutlich noch die verwendeten "standard-libs".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.