rules.mk 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. ifeq ($(_THEOS_RULES_LOADED),)
  2. _THEOS_RULES_LOADED := 1
  3. ifeq ($(THEOS_CURRENT_INSTANCE),)
  4. include $(THEOS_MAKE_PATH)/master/rules.mk
  5. else
  6. include $(THEOS_MAKE_PATH)/instance/rules.mk
  7. endif
  8. ifeq ($(_THEOS_MAKE_PARALLEL_BUILDING), no)
  9. .NOTPARALLEL:
  10. else
  11. ifneq ($(_THEOS_MAKE_PARALLEL), yes)
  12. .NOTPARALLEL:
  13. endif
  14. endif
  15. %.mm: %.l.mm
  16. $(THEOS_BIN_PATH)/logos.pl $< > $@
  17. %.mm: %.xmm
  18. $(THEOS_BIN_PATH)/logos.pl $< > $@
  19. %.mm: %.xm
  20. $(THEOS_BIN_PATH)/logos.pl $< > $@
  21. %.m: %.xm
  22. $(THEOS_BIN_PATH)/logos.pl $< > $@
  23. %.swift: %.xswift
  24. $(THEOS_BIN_PATH)/logos.pl $< > $@
  25. ifneq ($(THEOS_BUILD_DIR),.)
  26. $(THEOS_BUILD_DIR):
  27. @mkdir -p $(THEOS_BUILD_DIR)
  28. endif
  29. $(THEOS_OBJ_DIR):
  30. @cd $(THEOS_BUILD_DIR); mkdir -p $(THEOS_OBJ_DIR_NAME)
  31. $(THEOS_OBJ_DIR)/.stamp: $(THEOS_OBJ_DIR)
  32. @mkdir -p $(dir $@); touch $@
  33. $(THEOS_OBJ_DIR)/%/.stamp: $(THEOS_OBJ_DIR)
  34. @mkdir -p $(dir $@); touch $@
  35. Makefile: ;
  36. $(_THEOS_RELATIVE_MAKE_PATH)%.mk: ;
  37. $(THEOS_MAKE_PATH)/%.mk: ;
  38. $(THEOS_MAKE_PATH)/master/%.mk: ;
  39. $(THEOS_MAKE_PATH)/instance/%.mk: ;
  40. $(THEOS_MAKE_PATH)/instance/shared/%.mk: ;
  41. $(THEOS_MAKE_PATH)/platform/%.mk: ;
  42. $(THEOS_MAKE_PATH)/targets/%.mk: ;
  43. $(THEOS_MAKE_PATH)/targets/%/%.mk: ;
  44. ifneq ($(THEOS_PACKAGE_DIR_NAME),)
  45. $(THEOS_PACKAGE_DIR):
  46. @cd $(THEOS_BUILD_DIR); mkdir -p $(THEOS_PACKAGE_DIR_NAME)
  47. endif
  48. endif
  49. # TODO MAKE A BUNCH OF THINGS PHONY
  50. $(eval $(call __mod,rules.mk))