Makefile 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. ##############################
  2. ### platform configuration ###
  3. ##############################
  4. objects := main $(if $(call streq,$(platform),win),resource) $(objects)
  5. ifeq ($(platform),mac)
  6. moc = moc
  7. rcc = rcc
  8. link +=-F/Developer/SDKs/Qt/lib \
  9. -L/Developer/SDKs/Qt/lib \
  10. -framework QtOpenGL \
  11. -framework QtGui \
  12. -framework Carbon \
  13. -framework AppKit \
  14. -framework QtCore
  15. qtflags= -I/Developer/SDKs/Qt/include/ \
  16. -I/Developer/SDKs/Qt/include/Qt \
  17. -I/Developer/SDKs/Qt/include/QtCore \
  18. -I/Developer/SDKs/Qt/include/QtGui
  19. endif
  20. ifeq ($(platform),x) # X11
  21. moc = moc-qt4
  22. rcc = rcc
  23. link += $(call mklib,Xtst)
  24. link += `pkg-config --libs QtCore QtGui`
  25. qtflags = `pkg-config --cflags QtCore QtGui`
  26. else ifeq ($(platform),win) # Windows
  27. qtdir = c:/qt450
  28. link += $(call mklibpath,$(qtdir)/lib)
  29. link += $(call mklibpath,$(qtdir)/plugins/imageformats)
  30. link += $(call mklib,mingw32)
  31. link += $(call mklib,qtmain)
  32. link += $(call mklib,QtGui)
  33. link += $(call mklib,comdlg32)
  34. link += $(call mklib,oleaut32)
  35. link += $(call mklib,imm32)
  36. link += $(call mklib,winmm)
  37. link += $(call mklib,winspool)
  38. link += $(call mklib,msimg32)
  39. link += $(call mklib,QtCore)
  40. link += $(call mklib,ole32)
  41. link += $(call mklib,advapi32)
  42. link += $(call mklib,ws2_32)
  43. link += $(call mklib,uuid)
  44. link += $(call mklib,gdi32)
  45. # optional image-file support:
  46. # link += $(call mklib,qjpeg)
  47. # link += $(call mklib,qmng)
  48. qtflags = $(call mkincpath,$(qtdir)/include)
  49. qtflags += $(call mkincpath,$(qtdir)/include/QtCore)
  50. qtflags += $(call mkincpath,$(qtdir)/include/QtGui)
  51. endif
  52. moc_objects = \
  53. $(ui)/base/main.moc \
  54. $(ui)/base/loader.moc \
  55. $(ui)/base/htmlviewer.moc \
  56. $(ui)/base/about.moc \
  57. $(ui)/settings/settings.moc \
  58. $(ui)/settings/video.moc \
  59. $(ui)/settings/audio.moc \
  60. $(ui)/settings/input.moc \
  61. $(ui)/settings/paths.moc \
  62. $(ui)/settings/cheateditor.moc \
  63. $(ui)/settings/advanced.moc \
  64. $(ui)/settings/utility/inputcapture.moc \
  65. $(ui)/settings/utility/codeeditor.moc \
  66. #############
  67. ### rules ###
  68. #############
  69. %.moc: $<; $(moc) $(patsubst %.moc,%.hpp,$@) -o $@
  70. $(foreach object,$(moc_objects),$(eval $(object): $(patsubst %.moc,%.hpp,$(object))))
  71. obj/main.$(obj): $(ui)/main.cpp \
  72. $(ui)/* $(ui)/input/* $(ui)/utility/* $(ui)/base/* $(ui)/settings/* $(ui)/settings/utility/* \
  73. data/*
  74. $(call compile,$(qtflags))
  75. $(ui)/resource/resource.rcc: $(ui)/resource/resource.qrc data/*
  76. $(rcc) $(ui)/resource/resource.qrc -o $(ui)/resource/resource.rcc
  77. obj/resource.$(obj): $(ui)/resource/resource.rc
  78. windres $(ui)/resource/resource.rc obj/resource.$(obj)
  79. ###############
  80. ### targets ###
  81. ###############
  82. ui_build: $(ui)/resource/resource.rcc $(moc_objects);
  83. ui_clean:
  84. -$(foreach object,$(moc_objects),@$(call delete,$(object)))
  85. -@$(call delete,$(ui)/resource/resource.rcc)