# Switches for this Makefile: # VERBOSE - set to 1 to show all commands # SKIPDEPS - Skip regeneration of dependencies file include objects.mk # valid platforms are raspberry and crossraspberry vomp_platform=$(shell ./select-platform) $(info selected $(vomp_platform)) # uncomment the line below if you want to build vomp application without a reboot option, automatically set for windows! #vomp_options+= -DVOMP_HAS_EXIT ifdef VERBOSE Q = else Q = @ endif ifeq ($(vomp_platform),raspberry) $(info Raspberry Pi native compiler) CC=clang-9 STRIP=strip CXX=clang++-9 LD=clang++-9 vomp_options += -DIPV6 LDFLAGS = -fuse-ld=gold $(PICTURES) LIBPATHS = -L/opt/vc/lib -L/usr/lib/arm-linux-gnueabihf LIBS = -lpthread -lrt -lbrcmEGL -lbrcmOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample LIBS += -ldl -lfontconfig -lfreetype -lMagick++-6.Q16 OBJECTS = $(OBJ_COMMON) $(OBJ_RASPBERRY) CROSSLIBS = 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 PLATFORM = -DVOMP_PLATFORM_RASPBERRY CXXFLAGS_EXTRA = endif ifeq ($(vomp_platform),crossraspberry) $(info Raspberry Pi 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 LDFLAGS = $(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 LIBPATHS = -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 LIBS = -lpthread -lrt -lEGL -lOpenVG -lopenmaxil -lbcm_host -lavformat -lavcodec -lavutil -lavresample -ldl -lfontconfig LIBS += -lfreetype -lMagick++-6.Q16 OBJECTS = $(OBJ_COMMON) $(OBJ_RASPBERRY) CROSSLIBS = INCLUDES = -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 PLATFORM = -DVOMP_PLATFORM_RASPBERRY CXXFLAGS_EXTRA = -mfloat-abi=hard endif CXXFLAGS_DEV = -g -O0 -Wall -Wextra -Wshadow -Werror=return-type -Wmissing-declarations -Winit-self -Woverloaded-virtual -Wold-style-cast -Wconversion -std=c++14 $(CXXFLAGS_EXTRA) -DDEV -D_GNU_SOURCE $(PLATFORM) $(vomp_options) $(INCLUDES) CXXFLAGS_REL = -O3 -Wall -Werror -std=c++14 $(CXXFLAGS_EXTRA) -D_GNU_SOURCE $(PLATFORM) $(vomp_options) $(INCLUDES) .PHONY: clean fresh all install strip default: dev fresh: clean default %.o: %.cc @echo CC $@ $(Q)$(CXX) $(CXXFLAGS) -c -o $@ $< vompclient: $(OBJECTS) $(CROSSLIBS) @echo LD vompclient $(Q)$(LD) $(LDFLAGS) $(LIBPATHS) -o vompclient $(OBJECTS) $(CROSSLIBS) $(LIBS) strip: @echo STRIP vompclient $(Q)$(STRIP) vompclient dev: CXXFLAGS := $(CXXFLAGS_DEV) dev: vompclient release: CXXFLAGS := $(CXXFLAGS_REL) release: clean vompclient strip clean: rm -f *.o deps vompclient *~ fonts/*.o fonts/*~ teletxt/*.o ifndef SKIPDEPS deps: GNUmakefile @echo "DEPS" $(Q)$(CC) -MM $(INCLUDES) $(OBJECTS:%.o=%.cc) > deps endif ifneq ($(MAKECMDGOALS),clean) include deps endif