| # src/gallium/targets/egl-apis |
| |
| TOP = ../../../.. |
| include $(TOP)/configs/current |
| |
| OUTPUT_PREFIX := api_ |
| OUTPUT_PATH := $(TOP)/$(LIB_DIR)/egl |
| |
| OUTPUTS := $(addsuffix .so, $(EGL_CLIENT_APIS)) |
| OUTPUTS := $(addprefix $(OUTPUT_PATH)/$(OUTPUT_PREFIX), $(OUTPUTS)) |
| |
| # include dirs |
| GL_INCLUDES := -I$(TOP)/src/mesa -I$(TOP)/src/gallium/include |
| GLESv1_CM_INCLUDES := $(GL_INCLUDES) |
| GLESv2_INCLUDES := $(GL_INCLUDES) |
| OpenVG_INCLUDES := -I$(TOP)/src/gallium/state_trackers/vega -I$(TOP)/src/gallium/include |
| |
| # cflags |
| GL_CFLAGS := $(API_DEFINES) |
| GLESv1_CM_CFLAGS := |
| GLESv2_CFLAGS := |
| OpenVG_CFLAGS := |
| |
| # system libs |
| GL_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) |
| GLESv1_CM_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv1_CM_LIB) |
| GLESv2_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv2_LIB) |
| OpenVG_SYS := -lm -L$(TOP)/$(LIB_DIR) -l$(VG_LIB) |
| |
| # $(LLVM_LIBS) will be discarded except for OpenGL, which creates a private |
| # draw context for selection/feedback mode. |
| ifeq ($(MESA_LLVM),1) |
| GL_SYS += $(LLVM_LIBS) |
| GLESv1_CM_SYS += $(LLVM_LIBS) |
| GLESv2_SYS += $(LLVM_LIBS) |
| OpenVG_SYS += $(LLVM_LIBS) |
| LDFLAGS += $(LLVM_LDFLAGS) |
| endif |
| |
| # project libs |
| GL_LIBS := $(TOP)/src/mesa/libmesagallium.a |
| GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a |
| GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a |
| OpenVG_LIBS := $(TOP)/src/gallium/state_trackers/vega/libvega.a |
| |
| # objects |
| GL_OBJECTS := api_GL.o |
| GLESv1_CM_OBJECTS := api_GLESv1_CM.o |
| GLESv2_OBJECTS := api_GLESv2.o |
| OpenVG_OBJECTS := api_OpenVG.o |
| |
| default: $(OUTPUTS) |
| |
| api_%.o: api_%.c |
| $(CC) -c -o $@ $< $($*_INCLUDES) $($*_CFLAGS) $(DEFINES) $(CFLAGS) |
| |
| define mklib |
| $(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \ |
| -install $(OUTPUT_PATH) $(MKLIB_OPTIONS) \ |
| $($(1)_OBJECTS) $($(1)_LIBS) $(GALLIUM_AUXILIARIES) $($(1)_SYS) |
| endef |
| |
| $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GL_LIB).so: $(GL_OBJECTS) $(GL_LIBS) |
| $(call mklib,GL) |
| |
| $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv1_CM_LIB).so: $(GLESv1_CM_OBJECTS) $(GLESv1_CM_LIBS) |
| $(call mklib,GLESv1_CM) |
| |
| $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv2_LIB).so: $(GLESv2_OBJECTS) $(GLESv2_LIBS) |
| $(call mklib,GLESv2) |
| |
| $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(VG_LIB).so: $(OpenVG_OBJECTS) $(OpenVG_LIBS) |
| $(call mklib,OpenVG) |
| |
| install: $(OUTPUTS) |
| $(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR) |
| for out in $(OUTPUTS); do \ |
| $(MINSTALL) -m 755 "$$out" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \ |
| done |
| |
| clean: |
| -rm -f $(OUTPUTS) |
| -rm -f *.o |