Quand tu en es réduit à ceci parce que Ubuntu « c’est basé sur Debian, mais pas trop non plus »… 😡

Follow

D’ailleurs si quelqu’un sait faire des tableaux associatifs en Makefile ainsi que de la génération de règles par des boucles, je suis tout ouïe… 😭

@aeris pourquoi tu fais pas un make TARGET=ubuntu-focal le tout depuis un autre makefile éventuellement qui fait les 3 appel avec chaque distrib et une petite condition sur certaine variable pour les cas de lib de version différentes non?

@aeris hmm on peut définir des variables spécifiques à une cible, mais tableaux associatifs je sais pas

@aeris tu peux pas faire en Makefile de mémoire, c'est pour ça qu'automake et cmake existent...

@Keltounet @aeris ah pi ça t'évitera les erreurs de copier-coller (raspian mélangé avec ubuntu)

@mmu_man @Keltounet Ça ressemble effectivement à ce que je cherchais à faire 😊

@aeris Je ne vois pas bien ce que tu souhaites faire en parlant de « génération de règles par des boucles » mais avec les patterns rules tu peux appliquer la même règle pour tout un tas de choses

TRUCS := bidule1 bidule2 bidule3

all: $(TRUCS)

$(TRUCS):
@echo "Do something with $@"

@aeris par contre tu peux définir des variables par target:

FOR_DEBIAN := "this is Debian"
FOR_UBUNTU := "this is Ubuntu"

CURRENT_DIST := $(shell lsb_release -is)

# Choose target based on distrib
all: $(CURRENT_DIST)

Debian: VAR=$(FOR_DEBIAN)
Debian: build

Ubuntu: VAR=$(FOR_UBUNTU)
Ubuntu: build

build:
@echo "The VAR is $(VAR)"

@aeris et bien dans ce cas tu mixes mes 2 pouets

DISTRIBS := Debian Ubuntu

all: $(DISTRIBS)

Debian: DESTDIR=build/debian

Ubuntu: DESTDIR=build/ubuntu

$(DISTRIBS):
@echo "The DESTDIR is $(DESTDIR)"

@aeris tu peux même jouer à faire ça:

DISTRIBS := Debian Ubuntu

all: $(DISTRIBS)

Debian: DESTDIR=build/debian

Ubuntu: DESTDIR=build/ubuntu

$(DISTRIBS): %: configure/% build/% install/%

configure/%:
@echo "Configure for $* in DESTDIR $(DESTDIR)"

build/%:
@echo "Build for $* in DESTDIR $(DESTDIR)"

install/%:
@echo "Install for $* in DESTDIR $(DESTDIR)"

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!