سؤال

أحتفظ بمصدر HTML (والصور وما إلى ذلك) في أدلة منفصلة للتحكم بالمصادر.جزء من إنشاء التوزيعة هو إنشاء ملفات نسخ إلى مجلد الإخراج وتعيين السمات.

اليوم يظهر ملف التعريف الخاص بي (مستخرج):

%.html:
    /usr/bin/install -c -p -m 644 $< $@ 

www: $(HTMLDST)/firmware.html $(HTMLDST)/firmware_status.html $(HTMLDST)/index.html
$(HTMLDST)/firmware.html: $(HTMLSRC)/firmware.html 
$(HTMLDST)/firmware_status.html: $(HTMLSRC)/firmware_status.html 
$(HTMLDST)/index.html: $(HTMLSRC)/index.html 

يتم عرض ذلك مع ثلاثة ملفات html فقط، ولكن في الواقع هناك الكثير منها.

أرغب فقط في إدراج أسماء الملفات (بدون مسارات) وإجراء المقارنة بين المصدر والوجهة ونسخ الملفات التي تم تحديثها.

شكرا لك مقدما سورين

هل كانت مفيدة؟

المحلول

هذا يجب أن يفعل ذلك:

$(HTMLDST)/%.html: $(HTMLSRC)/%.html
    /usr/bin/install -c -p -m 644 $< $@ 

www: $(HTMLDST)/firmware.html $(HTMLDST)/firmware_status.html $(HTMLDST)/index.html

أو للاختصار:

HTMLFILES = firmware firmware_status index

DESTFILES = $(patsubst %,$(HTMLDST)/%.html,$(HTMLFILES))

$(HTMLDST)/%.html: $(HTMLSRC)/%.html
    /usr/bin/install -c -p -m 644 $< $@ 

.PHONY: www
www: $(DESTFILES)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top