blob: 2741e732279d956de91b7b5ca687312fb569880a [file] [log] [blame]
limin.tianb9f7f8c2022-01-12 11:31:56 +08001LOCAL_PATH = $(shell pwd)
Ao Xu6747bbd2020-09-28 20:02:09 +08002
limin.tianb9f7f8c2022-01-12 11:31:56 +08003MIN_GCC_VERSION = "10"
4GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`"
5IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)")
6ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1"
7CFLAGS += -std=gnu++20
8endif
Ao Xu6747bbd2020-09-28 20:02:09 +08009
limin.tian75338482022-06-20 09:27:34 +080010LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -ldl -lrt -ludev -L$(STAGING_DIR)/usr/lib
limin.tianb9f7f8c2022-01-12 11:31:56 +080011CFLAGS += -Wall -Wno-unknown-pragmas -Wno-format -Wno-format-security -Wno-error=unused-result \
12 -O3 -fexceptions -fnon-call-exceptions -D_GNU_SOURCE -I$(STAGING_DIR)/usr/include
13CFLAGS += -I$(STAGING_DIR)/usr/include/ -I$(STAGING_DIR)/usr/include/libdrm/
14LDFLAGS += -L$(STAGING_DIR)/usr/lib -ldrm
15meson_drm_SRCS = \
wenlong.zhang52052d12023-01-13 15:42:57 +080016 $(LOCAL_PATH)/libdrm_meson_connector.c \
17 $(LOCAL_PATH)/libdrm_meson_property.c \
18 $(LOCAL_PATH)/meson_drm.c \
19 $(LOCAL_PATH)/meson_drm_async_commit.c \
20 $(LOCAL_PATH)/meson_drm_kms.c \
21 $(LOCAL_PATH)/meson_drm_util.c \
22 $(LOCAL_PATH)/meson_drm_display.c \
23 $(LOCAL_PATH)/meson_drm_event.c \
24 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080025
limin.tianb9f7f8c2022-01-12 11:31:56 +080026meson_drm_HEADERS = \
limin.tian75338482022-06-20 09:27:34 +080027 $(LOCAL_PATH) \
limin.tianb9f7f8c2022-01-12 11:31:56 +080028 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080029
limin.tianb9f7f8c2022-01-12 11:31:56 +080030meson_drm_test_SRCS = \
31 $(LOCAL_PATH)/meson_drm_test.c \
32 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080033
limin.tianb9f7f8c2022-01-12 11:31:56 +080034meson_drm_display_test_SRCS = \
limin.tian75338482022-06-20 09:27:34 +080035 $(LOCAL_PATH)/meson_drm_display_test.c \
limin.tianb9f7f8c2022-01-12 11:31:56 +080036 $(NULL)
wenlong.zhang52052d12023-01-13 15:42:57 +080037
limin.tianb9f7f8c2022-01-12 11:31:56 +080038# ---------------------------------------------------------------------
39# Build rules
wenlong.zhang52052d12023-01-13 15:42:57 +080040BUILD_TARGETS = libdrm_meson.so meson_drm_test meson_drm_display_test
limin.tianb9f7f8c2022-01-12 11:31:56 +080041
42.PHONY: all install uninstall clean
43
wenlong.zhang52052d12023-01-13 15:42:57 +080044all:$(BUILD_TARGETS)
45
limin.tianb9f7f8c2022-01-12 11:31:56 +080046libdrm_meson.so: $(meson_drm_SRCS)
47 $(CC) $(CFLAGS) $(LDFLAGS) -g -D_FILE_OFFSET_BITS=64 -Wall \
48 -shared -fPIC -o $@ $^ $(LDLIBS)
yichen.li19d05eb2022-03-25 21:09:56 +080049 cp -f libdrm_meson.so $(STAGING_DIR)/usr/lib/
limin.tianb9f7f8c2022-01-12 11:31:56 +080050
51meson_drm_test: $(meson_drm_test_SRCS) libdrm_meson.so
52 $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
53 -ldrm_meson $(LDFLAGS) -o $@ $^ $(LDLIBS)
54
55meson_drm_display_test: $(meson_drm_display_test_SRCS) libdrm_meson.so
56 $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
57 -ldrm_meson $(LDFLAGS) -o $@ $^ $(LDLIBS)
58
Ao Xu6747bbd2020-09-28 20:02:09 +080059clean:
limin.tianb9f7f8c2022-01-12 11:31:56 +080060 rm -f *.o $(BUILD_TARGETS)
Ao Xu6747bbd2020-09-28 20:02:09 +080061
62install:
limin.tianb9f7f8c2022-01-12 11:31:56 +080063 install -m 0644 libdrm_meson.so $(TARGET_DIR)/usr/lib
64 install -m 755 meson_drm_test $(TARGET_DIR)/usr/bin/
65 install -m 755 meson_drm_display_test $(TARGET_DIR)/usr/bin/
limin.tianaaafaf02022-03-22 20:37:15 +080066 cp meson_drmif.h $(STAGING_DIR)/usr/include/
67 cp meson_drm_util.h $(STAGING_DIR)/usr/include/
limin.tianb9f7f8c2022-01-12 11:31:56 +080068
limin.tianb9f7f8c2022-01-12 11:31:56 +080069uninstall:
70 rm -f $(TARGET_DIR)/usr/lib/libdrm_meson.so
71 rm -f $(TARGET_DIR)/usr/bin/meson_drm_test
72 rm -f $(TARGET_DIR)/usr/bin/meson_drm_display_test
73