]> git.vomp.tv Git - vompclient.git/commitdiff
Fully working cross compilation. Change default target from mvp to crossraspberry
authorChris Tallon <chris@vomp.tv>
Fri, 27 Aug 2021 15:57:34 +0000 (16:57 +0100)
committerChris Tallon <chris@vomp.tv>
Fri, 27 Aug 2021 15:57:34 +0000 (16:57 +0100)
GNUmakefile
select-platform

index 40b17281001bbf434fd133c7c684196fd614d519..4bd26efd45eee3b527a479179927cf97d90cdc23 100644 (file)
@@ -1,16 +1,20 @@
-# valid platforms are mvp, raspberry and crossraspberry
 vomp_platform=$(shell ./select-platform)
-#vomp_platform=crossraspberry
-$(info selected $(vomp_platform))
+# vomp_platform variable sets up the build on different platforms
+# valid platforms are:
+# mvp - cross compile for MVP
+# raspberry - native compile for & on Raspberry Pi
+# crossraspberry - cross compile for Raspberry Pi
+# Override auto select here:
+# vomp_platform=
+
+$(info Build system 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
@@ -19,7 +23,6 @@ LD=$(CROSS)g++
 endif
 
 ifeq ($(vomp_platform),raspberry)
-$(info raspberry normal compiler)
 CC=gcc
 STRIP=strip
 CXX=g++
@@ -27,12 +30,15 @@ LD=g++
 vomp_options += -DIPV6
 endif
 
+# Debian 10 x64
+# apt install g++-arm-linux-gnueabihf
+# Set vomp_platform=crossraspberry above
 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
+CROSS_PREFIX=arm-linux-gnueabihf-
+CC=$(CROSS_PREFIX)gcc
+STRIP=$(CROSS_PREFIX)strip
+CXX=$(CROSS_PREFIX)g++
+LD=$(CROSS_PREFIX)g++
 endif
 
 
@@ -41,7 +47,6 @@ 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
@@ -73,48 +78,49 @@ 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 \
+           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
+           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 -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host   -lavformat -lavcodec -lavutil -lavresample
-
+LIBS = -L/opt/vc/lib -lpthread -lrt -lbrcmEGL -lbrcmOpenVG -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
+INCLUDES =    -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 += -DVOMP_PLATTFORM_RASPBERRY -D__STDC_CONSTANT_MACROS
+CXXFLAGS_REL += -DVOMP_PLATTFORM_RASPBERRY -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 
+ifeq ($(vomp_platform),crossraspberry)
+LDFLAGS = -Wall $(PICTURES) --sysroot=/pi-root \
+ -Wl,-rpath-link,/pi-root/opt/vc/lib -Wl,-rpath-link,/pi-root/usr/lib/arm-linux-gnueabihf \
+ -L=/opt/vc/lib -L=/usr/lib/arm-linux-gnueabihf
+LIBS = -lpthread -lstdc++ -lrt -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec \
+ -lavutil -lavresample -lm -ldl -lfontconfig -lfreetype -lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16
+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
 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
+INCLUDES = --sysroot=/pi-root -I=/usr/include/arm-linux-gnueabihf -I=/opt/vc/include -I=/usr/include/freetype2 -I=/usr/include/arm-linux-gnueabihf/ImageMagick-6 -I=/usr/include/ImageMagick-6
+
+CXXFLAGS_DEV += -DVOMP_PLATTFORM_RASPBERRY -mtune=cortex-a7 -D__STDC_CONSTANT_MACROS -mfloat-abi=hard -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
+CXXFLAGS_REL += -DVOMP_PLATTFORM_RASPBERRY -D__STDC_CONSTANT_MACROS -mfloat-abi=hard -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
 endif
 
+
+
 .PHONY: clean fresh all install strip
 
 default: dev
@@ -154,11 +160,12 @@ 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
 
+deps: GNUmakefile
+       $(CC) -MM $(INCLUDES) $(OBJECTS:%.o=%.cc) > deps
+
+ifneq ($(MAKECMDGOALS),clean)
+include deps
+endif
index f74cc4ddee62c8d66d2faaf2a62828eaaecdd1ad..80515597eb9c138322671789b3836d7951988696 100755 (executable)
@@ -7,5 +7,5 @@ elif grep -q BCM2709 /proc/cpuinfo ; then
 elif grep -q BCM2835 /proc/cpuinfo ; then
   echo "raspberry"
 else
-  echo "mvp"
+  echo "crossraspberry"
 fi