blob: 1275cc79b245be7065f9f5f22d10f5879f0ab045 [file] [log] [blame]
# 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