Forum: Mikrocontroller und Digitale Elektronik ftp in Makefile


von Zeiro (Gast)


Lesenswert?

Hi,
Ich habe einen dilnet pc 9200 mit einem AT91RM9200 und will mir ein 
Makefile schreiben das mein Programm zuerst compiliert und dann via ftp 
auf mein Zielsystem kopiert. in der Commandline funktioniert es 
wunderbar aber weiß jemand wie man das mit einem Makefile machen kann?

mein Vorschlag ist:
CC  =  /usr/local/arm/2.95.2/bin/arm-linux-gcc

all: main clean ftpcopy

main:  dnp9200.o function.o main.o
  $(CC) -o main.x dnp9200.o function.o main.o

dnp9200.o:  dnp9200.c dnp9200.h
  $(CC) -g -c dnp9200.c

function.o:  function.c function.h dnp9200.c dnp9200.h
  $(CC) -g -c function.c

clean:
  rm -f *.o

ftpcopy:
  ftp 192.168.0.126
  1umane
  passwd
  put a.out
  chmod 777 a.out
  bye

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

du müßtes dem FTP Programm wohl alles per commandline übergeben da 'ftp 
192.168.0.126' vermutlich ein extra Programm aufruft.

von Roland P. (pram)


Lesenswert?

probier mal:
ftp 192.160.0.126 < commands.txt

In die Textdatei packst du dann die Befehle

von Zeiro (Gast)


Lesenswert?

Ja, stimmt mit ftp ruft man ein eigenen Programm auf daher geht das 
login schon mal nicht.

ftp 192.160.0.126 < commands.txt macht irgendwie was komisches, weiß 
aber noch nicht ob dass der richtige weg ist.

ftp 192.160.0.126 < commands.txt
Password:Name (192.168.0.126:zeiro):
Login incorrect.
Login failed.
?Invalid command

von Läubi .. (laeubi) Benutzerseite


Lesenswert?


von holger (Gast)


Lesenswert?

Nimm doch statt dem ftp Befehl im makefile einfach
ein Shell Script. Das führt dann die Befehle so aus
wie du es in die Commandline eintippst.

von Klaus W. (mfgkw)


Lesenswert?

Bei ncftp kann man Benutzername und PW per Kommandozeile übergeben.
ncftpput kopiert auf einen entfernten Rechner, ncftpget holt
entsprechend.
Sehr handlich in der Kommandozeile, in Skripten und natürlich auch
in einem Makefile.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Vieleicht erlaubt das Login aber auch keine direkte Texteingabe. Gibt es 
außer der IP keine weiteren Kommandozeilenoption von 'ftp'?
Ansosnten würd ich mir einfach schnell ein eigenes FTP Programm 
schreiben, das ist wenn man nur ein festes Schema haben will und nur 
einen bestimmten Server nuzt recht unkompliziert.

von Sven P. (Gast)


Lesenswert?

Es gibt auch Alternativen zum Standard-ftp-Programm. Beispielsweise 
wput, das wurde für so Skriptereien erfunden.

von holger (Gast)


Lesenswert?

Hab gerade mal ein wenig rumgekramt.
So habe ich mal Daten per Script auf einen FTP Server geschoben:


#! /bin/sh

FILE="$1"
ftp -f -r 60 -p -v -u "ftp://user:password@serverip/$FILE" "$FILE"

von Zeiro (Gast)


Lesenswert?

Danke an alle für die schnelle Hilfe

per Script ist es eine sehr elegante Lösung. Habe mich aber dann doch 
für die ftp-Alternative ncftp entschieden da ist es nur eine kurze 
Zeile.

ncftpput -u uname -p passwd 192.168.0.126 ./ ./main.x

HERZLICHEN DANK!

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
Noch kein Account? Hier anmelden.