limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 1 | LOCAL_PATH = $(shell pwd) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 2 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 3 | MIN_GCC_VERSION = "10" |
| 4 | GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`" |
| 5 | IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)") |
| 6 | ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1" |
| 7 | CFLAGS += -std=gnu++20 |
| 8 | endif |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 9 | |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 10 | 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] | 11 | CFLAGS += -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 |
| 13 | CFLAGS += -I$(STAGING_DIR)/usr/include/ -I$(STAGING_DIR)/usr/include/libdrm/ |
| 14 | LDFLAGS += -L$(STAGING_DIR)/usr/lib -ldrm |
| 15 | meson_drm_SRCS = \ |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame^] | 16 | $(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 Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 25 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 26 | meson_drm_HEADERS = \ |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 27 | $(LOCAL_PATH) \ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 28 | $(NULL) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 29 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 30 | meson_drm_test_SRCS = \ |
| 31 | $(LOCAL_PATH)/meson_drm_test.c \ |
| 32 | $(NULL) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 33 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 34 | meson_drm_display_test_SRCS = \ |
limin.tian | 7533848 | 2022-06-20 09:27:34 +0800 | [diff] [blame] | 35 | $(LOCAL_PATH)/meson_drm_display_test.c \ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 36 | $(NULL) |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame^] | 37 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 38 | # --------------------------------------------------------------------- |
| 39 | # Build rules |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame^] | 40 | BUILD_TARGETS = libdrm_meson.so meson_drm_test meson_drm_display_test |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 41 | |
| 42 | .PHONY: all install uninstall clean |
| 43 | |
wenlong.zhang | 52052d1 | 2023-01-13 15:42:57 +0800 | [diff] [blame^] | 44 | all:$(BUILD_TARGETS) |
| 45 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 46 | libdrm_meson.so: $(meson_drm_SRCS) |
| 47 | $(CC) $(CFLAGS) $(LDFLAGS) -g -D_FILE_OFFSET_BITS=64 -Wall \ |
| 48 | -shared -fPIC -o $@ $^ $(LDLIBS) |
yichen.li | 19d05eb | 2022-03-25 21:09:56 +0800 | [diff] [blame] | 49 | cp -f libdrm_meson.so $(STAGING_DIR)/usr/lib/ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 50 | |
| 51 | meson_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 | |
| 55 | meson_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 Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 59 | clean: |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 60 | rm -f *.o $(BUILD_TARGETS) |
Ao Xu | 6747bbd | 2020-09-28 20:02:09 +0800 | [diff] [blame] | 61 | |
| 62 | install: |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 63 | 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.tian | aaafaf0 | 2022-03-22 20:37:15 +0800 | [diff] [blame] | 66 | cp meson_drmif.h $(STAGING_DIR)/usr/include/ |
| 67 | cp meson_drm_util.h $(STAGING_DIR)/usr/include/ |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 68 | |
limin.tian | b9f7f8c | 2022-01-12 11:31:56 +0800 | [diff] [blame] | 69 | uninstall: |
| 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 | |