Makefile 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. CC=gcc
  2. CFLAGS=-g -O2
  3. OBJCFLAGS=-fobjc-exceptions
  4. LDFLAGS=-single_module -read_only_relocs suppress
  5. # We should set this properly.
  6. top_srcdir=../../..
  7. top_builddir=../../..
  8. LIBVLC_HEADERS=$(top_srcdir)/include
  9. VLCCONFIG=$(top_srcdir)/vlc-config
  10. MODULES = $(patsubst %,$(SRC_DIR)/%,$(_MODULES))
  11. HEADERS_DIR = Headers
  12. _EXPORTED_HEADERS= \
  13. VLC/VLC.h \
  14. VLC/VLCMedia.h \
  15. VLC/VLCMediaDiscoverer.h \
  16. VLC/VLCMediaLibrary.h \
  17. VLC/VLCPlaylist.h \
  18. VLC/VLCPlaylistDataSource.h \
  19. VLC/VLCServicesDiscoverer.h \
  20. VLC/VLCTime.h \
  21. VLC/VLCVideoView.h
  22. EXPORTED_HEADERS = $(patsubst %,$(HEADERS_DIR)/%,$(_EXPORTED_HEADERS))
  23. EXPORTED_RESOURCES= \
  24. Resources/Info.plist \
  25. Resources/version.plist
  26. SRC_DIR = Sources
  27. _SRC = \
  28. test.m \
  29. VLCEventManager.m \
  30. VLCLibrary.m \
  31. VLCMedia.m \
  32. VLCMediaLibrary.m \
  33. VLCMediaDiscoverer.m \
  34. VLCPlaylist.m \
  35. VLCPlaylistDataSource.m \
  36. VLCServicesDiscoverer.m \
  37. VLCTime.m \
  38. VLCVideoView.m
  39. SRC = $(patsubst %,$(SRC_DIR)/%,$(_SRC))
  40. HEADERS = $(EXPORTED_HEADERS)
  41. INCLUDES= -I . -I $(LIBVLC_HEADERS) -I $(HEADERS_DIR)
  42. FRAMEWORKS= -framework Cocoa
  43. OBJECTS=$(SRC:.m=.o)
  44. all: VLC.framework
  45. $(OBJECTS): $(HEADERS)
  46. .m.o: $<
  47. $(CC) -c $(CFLAGS) $(OBJCFLAGS) $(INCLUDES) $< -o $@
  48. DIR = VLC.framework \
  49. VLC.framework/Version/Current/Framework \
  50. VLC.framework/Version/Current/Headers \
  51. VLC.framework/lib/libvlc.dylib: $(top_builddir)/src/.libs/libvlc.dylib VLC.framework/lib
  52. cp -f $(top_builddir)/src/.libs/libvlc.1.dylib VLC.framework/lib/libvlc.dylib && \
  53. install_name_tool -id `pwd`/VLC.framework/lib/libvlc.1.dylib \
  54. VLC.framework/lib/libvlc.dylib
  55. install_name_tool -change @executable_path/lib/vlc_libintl.dylib \
  56. `pwd`/VLC.framework/lib/vlc_libintl.dylib $@
  57. VLC.framework/lib/libvlc-control.dylib: $(top_builddir)/src/.libs/libvlc-control.dylib VLC.framework/lib
  58. mkdir -p VLC.framework/Version/Current/lib && \
  59. cp -f $< $@ && \
  60. install_name_tool -id `pwd`/$@ $@ && \
  61. install_name_tool -change /usr/local/lib/libvlc.1.dylib \
  62. `pwd`/VLC.framework/lib/libvlc.dylib $@
  63. install_name_tool -change @executable_path/lib/vlc_libintl.dylib \
  64. `pwd`/VLC.framework/lib/vlc_libintl.dylib $@
  65. VLC.framework/Headers: $(HEADERS)
  66. mkdir -p VLC.framework/Version/Current/Headers && \
  67. cp -f $(EXPORTED_HEADERS) VLC.framework/Version/Current/Headers && \
  68. ln -sf Version/Current/Headers VLC.framework
  69. VLC.framework/Resources:
  70. mkdir -p VLC.framework/Version/Current/Resources && \
  71. cp -f $(EXPORTED_RESOURCES) VLC.framework/Version/Current/Resources && \
  72. ln -sf Version/Current/Resources VLC.framework
  73. VLC.framework/modules:
  74. /usr/bin/install -c -d ./VLC.framework/Version/Current/modules && \
  75. for i in `top_builddir="$(top_builddir)" $(VLCCONFIG) --target plugin` ; do \
  76. if test -n "$$i" ; \
  77. then \
  78. cp "`pwd`/`dirname $$i`/.libs/`basename $$i`.dylib" \
  79. "./VLC.framework/Version/Current/modules" ; \
  80. module="./VLC.framework/Version/Current/modules/`basename $$i`.dylib"; \
  81. install_name_tool -change /usr/local/lib/libvlc.1.dylib \
  82. @loader_path/../lib/libvlc.dylib \
  83. "$$module"; \
  84. echo "changing install name of $$module";\
  85. for lib in `otool -L "$$module" | grep @executable_path | sed 's/(\([0-z]*\ *\.*\,*\)*)//g'` ; do \
  86. install_name_tool -change "$$lib" \
  87. `echo "$$lib" | sed 's:executable_path:loader_path/../:'` \
  88. "$$module"; \
  89. done; \
  90. fi \
  91. done && \
  92. ln -sf Version/Current/modules VLC.framework
  93. VLC.framework/share:
  94. cp -R $(top_builddir)/share ./VLC.framework/Version/Current && \
  95. ln -sf Version/Current/share ./VLC.framework
  96. VLC.framework/lib:
  97. mkdir -p VLC.framework/Version/Current/lib && \
  98. if test -d $(top_builddir)/extras/contrib/vlc-lib; then \
  99. for i in $(top_builddir)/extras/contrib/vlc-lib/*.dylib ; do \
  100. module="VLC.framework/Version/Current/lib/`basename $${i}`"; \
  101. cp `pwd`/$${i} $${module} ; \
  102. install_name_tool -change /usr/local/lib/libvlc.1 @loader_path/../lib/libvlc.dylib \
  103. $${module}; \
  104. echo "changing install name of $$module";\
  105. for lib in `otool -L "$$module" | grep @executable_path | sed 's/(\([0-z]*\ *\.*\,*\)*)//g'` ; do \
  106. install_name_tool -change "$$lib" \
  107. `echo "$$lib" | sed 's:executable_path:loader_path/../:'` \
  108. "$$module"; \
  109. done; \
  110. done \
  111. fi && \
  112. ln -sf Version/Current/lib VLC.framework
  113. VLC.framework/VLC:
  114. ln -sf Version/Current/VLC VLC.framework
  115. VLC.framework/Version/Current/VLC: $(OBJECTS) VLC.framework/Headers VLC.framework/Resources VLC.framework/lib/libvlc-control.dylib VLC.framework/lib/libvlc.dylib VLC.framework/modules VLC.framework/share VLC.framework/VLC
  116. mkdir -p VLC.framework/Version/Current/Framework && \
  117. $(CXX) -dynamiclib $(LDFLAGS) $(OBJECTS) $(FRAMEWORKS) -LVLC.framework/lib -lvlc -lvlc-control $(MODULES) $(LIBS) -install_name @loader_path/../Frameworks/VLC.framework/Version/Current/VLC -o VLC.framework/Version/Current/VLC && \
  118. install_name_tool -change `pwd`/VLC.framework/lib/libvlc-control.0.dylib \
  119. `pwd`/VLC.framework/lib/libvlc-control.dylib \
  120. VLC.framework/Version/Current/VLC && \
  121. install_name_tool -change `pwd`/VLC.framework/lib/libvlc.1.dylib \
  122. `pwd`/VLC.framework/lib/libvlc.dylib \
  123. VLC.framework/Version/Current/VLC && \
  124. touch VLC.framework
  125. VLC.framework:: VLC.framework/Version/Current/VLC
  126. .PHONY: clean
  127. clean:
  128. rm -Rf VLC.framework
  129. rm -Rf $(OBJECTS) *.o $(SRC_DIR)/*.o