]> git.vomp.tv Git - vompclient.git/blob - GNUmakefile
Merge branch '0-4-1-dev'
[vompclient.git] / GNUmakefile
1 # valid platforms are mvp, raspberry and crossraspberry
2 vomp_platform=$(shell ./select-platform)
3 #vomp_platform=crossraspberry
4 $(info selected $(vomp_platform))
5
6 vomp_options=
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
9
10
11 ifeq ($(vomp_platform),mvp)
12 $(info MVP crosscompiler)
13 include ../crosstool/cross-var
14 CC=$(CROSS)gcc
15 STRIP=$(CROSS)strip
16 CXX=$(CROSS)g++
17 LD=$(CROSS)g++
18 endif
19
20 ifeq ($(vomp_platform),raspberry)
21 $(info raspberry normal compiler)
22 CC=gcc
23 STRIP=strip
24 CXX=g++
25 LD=g++
26 endif
27
28 ifeq ($(vomp_platform),crossraspberry)
29 $(info raspberry cross compiler)
30 CC=arm-linux-gnueabi-gcc-4.7
31 STRIP=arm-linux-gnueabi-strip
32 CXX=arm-linux-gnueabi-g++-4.7
33 LD=arm-linux-gnueabi-g++-4.7
34 endif
35
36
37 CXXFLAGS_DEV = -g -O0 -Wall -Wshadow -DDEV -D_GNU_SOURCE $(INCLUDES) $(vomp_options)
38 CXXFLAGS_REL = -O3 -Wall -Wshadow  -D_GNU_SOURCE $(INCLUDES) $(vomp_options)
39 LIBPATHS =
40
41
42 $(info Setting up objects)
43 # This is the only thing windows and linux share
44 include objects.mk
45 OBJECTSWIN = threadwin.o remotewin.o ledwin.o mtdwin.o videowin.o audiowin.o osdwin.o surfacewin.o
46 OBJECTS = $(OBJECTS1) 
47
48
49 ifeq ($(vomp_platform),mvp)
50 $(info MVP flags)
51 LDFLAGS = -Wall -static
52 LIBS = -lpthread -lrt
53
54 OBJECTS += wwss.o main.o threadp.o remotemvp.o ledmvp.o mtdmvp.o videomvp.o audiomvp.o osdmvp.o surfacemvp.o wjpegcomplex.o vmedialist.o vcolourtuner.o vmediaview.o vvideomedia.o 
55 TIOBJECT = ticonfig.o
56 CROSSLIBS = ../jpeg/jpeg-6b/libjpeg.a
57 INCLUDES = -I../jpeg/jpeg-6b  -DVOMP_PLATTFORM_MVP 
58 endif
59
60
61 ifeq ($(vomp_platform),raspberry)
62 $(info Raspberry pi flags)
63 LDFLAGS = -Wall -Wl,--format=binary -Wl,other/vdrhires.jpg -Wl,other/wallpaper720p.jpg -Wl,--format=default 
64 LIBS = -L/opt/vc/lib -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host   -lavformat -lavcodec -lavutil
65
66 OBJECTS += main.o threadp.o  osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o wjpegsimple.o remotelinux.o  
67 LIBS+=  -lfreetype -lMagick++ 
68 CROSSLIBS = 
69 INCLUDES = -DVOMP_PLATTFORM_RASPBERRY   -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads  -I/usr/include/freetype2 -I/usr/include/ImageMagick
70 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS
71 CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS
72 endif
73
74
75 ifeq ($(vomp_platform),crossraspberry)
76 $(info Raspberry pi flags cross compiler)
77 LDFLAGS = -Wall -Wl,--format=binary -Wl,other/vdrhires.jpg -Wl,other/wallpaper720p.jpg -Wl,--format=default -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
78 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 -ldl -lfontconfig
79
80 OBJECTS += main.o threadp.o osdvector.o surfacevector.o osdopenvg.o ledraspberry.o mtdraspberry.o videoomx.o audioomx.o wjpegsimple.o remotelinux.o
81 LIBS+=  -lfreetype -lMagick++
82 CROSSLIBS =
83 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
84 CXXFLAGS_DEV += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard
85 CXXFLAGS_REL += -D__STDC_CONSTANT_MACROS -mfloat-abi=hard
86 endif
87
88 .PHONY: clean fresh all install strip
89
90 default: dev
91 fresh:   clean default
92
93 vompclient: $(OBJECTS) $(TIOBJECT) $(CROSSLIBS)
94         $(LD) $(LDFLAGS) $(LIBPATHS) $(RELEASE) $(vomp_options) -o vompclient $(TIOBJECT) $(OBJECTS) $(CROSSLIBS) $(LIBS)
95
96 # A slight hash up
97 ticonfig.o:
98         $(CC) $(CXXFLAGS_REL) -c -o ticonfig.o ticonfig.c
99
100 strip:
101         $(STRIP) vompclient
102
103 install:
104         rm -f target-mvp/vompclient
105         cp vompclient target-mvp/vompclient
106
107 install-wmp:
108         rm -f target-wmvp/vompclient
109         cp vompclient target-wmvp/vompclient
110
111 install-dev:
112         rm -f target-mvp-dev/vompclient
113         cp vompclient target-mvp-dev/vompclient
114
115 debug:
116         ../../gdb/gdb-6.7/gdb/gdb target-mvp/vompclient target-mvp/core.*
117
118 debug2:
119         ../../gdb/gdb-6.7/gdb/gdb target-mvp-dev/vompclient target-mvp-dev/core.*
120
121 dev: CXXFLAGS := $(CXXFLAGS_DEV)
122 dev: vompclient
123
124 release: CXXFLAGS := $(CXXFLAGS_REL)
125 release: clean vompclient strip
126
127 deps: GNUmakefile
128         $(CC) -MM $(INCLUDES)  $(OBJECTS:%.o=%.cc) > deps
129
130 -include deps
131
132 clean:
133         rm -f *.o deps vompclient *~ fonts/*.o fonts/*~ teletxt/*.o
134