Δημοσιεύτηκε: 23 Ιουν 2011, 21:18
1. Το makefile έχει εντολές όπου επιτρέπουν να μεταγλωττίζουμε ένα πρόγραμμα πιο εύκολα.
Για παράδειγμα
από https://github.com/giannosfor/ExampleQu ... r/Makefile
Οι πρώτες δύο εντολές πάνε μαζί:
Είναι ο πρώτος κανόνας, οπότε όταν τρέξουμε σκέτο make, το πρόγραμμα make θα ψάξει για ένα αρχείο Makefile στον τρέχον κατάλογο
και θα προσπαθήσει να παράγει το «ExampleQuit.class» (επειδή είναι πρώτο, πριν από : ).
Το ExampleQuit.class: ExampleQuit.java
σημαίνει ότι το ExampleQuit.class εξαρτάται από το ExampleQuit.java. Απαιτεί να υπάρχει το ExampleQuit.java. Αν η ημερομηνία του ExampleQuit.java είναι νεότερη από το ExampleQuit.class, τότε εκτελεί την εντολή, και η εντολή είναι αυτό που αναφέρεται στην επόμενη γραμμή.
Η εντολή είναι πάντα με εσοχή (προς τα δεξιά) με ένα χαρακτήρα Tab. Μερικοί χρήστες βάζουν διάστημα (space) και αυτό είναι σφάλμα. Το make παραπονιέται για separator, κτλ.
Εδώ φτιάχνουμε ένα ιδεατό στόχο, το run. Οπότε, αν τρέξουμε
θα εκτελέσει την εντολή, που είναι η γραμμή που εκτελεί το πρόγραμμά μας.
Μια βελτίωση στο παραπάνω είναι να γράψουμε
οπότε εδώ θα δει αν υπάρχει το ExampleQuit.class. Αν δεν υπάρχει, θα χρησιμοποιήει τον πρώτο κανόνα και θα μεταγλωττίσει,
και μετά θα τρέξει το πρόγραμμα.
Για παράδειγμα
- Κώδικας: Επιλογή όλων
ExampleQuit.class: ExampleQuit.java
javac -cp /usr/share/java/gtk.jar ExampleQuit.java
run:
java -cp /usr/share/java/gtk.jar:. ExampleQuit
από https://github.com/giannosfor/ExampleQu ... r/Makefile
Οι πρώτες δύο εντολές πάνε μαζί:
- Κώδικας: Επιλογή όλων
ExampleQuit.class: ExampleQuit.java
javac -cp /usr/share/java/gtk.jar ExampleQuit.java
Είναι ο πρώτος κανόνας, οπότε όταν τρέξουμε σκέτο make, το πρόγραμμα make θα ψάξει για ένα αρχείο Makefile στον τρέχον κατάλογο
και θα προσπαθήσει να παράγει το «ExampleQuit.class» (επειδή είναι πρώτο, πριν από : ).
Το ExampleQuit.class: ExampleQuit.java
σημαίνει ότι το ExampleQuit.class εξαρτάται από το ExampleQuit.java. Απαιτεί να υπάρχει το ExampleQuit.java. Αν η ημερομηνία του ExampleQuit.java είναι νεότερη από το ExampleQuit.class, τότε εκτελεί την εντολή, και η εντολή είναι αυτό που αναφέρεται στην επόμενη γραμμή.
Η εντολή είναι πάντα με εσοχή (προς τα δεξιά) με ένα χαρακτήρα Tab. Μερικοί χρήστες βάζουν διάστημα (space) και αυτό είναι σφάλμα. Το make παραπονιέται για separator, κτλ.
- Κώδικας: Επιλογή όλων
run:
java -cp /usr/share/java/gtk.jar:. ExampleQuit
Εδώ φτιάχνουμε ένα ιδεατό στόχο, το run. Οπότε, αν τρέξουμε
- Κώδικας: Επιλογή όλων
make run
θα εκτελέσει την εντολή, που είναι η γραμμή που εκτελεί το πρόγραμμά μας.
Μια βελτίωση στο παραπάνω είναι να γράψουμε
- Κώδικας: Επιλογή όλων
run: ExampleQuit.class
java -cp /usr/share/java/gtk.jar:. ExampleQuit
οπότε εδώ θα δει αν υπάρχει το ExampleQuit.class. Αν δεν υπάρχει, θα χρησιμοποιήει τον πρώτο κανόνα και θα μεταγλωττίσει,
και μετά θα τρέξει το πρόγραμμα.