limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 1 | LOCAL_PATH = $(shell pwd) |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 2 | MIN_GCC_VERSION = "10" |
| 3 | GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`" |
| 4 | IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)") |
| 5 | ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1" |
| 6 | CFLAGS += -std=gnu++20 |
| 7 | endif |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 8 | |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 9 | LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -ldl -lrt -ludev -L$(STAGING_DIR)/usr/lib |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 10 | CFLAGS += -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 |
| 12 | CFLAGS += -I$(STAGING_DIR)/usr/include/ -I$(STAGING_DIR)/usr/include/libdrm/ |
| 13 | LDFLAGS += -L$(STAGING_DIR)/usr/lib -ldrm |
| 14 | meson_drm_SRCS = \ |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame] | 15 | $(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.wang1 | 9fec184 | 2023-06-15 06:52:30 +0000 | [diff] [blame] | 23 | $(LOCAL_PATH)/meson_drm_settings.c \ |
| 24 | $(LOCAL_PATH)/meson_drm_log.c \ |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame] | 25 | $(NULL) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 26 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 27 | meson_drm_HEADERS = \ |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 28 | $(LOCAL_PATH) \ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 29 | $(NULL) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 30 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 31 | meson_drm_test_SRCS = \ |
| 32 | $(LOCAL_PATH)/meson_drm_test.c \ |
| 33 | $(NULL) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 34 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 35 | meson_drm_display_test_SRCS = \ |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 36 | $(LOCAL_PATH)/meson_drm_display_test.c \ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 37 | $(NULL) |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame] | 38 | |
limin.tian | 20df7d4 | 2023-02-10 10:05:52 +0800 | [diff] [blame] | 39 | meson_drm_settings_test_SRCS = \ |
| 40 | $(LOCAL_PATH)/meson_drm_settings_test.c \ |
| 41 | $(NULL) |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 42 | |
| 43 | OUT_DIR ?= . |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 44 | # --------------------------------------------------------------------- |
| 45 | # Build rules |
limin.tian | 20df7d4 | 2023-02-10 10:05:52 +0800 | [diff] [blame] | 46 | BUILD_TARGETS = libdrm_meson.so meson_drm_test meson_drm_display_test meson_drm_settings_test |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 47 | CLEAN_TARGETS = $(addprefix $(OUT_DIR)/, $(BUILD_TARGETS)) |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 48 | |
| 49 | .PHONY: all install uninstall clean |
| 50 | |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame] | 51 | all:$(BUILD_TARGETS) |
| 52 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 53 | libdrm_meson.so: $(meson_drm_SRCS) |
| 54 | $(CC) $(CFLAGS) $(LDFLAGS) -g -D_FILE_OFFSET_BITS=64 -Wall \ |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 55 | -shared -fPIC -o $(OUT_DIR)/$@ $^ $(LDLIBS) |
| 56 | cp -f $(OUT_DIR)/libdrm_meson.so $(STAGING_DIR)/usr/lib/ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 57 | |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 58 | meson_drm_test: $(meson_drm_test_SRCS) $(OUT_DIR)/libdrm_meson.so |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 59 | $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \ |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 60 | -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS) |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 61 | |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 62 | meson_drm_display_test: $(meson_drm_display_test_SRCS) $(OUT_DIR)/libdrm_meson.so |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 63 | $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \ |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 64 | -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS) |
| 65 | meson_drm_settings_test: $(meson_drm_settings_test_SRCS) $(OUT_DIR)/libdrm_meson.so |
limin.tian | 20df7d4 | 2023-02-10 10:05:52 +0800 | [diff] [blame] | 66 | $(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \ |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 67 | -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS) |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 68 | |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 69 | clean: |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 70 | rm -f *.o $(CLEAN_TARGETS) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 71 | |
| 72 | install: |
leng.fang | c7e4bb7 | 2023-12-25 08:48:45 +0000 | [diff] [blame^] | 73 | 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.tian | aaafaf0 | 2022-03-22 20:37:15 +0800 | [diff] [blame] | 77 | cp meson_drmif.h $(STAGING_DIR)/usr/include/ |
| 78 | cp meson_drm_util.h $(STAGING_DIR)/usr/include/ |
Qianqiang Liu | 5b9de7f | 2023-07-20 19:54:16 +0800 | [diff] [blame] | 79 | 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.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 82 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 83 | uninstall: |
| 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.tian | 20df7d4 | 2023-02-10 10:05:52 +0800 | [diff] [blame] | 87 | rm -f $(TARGET_DIR)/usr/bin/meson_drm_settings_test |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 88 | |