# valid platforms are mvp, raspberry and crossraspberry vomp_platform=$(shell ./select-platform) #vomp_platform=crossraspberry $(info selected $(vomp_platform)) vomp_options= # uncomment the line below if you want to build vomp application without a reboot option, automatically set for windows! #vomp_options+= -DVOMP_HAS_EXIT ifeq ($(vomp_platform),mvp) $(info MVP crosscompiler) include ../crosstool/cross-var CC=$(CROSS)gcc STRIP=$(CROSS)strip CXX=$(CROSS)g++ LD=$(CROSS)g++ endif ifeq ($(vomp_platform),raspberry) $(info raspberry normal compiler) CC=gcc STRIP=strip CXX=g++ LD=g++ endif ifeq ($(vomp_platform),crossraspberry) $(info raspberry cross compiler) CC=arm-linux-gnueabi-gcc-4.7 STRIP=arm-linux-gnueabi-strip CXX=arm-linux-gnueabi-g++-4.7 LD=arm-linux-gnueabi-g++-4.7 endif CXXFLAGS_DEV = -g -O0 -Wall -Wshadow -DDEV -D_GNU_SOURCE $(INCLUDES) $(vomp_options) CXXFLAGS_REL = -O3 -Wall -Wshadow -D_GNU_SOURCE $(INCLUDES) $(vomp_options) LIBPATHS = $(info Setting up objects) # This is the only thing windows and linux share include objects.mk OBJECTSWIN = threadwin.o remotewin.o ledwin.o mtdwin.o videowin.o audiowin.o osdwin.o surfacewin.o OBJECTS = $(OBJECTS1) # Pictures for linux builds PICTURES = -Wl,--format=binary PICTURES += -Wl,other/vdrhires.png PICTURES += -Wl,other/wallpaper720p.jpg PICTURES += -Wl,other/properties.png PICTURES += -Wl,other/radio.png PICTURES += -Wl,other/timers.png PICTURES += -Wl,other/tv.png PICTURES += -Wl,other/recordings.png PICTURES += -Wl,other/restart.png PICTURES += -Wl,other/hd1080i.png PICTURES += -Wl,other/hd720p.png PICTURES += -Wl,other/sd576i.png PICTURES += -Wl,other/txtoff.png PICTURES += -Wl,other/txton.png PICTURES += -Wl,other/dolbyoff.png PICTURES += -Wl,other/dolbyon.png PICTURES += -Wl,other/recording.png PICTURES += -Wl,other/recfolder.png PICTURES += -Wl,other/defposter.png PICTURES += -Wl,--format=default ifeq ($(vomp_platform),mvp) $(info MVP flags) LDFLAGS = -Wall -static LIBS = -lpthread -lrt OBJECTS += wwss.o main.o threadp.o remotemvp.o ledmvp.o mtdmvp.o videomvp.o audiomvp.o osdmvp.o \ surfacemvp.o fonts/helvB24.o fonts/helvB18.o wjpegcomplex.o vmedialist.o vcolourtuner.o \ audioplayer.o demuxeraudio.o \ vmediaview.o vvideomedia.o imagereader.o media.o mediaoptions.o mediaplayer.o serialize.o \ localmediafile.o playermedia.o demuxermedia.o mediafile.o osdvector.o surfacevector.o TIOBJECT = ticonfig.o CROSSLIBS = ../jpeg/jpeg-6b/libjpeg.a INCLUDES = -I../jpeg/jpeg-6b -DVOMP_PLATTFORM_MVP endif ifeq ($(vomp_platform),raspberry) $(info Raspberry pi flags) LDFLAGS = -Wall $(PICTURES) LIBS = -L/opt/vc/lib -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample OBJECTS += main.o threadp.o osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o imageomx.o wjpegsimple.o remotelinux.o signal.o LIBS+= -ldl -lfontconfig -lfreetype -L/usr/lib/arm-linux-gnueabihf -lMagick++-6.Q16 CROSSLIBS = INCLUDES = -DVOMP_PLATTFORM_RASPBERRY -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 -I/usr/include/ImageMagick -I/usr/include/ImageMagick-6 -I/usr/include/arm-linux-gnueabihf/ImageMagick-6 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS endif ifeq ($(vomp_platform),crossraspberry) $(info Raspberry pi flags cross compiler) LDFLAGS = -Wall $(PICTURES) -Wl,--verbose -Xlinker --rpath-link=rpi-root/usr/lib/arm-linux-gnueabihf -Xlinker --rpath-link=rpi-root/lib/arm-linux-gnueabihf -Xlinker --rpath-link=rpi-root/opt/vc/lib LIBS = -Lrpi-root/opt/vc/lib -Lrpi-root/lib -Lrpi-root/usr/lib -Lrpi-root/lib/arm-linux-gnueabihf -Lrpi-root/usr/lib/arm-linux-gnueabihf -Lrpi-root/usr/local/lib -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample -ldl -lfontconfig OBJECTS += main.o threadp.o osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o imageomx.o wjpegsimple.o remotelinux.o signal.o LIBS+= -lfreetype -lMagick++-6.Q16 CROSSLIBS = INCLUDES = -DVOMP_PLATTFORM_RASPBERRY -Irpi-root/opt/vc/include -Irpi-root/opt/vc/include/interface/vcos/pthreads -Irpi-root/usr/include -Irpi-root/usr/include/freetype2 -Irpi-root/usr/include/ImageMagick-6 -Irpi-root/usr/include/ImageMagick -Irpi-root/usr/include/arm-linux-gnueabihf/ImageMagick-6 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard endif .PHONY: clean fresh all install strip default: dev fresh: clean default vompclient: $(OBJECTS) $(TIOBJECT) $(CROSSLIBS) $(LD) $(LDFLAGS) $(LIBPATHS) $(RELEASE) $(vomp_options) -o vompclient $(TIOBJECT) $(OBJECTS) $(CROSSLIBS) $(LIBS) # A slight hash up ticonfig.o: $(CC) $(CXXFLAGS_REL) -c -o ticonfig.o ticonfig.c strip: $(STRIP) vompclient install: rm -f target-mvp/vompclient cp vompclient target-mvp/vompclient install-wmp: rm -f target-wmvp/vompclient cp vompclient target-wmvp/vompclient install-dev: rm -f target-mvp-dev/vompclient cp vompclient target-mvp-dev/vompclient debug: ../../gdb/gdb-6.7/gdb/gdb target-mvp/vompclient target-mvp/core.* debug2: ../../gdb/gdb-6.7/gdb/gdb target-mvp-dev/vompclient target-mvp-dev/core.* dev: CXXFLAGS := $(CXXFLAGS_DEV) dev: vompclient release: CXXFLAGS := $(CXXFLAGS_REL) release: clean vompclient strip deps: GNUmakefile $(CC) -MM $(INCLUDES) $(OBJECTS:%.o=%.cc) > deps -include deps clean: rm -f *.o deps vompclient *~ fonts/*.o fonts/*~ teletxt/*.o