1# This file contains port specific Makefile rules. It is automatically
2# included by the default (main) Makefile.
3#
4
5#
6# POSIX specific
7#
8install-data:
9	$(INSTALL) -d "$(DESTDIR)$(mandir)/man6/"
10	$(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.6" "$(DESTDIR)$(mandir)/man6/scummvm.6"
11	$(INSTALL) -d "$(DESTDIR)$(datarootdir)/pixmaps/"
12	$(INSTALL) -c -m 644 "$(srcdir)/icons/scummvm.xpm" "$(DESTDIR)$(datarootdir)/pixmaps/scummvm.xpm"
13	$(INSTALL) -d "$(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/"
14	$(INSTALL) -c -m 644 "$(srcdir)/icons/scummvm.svg" "$(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/scummvm.svg"
15	$(INSTALL) -d "$(DESTDIR)$(docdir)"
16	$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) "$(DESTDIR)$(docdir)"
17	$(INSTALL) -d "$(DESTDIR)$(datadir)"
18	$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_NETWORKING) $(DIST_FILES_VKEYBD) $(DIST_FILES_ENGINEDATA) "$(DESTDIR)$(datadir)/"
19	$(INSTALL) -d "$(DESTDIR)$(datarootdir)/applications"
20	$(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.desktop" "$(DESTDIR)$(datarootdir)/applications/scummvm.desktop"
21	$(INSTALL) -d "$(DESTDIR)$(datarootdir)/metainfo"
22	$(INSTALL) -c -m 644 "$(srcdir)/dists/scummvm.appdata.xml" "$(DESTDIR)$(datarootdir)/metainfo/scummvm.appdata.xml"
23ifneq ($(DIST_FILES_SHADERS),)
24	$(INSTALL) -d "$(DESTDIR)$(datadir)/shaders"
25	$(INSTALL) -c -m 644 $(DIST_FILES_SHADERS) "$(DESTDIR)$(datadir)/shaders"
26endif
27
28install: install-data
29	$(INSTALL) -d "$(DESTDIR)$(bindir)"
30	$(INSTALL) -c -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(bindir)/$(EXECUTABLE)"
31ifdef DYNAMIC_MODULES
32	$(INSTALL) -d "$(DESTDIR)$(libdir)/scummvm/"
33	$(INSTALL) -c -m 644 $(PLUGINS) "$(DESTDIR)$(libdir)/scummvm/"
34endif
35
36install-strip: install-data
37	$(INSTALL) -d "$(DESTDIR)$(bindir)"
38	$(INSTALL) -c -s -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(bindir)/$(EXECUTABLE)"
39ifdef DYNAMIC_MODULES
40	$(INSTALL) -d "$(DESTDIR)$(libdir)/scummvm/"
41	$(INSTALL) -c -s -m 644 $(PLUGINS) "$(DESTDIR)$(libdir)/scummvm/"
42endif
43
44uninstall:
45	rm -f "$(DESTDIR)$(bindir)/$(EXECUTABLE)"
46	rm -f "$(DESTDIR)$(mandir)/man6/scummvm.6"
47	rm -f "$(DESTDIR)$(datarootdir)/pixmaps/scummvm.xpm"
48	rm -f "$(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/scummvm.svg"
49	rm -rf "$(DESTDIR)$(docdir)"
50	rm -rf "$(DESTDIR)$(datadir)"
51	rm -f "$(DESTDIR)$(datarootdir)/applications/scummvm.desktop"
52	rm -f "$(DESTDIR)$(datarootdir)/metainfo/scummvm.appdata.xml"
53ifdef DYNAMIC_MODULES
54	rm -rf "$(DESTDIR)$(libdir)/scummvm/"
55endif
56
57# Special generic target for simple archive distribution
58
59dist-generic: $(EXECUTABLE)
60	mkdir -p ./dist-generic/scummvm/data
61	mkdir -p ./dist-generic/scummvm/doc
62	cp $(EXECUTABLE) ./dist-generic/scummvm
63	cp $(DIST_FILES_DOCS) ./dist-generic/scummvm/doc
64	cp $(DIST_FILES_THEMES) ./dist-generic/scummvm/data
65ifdef DIST_FILES_ENGINEDATA
66	cp $(DIST_FILES_ENGINEDATA) ./dist-generic/scummvm/data
67endif
68ifdef DIST_FILES_NETWORKING
69	cp $(DIST_FILES_NETWORKING) ./dist-generic/scummvm/data
70endif
71ifdef DIST_FILES_VKEYBD
72	cp $(DIST_FILES_VKEYBD) ./dist-generic/scummvm/data
73endif
74ifdef DIST_FILES_SHADERS
75	mkdir -p ./dist-generic/scummvm/data/shaders
76	cp $(DIST_FILES_SHADERS) ./dist-generic/scummvm/data/shaders
77endif
78
79# Special target to create a application wrapper for Mac OS X
80
81ifdef USE_DOCKTILEPLUGIN
82
83# The NsDockTilePlugIn needs to be compiled in both 32 and 64 bits irrespective of how ScummVM itself is compiled.
84# Therefore do not use $(CXXFLAGS) and $(LDFLAGS).
85
86ScummVMDockTilePlugin32.o:
87	$(CXX) -mmacosx-version-min=10.6 -arch i386 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin32.o
88
89ScummVMDockTilePlugin32: ScummVMDockTilePlugin32.o
90	$(CXX) -mmacosx-version-min=10.6 -arch i386 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin32.o -o ScummVMDockTilePlugin32
91
92ScummVMDockTilePlugin64.o:
93	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin64.o
94
95ScummVMDockTilePlugin64: ScummVMDockTilePlugin64.o
96	$(CXX) -mmacosx-version-min=10.6 -arch x86_64 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin64.o -o ScummVMDockTilePlugin64
97
98ifdef MACOSX_64_BITS_ONLY
99ScummVMDockTilePlugin: ScummVMDockTilePlugin64
100	cp ScummVMDockTilePlugin64 ScummVMDockTilePlugin
101else
102ScummVMDockTilePlugin: ScummVMDockTilePlugin32 ScummVMDockTilePlugin64
103	lipo -create ScummVMDockTilePlugin32 ScummVMDockTilePlugin64 -output ScummVMDockTilePlugin
104endif
105
106scummvm.docktileplugin: ScummVMDockTilePlugin
107	mkdir -p scummvm.docktileplugin/Contents
108	cp $(srcdir)/dists/macosx/dockplugin/Info.plist scummvm.docktileplugin/Contents
109	mkdir -p scummvm.docktileplugin/Contents/MacOS
110	cp ScummVMDockTilePlugin scummvm.docktileplugin/Contents/MacOS/
111	chmod 644 scummvm.docktileplugin/Contents/MacOS/ScummVMDockTilePlugin
112
113endif
114
115bundle_name = ScummVM.app
116
117bundle-pack:
118	mkdir -p $(bundle_name)/Contents/MacOS
119	mkdir -p $(bundle_name)/Contents/Resources
120	echo "APPL????" > $(bundle_name)/Contents/PkgInfo
121	sed -e 's/$$(PRODUCT_BUNDLE_IDENTIFIER)/org.scummvm.scummvm/' $(srcdir)/dists/macosx/Info.plist >$(bundle_name)/Contents/Info.plist
122ifdef USE_SPARKLE
123	mkdir -p $(bundle_name)/Contents/Frameworks
124	cp $(srcdir)/dists/macosx/dsa_pub.pem $(bundle_name)/Contents/Resources/
125	rm -rf $(bundle_name)/Contents/Frameworks/Sparkle.framework
126	cp -R $(SPARKLEPATH)/Sparkle.framework $(bundle_name)/Contents/Frameworks/
127endif
128ifdef MACOSX_USE_LEGACY_ICONS
129	cp $(srcdir)/icons/scummvm_legacy.icns $(bundle_name)/Contents/Resources/scummvm.icns
130else
131	cp $(srcdir)/icons/scummvm.icns $(bundle_name)/Contents/Resources/scummvm.icns
132endif
133	cp $(DIST_FILES_DOCS) $(bundle_name)/Contents/Resources/
134	cp $(DIST_FILES_THEMES) $(bundle_name)/Contents/Resources/
135ifdef DIST_FILES_NETWORKING
136	cp $(DIST_FILES_NETWORKING) $(bundle_name)/Contents/Resources/
137endif
138ifdef DIST_FILES_ENGINEDATA
139	cp $(DIST_FILES_ENGINEDATA) $(bundle_name)/Contents/Resources/
140endif
141ifdef DIST_FILES_VKEYBD
142	cp $(DIST_FILES_VKEYBD) $(bundle_name)/Contents/Resources/
143endif
144ifneq ($(DIST_FILES_SHADERS),)
145	mkdir -p $(bundle_name)/Contents/Resources/shaders
146	cp $(DIST_FILES_SHADERS) $(bundle_name)/Contents/Resources/shaders/
147endif
148	$(srcdir)/devtools/credits.pl --rtf > $(bundle_name)/Contents/Resources/AUTHORS.rtf
149	rm $(bundle_name)/Contents/Resources/AUTHORS
150	@sed -i'' -e "s/AUTHORS/AUTHORS.rtf/g" $(bundle_name)/Contents/Resources/README.md
151ifdef USE_PANDOC
152	@sed -i'' -e "s|href=\"AUTHORS\"|href=\"https://www.scummvm.org/credits/\"|g" $(bundle_name)/Contents/Resources/README$(PANDOCEXT)
153endif
154	cp $(bundle_name)/Contents/Resources/COPYING.LGPL $(bundle_name)/Contents/Resources/COPYING-LGPL
155	cp $(bundle_name)/Contents/Resources/COPYING.FREEFONT $(bundle_name)/Contents/Resources/COPYING-FREEFONT
156	cp $(bundle_name)/Contents/Resources/COPYING.OFL $(bundle_name)/Contents/Resources/COPYING-OFL
157	cp $(bundle_name)/Contents/Resources/COPYING.BSD $(bundle_name)/Contents/Resources/COPYING-BSD
158	chmod 644 $(bundle_name)/Contents/Resources/*
159ifneq ($(DIST_FILES_SHADERS),)
160	chmod 755 $(bundle_name)/Contents/Resources/shaders
161endif
162	cp scummvm-static $(bundle_name)/Contents/MacOS/scummvm
163	chmod 755 $(bundle_name)/Contents/MacOS/scummvm
164	$(STRIP) $(bundle_name)/Contents/MacOS/scummvm
165ifdef USE_DOCKTILEPLUGIN
166	mkdir -p $(bundle_name)/Contents/PlugIns
167	cp -r scummvm.docktileplugin $(bundle_name)/Contents/PlugIns/
168endif
169	codesign -s - --deep --force $(bundle_name)
170
171ifdef USE_DOCKTILEPLUGIN
172bundle: scummvm-static scummvm.docktileplugin bundle-pack
173else
174bundle: scummvm-static bundle-pack
175endif
176
177iphonebundle: iphone
178	mkdir -p $(bundle_name)
179	cp $(srcdir)/dists/iphone/Info.plist $(bundle_name)/
180	sed -i'' -e 's/$$(PRODUCT_BUNDLE_IDENTIFIER)/org.scummvm.scummvm/' $(bundle_name)/Info.plist
181	sed -i'' -e 's/$$(EXECUTABLE_NAME)/ScummVM/' $(bundle_name)/Info.plist
182	cp $(DIST_FILES_DOCS) $(bundle_name)/
183	cp $(DIST_FILES_THEMES) $(bundle_name)/
184ifdef DIST_FILES_NETWORKING
185	cp $(DIST_FILES_NETWORKING) $(bundle_name)/
186endif
187ifdef DIST_FILES_ENGINEDATA
188	cp $(DIST_FILES_ENGINEDATA) $(bundle_name)/
189endif
190ifdef DIST_FILES_VKEYBD
191	cp $(DIST_FILES_VKEYBD) $(bundle_name)/
192endif
193	$(STRIP) scummvm
194	chmod 755 scummvm
195	cp scummvm $(bundle_name)/ScummVM
196	cp $(srcdir)/dists/iphone/icon.png $(bundle_name)/
197	cp $(srcdir)/dists/iphone/icon-72.png $(bundle_name)/
198	cp $(srcdir)/dists/iphone/Default.png $(bundle_name)/
199	codesign -s - --deep --force $(bundle_name)
200
201ios7bundle: iphone
202	mkdir -p $(bundle_name)
203	awk 'BEGIN {s=0}\
204		/<key>CFBundleIcons<\/key>/ {\
205			print $$0;\
206			print "\t<dict>";\
207			print "\t\t<key>CFBundlePrimaryIcon</key>";\
208			print "\t\t<dict>";\
209			print "\t\t\t<key>CFBundleIconFiles</key>";\
210			print "\t\t\t<array>";\
211			print "\t\t\t\t<string>AppIcon29x29</string>";\
212			print "\t\t\t\t<string>AppIcon40x40</string>";\
213			print "\t\t\t\t<string>AppIcon60x60</string>";\
214			print "\t\t\t</array>";\
215			print "\t\t</dict>";\
216			print "\t</dict>";\
217			s=2}\
218		/<key>CFBundleIcons~ipad<\/key>/ {\
219			print $$0;\
220			print "\t<dict>";\
221			print "\t\t<key>CFBundlePrimaryIcon</key>";\
222			print "\t\t<dict>";\
223			print "\t\t\t<key>CFBundleIconFiles</key>";\
224			print "\t\t\t<array>";\
225			print "\t\t\t\t<string>AppIcon29x29</string>";\
226			print "\t\t\t\t<string>AppIcon40x40</string>";\
227			print "\t\t\t\t<string>AppIcon60x60</string>";\
228			print "\t\t\t\t<string>AppIcon76x76</string>";\
229			print "\t\t\t\t<string>AppIcon83.5x83.5</string>";\
230			print "\t\t\t</array>";\
231			print "\t\t</dict>";\
232			print "\t</dict>";\
233			s=2}\
234		/<key>UILaunchImages<\/key>/ {\
235			print $$0;\
236			print "\t<array>";\
237			print "\t\t<dict>";\
238			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
239			print "\t\t\t<string>8.0</string>";\
240			print "\t\t\t<key>UILaunchImageName</key>";\
241			print "\t\t\t<string>LaunchImage-800-Portrait-736h</string>";\
242			print "\t\t\t<key>UILaunchImageOrientation</key>";\
243			print "\t\t\t<string>Portrait</string>";\
244			print "\t\t\t<key>UILaunchImageSize</key>";\
245			print "\t\t\t<string>{414, 736}</string>";\
246			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
247			print "\t\t\t<string>8.0</string>";\
248			print "\t\t\t<key>UILaunchImageName</key>";\
249			print "\t\t\t<string>LaunchImage-800-Landscape-736h</string>";\
250			print "\t\t\t<key>UILaunchImageOrientation</key>";\
251			print "\t\t\t<string>Landscape</string>";\
252			print "\t\t\t<key>UILaunchImageSize</key>";\
253			print "\t\t\t<string>{414, 736}</string>";\
254			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
255			print "\t\t\t<string>8.0</string>";\
256			print "\t\t\t<key>UILaunchImageName</key>";\
257			print "\t\t\t<string>LaunchImage-800-667h</string>";\
258			print "\t\t\t<key>UILaunchImageOrientation</key>";\
259			print "\t\t\t<string>Portrait</string>";\
260			print "\t\t\t<key>UILaunchImageSize</key>";\
261			print "\t\t\t<string>{375, 667}</string>";\
262			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
263			print "\t\t\t<string>7.0</string>";\
264			print "\t\t\t<key>UILaunchImageName</key>";\
265			print "\t\t\t<string>LaunchImage-700-568h</string>";\
266			print "\t\t\t<key>UILaunchImageOrientation</key>";\
267			print "\t\t\t<string>Portrait</string>";\
268			print "\t\t\t<key>UILaunchImageSize</key>";\
269			print "\t\t\t<string>{320, 568}</string>";\
270			print "\t\t</dict>";\
271			print "\t\t<dict>";\
272			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
273			print "\t\t\t<string>7.0</string>";\
274			print "\t\t\t<key>UILaunchImageName</key>";\
275			print "\t\t\t<string>LaunchImage-700-Portrait</string>";\
276			print "\t\t\t<key>UILaunchImageOrientation</key>";\
277			print "\t\t\t<string>Portrait</string>";\
278			print "\t\t\t<key>UILaunchImageSize</key>";\
279			print "\t\t\t<string>{768, 1024}</string>";\
280			print "\t\t</dict>";\
281			print "\t\t<dict>";\
282			print "\t\t\t<key>UILaunchImageMinimumOSVersion</key>";\
283			print "\t\t\t<string>7.0</string>";\
284			print "\t\t\t<key>UILaunchImageName</key>";\
285			print "\t\t\t<string>LaunchImage-700-Landscape</string>";\
286			print "\t\t\t<key>UILaunchImageOrientation</key>";\
287			print "\t\t\t<string>Landscape</string>";\
288			print "\t\t\t<key>UILaunchImageSize</key>";\
289			print "\t\t\t<string>{768, 1024}</string>";\
290			print "\t\t</dict>";\
291			print "\t</array>";\
292			s=2}\
293		s==0 {print $$0}\
294		s > 0 { s-- }' $(srcdir)/dists/ios7/Info.plist >$(bundle_name)/Info.plist
295	sed -i'' -e 's/$$(PRODUCT_BUNDLE_IDENTIFIER)/org.scummvm.scummvm/' $(bundle_name)/Info.plist
296	sed -i'' -e 's/$$(EXECUTABLE_NAME)/ScummVM/' $(bundle_name)/Info.plist
297	sed -i'' -e '/UILaunchStoryboardName/{N;d;}' $(bundle_name)/Info.plist
298	cp $(DIST_FILES_DOCS) $(bundle_name)/
299	cp $(DIST_FILES_THEMES) $(bundle_name)/
300ifdef DIST_FILES_NETWORKING
301	cp $(DIST_FILES_NETWORKING) $(bundle_name)/
302endif
303ifdef DIST_FILES_ENGINEDATA
304	cp $(DIST_FILES_ENGINEDATA) $(bundle_name)/
305endif
306ifdef DIST_FILES_VKEYBD
307	cp $(DIST_FILES_VKEYBD) $(bundle_name)/
308endif
309	$(STRIP) scummvm
310	chmod 755 scummvm
311	cp scummvm $(bundle_name)/ScummVM
312	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-29@2x.png $(bundle_name)/AppIcon29x29@2x.png
313	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-29@2x.png $(bundle_name)/AppIcon29x29@2x~ipad.png
314	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-29@3x.png $(bundle_name)/AppIcon29x29@3x.png
315	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-29.png $(bundle_name)/AppIcon29x29~ipad.png
316	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-40@2x.png $(bundle_name)/AppIcon40x40@2x.png
317	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-40@2x.png $(bundle_name)/AppIcon40x40@2x~ipad.png
318	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-40@3x.png $(bundle_name)/AppIcon40x40@3x.png
319	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-40.png $(bundle_name)/AppIcon40x40~ipad.png
320	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-60@2x.png $(bundle_name)/AppIcon60x60@2x.png
321	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-60@3x.png $(bundle_name)/AppIcon60x60@3x.png
322	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-76@2x.png $(bundle_name)/AppIcon76x76@2x~ipad.png
323	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-76.png $(bundle_name)/AppIcon76x76~ipad.png
324	cp $(srcdir)/dists/ios7/Images.xcassets/AppIcon.appiconset/icon4-83.5@2x.png $(bundle_name)/AppIcon83.5x83.5@2x~ipad.png
325	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-640x1136-1.png $(bundle_name)/LaunchImage-700-568h@2x.png
326	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2048x1536.png $(bundle_name)/LaunchImage-700-Landscape@2x~ipad.png
327	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1024x768.png $(bundle_name)/LaunchImage-700-Landscape~ipad.png
328	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1536x2048.png $(bundle_name)/LaunchImage-700-Portrait@2x~ipad.png
329	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-768x1024.png $(bundle_name)/LaunchImage-700-Portrait~ipad.png
330	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-1242x2208.png $(bundle_name)/LaunchImage-800-Portrait-736h@3x.png
331	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-2208x1242.png $(bundle_name)/LaunchImage-800-Landscape-736h@3x.png
332	cp $(srcdir)/dists/ios7/Images.xcassets/LaunchImage.launchimage/ScummVM-splash-750x1334.png $(bundle_name)/LaunchImage-800-667h@2x.png
333	codesign -s - --deep --force $(bundle_name)
334
335
336ifndef WITHOUT_SDL
337OSX_STATIC_LIBS := `$(SDLCONFIG) --prefix=$(STATICLIBPATH) --static-libs`
338
339ifdef USE_SDL_NET
340ifdef USE_SDL2
341OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libSDL2_net.a
342else
343OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libSDL_net.a
344endif
345endif
346
347# With sdl2-config we don't always get the OpenGL framework
348OSX_STATIC_LIBS += -framework OpenGL
349
350else # WITHOUT_SDL
351
352# Special SDL_Net library without SDL (iPhone)
353ifdef USE_SDL_NET
354ifeq ($(SDL_NET_MAJOR),1)
355OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libSDL_net.a
356else
357ifeq ($(SDL_NET_MAJOR),2)
358OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libSDL2_net.a
359endif
360endif
361endif # USE_SDL_NET
362
363endif # WITHOUT_SDL
364
365ifdef USE_LIBCURL
366OSX_STATIC_LIBS += -lcurl -framework Security
367endif
368
369ifdef USE_FREETYPE2
370OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libfreetype.a $(STATICLIBPATH)/lib/libbz2.a
371endif
372
373ifdef USE_FRIBIDI
374OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libfribidi.a
375endif
376
377ifdef USE_VORBIS
378OSX_STATIC_LIBS += \
379		$(STATICLIBPATH)/lib/libvorbisfile.a \
380		$(STATICLIBPATH)/lib/libvorbis.a
381endif
382
383ifdef USE_TREMOR
384OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libvorbisidec.a
385endif
386
387ifdef USE_FLAC
388OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libFLAC.a
389endif
390
391ifdef USE_OGG
392OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libogg.a
393endif
394
395ifdef USE_FLUIDLITE
396OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libfluidlite.a
397else
398ifdef USE_FLUIDSYNTH
399OSX_STATIC_LIBS += -liconv \
400                -framework CoreMIDI -framework CoreAudio\
401                $(STATICLIBPATH)/lib/libfluidsynth.a \
402                $(STATICLIBPATH)/lib/libglib-2.0.a \
403                $(STATICLIBPATH)/lib/libintl.a
404
405ifneq ($(BACKEND), iphone)
406ifneq ($(BACKEND), ios7)
407OSX_STATIC_LIBS += -lreadline -framework AudioUnit
408endif
409endif
410endif
411endif
412
413ifdef USE_MAD
414OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libmad.a
415endif
416
417ifdef USE_PNG
418OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libpng.a
419endif
420
421ifdef USE_GIF
422OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libgif.a
423endif
424
425ifdef USE_THEORADEC
426OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libtheoradec.a
427endif
428
429ifdef USE_FAAD
430OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libfaad.a
431endif
432
433ifdef USE_MPEG2
434OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libmpeg2.a
435endif
436
437ifdef USE_A52
438OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/liba52.a
439endif
440
441ifdef USE_JPEG
442OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libjpeg.a
443endif
444
445ifdef USE_ZLIB
446OSX_ZLIB ?= $(STATICLIBPATH)/lib/libz.a
447endif
448
449ifdef USE_DISCORD
450OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libdiscord-rpc.a
451endif
452
453ifdef USE_SPARKLE
454ifdef MACOSX
455ifneq ($(SPARKLEPATH),)
456OSX_STATIC_LIBS += -F$(SPARKLEPATH)
457endif
458OSX_STATIC_LIBS += -framework Sparkle -Wl,-rpath,@loader_path/../Frameworks
459endif
460endif
461ifdef USE_GLEW
462OSX_STATIC_LIBS += $(STATICLIBPATH)/lib/libGLEW.a
463endif
464
465# Special target to create a static linked binary for Mac OS X.
466# We use -force_cpusubtype_ALL to ensure the binary runs on every
467# PowerPC machine.
468scummvm-static: $(DETECT_OBJS) $(OBJS)
469	+$(LD) $(LDFLAGS) -force_cpusubtype_ALL -o scummvm-static $(DETECT_OBJS) $(OBJS) \
470		-framework CoreMIDI \
471		$(OSX_STATIC_LIBS) \
472		$(OSX_ZLIB)
473
474# Special target to create a static linked binary for the iPhone (legacy, and iOS 7+)
475iphone: $(DETECT_OBJS) $(OBJS)
476	+$(LD) $(LDFLAGS) -o scummvm $(DETECT_OBJS) $(OBJS) \
477		$(OSX_STATIC_LIBS) \
478		-framework UIKit -framework CoreGraphics -framework OpenGLES \
479		-framework CoreFoundation -framework QuartzCore -framework Foundation \
480		-framework AudioToolbox -framework CoreAudio -framework SystemConfiguration -lobjc -lz
481
482# Special target to create a snapshot disk image for Mac OS X
483# TODO: Replace AUTHORS by Credits.rtf
484osxsnap: bundle
485	mkdir ScummVM-snapshot
486	cp $(DIST_FILES_DOCS) ./ScummVM-snapshot/
487	mv ./ScummVM-snapshot/COPYING ./ScummVM-snapshot/License\ \(GPL\)
488	mv ./ScummVM-snapshot/COPYING.LGPL ./ScummVM-snapshot/License\ \(LGPL\)
489	mv ./ScummVM-snapshot/COPYING.FREEFONT ./ScummVM-snapshot/License\ \(FREEFONT\)
490	mv ./ScummVM-snapshot/COPYING.OFL ./ScummVM-snapshot/License\ \(OFL\)
491	mv ./ScummVM-snapshot/COPYING.BSD ./ScummVM-snapshot/License\ \(BSD\)
492	mv ./ScummVM-snapshot/COPYING.ISC ./ScummVM-snapshot/License\ \(ISC\)
493	mv ./ScummVM-snapshot/COPYING.LUA ./ScummVM-snapshot/License\ \(Lua\)
494	mv ./ScummVM-snapshot/COPYING.MIT ./ScummVM-snapshot/License\ \(MIT\)
495	mv ./ScummVM-snapshot/COPYING.TINYGL ./ScummVM-snapshot/License\ \(TinyGL\)
496	$(XCODETOOLSPATH)/SetFile -t ttro -c ttxt ./ScummVM-snapshot/*
497	mkdir ScummVM-snapshot/doc
498	cp $(srcdir)/doc/QuickStart ./ScummVM-snapshot/doc/QuickStart
499	mkdir ScummVM-snapshot/doc/cz
500	cp $(DIST_FILES_DOCS_cz) ./ScummVM-snapshot/doc/cz/
501	mkdir ScummVM-snapshot/doc/da
502	cp $(DIST_FILES_DOCS_da) ./ScummVM-snapshot/doc/da/
503	mkdir ScummVM-snapshot/doc/de
504	cp $(DIST_FILES_DOCS_de) ./ScummVM-snapshot/doc/de/
505	mkdir ScummVM-snapshot/doc/es
506	cp $(DIST_FILES_DOCS_es) ./ScummVM-snapshot/doc/es/
507	mkdir ScummVM-snapshot/doc/fr
508	cp $(DIST_FILES_DOCS_fr) ./ScummVM-snapshot/doc/fr/
509	mkdir ScummVM-snapshot/doc/it
510	cp $(DIST_FILES_DOCS_it) ./ScummVM-snapshot/doc/it/
511	mkdir ScummVM-snapshot/doc/no-nb
512	cp $(DIST_FILES_DOCS_no-nb) ./ScummVM-snapshot/doc/no-nb/
513	mkdir ScummVM-snapshot/doc/se
514	cp $(DIST_FILES_DOCS_se) ./ScummVM-snapshot/doc/se/
515	$(XCODETOOLSPATH)/SetFile -t ttro -c ttxt ./ScummVM-snapshot/doc/QuickStart
516	$(XCODETOOLSPATH)/SetFile -t ttro -c ttxt ./ScummVM-snapshot/doc/*/*
517	xattr -w "com.apple.TextEncoding" "utf-8;134217984" ./ScummVM-snapshot/doc/*/*
518	$(XCODETOOLSPATH)/CpMac -r $(bundle_name) ./ScummVM-snapshot/
519	cp $(srcdir)/dists/macosx/DS_Store ./ScummVM-snapshot/.DS_Store
520	cp $(srcdir)/dists/macosx/background.jpg ./ScummVM-snapshot/background.jpg
521	$(XCODETOOLSPATH)/SetFile -a V ./ScummVM-snapshot/.DS_Store
522	$(XCODETOOLSPATH)/SetFile -a V ./ScummVM-snapshot/background.jpg
523	hdiutil create -ov -format UDZO -imagekey zlib-level=9 -fs HFS+ \
524					-srcfolder ScummVM-snapshot \
525					-volname "ScummVM" \
526					ScummVM-snapshot.dmg
527	rm -rf ScummVM-snapshot
528
529publish-appcast:
530	cp dists/macosx/scummvm_appcast.xml ../scummvm-web/public_html/appcasts/macosx/release.xml
531
532
533#
534# Special target to generate project files for various IDEs
535# Mainly Win32-specific
536#
537
538# The release branch is in form 'heads/branch-1-4-1', for this case
539# $CUR_BRANCH will be equal to '1', for the rest cases it will be empty
540CUR_BRANCH := $(shell cd $(srcdir); git describe --all |cut -d '-' -f 4-)
541
542ideprojects: devtools/create_project
543ifeq ($(VER_DIRTY), -dirty)
544	$(error You have uncommitted changes)
545endif
546ifeq "$(CUR_BRANCH)" "heads/master"
547	$(error You cannot do it on master)
548else ifeq "$(CUR_BRANCH)" ""
549	$(error You must be on a release branch)
550endif
551	@echo Creating Code::Blocks project files...
552	@cd $(srcdir)/dists/codeblocks && $(PWD)/devtools/create_project/create_project ../.. --codeblocks >/dev/null && git add -f engines/*.h *.workspace *.cbp
553	@echo Creating MSVC project files...
554	@cd $(srcdir)/dists/msvc && $(PWD)/devtools/create_project/create_project ../.. --use-canonical-lib-names --msvc-version 12 --msvc >/dev/null && git add -f engines/*.h *.sln *.vcxproj *.vcxproj.filters *.props
555	@echo
556	@echo All is done.
557	@echo Now run
558	@echo -e "\tgit commit -m 'DISTS: Generated Code::Blocks and MSVC project files'"
559
560# Mark special targets as phony
561.PHONY: deb bundle osxsnap install uninstall
562