يقوم GNU بنسخ الملفات إلى دليل التوزيعة
سؤال
أحتفظ بمصدر 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)
لا تنتمي إلى StackOverflow