openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.3 KiB

CC = clang
CXX = clang++
PHONELIBS = ../phonelibs
WARN_FLAGS = -Werror=implicit-function-declaration \
-Werror=incompatible-pointer-types \
-Werror=int-conversion \
-Werror=return-type \
-Werror=format-extra-args
CFLAGS = -std=gnu11 -fPIC -O2 $(WARN_FLAGS)
CXXFLAGS = -std=c++1z -fPIC -O2 $(WARN_FLAGS)
NANOVG_FLAGS = -I$(PHONELIBS)/nanovg
OPENGL_LIBS = -lGLESv3
FRAMEBUFFER_LIBS = -lutils -lgui -lEGL
COMMON_OBJS = ../selfdrive/common/glutil.o \
../selfdrive/common/framebuffer.o \
../selfdrive/common/util.o \
$(PHONELIBS)/nanovg/nanovg.o \
../selfdrive/common/spinner.o \
opensans_semibold.o \
img_spinner_track.o \
img_spinner_comma.o
OPENPILOT_OBJS = installer_openpilot.o \
continue_openpilot.o \
$(COMMON_OBJS)
DASHCAM_OBJS = installer_dashcam.o \
continue_dashcam.o \
$(COMMON_OBJS)
DEPS := $(OPENPILOT_OBJS:.o=.d) $(DASHCAM_OBJS:.o=.d)
.PHONY: all
all: installers/installer_dashcam installers/installer_openpilot
installers/installer_openpilot: $(OPENPILOT_OBJS)
@echo "[ LINK ] $@"
$(CXX) -fPIC -o '$@' $^ \
-s \
$(FRAMEBUFFER_LIBS) \
-L/system/vendor/lib64 \
$(OPENGL_LIBS) \
-lm -llog
installers/installer_dashcam: $(DASHCAM_OBJS)
@echo "[ LINK ] $@"
$(CXX) -fPIC -o '$@' $^ \
-s \
$(FRAMEBUFFER_LIBS) \
-L/system/vendor/lib64 \
$(OPENGL_LIBS) \
-lm -llog
../selfdrive/common/framebuffer.o: ../selfdrive/common/framebuffer.cc
@echo "[ CXX ] $@"
$(CXX) $(CXXFLAGS) -MMD \
-I$(PHONELIBS)/android_frameworks_native/include \
-I$(PHONELIBS)/android_system_core/include \
-I$(PHONELIBS)/android_hardware_libhardware/include \
-c -o '$@' '$<'
../selfdrive/common/spinner.o: ../selfdrive/common/spinner.c
@echo "[ CXX ] $@"
$(CXX) $(CXXFLAGS) -MMD \
-I$(PHONELIBS)/android_frameworks_native/include \
-I$(PHONELIBS)/android_system_core/include \
-I$(PHONELIBS)/android_hardware_libhardware/include \
$(NANOVG_FLAGS) \
-c -o '$@' '$<'
opensans_semibold.o: ../selfdrive/assets/fonts/opensans_semibold.ttf
@echo "[ bin2o ] $@"
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
img_spinner_track.o: ../selfdrive/assets/img_spinner_track.png
@echo "[ bin2o ] $@"
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
img_spinner_comma.o: ../selfdrive/assets/img_spinner_comma.png
@echo "[ bin2o ] $@"
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
installer_openpilot.o: installer.c
@echo "[ CC ] $@"
$(CC) $(CFLAGS) -MMD \
-I.. -I../selfdrive \
-DBRAND=openpilot \
-DBRANCH=release2 \
-c -o '$@' '$<'
installer_dashcam.o: installer.c
@echo "[ CC ] $@"
$(CC) $(CFLAGS) -MMD \
-I.. -I../selfdrive \
-DBRAND=dashcam \
-DBRANCH=dashcam \
-c -o '$@' '$<'
%.o: %.c
@echo "[ CC ] $@"
$(CC) $(CFLAGS) -MMD \
-I.. -I../selfdrive \
-c -o '$@' '$<'
%.o: %.sh
@echo "[ bin2o ] $@"
cd '$(dir $<)' && ld -r -b binary '$(notdir $<)' -o '$(abspath $@)'
.PHONY: clean
clean:
rm -f installer_openpilot installer_dashcam $(OPENPILOT_OBJS) $(DASHCAM_OBJS) $(DEPS)
-include $(DEPS)