29 lines
		
	
	
		
			810 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			810 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#location of test mains
 | 
						|
OFFSHORE_MAINS := .
 | 
						|
# location of project directories
 | 
						|
OFFSHORE_PROJECTS := ..
 | 
						|
 | 
						|
empty:=
 | 
						|
space:= $(empty) $(empty)
 | 
						|
CFLAGS_MANDATORY := -Wall -Wextra -Werror
 | 
						|
all_builds := $(foreach e, 00 01 02 03 04 05 06 07 08, build/c00/ex$e) \
 | 
						|
  $(foreach e, 00 01 02 03 04 05 06 07 08, build/c01/ex$e) \
 | 
						|
  $(foreach e, 00 01 02 03 04 05 06 07 08 09 10 11 12, build/c02/ex$e) \
 | 
						|
  $(foreach e, 00 01 02 03 04 05, build/c03/ex$e) \
 | 
						|
 | 
						|
MAKEFLAGS := -k
 | 
						|
 | 
						|
all: norme $(all_builds)
 | 
						|
build: 
 | 
						|
	mkdir $@
 | 
						|
clean:
 | 
						|
	rm -rf build
 | 
						|
.PHONY: all norme clean
 | 
						|
 | 
						|
.SECONDEXPANSION:
 | 
						|
build/c%: $(OFFSHORE_PROJECTS)/c$$*/*.c $$(OFFSHORE_MAINS)/c$$*.c $$(wildcard $(OFFSHORE_MAINS)/common/*.c)
 | 
						|
	mkdir -p $(@D)
 | 
						|
	$(CC) -o $@ $(CFLAGS_MANDATORY) -Icommon $(CFLAGS) $^ 
 | 
						|
norme: $$(wildcard $(OFFSHORE_PROJECTS)/c*)
 | 
						|
	norminette $^ || true
 |