Makefile 8.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. CC=emcc
  2. SRCDIR=../../src
  3. ASSETDIR=../../assets
  4. .SUFFIXES: .io .do .dio
  5. 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/PolyGPUDrawBuffer.cpp $(SRCDIR)/core/PolyImage.cpp $(SRCDIR)/core/PolyInputEvent.cpp $(SRCDIR)/core/PolyLabel.cpp $(SRCDIR)/core/PolyLogger.cpp $(SRCDIR)/core/PolyMaterial.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/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/PolySDLAudioInterface.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/PolyEmscriptenCore.cpp $(SRCDIR)/view/linux/PolycodeView.cpp $(SRCDIR)/core/PolyScript.cpp $(SRCDIR)/duktape/duktape.cpp $(SRCDIR)/bindings/javascript/PolycodeJS.cpp $(SRCDIR)/bindings/lua/PolycodeLua.cpp
  6. OBJCORE=$(SRCCORE:.cpp=.o)
  7. DOBJCORE=$(SRCCORE:.cpp=.do)
  8. 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
  9. OBJUI=$(SRCUI:.cpp=.o)
  10. DOBJUI=$(SRCUI:.cpp=.do)
  11. SRCTEMPLATE=TemplateApp/PolycodeTemplateApp.cpp TemplateApp/PolycodeTemplate.cpp
  12. OBJTEMPLATE=$(SRCTEMPLATE:.cpp=.o)
  13. DOBJTEMPLATE=$(SRCTEMPLATE:.cpp=.do)
  14. 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
  15. OBJSTUDIO=$(SRCSTUDIO:.cpp=.io)
  16. DOBJSTUDIO=$(SRCSTUDIO:.cpp=.dio)
  17. CFLAGS=-I../../include
  18. CFLAGSSTUDIO=$(CFLAGS) -DUSE_POLYCODEUI_FILE_DIALOGS -DUSE_POLYCODEUI_MENUBAR
  19. LIBDIR=../../lib/emscripten
  20. OPTFLAGS=-O2 -std=c++11
  21. DEBUGFLAGS=-g -DDEBUG
  22. OPTFLAGS += -s USE_SDL=2 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=8 -DSTRICT_OPENGLES2 -DNO_OGG -DNO_LUA -DNO_FREETYPE -DNO_PHYSFS -DNO_PAUDIO
  23. OPTAPPFLAGS= -s USE_SDL=2 -s ALLOW_MEMORY_GROWTH=1 ../../lib/emscripten/freetype.bc ../../lib/emscripten/libPolycore.bc
  24. LDFLAGSTEMPLATE=-L$(LIBDIR) $(OPTFLAGS) -pthread -lrt -lPolycore -lfreetype -lpng -lphysfs -lvorbisfile -lvorbis -logg -lportaudio -lasound -lz -lSDL -lGLEW -lGL -llua -ldl
  25. DLDFLAGSTEMPLATE=-L$(LIBDIR) -pthread -lrt -lPolycored -lfreetype -lpng -lphysfs -lvorbisfile -lvorbis -logg -lportaudio -lasound -lz -lSDL -lGLEW -lGL -llua -ldl
  26. LDFLAGSSTUDIO=-L$(LIBDIR) $(OPTFLAGS) -pthread -lrt -lPolycore -lPolycodeUI -lfreetype -lpng -lphysfs -lvorbisfile -lvorbis -logg -lportaudio -lasound -lz -lSDL -lGLEW -lGL -llua -ldl
  27. DLDFLAGSSTUDIO=-L$(LIBDIR) -pthread -lrt -lPolycored -lPolycodeUId -lfreetype -lpng -lphysfs -lvorbisfile -lvorbis -logg -lportaudio -lasound -lz -lSDL -lGLEW -lGL -llua -ldl
  28. TEMPLATEFILES=--preload-file main_icon.png --preload-file default
  29. default: setup core
  30. all: setup core ui
  31. setup:
  32. @mkdir -p $(LIBDIR)
  33. @mkdir -p Studio
  34. .cpp.o:
  35. @echo "\033[1;32mBuilding \033[0m[\033[1;33m$<\033[0m]"
  36. @$(CC) $(CFLAGS) $(OPTFLAGS) -c $< -o $@
  37. .cpp.do:
  38. @echo "\033[1;32mBuilding Debug \033[0m[\033[1;33m$<\033[0m]"
  39. @$(CC) $(DEBUGFLAGS) $(CFLAGS) -c $< -o $@
  40. .cpp.io:
  41. @echo "\033[1;32mBuilding \033[0m[\033[1;33m$<\033[0m]"
  42. @$(CC) $(CFLAGSSTUDIO) $(OPTFLAGS) -c $< -o $@
  43. .cpp.dio:
  44. @echo "\033[1;32mBuilding Debug \033[0m[\033[1;33m$<\033[0m]"
  45. @$(CC) $(DEBUGFLAGS) $(CFLAGSSTUDIO) -c $< -o $@
  46. core: $(OBJCORE)
  47. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycore.a\033[0m]"
  48. @ar rcs $(LIBDIR)/libPolycore.bc $(OBJCORE)
  49. core_debug: $(DOBJCORE)
  50. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycored.a\033[0m]"
  51. @ar rcs $(LIBDIR)/libPolycored.a $(DOBJCORE)
  52. ui: $(OBJUI)
  53. @echo "\033[1;32mLinking \033[0m[\033[1;33m$(LIBDIR)/libPolycodeUI.a\033[0m]"
  54. @ar rcs $(LIBDIR)/libPolycodeUI.a $(OBJUI)
  55. template: core $(OBJTEMPLATE)
  56. @echo "\033[1;32mLinking \033[0m[\033[1;33mTemplateApp/PolycodeTemplate\033[0m]"
  57. @$(CC) -o TemplateApp/PolycodeTemplate.bc $(OBJTEMPLATE) $(LDFLAGSTEMPLATE) $(OPTFLAGS)
  58. @emcc TemplateApp/PolycodeTemplate.bc $(OPTAPPFLAGS) $(TEMPLATEFILES) -o TemplateApp/index.html
  59. @echo "\033[1;32mCopy Assets to: \033[0m[\033[1;33mTemplateApp\033[0m]"
  60. @cp $(ASSETDIR)/default/default.pak TemplateApp
  61. clean:
  62. rm -f $(OBJCORE) $(OBJUI) $(OBJTEMPLATE) $(OBJSTUDIO) $(DOBJCORE) $(DOBJUI) $(DOBJTEMPLATE) $(DOBJSTUDIO) $(LIBDIR)/libPolycore.a Studio/Polycode $(LIBDIR)/libPolycodeUI.a TemplateApp/PolycodeTemplate $(LIBDIR)/libPolycored.a Studio/Polycoded $(LIBDIR)/libPolycodeUId.a TemplateApp/PolycodeTemplated