Makefile 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. CC = g++
  2. SRCDIR = ../../src
  3. ASSETDIR = ../../assets
  4. LIBDIR = ../../lib/linux
  5. .SUFFIXES: .io .do .dio
  6. SRCCORE = $(SRCDIR)/core/lodepng.cpp $(SRCDIR)/core/PolyBasicFileProvider.cpp $(SRCDIR)/core/PolyBezierCurve.cpp $(SRCDIR)/core/PolyBone.cpp $(SRCDIR)/core/PolyCamera.cpp $(SRCDIR)/core/PolyClient.cpp $(SRCDIR)/core/PolyColor.cpp $(SRCDIR)/core/PolyConfig.cpp $(SRCDIR)/core/PolyCore.cpp $(SRCDIR)/core/PolyCoreFileProvider.cpp $(SRCDIR)/core/PolyCoreInput.cpp $(SRCDIR)/core/PolyCoreServices.cpp $(SRCDIR)/core/PolyCubemap.cpp $(SRCDIR)/core/PolyData.cpp $(SRCDIR)/core/PolyEntity.cpp $(SRCDIR)/core/PolyEvent.cpp $(SRCDIR)/core/PolyEventDispatcher.cpp $(SRCDIR)/core/PolyEventHandler.cpp $(SRCDIR)/core/PolyFont.cpp $(SRCDIR)/core/PolyFontGlyphSheet.cpp $(SRCDIR)/core/PolyGPUDrawBuffer.cpp $(SRCDIR)/core/PolyImage.cpp $(SRCDIR)/core/PolyInputEvent.cpp $(SRCDIR)/core/PolyLabel.cpp $(SRCDIR)/core/PolyLogger.cpp $(SRCDIR)/core/PolyMaterial.cpp $(SRCDIR)/core/PolyMaterialManager.cpp $(SRCDIR)/core/PolyMatrix4.cpp $(SRCDIR)/core/PolyMesh.cpp $(SRCDIR)/core/PolyObject.cpp $(SRCDIR)/core/PolyOpenGLGraphicsInterface.cpp $(SRCDIR)/core/PolyPAAudioInterface.cpp $(SRCDIR)/core/PolyParticleEmitter.cpp $(SRCDIR)/core/PolyPeer.cpp $(SRCDIR)/core/PolyPerlin.cpp $(SRCDIR)/core/PolyPhysFSFileProvider.cpp $(SRCDIR)/core/PolyQuaternion.cpp $(SRCDIR)/core/PolyQuaternionCurve.cpp $(SRCDIR)/core/PolyRay.cpp $(SRCDIR)/core/PolyRectangle.cpp $(SRCDIR)/core/PolyRenderDataArray.cpp $(SRCDIR)/core/PolyRenderer.cpp $(SRCDIR)/core/PolyResource.cpp $(SRCDIR)/core/PolyResourceManager.cpp $(SRCDIR)/core/PolyScene.cpp $(SRCDIR)/core/PolySceneEntityInstance.cpp $(SRCDIR)/core/PolySceneImage.cpp $(SRCDIR)/core/PolySceneLabel.cpp $(SRCDIR)/core/PolySceneLight.cpp $(SRCDIR)/core/PolySceneLine.cpp $(SRCDIR)/core/PolySceneManager.cpp $(SRCDIR)/core/PolySceneMesh.cpp $(SRCDIR)/core/PolyScenePrimitive.cpp $(SRCDIR)/core/PolySceneRenderTexture.cpp $(SRCDIR)/core/PolySceneSound.cpp $(SRCDIR)/core/PolySceneSprite.cpp $(SRCDIR)/core/PolyServer.cpp $(SRCDIR)/core/PolyShader.cpp $(SRCDIR)/core/PolySkeleton.cpp $(SRCDIR)/core/PolySocket.cpp $(SRCDIR)/core/PolySound.cpp $(SRCDIR)/core/PolySoundManager.cpp $(SRCDIR)/core/PolyString.cpp $(SRCDIR)/core/PolyTexture.cpp $(SRCDIR)/core/PolyThreaded.cpp $(SRCDIR)/core/PolyTimer.cpp $(SRCDIR)/core/PolyTimerManager.cpp $(SRCDIR)/core/PolyTween.cpp $(SRCDIR)/core/PolyTweenManager.cpp $(SRCDIR)/core/PolyVector2.cpp $(SRCDIR)/core/PolyVector3.cpp $(SRCDIR)/core/PolyVector4.cpp $(SRCDIR)/core/rgbe.cpp $(SRCDIR)/core/tinystr.cpp $(SRCDIR)/core/tinyxml.cpp $(SRCDIR)/core/tinyxmlerror.cpp $(SRCDIR)/core/tinyxmlparser.cpp $(SRCDIR)/core/PolySDLCore.cpp $(SRCDIR)/view/linux/PolycodeView.cpp $(SRCDIR)/core/PolyScript.cpp $(SRCDIR)/core/stb_vorbis.cpp $(SRCDIR)/duktape/duktape.cpp $(SRCDIR)/bindings/javascript/PolycodeJS.cpp $(SRCDIR)/bindings/lua/PolycodeLua.cpp
  7. OBJCORE = $(SRCCORE:.cpp=.o)
  8. DOBJCORE = $(SRCCORE:.cpp=.do)
  9. SRCUI = $(SRCDIR)/modules/ui/PolyUIBox.cpp $(SRCDIR)/modules/ui/PolyUIButton.cpp $(SRCDIR)/modules/ui/PolyUICheckBox.cpp $(SRCDIR)/modules/ui/PolyUIColorBox.cpp $(SRCDIR)/modules/ui/PolyUIComboBox.cpp $(SRCDIR)/modules/ui/PolyUIElement.cpp $(SRCDIR)/modules/ui/PolyUIEvent.cpp $(SRCDIR)/modules/ui/PolyUIFileDialog.cpp $(SRCDIR)/modules/ui/PolyUIHScrollBar.cpp $(SRCDIR)/modules/ui/PolyUIHSizer.cpp $(SRCDIR)/modules/ui/PolyUIHSlider.cpp $(SRCDIR)/modules/ui/PolyUIIconSelector.cpp $(SRCDIR)/modules/ui/PolyUIImageButton.cpp $(SRCDIR)/modules/ui/PolyUIMenu.cpp $(SRCDIR)/modules/ui/PolyUIMenuBar.cpp $(SRCDIR)/modules/ui/PolyUIScrollContainer.cpp $(SRCDIR)/modules/ui/PolyUITextInput.cpp $(SRCDIR)/modules/ui/PolyUITree.cpp $(SRCDIR)/modules/ui/PolyUITreeContainer.cpp $(SRCDIR)/modules/ui/PolyUITreeEvent.cpp $(SRCDIR)/modules/ui/PolyUIVScrollBar.cpp $(SRCDIR)/modules/ui/PolyUIVSizer.cpp $(SRCDIR)/modules/ui/PolyUIWindow.cpp
  10. OBJUI = $(SRCUI:.cpp=.o)
  11. DOBJUI = $(SRCUI:.cpp=.do)
  12. SRCPHYSICS3D = $(SRCDIR)/modules/physics3D/PolyPhysicsConstraint.cpp $(SRCDIR)/modules/physics3D/PolyPhysicsSceneEntity.cpp $(SRCDIR)/modules/physics3D/PolyPhysicsScene.cpp $(SRCDIR)/modules/physics3D/PolyCollisionSceneEntity.cpp $(SRCDIR)/modules/physics3D/PolyCollisionScene.cpp
  13. OBJPHYSICS3D = $(SRCPHYSICS3D:.cpp=.o)
  14. DOBJPHYSICS3D = $(SRCPHYSICS3D:.cpp=.do)
  15. SRCPHYSICS2D = $(SRCDIR)/modules/physics2D/PolyPhysicsScreen.cpp $(SRCDIR)/modules/physics2D/PolyPhysicsScreenEntity.cpp
  16. OBJPHYSICS2D = $(SRCPHYSICS2D:.cpp=.o)
  17. DOBJPHYSICS2D = $(SRCPHYSICS2D:.cpp=.do)
  18. SRCTEMPLATE = TemplateApp/PolycodeTemplateApp.cpp TemplateApp/PolycodeTemplate.cpp
  19. OBJTEMPLATE = $(SRCTEMPLATE:.cpp=.o)
  20. DOBJTEMPLATE = $(SRCTEMPLATE:.cpp=.do)
  21. SRCSTUDIO = Studio/main.cpp $(SRCDIR)/ide/EditorGrid.cpp $(SRCDIR)/ide/EntityEditorPropertyView.cpp $(SRCDIR)/ide/EntityEditorSettingsView.cpp $(SRCDIR)/ide/EntityEditorTreeView.cpp $(SRCDIR)/ide/ExampleBrowserWindow.cpp $(SRCDIR)/ide/ExportProjectWindow.cpp $(SRCDIR)/ide/NewFileWindow.cpp $(SRCDIR)/ide/NewProjectWindow.cpp $(SRCDIR)/ide/PolycodeClipboard.cpp $(SRCDIR)/ide/PolycodeConsole.cpp $(SRCDIR)/ide/PolycodeEditor.cpp $(SRCDIR)/ide/PolycodeEditorManager.cpp $(SRCDIR)/ide/PolycodeEntityEditor.cpp $(SRCDIR)/ide/PolycodeFontEditor.cpp $(SRCDIR)/ide/PolycodeFrame.cpp $(SRCDIR)/ide/PolycodeIDEApp.cpp $(SRCDIR)/ide/PolycodeImageEditor.cpp $(SRCDIR)/ide/PolycodeMaterialEditor.cpp $(SRCDIR)/ide/PolycodeMeshEditor.cpp $(SRCDIR)/ide/PolycodeProject.cpp $(SRCDIR)/ide/PolycodeProjectBrowser.cpp $(SRCDIR)/ide/PolycodeProjectEditor.cpp $(SRCDIR)/ide/PolycodeProjectManager.cpp $(SRCDIR)/ide/PolycodeProps.cpp $(SRCDIR)/ide/PolycodeRemoteDebugger.cpp $(SRCDIR)/ide/PolycodeSoundEditor.cpp $(SRCDIR)/ide/PolycodeSpriteEditor.cpp $(SRCDIR)/ide/PolycodeTextEditor.cpp $(SRCDIR)/ide/PolycodeToolLauncher.cpp $(SRCDIR)/ide/SettingsWindow.cpp $(SRCDIR)/ide/TextureBrowser.cpp $(SRCDIR)/ide/ToolWindows.cpp $(SRCDIR)/ide/TrackballCamera.cpp $(SRCDIR)/ide/TransformGizmo.cpp
  22. OBJSTUDIO = $(SRCSTUDIO:.cpp=.io)
  23. DOBJSTUDIO = $(SRCSTUDIO:.cpp=.dio)
  24. CFLAGS = -I../../include -std=c++11 -DUSE_X11
  25. CFLAGSSTUDIO = $(CFLAGS) -DUSE_POLYCODEUI_FILE_DIALOGS -DUSE_POLYCODEUI_MENUBAR
  26. OPTFLAGS = -O2
  27. DEBUGFLAGS = -g -DDEBUG
  28. LDFLAGSTEMPLATE = -L$(LIBDIR) $(OPTFLAGS) -pthread -lPolycore -lfreetype -lphysfs -lportaudio -lasound -lz -lSDL2 -lGLEW -lGL -lX11 -lrt -llua -ldl
  29. DLDFLAGSTEMPLATE = -L$(LIBDIR) -pthread -lPolycored -lfreetype -lphysfs -lportaudio -lasound -lz -lSDL2 -lGLEW -lGL -lX11 -lrt -llua -ldl
  30. LDFLAGSSTUDIO = -L$(LIBDIR) $(OPTFLAGS) -pthread -lPolycore -lPolycodeUI -lfreetype -lphysfs -lportaudio -lasound -lz -lSDL2 -lGLEW -lGL -lX11 -lrt -llua -ldl
  31. DLDFLAGSSTUDIO = -L$(LIBDIR) -pthread -lPolycored -lPolycodeUId -lfreetype -lphysfs -lportaudio -lasound -lz -lSDL2 -lGLEW -lGL -lX11 -lrt -llua -ldl
  32. default: setup core
  33. all: setup core ui physics3D physics2D studio
  34. debug: setup core_debug ui_debug physics3D_debug physics2D_debug studio_debug
  35. setup:
  36. @mkdir -p $(LIBDIR)
  37. @mkdir -p Studio
  38. .cpp.o:
  39. @echo "\033[1;32mBuilding \033[0m[\033[1;33m$<\033[0m]"
  40. @$(CC) $(CFLAGS) $(OPTFLAGS) -c $< -o $@
  41. .cpp.do:
  42. @echo "\033[1;32mBuilding Debug \033[0m[\033[1;33m$<\033[0m]"
  43. @$(CC) $(DEBUGFLAGS) $(CFLAGS) -c $< -o $@
  44. .cpp.io:
  45. @echo "\033[1;32mBuilding \033[0m[\033[1;33m$<\033[0m]"
  46. @$(CC) $(CFLAGSSTUDIO) $(OPTFLAGS) -c $< -o $@
  47. .cpp.dio:
  48. @echo "\033[1;32mBuilding Debug \033[0m[\033[1;33m$<\033[0m]"
  49. @$(CC) $(DEBUGFLAGS) $(CFLAGSSTUDIO) -c $< -o $@
  50. core: $(OBJCORE)
  51. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycore.a\033[0m]"
  52. @ar rcs $(LIBDIR)/libPolycore.a $(OBJCORE)
  53. core_debug: $(DOBJCORE)
  54. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycored.a\033[0m]"
  55. @ar rcs $(LIBDIR)/libPolycored.a $(DOBJCORE)
  56. ui: $(OBJUI)
  57. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycodeUI.a\033[0m]"
  58. @ar rcs $(LIBDIR)/libPolycodeUI.a $(OBJUI)
  59. ui_debug: $(DOBJUI)
  60. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycodeUId.a\033[0m]"
  61. @ar rcs $(LIBDIR)/libPolycodeUId.a $(DOBJUI)
  62. physics3D: $(OBJPHYSICS3D)
  63. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycode3DPhysics.a\033[0m]"
  64. @ar rcs $(LIBDIR)/libPolycode3DPhysics.a $(OBJPHYSICS3D)
  65. physics3D_debug: $(DOBJPHYSICS3D)
  66. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycode3DPhysicsd.a\033[0m]"
  67. @ar rcs $(LIBDIR)/libPolycode3DPhysicsd.a $(DOBJPHYSICS3D)
  68. physics2D: $(OBJPHYSICS2D)
  69. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycode2DPhysics.a\033[0m]"
  70. @ar rcs $(LIBDIR)/libPolycode2DPhysics.a $(OBJPHYSICS2D)
  71. physics2D_debug: $(DOBJPHYSICS2D)
  72. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycode2DPhysicsd.a\033[0m]"
  73. @ar rcs $(LIBDIR)/libPolycode2DPhysicsd.a $(DOBJPHYSICS2D)
  74. template: core $(OBJTEMPLATE)
  75. @echo "\033[1;32mLinking \033[0m[\033[1;33mTemplateApp/PolycodeTemplate\033[0m]"
  76. @$(CC) -o TemplateApp/PolycodeTemplate $(OBJTEMPLATE) $(LDFLAGSTEMPLATE) $(OPTFLAGS)
  77. @echo "\033[1;32mCopy Assets to: \033[0m[\033[1;33mTemplateApp\033[0m]"
  78. @cp $(ASSETDIR)/default/default.pak TemplateApp
  79. template_debug: core_debug $(DOBJTEMPLATE)
  80. @echo "\033[1;32mLinking \033[0m[\033[1;33mTemplateApp/PolycodeTemplated\033[0m]"
  81. @$(CC) -o TemplateApp/PolycodeTemplated $(DOBJTEMPLATE) $(DLDFLAGSTEMPLATE) $(DEBUGFLAGS)
  82. @echo "\033[1;32mCopy Assets to: \033[0m[\033[1;33mTemplateApp\033[0m]"
  83. @cp $(ASSETDIR)/default/default.pak TemplateApp
  84. studio: core ui $(OBJSTUDIO)
  85. @echo "\033[1;32mLinking \033[0m[\033[1;33mStudio/Polycode\033[0m]"
  86. @$(CC) -o Studio/Polycode $(OBJSTUDIO) $(LDFLAGSSTUDIO) $(CFLAGSSTUDIO) $(OPTFLAGS)
  87. @echo "\033[1;32mCopy Assets to: \033[0m[\033[1;33mStudio\033[0m]"
  88. @cp -r $(ASSETDIR)/ide/* Studio
  89. @cp $(ASSETDIR)/default/default.pak Studio
  90. @cp $(ASSETDIR)/icons/sdl_icon.bmp Studio/icon.bmp
  91. studio_debug: core_debug ui_debug $(DOBJSTUDIO)
  92. @echo "\033[1;32mLinking \033[0m[\033[1;33mStudio/Polycoded\033[0m]"
  93. @$(CC) -o Studio/Polycoded $(DOBJSTUDIO) $(DLDFLAGSSTUDIO) $(CFLAGSSTUDIO) $(DEBUGFLAGS)
  94. @echo "\033[1;32mCopy Assets to: \033[0m[\033[1;33mStudio\033[0m]"
  95. @cp -r $(ASSETDIR)/ide/* Studio
  96. @cp $(ASSETDIR)/default/default.pak Studio
  97. @cp $(ASSETDIR)/icons/sdl_icon.bmp Studio/icon.bmp
  98. clean:
  99. rm -f $(OBJCORE) $(OBJUI) $(OBJTEMPLATE) $(OBJSTUDIO) $(DOBJCORE) $(DOBJUI) $(DOBJTEMPLATE) $(DOBJSTUDIO) $(OBJPHYSICS2D) $(DOBJPHYSICS2D) $(OBJPHYSICS3D) $(DOBJPHYSICS3D) $(LIBDIR)/libPolycore.a Studio/Polycode $(LIBDIR)/libPolycodeUI.a $(LIBDIR)/libPolycode3DPhysics.a $(LIBDIR)/libPolycode2DPhysics.a TemplateApp/PolycodeTemplate $(LIBDIR)/libPolycored.a Studio/Polycoded $(LIBDIR)/libPolycodeUId.a $(LIBDIR)/libPolycode3DPhysicsd.a $(LIBDIR)/libPolycode2DPhysicsd.a TemplateApp/PolycodeTemplated