1275cc79b245be7065f9f5f22d10f5879f0ab045
[mesa.git] / src / gallium / targets / egl-apis / Makefile
1 # src/gallium/targets/egl-apis
2
3 TOP = ../../../..
4 include $(TOP)/configs/current
5
6 OUTPUT_PREFIX := api_
7 OUTPUT_PATH := $(TOP)/$(LIB_DIR)/egl
8
9 OUTPUTS := $(addsuffix .so, $(EGL_CLIENT_APIS))
10 OUTPUTS := $(addprefix $(OUTPUT_PATH)/$(OUTPUT_PREFIX), $(OUTPUTS))
11
12 # include dirs
13 GL_INCLUDES := -I$(TOP)/src/mesa -I$(TOP)/src/gallium/include
14 GLESv1_CM_INCLUDES := $(GL_INCLUDES)
15 GLESv2_INCLUDES := $(GL_INCLUDES)
16 OpenVG_INCLUDES := -I$(TOP)/src/gallium/state_trackers/vega -I$(TOP)/src/gallium/include
17
18 # cflags
19 GL_CFLAGS := $(API_DEFINES)
20 GLESv1_CM_CFLAGS :=
21 GLESv2_CFLAGS :=
22 OpenVG_CFLAGS :=
23
24 # system libs
25 GL_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
26 GLESv1_CM_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv1_CM_LIB)
27 GLESv2_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv2_LIB)
28 OpenVG_SYS := -lm -L$(TOP)/$(LIB_DIR) -l$(VG_LIB)
29
30 # $(LLVM_LIBS) will be discarded except for OpenGL, which creates a private
31 # draw context for selection/feedback mode.
32 ifeq ($(MESA_LLVM),1)
33 GL_SYS += $(LLVM_LIBS)
34 GLESv1_CM_SYS += $(LLVM_LIBS)
35 GLESv2_SYS += $(LLVM_LIBS)
36 OpenVG_SYS += $(LLVM_LIBS)
37 LDFLAGS += $(LLVM_LDFLAGS)
38 endif
39
40 # project libs
41 GL_LIBS := $(TOP)/src/mesa/libmesagallium.a
42 GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a
43 GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a
44 OpenVG_LIBS := $(TOP)/src/gallium/state_trackers/vega/libvega.a
45
46 # objects
47 GL_OBJECTS := api_GL.o
48 GLESv1_CM_OBJECTS := api_GLESv1_CM.o
49 GLESv2_OBJECTS := api_GLESv2.o
50 OpenVG_OBJECTS := api_OpenVG.o
51
52 default: $(OUTPUTS)
53
54 api_%.o: api_%.c
55 $(CC) -c -o $@ $< $($*_INCLUDES) $($*_CFLAGS) $(DEFINES) $(CFLAGS)
56
57 define mklib
58 $(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
59 -install $(OUTPUT_PATH) $(MKLIB_OPTIONS) \
60 $($(1)_OBJECTS) $($(1)_LIBS) $(GALLIUM_AUXILIARIES) $($(1)_SYS)
61 endef
62
63 $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GL_LIB).so: $(GL_OBJECTS) $(GL_LIBS)
64 $(call mklib,GL)
65
66 $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv1_CM_LIB).so: $(GLESv1_CM_OBJECTS) $(GLESv1_CM_LIBS)
67 $(call mklib,GLESv1_CM)
68
69 $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv2_LIB).so: $(GLESv2_OBJECTS) $(GLESv2_LIBS)
70 $(call mklib,GLESv2)
71
72 $(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(VG_LIB).so: $(OpenVG_OBJECTS) $(OpenVG_LIBS)
73 $(call mklib,OpenVG)
74
75 install: $(OUTPUTS)
76 $(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
77 for out in $(OUTPUTS); do \
78 $(MINSTALL) -m 755 "$$out" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \
79 done
80
81 clean:
82 -rm -f $(OUTPUTS)
83 -rm -f *.o