81 lines
1.6 KiB
Makefile
81 lines
1.6 KiB
Makefile
build: text_1 text_2
|
|
cat text_1 text_2 > build
|
|
|
|
text_1:
|
|
echo "Hello" > text_1
|
|
|
|
text_2:
|
|
echo "World" > text_2
|
|
|
|
.PHONY: view clean
|
|
view:
|
|
$(shell [ -f build ] && cat build)
|
|
|
|
clean:
|
|
rm -f build text_1 text_2
|
|
|
|
.PHONY: echo
|
|
echo:
|
|
echo "La commande sera affichée"
|
|
@echo "seul le résuiltat est affiché"
|
|
|
|
VAR = "Hello"
|
|
REF = $(VAR)
|
|
EXP := $(VAR)
|
|
.PHONY: assign
|
|
assign:
|
|
@echo "initial value: $(VAR)"
|
|
$(eval override VAR = Bonjour)
|
|
@echo "new value: $(VAR)"
|
|
@echo "assign by reference \`VAR_2 = value\`: $(REF)"
|
|
@echo "assign by expansion \`VAR_2 := value\`: $(EXP)"
|
|
|
|
.PHONY: specific
|
|
specific: text_1 text_2 build
|
|
@echo "target.....$@"
|
|
@echo "First dep..$<"
|
|
@echo "All deps...$^"
|
|
|
|
TEXT = hello world
|
|
NEW_TEXT = $(subst hello, bonjour, $(TEXT))
|
|
.PHONY: subst
|
|
subst:
|
|
@echo $(NEW_TEXT)
|
|
|
|
FILES = $(patsubst text_%,my_text_%, $(wildcard text*))
|
|
.PHONY: textfiles
|
|
textfiles: build
|
|
@echo "origin: $(wildcard text*)"
|
|
@echo "files: $(FILES)"
|
|
|
|
.PHONY: messages
|
|
messages:
|
|
$(info Message d'information)
|
|
$(warning Message d'alerte)
|
|
$(error Message d'erreur)
|
|
$(info Ce message ne s'affichera pas!)
|
|
|
|
EXP_FILES := $(wildcard text*)
|
|
REF_FILES = $(wildcard text*)
|
|
.PHONY: macro
|
|
macro: clean
|
|
@echo "EXP: $(EXP_FILES)"
|
|
@echo "REF: $(REF_FILES)"
|
|
|
|
TEST = bonjour
|
|
DIST := $(shell lsb_release -i | awk -F ':\t' '{print $$2}')
|
|
ifeq ($(DIST), Arch)
|
|
MY_MESS := "By the Way"
|
|
endif
|
|
.PHONY: condition
|
|
condition:
|
|
ifndef MY_MESS
|
|
@echo "Vous n'utilisez pas ArchLinux : $(DIST)"
|
|
else
|
|
@echo $(MY_MESS)
|
|
endif
|
|
ifeq ($(TEST), bonjour)
|
|
@echo "TEST n'a pas été modifiée"
|
|
else
|
|
@echo 'TEST a été modifiée'
|
|
endif
|