Forum: Diğer Konular RSS
Gnu make kullanımı
erdem (Moderatör) #1
Üye Tem 2009 tarihinden beri · 895 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Gnu make kullanımı
Programın kaynak kodunda değişiklik varsa bir ileti gösteren bir make dosyası yazmaya çalışıyorum.

KAYNAK := $(shell ls -tp *.cc | grep -v /$ | head -1)
PROGRAM := ${basename ${KAYNAK}}
 
all: derle ileti
 
derle: ${PROGRAM}
 
${PROGRAM}: ${KAYNAK}
    g++ ${KAYNAK} -o ${PROGRAM}
 
ileti: ${PROGRAM}
    @echo ${PROGRAM} zaten güncel tekrar derlemenize gerek yok
 
.PHONY: ileti derle

Make kütüğü örneğin oluşturduğumuz kaynak kütüğün ismi deneme.cc ise

deneme zaten güncel tekrar derleminize gerek yok yazıyor.

Ama deneme.cc üzerinde değişiklik yaptığımızda da gene bu iletiyi gösteriyor. Ben eğer kaynak kütük değiştiyse ve derlenmesi gerekiyorsa bu iletiyi yerine 'programı derliyorum' gibi bir ileti göstermek istiyorum.

Bunun nasıl yapılacağını bilen var mı acaba.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4391 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
make, hedef dosya oluşturma mantığı üzerine kurulu olduğundan 'ileti' yerine .PHONY olmayan 'ileti_gonderildi' gibi bir dosya oluşturman gerekiyor.

Ali
erdem (Moderatör) #3
Üye Tem 2009 tarihinden beri · 895 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Tam aradığım çözüm buydu teşekkürler  ;-)
erdem (Moderatör) #4
Üye Tem 2009 tarihinden beri · 895 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Sanırım gene olmadı:

KAYNAK := $(shell ls -tp *.cc | grep -v /$ | head -1)
PROGRAM := ${basename ${KAYNAK}}
 
all: derle ileti_derle
 
derle: ${PROGRAM}
 
${PROGRAM}: ${KAYNAK}
    g++ ${KAYNAK} -o ${PROGRAM}
 
ileti_derle: ileti
    @echo ${PROGRAM} zaten güncel tekrar derlemenize gerek yok
 
.PHONY: derle

Phony olmayan ileti_derle adında bir kısım oluşturdum. Sonra ileti isminde bir dosya oluşturdum.

Ama bu sefer de derlenirken bu iletiyi yazıyor.
make
g++ deneme.cc -o deneme
deneme zaten güncel tekrar derlemenize gerek yok
erdem (Moderatör) #5
Üye Tem 2009 tarihinden beri · 895 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Şu şekilde oluyormuş:
KAYNAK := $(shell ls -tp *.cc | grep -v /$ | head -1)
PROGRAM := ${basename ${KAYNAK}}
 
all: ileti derle program
 
derle: ${KAYNAK}
 
${PROGRAM}: ${KAYNAK}
    g++ ${KAYNAK} -o ${PROGRAM}
 
program: ${PROGRAM}
 
ileti:
    @make -q derle program && echo ${PROGRAM} zaten güncel tekrar derlemenize gerek yok || true
 
temizle clean:
    rm -f *.o *.c~ *.cc~ *.c# Makefile~
    find . -maxdepth 1 -perm +100 -type f -delete
 
.PHONY: program derle
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-04-30, 11:36:59 (UTC -07:00)