deps.mk 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # dependencies
  2. # 1 variable name
  3. # 2 file
  4. # 3 dependencies
  5. #
  6. # example
  7. # var := somefile.h dep1 dep2
  8. # somefile.h: dep1 dep2
  9. define _gendeps
  10. $1 := $2 $3
  11. $2: $3
  12. endef
  13. gendeps = $(eval $(call _gendeps,$1,$2,$3))
  14. $(call gendeps,components_config,components_config.h,)
  15. $(call gendeps,thread_helper,thread_helper.h,)
  16. $(call gendeps,util,lib/util.h,${components_config})
  17. $(call gendeps,meminfo,lib/meminfo.h,${util})
  18. util.o: ${util}
  19. libs := $(wildcard lib/*.c)
  20. ${libs:.c=.o}: %.o: %.h
  21. # COMPONENTS should be defined
  22. ${COMPONENTS:.c=.o}: ${util} ${components_config}
  23. $(call gendeps,battery,components/battery.h,${components_config})
  24. components/battery.o: ${battery}
  25. $(call gendeps,cpu,components/cpu.h,)
  26. components/cpu.o: ${cpu}
  27. $(call gendeps,netspeed,components/netspeed.h,)
  28. components/netspeed.o: ${netspeed}
  29. $(patsubst %.c,%.o,$(wildcard components/volume/*.c)): components/volume.h
  30. components/volume/pulse.o: ${thread_helper}
  31. components/ram.o: ${meminfo}
  32. components/swap.o: ${meminfo}
  33. $(call gendeps,wifi,components/wifi.h,)
  34. components/wifi.o: ${wifi}
  35. $(call gendeps,aslstatus,aslstatus.h,\
  36. ${util} components/volume.h ${battery} ${cpu} ${netspeed} ${wifi})
  37. aslstatus.o: config.h ${thread_helper} ${aslstatus}