blob: 33ff1af2cc4a0f6b626c9134932aec2677ff6bf5 [file] [log] [blame]
BINDIR=$(DESTDIR)/usr/bin
APPDIR=$(DESTDIR)/app/client
LIBDIR=$(DESTDIR)/usr/lib
ifndef NEXUS_TOP
$(error NEXUS_TOP is not defined)
endif
BCHP_VER=1
PLATFORM=97425
# nexus uses C89 by default for higher compatibility
NEXUS_C_STD=c99
# include cross-compiler definitions
include $(NEXUS_TOP)/platforms/$(PLATFORM)/build/platform_app.inc
LIBFLAGS += -lpthread -ldl -lm -lrt
LIBFLAGS += -L./
INCFLAGS += -I$(MAGNUM)/../rockford/middleware/v3d/interface/khronos/include/ \
-I$(MAGNUM)/../rockford/middleware/platform/nexus \
-I$(BSEAV)/lib/playbackdevice/nexusMgr
.PHONY: clean
all: probe
@echo $(NEXUS_TOP)
ifdef DEBUG
B_REFSW_DEBUG ?= $(DEBUG)
endif
ifeq ($(B_REFSW_DEBUG),)
B_REFSW_DEBUG = y
endif
ifeq ($(B_REFSW_DEBUG),y)
V3D_LIB := lib_$(PLATFORM)_debug
else
V3D_LIB := lib_$(PLATFORM)_release
endif
ifeq ($(NEXUS_MODE),)
CFLAGS += -DSINGLE_PROCESS
endif
ifeq ($(NEXUS_MODE),client)
CFLAGS += -DUSER_MODE_MULTIPROC_CLIENT
endif
ifeq ($(PLATFORM),97425)
CFLAGS += -DENCODER_ENABLED
endif
# "unused parameter" is a pretty useless warning
CFLAGS += -Wno-unused-parameter
CXXFLAGS += -Wno-unused-parameter
# "missing initializer" is sometimes useful, but seemingly not in OpenGL where
# there are often uninitialized fields.
CFLAGS += -Wno-missing-field-initializers
CXXFLAGS += -Wno-missing-field-initializers
# All warnings are errors, so we aren't tempted to let them sit unfixed.
CFLAGS += -Werror
CXXFLAGS += -Werror
# C++ standard
CXXFLAGS += -std=c++0x
# For linux builds, link to the correct libraries
ifneq ($(findstring linux,$(B_REFSW_OS)),)
LDFLAGS := -lnexus$(NEXUS_LIB_SUFFIX) -L${NEXUS_BIN_DIR} -lpthread \
-L$(NEXUS_TOP)/../rockford/middleware/v3d/$(V3D_LIB) -lv3ddriver \
-L$(NEXUS_TOP)/../rockford/middleware/platform/nexus/$(V3D_LIB) -lnxpl -lprojectM
endif
clean:
rm -f *.o probe
rm -f *.c~ *.h~
# This is the minimum needed to compile and link with Nexus
CFLAGS += -DGLES2 -DGLNEXUS $(INCFLAGS) $(NEXUS_CFLAGS) \
$(addprefix -I,$(NEXUS_APP_INCLUDE_PATHS)) \
$(addprefix -D,$(NEXUS_APP_DEFINES))
CXXFLAGS += -DGLES2 -DGLNEXUS $(INCFLAGS) $(NEXUS_CFLAGS) \
$(addprefix -I,$(NEXUS_APP_INCLUDE_PATHS)) \
$(addprefix -D,$(NEXUS_APP_DEFINES))
# Remove flags that don't apply to C++
CXXFLAGS := $(filter-out -Wstrict-prototypes -std=c99, $(CXXFLAGS) )
# Until we replace code in wvhelper
CXXFLAGS += -Wno-deprecated
LDFLAGS += $(LIBFLAGS) -ljpeg -lpng14 -lz -ltiff -lungif -lstacktrace
# Always build with debug
CFLAGS += -g -Os
CXXFLAGS += -g -Os
LDFLAGS += -rdynamic
# lame autodepends: all .o files depend on all .h files
$(patsubst %.c,%.o,$(wildcard *.c) $(wildcard */*.c)): \
$(wildcard *.h) $(wildcard */*.h)
OBJS := probe.o
%.o: %.c
@echo "[$< -> $@]"
$(Q_)$(CC) -fPIC $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
%.o: %.cpp
@echo "[$< -> $@]"
$(Q_)$(CXX) -fPIC $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
probe: $(OBJS) $(VXOBJS)
@echo "[$^ -> $@]"
@echo NEXUS_APP_INCLUDE_PATHS are $(NEXUS_APP_INCLUDE_PATHS)
$(Q_)$(CXX) -o $@ $(OBJS) $(CFLAGS) $(LDFLAGS)
# implicit rule for building typical binaries
#%: BRCM/%.o
# @echo "[$^ -> $@]"
# @echo NEXUS_APP_INCLUDE_PATHS are $(NEXUS_APP_INCLUDE_PATHS)
# $(Q_)$(CXX) -o $@ $^ $(CFLAGS) $(LDFLAGS)
install: all
mkdir -p $(BINDIR) $(APPDIR)
cp probe $(APPDIR)