Forum: Compiler & IDEs make mit einer Quelle im Internet?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bauform B. (bauformb)


Bewertung
-2 lesenswert
nicht lesenswert
hallo miteinander!

make muss doch als erstes prüfen, ob sich ein Quelltext geändert hat. 
Wenn ich eine Datei aus dem Internet hole, habe ich eine lokale Kopie 
die sich scheinbar nie mehr ändert. Die echte Quelle ändert sich 
natürlich gelegentlich.
wget -N 'http://ftp.iana.org/tz/tzdata/latest.tar.gz'
 funktioniert schon ziemlich richtig indem wget etwas wie HEAD oder 
if-modified-since benutzt und den Download nur bei Bedarf macht.

Wie erkläre ich dem make, dass es erstmal dieses wget aufruft und dann 
(meistens) nichts weiter macht?

von DPA (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du kannst ein separates Target zum updaten externer Dependencies machen.
update:
  wget ...

bla.tgz abc.def:
  $(MAKE) update

.PHONY: update

Idealerweise sollte man die Signatur noch Prüfen. Lasse es nicht beim 
Compilieren automatisch zeug runterladen, das ist ganz schlechter style.

von Bauform B. (bauformb)


Bewertung
0 lesenswert
nicht lesenswert
DPA schrieb:
> Lasse es nicht beim
> Compilieren automatisch zeug runterladen, das ist ganz schlechter style.

Das ist mal ein Argument... Aber gut, ich will ja brav sein. Dann ist 
ein extra Target natürlich genau richtig. Dabei fällt mir ein, man 
braucht das ja nur einmal zu Anfang und dann erst wieder beim Release. 
Man muss eben dran denken. Vielleicht baue ich ein echo "nicht vegessen: 
die Politiker ändern gerne die Sommerzeitregeln" ein ;)
Dankeschön!

von Jim M. (turboj)


Bewertung
1 lesenswert
nicht lesenswert
Muss es unbedingt wget sein?

Mit "svn update" oder "git pull" könnte man das IMHO deutlich 
vereinfachen.

von Bauform B. (bauformb)


Bewertung
-3 lesenswert
nicht lesenswert
Hamsterkäufe? svn und git sind jedenfalls aus. Im Angebot wären noch 
ftp, http und, man staune, rsync.

von Blume (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Bauform B. schrieb:
> Hamsterkäufe? svn und git sind jedenfalls aus. Im Angebot wären noch
> ftp, http und, man staune, rsync.

um sich dann selber um das holen von versionen zu kümmern, auch 
schlechter style

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Bauform B. schrieb:
> Dann ist ein extra Target natürlich genau richtig.

Du kannst die Bedingung auch für die Datei selbst definieren:
# update latest.tar.gz if needed
latest.tar.gz: update-tz
update-tz:
        wget -N 'pfad/zur/latest.tar.gz'
.PHONY: update-tz

Dann brauchst du den Rest vom Makefile nicht anfassen.

Aber es wäre vermutlich trotzdem besser, wenn du einfach vor dem Release 
(oder z.B. einmal im Monat) einfach zwingend runterlädst. Spart Traffic 
auf dem Server.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.