Blame view

build2/epsilon-master/Makefile 2.06 KB
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  include build/config.mak
  
  default: epsilon.$(EXE)
  
  .PHONY: info
  info:
  	@echo "EPSILON_VERSION = $(EPSILON_VERSION)"
  	@echo "EPSILON_ONBOARDING_APP = $(EPSILON_ONBOARDING_APP)"
  	@echo "EPSILON_SOFTWARE_UPDATE_PROMPT = $(EPSILON_SOFTWARE_UPDATE_PROMPT)"
  	@echo "EPSILON_APPS = $(EPSILON_APPS)"
  	@echo "EPSILON_I18N = $(EPSILON_I18N)"
  
  # Each sub-Makefile can either add objects to the $(objs) variable or define a
  # new executable target. The $(objs) variable lists the objects that will be
  # linked to every executable being generated. Each Makefile is also responsible
  # for keeping the $(product) variable updated. This variable lists all files
  # that could be generated during the build and that needs to be cleaned up
  # afterwards.
  
  products :=
  
  # Library Makefiles
  ifeq ($(USE_LIBA),0)
  include liba/Makefile.bridge
  else
  SFLAGS += -ffreestanding -nostdinc -nostdlib
  include liba/Makefile
  include libaxx/Makefile
  endif
  include ion/Makefile
  include kandinsky/Makefile
  include poincare/Makefile
  include python/Makefile
  include escher/Makefile
  # Executable Makefiles
  include apps/Makefile
  include build/struct_layout/Makefile
  include quiz/Makefile # Quiz needs to be included at the end
  
  products += $(objs)
  
  all_objs = $(filter %.o, $(products))
  dependencies = $(all_objs:.o=.d)
  -include $(dependencies)
  products += $(dependencies)
  
  $(all_objs): $(generated_headers)
  
  epsilon.$(EXE): $(objs)
  test.$(EXE): $(objs)
  
  .SECONDARY: $(objs)
  %.$(EXE):
  	@echo "LD      $@"
  	$(Q) $(LD) $^ $(LDFLAGS) -o $@
  
  %.o: %.c
  	@echo "CC      $@"
  	$(Q) $(CC) $(SFLAGS) $(CFLAGS) -c $< -o $@
  
  %.o: %.s
  	@echo "AS      $@"
  	$(Q) $(CC) $(SFLAGS) -c $< -o $@
  
  %.o: %.cpp
  	@echo "CXX     $@"
  	$(Q) $(CXX) $(SFLAGS) $(CXXFLAGS) -c $< -o $@
  
  .PHONY: clean
  clean:
  	@echo "CLEAN"
  	$(Q) rm -f $(products)
  
  .PHONY: cowsay_%
  cowsay_%:
  	@echo " -------"
  	@echo "| $(*F) |"
  	@echo " -------"
  	@echo "        \\   ^__^"
  	@echo "         \\  (oo)\\_______"
  	@echo "            (__)\\       )\\/\\"
  	@echo "                ||----w |"
  	@echo "                ||     ||"
  
  .PHONY: clena
  clena: cowsay_CLENA clean
  
  -include build/targets.$(PLATFORM).mak