1 # valid platforms are mvp, raspberry and crossraspberry
2 vomp_platform=$(shell ./select-platform)
3 #vomp_platform=crossraspberry
4 $(info selected $(vomp_platform))
7 # uncomment the line below if you want to build vomp application without a reboot option, automatically set for windows!
8 #vomp_options+= -DVOMP_HAS_EXIT
12 ifeq ($(vomp_platform),mvp)
13 $(info MVP crosscompiler)
14 include ../crosstool/cross-var
21 ifeq ($(vomp_platform),raspberry)
22 $(info raspberry normal compiler)
29 ifeq ($(vomp_platform),crossraspberry)
30 $(info raspberry cross compiler)
31 CC=arm-linux-gnueabi-gcc-4.7
32 STRIP=arm-linux-gnueabi-strip
33 CXX=arm-linux-gnueabi-g++-4.7
34 LD=arm-linux-gnueabi-g++-4.7
38 CXXFLAGS_DEV = -g -O0 -Wall -Wshadow -DDEV -D_GNU_SOURCE $(INCLUDES) $(vomp_options)
39 CXXFLAGS_REL = -O3 -Wall -Wshadow -D_GNU_SOURCE $(INCLUDES) $(vomp_options)
43 $(info Setting up objects)
44 # This is the only thing windows and linux share
46 OBJECTSWIN = threadwin.o remotewin.o ledwin.o mtdwin.o videowin.o audiowin.o osdwin.o surfacewin.o
49 # Pictures for linux builds
50 PICTURES = -Wl,--format=binary
51 PICTURES += -Wl,other/vdrhires.png
52 PICTURES += -Wl,other/wallpaper720p.jpg
53 PICTURES += -Wl,other/properties.png
54 PICTURES += -Wl,other/radio.png
55 PICTURES += -Wl,other/timers.png
56 PICTURES += -Wl,other/tv.png
57 PICTURES += -Wl,other/recordings.png
58 PICTURES += -Wl,other/restart.png
59 PICTURES += -Wl,other/hd1080i.png
60 PICTURES += -Wl,other/hd720p.png
61 PICTURES += -Wl,other/sd576i.png
62 PICTURES += -Wl,other/txtoff.png
63 PICTURES += -Wl,other/txton.png
64 PICTURES += -Wl,other/dolbyoff.png
65 PICTURES += -Wl,other/dolbyon.png
66 PICTURES += -Wl,--format=default
71 ifeq ($(vomp_platform),mvp)
73 LDFLAGS = -Wall -static
76 OBJECTS += wwss.o main.o threadp.o remotemvp.o ledmvp.o mtdmvp.o videomvp.o audiomvp.o osdmvp.o \
77 surfacemvp.o fonts/helvB24.o fonts/helvB18.o wjpegcomplex.o vmedialist.o vcolourtuner.o \
78 audioplayer.o demuxeraudio.o \
79 vmediaview.o vvideomedia.o imagereader.o media.o mediaoptions.o mediaplayer.o serialize.o \
80 localmediafile.o playermedia.o demuxermedia.o mediafile.o
82 CROSSLIBS = ../jpeg/jpeg-6b/libjpeg.a
83 INCLUDES = -I../jpeg/jpeg-6b -DVOMP_PLATTFORM_MVP
87 ifeq ($(vomp_platform),raspberry)
88 $(info Raspberry pi flags)
89 LDFLAGS = -Wall $(PICTURES)
90 LIBS = -L/opt/vc/lib -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample
92 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
93 LIBS+= -ldl -lfontconfig -lfreetype -lMagick++
95 INCLUDES = -DVOMP_PLATTFORM_RASPBERRY -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 -I/usr/include/ImageMagick
96 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS
97 CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS
101 ifeq ($(vomp_platform),crossraspberry)
102 $(info Raspberry pi flags cross compiler)
103 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
104 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
106 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
107 LIBS+= -lfreetype -lMagick++
109 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
110 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard
111 CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard
114 .PHONY: clean fresh all install strip
119 vompclient: $(OBJECTS) $(TIOBJECT) $(CROSSLIBS)
120 $(LD) $(LDFLAGS) $(LIBPATHS) $(RELEASE) $(vomp_options) -o vompclient $(TIOBJECT) $(OBJECTS) $(CROSSLIBS) $(LIBS)
124 $(CC) $(CXXFLAGS_REL) -c -o ticonfig.o ticonfig.c
130 rm -f target-mvp/vompclient
131 cp vompclient target-mvp/vompclient
134 rm -f target-wmvp/vompclient
135 cp vompclient target-wmvp/vompclient
138 rm -f target-mvp-dev/vompclient
139 cp vompclient target-mvp-dev/vompclient
142 ../../gdb/gdb-6.7/gdb/gdb target-mvp/vompclient target-mvp/core.*
145 ../../gdb/gdb-6.7/gdb/gdb target-mvp-dev/vompclient target-mvp-dev/core.*
147 dev: CXXFLAGS := $(CXXFLAGS_DEV)
150 release: CXXFLAGS := $(CXXFLAGS_REL)
151 release: clean vompclient strip
154 $(CC) -MM $(INCLUDES) $(OBJECTS:%.o=%.cc) > deps
159 rm -f *.o deps vompclient *~ fonts/*.o fonts/*~ teletxt/*.o