blob: 74aeeed5d5bfc8be83989ceb120c9b77fe80fa0d [file] [log] [blame]
limin.tianb9f7f8c2022-01-12 11:31:56 +08001LOCAL_PATH = $(shell pwd)
limin.tianb9f7f8c2022-01-12 11:31:56 +08002MIN_GCC_VERSION = "10"
3GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`"
4IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)")
5ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1"
6CFLAGS += -std=gnu++20
7endif
Ao Xu6747bbd2020-09-28 20:02:09 +08008
limin.tian75338482022-06-20 09:27:34 +08009LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -ldl -lrt -ludev -L$(STAGING_DIR)/usr/lib
limin.tianb9f7f8c2022-01-12 11:31:56 +080010CFLAGS += -Wall -Wno-unknown-pragmas -Wno-format -Wno-format-security -Wno-error=unused-result \
11 -O3 -fexceptions -fnon-call-exceptions -D_GNU_SOURCE -I$(STAGING_DIR)/usr/include
12CFLAGS += -I$(STAGING_DIR)/usr/include/ -I$(STAGING_DIR)/usr/include/libdrm/
13LDFLAGS += -L$(STAGING_DIR)/usr/lib -ldrm
14meson_drm_SRCS = \
wenlong.zhang52052d12023-01-13 15:42:57 +080015 $(LOCAL_PATH)/libdrm_meson_connector.c \
16 $(LOCAL_PATH)/libdrm_meson_property.c \
17 $(LOCAL_PATH)/meson_drm.c \
18 $(LOCAL_PATH)/meson_drm_async_commit.c \
19 $(LOCAL_PATH)/meson_drm_kms.c \
20 $(LOCAL_PATH)/meson_drm_util.c \
21 $(LOCAL_PATH)/meson_drm_display.c \
22 $(LOCAL_PATH)/meson_drm_event.c \
chen.wang19fec1842023-06-15 06:52:30 +000023 $(LOCAL_PATH)/meson_drm_settings.c \
24 $(LOCAL_PATH)/meson_drm_log.c \
wenlong.zhang52052d12023-01-13 15:42:57 +080025 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080026
limin.tianb9f7f8c2022-01-12 11:31:56 +080027meson_drm_HEADERS = \
limin.tian75338482022-06-20 09:27:34 +080028 $(LOCAL_PATH) \
limin.tianb9f7f8c2022-01-12 11:31:56 +080029 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080030
limin.tianb9f7f8c2022-01-12 11:31:56 +080031meson_drm_test_SRCS = \
32 $(LOCAL_PATH)/meson_drm_test.c \
33 $(NULL)
Ao Xu6747bbd2020-09-28 20:02:09 +080034
limin.tianb9f7f8c2022-01-12 11:31:56 +080035meson_drm_display_test_SRCS = \
limin.tian75338482022-06-20 09:27:34 +080036 $(LOCAL_PATH)/meson_drm_display_test.c \
limin.tianb9f7f8c2022-01-12 11:31:56 +080037 $(NULL)
wenlong.zhang52052d12023-01-13 15:42:57 +080038
limin.tian20df7d42023-02-10 10:05:52 +080039meson_drm_settings_test_SRCS = \
40 $(LOCAL_PATH)/meson_drm_settings_test.c \
41 $(NULL)
leng.fangc7e4bb72023-12-25 08:48:45 +000042
43OUT_DIR ?= .
limin.tianb9f7f8c2022-01-12 11:31:56 +080044# ---------------------------------------------------------------------
45# Build rules
limin.tian20df7d42023-02-10 10:05:52 +080046BUILD_TARGETS = libdrm_meson.so meson_drm_test meson_drm_display_test meson_drm_settings_test
leng.fangc7e4bb72023-12-25 08:48:45 +000047CLEAN_TARGETS = $(addprefix $(OUT_DIR)/, $(BUILD_TARGETS))
limin.tianb9f7f8c2022-01-12 11:31:56 +080048
49.PHONY: all install uninstall clean
50
wenlong.zhang52052d12023-01-13 15:42:57 +080051all:$(BUILD_TARGETS)
52
limin.tianb9f7f8c2022-01-12 11:31:56 +080053libdrm_meson.so: $(meson_drm_SRCS)
54 $(CC) $(CFLAGS) $(LDFLAGS) -g -D_FILE_OFFSET_BITS=64 -Wall \
leng.fangc7e4bb72023-12-25 08:48:45 +000055 -shared -fPIC -o $(OUT_DIR)/$@ $^ $(LDLIBS)
56 cp -f $(OUT_DIR)/libdrm_meson.so $(STAGING_DIR)/usr/lib/
limin.tianb9f7f8c2022-01-12 11:31:56 +080057
leng.fangc7e4bb72023-12-25 08:48:45 +000058meson_drm_test: $(meson_drm_test_SRCS) $(OUT_DIR)/libdrm_meson.so
limin.tianb9f7f8c2022-01-12 11:31:56 +080059 $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
leng.fangc7e4bb72023-12-25 08:48:45 +000060 -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
limin.tianb9f7f8c2022-01-12 11:31:56 +080061
leng.fangc7e4bb72023-12-25 08:48:45 +000062meson_drm_display_test: $(meson_drm_display_test_SRCS) $(OUT_DIR)/libdrm_meson.so
limin.tianb9f7f8c2022-01-12 11:31:56 +080063 $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
leng.fangc7e4bb72023-12-25 08:48:45 +000064 -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
65meson_drm_settings_test: $(meson_drm_settings_test_SRCS) $(OUT_DIR)/libdrm_meson.so
limin.tian20df7d42023-02-10 10:05:52 +080066 $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
leng.fangc7e4bb72023-12-25 08:48:45 +000067 -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
limin.tianb9f7f8c2022-01-12 11:31:56 +080068
Ao Xu6747bbd2020-09-28 20:02:09 +080069clean:
leng.fangc7e4bb72023-12-25 08:48:45 +000070 rm -f *.o $(CLEAN_TARGETS)
Ao Xu6747bbd2020-09-28 20:02:09 +080071
72install:
leng.fangc7e4bb72023-12-25 08:48:45 +000073 install -m 0644 $(OUT_DIR)/libdrm_meson.so $(TARGET_DIR)/usr/lib
74 install -m 755 $(OUT_DIR)/meson_drm_test $(TARGET_DIR)/usr/bin/
75 install -m 755 $(OUT_DIR)/meson_drm_display_test $(TARGET_DIR)/usr/bin/
76 install -m 755 $(OUT_DIR)/meson_drm_settings_test $(TARGET_DIR)/usr/bin/
limin.tianaaafaf02022-03-22 20:37:15 +080077 cp meson_drmif.h $(STAGING_DIR)/usr/include/
78 cp meson_drm_util.h $(STAGING_DIR)/usr/include/
Qianqiang Liu5b9de7f2023-07-20 19:54:16 +080079 install -D -m 0644 meson_drm_settings.h $(STAGING_DIR)/usr/include/libdrm_meson/meson_drm_settings.h
80 install -D -m 0644 meson_drm_event.h $(STAGING_DIR)/usr/include/libdrm_meson/meson_drm_event.h
81 install -D -m 0644 meson_drm_log.h $(STAGING_DIR)/usr/include/libdrm_meson/meson_drm_log.h
limin.tianb9f7f8c2022-01-12 11:31:56 +080082
limin.tianb9f7f8c2022-01-12 11:31:56 +080083uninstall:
84 rm -f $(TARGET_DIR)/usr/lib/libdrm_meson.so
85 rm -f $(TARGET_DIR)/usr/bin/meson_drm_test
86 rm -f $(TARGET_DIR)/usr/bin/meson_drm_display_test
limin.tian20df7d42023-02-10 10:05:52 +080087 rm -f $(TARGET_DIR)/usr/bin/meson_drm_settings_test
limin.tianb9f7f8c2022-01-12 11:31:56 +080088