include bootstrap.mk
+null :=
+space := ${null} ${null}
+${space} := ${space}
+
AUTOGENERATED_MAKEFILES=@OUTPUT_FILES@
EC_DIRS= \
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 \
DIRECTORY_ARCHIVES += xbmc/network/mdns/mdns.a
endif
+INSTALL_FILTER = .*visualization\.dxspectrum.*
+INSTALL_FILTER += .*visualization\.milkdrop.*
+
ifeq ($(findstring osx,@ARCH@),osx)
DIRECTORY_ARCHIVES += xbmc/osx/osx.a
DIRECTORY_ARCHIVES += xbmc/network/osx/network.a
DIRECTORY_ARCHIVES += xbmc/powermanagement/osx/powermanagement.a
DIRECTORY_ARCHIVES += xbmc/storage/osx/storage.a
DIRECTORY_ARCHIVES += xbmc/windowing/osx/windowing_osx.a
+INSTALL_FILTER += .*repository\.pvr-android\.xbmc\.org.*
+INSTALL_FILTER += .*repository\.pvr-ios\.xbmc\.org.*
+INSTALL_FILTER += .*repository\.pvr-win32\.xbmc\.org.*
else
+INSTALL_FILTER += .*repository\.pvr-ios\.xbmc\.org.*
+INSTALL_FILTER += .*repository\.pvr-win32\.xbmc\.org.*
+INSTALL_FILTER += .*repository\.pvr-osx.*\.xbmc\.org.*
ifeq (@USE_ANDROID@,1)
DIRECTORY_ARCHIVES += xbmc/input/linux/input_linux.a
DIRECTORY_ARCHIVES += xbmc/input/touch/input_touch.a
DIRECTORY_ARCHIVES += xbmc/powermanagement/linux/powermanagement_linux.a
DIRECTORY_ARCHIVES += xbmc/storage/linux/storage_linux.a
DIRECTORY_ARCHIVES += xbmc/windowing/X11/windowing_X11.a
+INSTALL_FILTER += .*repository\.pvr-android\.xbmc\.org.*
endif
endif
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
SS_DIRS=
ifneq (@DISABLE_RSXS@,1)
SS_DIRS+= xbmc/screensavers/rsxs-0.9/xbmc
+else
+ INSTALL_FILTER+= .*screensaver\.rsxs.*
endif
ifneq (@DISABLE_SPECTRUM@,1)
ifneq (@DISABLE_WAVEFORM@,1)
VIS_DIRS+= xbmc/visualizations/WaveForm
+else
+ INSTALL_FILTER+= .*visualization\.waveform.*
endif
ifneq (@DISABLE_FISHBMC@,1)
VIS_DIRS+= xbmc/visualizations/fishBMC
+else
+ INSTALL_FILTER+= .*visualization\.fishbmc.*
endif
ifneq (@DISABLE_PROJECTM@,1)
VIS_DIRS+= xbmc/visualizations/XBMCProjectM
+else
+ INSTALL_FILTER+= .*visualization\.projectm.*
endif
ifneq (@DISABLE_GOOM@,1)
VIS_DIRS+=xbmc/visualizations/Goom
+else
+ INSTALL_FILTER+= .*visualization\.goom.*
endif
LIBADDON_DIRS=\
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
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 pvr-addons
endif
-codecs: papcodecs dvdpcodecs
+codecs: papcodecs dvdpcodecs dvdpextcodecs
libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH)
$(SILENT_LD) $(CC) $(CFLAGS) $(LDFLAGS) -o xbmc-xrandr xbmc-xrandr.c -lXrandr -lX11 -lm
endif
-tools/TexturePacker/TexturePacker: lib/libsquish/libsquish.a xbmc/guilib/XBTF.h
+tools/TexturePacker/TexturePacker: xbmc/guilib/XBTF.h
$(MAKE) -C tools/TexturePacker/
apk: 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
@# Arch independent files
ifeq ($(findstring bsd,@ARCH@), bsd)
@find -E addons language media sounds userdata system -type f \
- -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll" \
+ -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|$(subst ${space},|,$(INSTALL_FILTER))" \
-exec sh -c "install -d \"$(DESTDIR)$(datarootdir)/xbmc/\`dirname '{}'\`\"" \; \
-and \
-exec install -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; \
else
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
@find -E addons language media sounds userdata system -type f \
- -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll" \
+ -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|$(subst ${space},|,$(INSTALL_FILTER))" \
-exec sh -c "install -d \"$(DESTDIR)$(datarootdir)/xbmc/\`dirname '{}'\`\"" \; \
-and \
-exec install -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; \
-exec printf " -- %-75.75s\r" "{}" \;
else
- @find addons language media sounds userdata system -regextype posix-extended -type f -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pvr" -exec install -D -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; -printf " -- %-75.75f\r"
+ @find addons language media sounds userdata system -regextype posix-extended -type f -not -iregex ".*@ARCH@.*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pvr|$(subst ${space},|,$(INSTALL_FILTER))" -exec install -D -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; -printf " -- %-75.75f\r"
endif
endif
@# Icons and links
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.