DVDPCODECS_DIRS= \
lib \
- lib/libdvd
+ lib/libdvd
+
+ifeq (@USE_LIBSTAGEFRIGHT@,1)
+DVDPCODECS_DIRS += xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS
+endif
DVDPLAYER_ARCHIVES=xbmc/cores/dvdplayer/DVDPlayer.a \
xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.a \
xbmc/interfaces/interfaces.a \
xbmc/interfaces/json-rpc/json-rpc.a \
xbmc/linux/linux.a \
+ xbmc/listproviders/listproviders.a \
xbmc/music/dialogs/musicdialogs.a \
xbmc/music/infoscanner/musicscanner.a \
xbmc/music/karaoke/karaoke.a \
xbmc/rendering/rendering.a \
xbmc/settings/settings.a \
xbmc/settings/dialogs/settings_dialogs.a \
+ xbmc/settings/lib/settings_lib.a \
xbmc/settings/windows/settings_windows.a \
xbmc/storage/storage.a \
xbmc/utils/utils.a \
DIRECTORY_ARCHIVES += lib/UnrarXLib/UnrarXLib.a
endif
-BIN_DIRS = $(dir $(DIRECTORY_ARCHIVES)) $(dir $(NWAOBJSXBMC))
-
ifeq (@USE_ANDROID@,1)
DIRECTORY_ARCHIVES += xbmc/android/loader/AndroidDyload.a
DIRECTORY_ARCHIVES += xbmc/windowing/android/windowing_android.a
-DIRECTORY_ARCHIVES += xbmc/android/activity/activity.a
DIRECTORY_ARCHIVES += xbmc/android/bionic_supplement/bionic_supplement.a
DIRECTORY_ARCHIVES += xbmc/android/jni/jni.a
endif
-ifeq (@USE_AMLPLAYER@,1)
-DIRECTORY_ARCHIVES += xbmc/cores/amlplayer/amlplayer.a
-endif
-
ifeq (@USE_OMXPLAYER@,1)
DIRECTORY_ARCHIVES += xbmc/cores/omxplayer/omxplayer.a
endif
endif
PAPCODECS_DIRS= \
- lib/xbadpcm \
lib/nosefart \
lib/timidity \
lib/libsidplay2 \
SKIN_DIRS+=$(TOUCHED_MEDIA)
endif
-DIRS= $(BIN_DIRS) $(EC_DIRS) $(XBMCTEX_DIRS) $(DVDPCODECS_DIRS) $(PAPCODECS_DIRS) \
- $(LIB_DIRS) $(SS_DIRS) $(VIS_DIRS) $(LIBADDON_DIRS) $(SKIN_DIRS) xbmc/main
-
LIBS=@LIBS@
CFLAGS=@CFLAGS@
CXXFLAGS=@CXXFLAGS@
xbmc/threads/test/threadTest.a \
xbmc/interfaces/python/test/pythonSwigTest.a \
xbmc/test/xbmc-test.a
+
+ifeq (@USE_WAYLAND@,1)
+CHECK_LIBS += xbmc/windowing/tests/wayland/test_wayland.a
+
+ifeq (@USE_WAYLAND_TEST_EXTENSION@,1)
+WAYLAND_TEST_MODULE = xbmc/windowing/tests/wayland/xbmc-wayland-test-extension.so
+$(WAYLAND_TEST_MODULE): force
+ $(MAKE) -C $(@D) $(@F)
+CHECK_EXTENSIONS = $(WAYLAND_TEST_MODULE)
+CHECK_LIBADD=@WAYLAND_TEST_LIBS@
+endif
+endif
+
CHECK_PROGRAMS = xbmc-test
-CLEAN_FILES += $(CHECK_PROGRAMS)
+CLEAN_FILES += $(CHECK_PROGRAMS) $(CHECK_EXTENSIONS)
all : $(FINAL_TARGETS)
@echo '-----------------------'
include Makefile.include
.PHONY : dllloader exports visualizations screensavers eventclients papcodecs \
- dvdpcodecs imagelib codecs externals force skins libaddon check \
+ dvdpcodecs dvdpextcodecs imagelib codecs externals force skins libaddon check \
testframework testsuite
# hack targets to keep build system up to date
xbmc/cores/paplayer/paplayer.a: papcodecs
$(DVDPLAYER_ARCHIVES) : dvdpcodecs
-$(NWAOBJSXBMC): force
- @$(MAKE) $(if $(V),,-s) -C $(@D)
-
-$(DIRECTORY_ARCHIVES): force
- @$(MAKE) $(if $(V),,-s) -C $(@D)
-
lib/cpluff/libcpluff/.libs/libcpluff.a: force
$(MAKE) -C lib/cpluff/libcpluff
system/libcpluff-@ARCH@.so: lib/cpluff/libcpluff/.libs/libcpluff.a exports
dvdpcodecs: dllloader
$(MAKE) -C lib
$(MAKE) -C lib/libdvd
+
+ifeq (@USE_LIBSTAGEFRIGHT@,1)
+dvdpextcodecs: libxbmc.so
+ $(MAKE) -C xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS
+else
+dvdpextcodecs:
+endif
+
eventclients:
ifeq ($(findstring osx,@ARCH@), osx)
ifneq ($(findstring arm,@ARCH@), arm)
$(MAKE) -C lib/libhdhomerun
papcodecs: dllloader dvdpcodecs
test -d system/players/paplayer || mkdir system/players/paplayer
- $(MAKE) -C lib/xbadpcm
$(MAKE) -C lib/vgmstream
$(MAKE) -C lib/timidity
$(MAKE) -C lib/nosefart
$(MAKE) -C pvr-addons
endif
-codecs: papcodecs dvdpcodecs
+codecs: papcodecs dvdpcodecs dvdpextcodecs
libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH)
lib/libXDAAP/libxdaap.a \
lib/SlingboxLib/SlingboxLib.a
-OBJSXBMC =$(DIRECTORY_ARCHIVES)
-
DYNOBJSXBMC= \
xbmc/linux/linux.a \
xbmc/network/network.a \
DYNOBJSXBMC+= xbmc/freebsd/freebsd.a
endif
-OBJSXBMC:=$(filter-out $(DYNOBJSXBMC), $(OBJSXBMC))
+ifeq (@USE_STATIC_FFMPEG@,1)
+FFMPEGOBJS = lib/ffmpeg/libavcodec/libavcodec.a \
+ lib/ffmpeg/libavfilter/libavfilter.a \
+ lib/ffmpeg/libswresample/libswresample.a \
+ lib/ffmpeg/libavformat/libavformat.a \
+ lib/ffmpeg/libavutil/libavutil.a \
+ lib/ffmpeg/libpostproc/libpostproc.a \
+ lib/ffmpeg/libswscale/libswscale.a
+DYNOBJSXBMC+= $(FFMPEGOBJS)
+LIBS+= @GNUTLS_ALL_LIBS@ @VORBISENC_ALL_LIBS@ @HOGWEED_ALL_LIBS@
-MAINOBJS=xbmc/xbmc.o
-ifeq (@USE_ANDROID@,1)
-MAINOBJS+=xbmc/android/activity/android_main.o
+$(FFMPEGOBJS): dvdpcodecs
endif
+
ifneq (@USE_LIBXBMC@,1)
-MAINOBJS+=xbmc/main/main.o
-endif
+MAINOBJS+=xbmc/main/main.a
+else
+ifeq (@USE_ANDROID@,1)
+MAINOBJS+=xbmc/android/activity/activity.a
+endif # USE_ANDROID
+endif # USE_LIBXBMC
+
+
+OBJSXBMC =$(DIRECTORY_ARCHIVES)
+OBJSXBMC:=$(filter-out $(DYNOBJSXBMC), $(OBJSXBMC))
+
+BIN_DIRS = $(dir $(DIRECTORY_ARCHIVES)) $(dir $(NWAOBJSXBMC)) $(dir $(MAINOBJS))
+
+DIRS= $(BIN_DIRS) $(EC_DIRS) $(XBMCTEX_DIRS) $(DVDPCODECS_DIRS) $(PAPCODECS_DIRS) \
+ $(LIB_DIRS) $(SS_DIRS) $(VIS_DIRS) $(LIBADDON_DIRS) $(SKIN_DIRS) xbmc/main
+
+$(NWAOBJSXBMC) $(DIRECTORY_ARCHIVES) $(MAINOBJS): force
+ @$(MAKE) $(if $(V),,-s) -C $(@D)
# sync these entries manually with tools/depends/target/xbmc-addon-bindings/Makefile
BINDINGS =xbmc/addons/include/xbmc_addon_cpp_dll.h
libxbmc.so: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(MAINOBJS)
ifeq ($(findstring osx,@ARCH@), osx)
- $(SILENT_LD) $(CXX) $(LDFLAGS) -bundle -o $@ -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS)
+ $(SILENT_LD) $(CXX) $(LDFLAGS) -bundle -o $@ $(MAINOBJS) -Wl,-all_load,-ObjC $(MAINOBJS) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS) -read_only_relocs suppress
else
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(MAINOBJS) -Wl,--start-group $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group -Wl,--no-undefined $(NWAOBJSXBMC) $(LIBS)
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ -Wl,--whole-archive $(MAINOBJS) -Wl,--no-whole-archive,--start-group $(MAINOBJS) $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group -Wl,--no-undefined $(NWAOBJSXBMC) $(LIBS)
endif
-xbmc/main/main.a:
- $(MAKE) -C xbmc/main
-
-xbmc.bin: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(MAINOBJS) xbmc/main/main.a
+xbmc.bin: $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(MAINOBJS)
ifeq ($(findstring osx,@ARCH@), osx)
- $(SILENT_LD) $(CXX) $(LDFLAGS) -o xbmc.bin -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(LDFLAGS) -o xbmc.bin $(MAINOBJS) -Wl,-all_load,-ObjC $(MAINOBJS) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(LIBS) -rdynamic
else
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin $(MAINOBJS) -Wl,--start-group $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group $(NWAOBJSXBMC) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o xbmc.bin $(MAINOBJS) -Wl,--start-group $(MAINOBJS) $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--end-group $(NWAOBJSXBMC) $(LIBS) -rdynamic
endif
xbmc-xrandr: xbmc-xrandr.c
else
install: install-binaries install-arch install-datas
-apk: install
+apk: apk-clean install
make -C tools/android/packaging
+apk-clean:
+ make -C tools/android/packaging clean
+
install-binaries: install-scripts
@echo "Copying XBMC binary to $(DESTDIR)$(libdir)/xbmc/"
@install -d $(DESTDIR)$(libdir)/xbmc
@install -d $(DESTDIR)$(datarootdir)/applications
@install tools/Linux/xbmc.desktop $(DESTDIR)$(datarootdir)/applications/xbmc.desktop
@install -d $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps
- @install -m 0644 tools/Linux/xbmc-48x48.png $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/xbmc.png
+ @install -m 0644 media/icon48x48.png $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/xbmc.png
@install -d $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps
- @install -m 0644 media/icon.png $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps/xbmc.png
+ @install -m 0644 media/icon256x256.png $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps/xbmc.png
@test -z "$(DESTDIR)" && gtk-update-icon-cache -f -q -t $(datadir)/icons/hicolor || :
@echo "Copying bindings to $(DESTDIR)$(includedir)/xbmc"
check: testsuite
for check_program in $(CHECK_PROGRAMS); do $(CURDIR)/$$check_program; done
-testsuite: $(CHECK_PROGRAMS)
+testsuite: $(CHECK_EXTENSIONS) $(CHECK_PROGRAMS)
testframework: $(GTEST_LIBS)
xbmc-test: $(CHECK_LIBS) $(OBJSXBMC) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(GTEST_LIBS)
ifeq ($(findstring osx,@ARCH@), osx)
- $(SILENT_LD) $(CXX) $(LDFLAGS) $(GTEST_INCLUDES) -o $@ -Wl,-all_load,-ObjC $(CHECK_LIBS) $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(GTEST_LIBS) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(LDFLAGS) $(GTEST_INCLUDES) -o $@ -Wl,-all_load,-ObjC $(DYNOBJSXBMC) $(NWAOBJSXBMC) $(OBJSXBMC) $(GTEST_LIBS) $(CHECK_LIBS) $(LIBS) $(CHECK_LIBADD) -rdynamic
else
- $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(GTEST_INCLUDES) -o $@ -Wl,--whole-archive $(CHECK_LIBS) $(DYNOBJSXBMC) $(OBJSXBMC) -Wl,--no-whole-archive $(NWAOBJSXBMC) $(GTEST_LIBS) $(LIBS) -rdynamic
+ $(SILENT_LD) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(GTEST_INCLUDES) -o $@ -Wl,--whole-archive $(DYNOBJSXBMC) $(OBJSXBMC) $(GTEST_LIBS) $(CHECK_LIBS) -Wl,--no-whole-archive $(NWAOBJSXBMC) $(LIBS) $(CHECK_LIBADD) -rdynamic
endif
else
# Give a message that the framework is not configured, but don't fail.