cible = msg.exe shm.exe

all : $(cible) ipc.pdf

$(cible):%.exe:%.c
	gcc -Wall -g $< -o $@

mklistings: mklistings.lex
	flex mklistings.lex 
	gcc -Wall lex.yy.c -omklistings -lfl

ipc.pdf: listings.tex ipc.tex
	pdflatex ipc.tex
	pdflatex ipc.tex

listings.tex : $(cible)
	./mklistings msg.c     > listings.tex
	./mklistings shm.c    >> listings.tex

demo1:  
	./msg.exe -s1 -dhello_1 
	./msg.exe -s2 -dhello_2 
	./msg.exe -s3 -dhello_3 
	./msg.exe -s4 -dhello_4
	ipcs -q                             
	./msg.exe -r2        
	./msg.exe -r-3        
	./msg.exe -r0        
	ipcs -q                             
	./msg.exe -c            
	ipcs -q                             

demo2:
	./shm.exe 0
	ipcs -m | head -3 
	ipcs -m | grep 26

output:
	make demo1 | grep -v make > msg.out
	make demo2 | grep -v make > shm.out
