Makefile 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # Get current platform
  2. ifeq ($(shell uname -m), x86_64)
  3. ARCH = x86_64
  4. else
  5. ARCH = i386
  6. endif
  7. # Get current OS
  8. ifeq ($(shell uname), Linux)
  9. OS = linux
  10. else ifeq ($(shell uname), Darwin)
  11. OS = darwin
  12. ARCH = i386
  13. endif
  14. # Variables
  15. # Rus: введите свой путь к FPC
  16. # Eng: enter your path to FPC
  17. FPC = fpc
  18. FLAGS = -O3 -XsX -CX -Sd -al
  19. INCLUDE = -Fu../../../headers -Fi../../../headers -Fi../../../srcGEGL -Fi../../../src -Fi../../../srcGL -Fu../../../srcGEGL -Fu../../../extra -Fu../../../src -Fu../../../srcGL
  20. LIBS = -Fu../../../lib/jpeg/$(ARCH)-$(OS) -Fu../../../lib/ogg/$(ARCH)-$(OS) -Fu../../../lib/theora/$(ARCH)-$(OS) -Fu../../../lib/zlib/$(ARCH)-$(OS) -Fu../../../lib/zip/$(ARCH)-$(OS)
  21. LIBSPPC = -Fu../../../lib/jpeg/powerpc-$(OS) -Fu../../../lib/ogg/powerpc-$(OS) -Fu../../../lib/theora/powerpc-$(OS) -Fu../../../lib/zlib/powerpc-$(OS) -Fu../../../lib/zip/powerpc-$(OS)
  22. OUTPUT = ../../../bin/
  23. TMP = ../tmp/
  24. UNIT = demo05.pas
  25. TARGET = demo05
  26. TARGETW = demo05.exe
  27. TARGETM = demo05
  28. BUNDLE = $(OUTPUT)$(TARGETM).app
  29. # Targets
  30. all: clean
  31. $(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT)$(ARCH)-$(OS)/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX
  32. strip $(OUTPUT)$(ARCH)-$(OS)/$(TARGET) --strip-unneeded -R .comment -R .note
  33. linux32: clean
  34. $(FPC) $(UNIT) $(INCLUDE) \
  35. -Fu../../../lib/jpeg/i386-linux \
  36. -Fu../../../lib/ogg/i386-linux \
  37. -Fu../../../lib/theora/i386-linux \
  38. -Fu../../../lib/zlib/i386-linux \
  39. -Fu../../../lib/zip/i386-linux \
  40. -FE$(OUTPUT)i386-linux/ -FU$(TMP) $(FLAGS) -o$(TARGET) -TLINUX -Pi386 -Xd
  41. strip $(OUTPUT)i386-linux/$(TARGET) --strip-unneeded -R .comment -R .note
  42. win32: clean
  43. $(FPC) $(UNIT) $(INCLUDE) \
  44. -Fu../../../lib/jpeg/i386-win32 \
  45. -Fu../../../lib/msvcrt/i386 \
  46. -Fu../../../lib/ogg/i386-win32 \
  47. -Fu../../../lib/theora/i386-win32 \
  48. -Fu../../../lib/zlib/i386-win32 \
  49. -Fu../../../lib/zip/i386-win32 \
  50. -FE$(OUTPUT)i386-win32/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN32 -Pi386 -WG
  51. win64: clean
  52. $(FPC) $(UNIT) $(INCLUDE) \
  53. -Fu../../../lib/jpeg/x86_64-win64 \
  54. -Fu../../../lib/msvcrt/x86_64 \
  55. -Fu../../../lib/ogg/x86_64-win64 \
  56. -Fu../../../lib/theora/x86_64-win64 \
  57. -Fu../../../lib/zlib/x86_64-win64 \
  58. -Fu../../../lib/zip/x86_64-win64 \
  59. -FE$(OUTPUT)x86_64-win64/ -FU$(TMP) $(FLAGS) -o$(TARGETW) -TWIN64 -Px86_64 -WG
  60. macosx: clean
  61. rm -Rf $(BUNDLE)
  62. mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
  63. $(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM) -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
  64. mv $(OUTPUT)$(TARGETM) $(BUNDLE)/Contents/MacOS/
  65. sh macosx_postbuild.sh
  66. macosx_uni: clean
  67. rm -Rf $(BUNDLE)
  68. mkdir {$(BUNDLE),$(BUNDLE)/{Contents,Contents/{MacOS,Resources,Frameworks}}}
  69. $(FPC) $(UNIT) $(INCLUDE) $(LIBS) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-386 -TDARWIN -Pi386 -k"-macosx_version_min" -k"10.4"
  70. $(FPC) $(UNIT) $(INCLUDE) $(LIBSPPC) -FE$(OUTPUT) -FU$(TMP) $(FLAGS) -o$(TARGETM)-ppc -TDARWIN -Ppowerpc -k"-macosx_version_min" -k"10.4"
  71. lipo -create $(OUTPUT)$(TARGETM)-ppc $(OUTPUT)$(TARGETM)-386 -output $(BUNDLE)/Contents/MacOS/$(TARGETM)
  72. rm $(OUTPUT)$(TARGETM)-386 $(OUTPUT)$(TARGETM)-ppc
  73. sh macosx_postbuild.sh
  74. clean:
  75. rm -f *.*~
  76. rm -f $(TMP)*.*