scons: Updates for targets/egl-static.
[mesa.git] / src / mapi / es1api / Makefile
1 # src/mapi/es1api/Makefile
2
3 TOP := ../../..
4 include $(TOP)/configs/current
5
6 # this Makefile can build both OpenGL ES 1.1 and 2.0
7 ifeq ($(ES),)
8 ES := es1
9
10 GLES_HEADER := GLES
11 GLES_PC := glesv1_cm.pc
12
13 GLES_LIB := $(GLESv1_CM_LIB)
14 GLES_LIB_NAME := $(GLESv1_CM_LIB_NAME)
15 GLES_LIB_GLOB := $(GLESv1_CM_LIB_GLOB)
16 GLES_LIB_DEPS := $(GLESv1_CM_LIB_DEPS)
17 GLES_LIB_MAJOR := 1
18 GLES_LIB_MINOR := 1
19 GLES_LIB_PATCH := 0
20 else
21 GLES_HEADER := GLES2
22 GLES_PC := glesv2.pc
23
24 GLES_LIB := $(GLESv2_LIB)
25 GLES_LIB_NAME := $(GLESv2_LIB_NAME)
26 GLES_LIB_GLOB := $(GLESv2_LIB_GLOB)
27 GLES_LIB_DEPS := $(GLESv2_LIB_DEPS)
28 GLES_LIB_MAJOR := 2
29 GLES_LIB_MINOR := 0
30 GLES_LIB_PATCH := 0
31 endif
32
33 ESAPI = $(ES)api
34
35 GLAPI := $(TOP)/src/mapi/glapi
36 MAPI := $(TOP)/src/mapi/mapi
37 # directory for generated sources/headers
38 GEN := glapi
39
40 include $(GLAPI)/sources.mak
41 GLAPI_OBJECTS := $(GLAPI_SOURCES:.c=.o)
42 GLAPI_SOURCES := $(addprefix $(GLAPI)/, $(GLAPI_SOURCES))
43 GLAPI_ASM_OBJECTS := $(GLAPI_ASM_SOURCES:.S=.o)
44 GLAPI_ASM_SOURCES := $(addprefix $(GEN)/, $(GLAPI_ASM_SOURCES))
45
46 include $(MAPI)/sources.mak
47 MAPI_UTIL_OBJECTS := $(MAPI_UTIL_SOURCES:.c=.o)
48 MAPI_UTIL_SOURCES := $(addprefix $(MAPI)/, $(MAPI_UTIL_SOURCES))
49
50 ESAPI_OBJECTS = $(GLAPI_OBJECTS) $(GLAPI_ASM_OBJECTS) $(MAPI_UTIL_OBJECTS)
51
52 INCLUDE_DIRS = \
53 -I$(TOP)/include \
54 -I$(TOP)/src/mapi/$(ESAPI) \
55 -I$(TOP)/src/mapi \
56 -I$(TOP)/src/mesa
57
58 .PHONY: default
59 default: depend $(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME)
60
61 $(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME): $(ESAPI_OBJECTS)
62 $(MKLIB) -o $(GLES_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
63 -major $(GLES_LIB_MAJOR) \
64 -minor $(GLES_LIB_MINOR) \
65 -patch $(GLES_LIB_PATCH) \
66 -id $(INSTALL_LIB_DIR)/lib$(GLES_LIB).$(GLES_LIB_MAJOR).dylib \
67 $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
68 $(ESAPI_OBJECTS) $(GLES_LIB_DEPS)
69
70 # not used, but kept for completeness
71 lib$(ESAPI).a: $(ESAPI_OBJECTS)
72 @$(MKLIB) -o $(ESAPI) -static $(ESAPI_OBJECTS)
73
74 $(GLAPI_OBJECTS): %.o: $(GLAPI)/%.c
75 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) -DMAPI_MODE_UTIL $< -o $@
76
77 $(GLAPI_ASM_OBJECTS): %.o: $(GEN)/%.S
78 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
79
80 $(MAPI_UTIL_OBJECTS): %.o: $(MAPI)/%.c
81 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) -DMAPI_MODE_UTIL $< -o $@
82
83 $(GLAPI_SOURCES) $(GLAPI_ASM_SOURCES): | glapi-stamp
84
85 glapi-stamp:
86 @# generate sources/headers
87 @$(MAKE) -C $(GLAPI)/gen-es $(ES)
88 @touch $@
89
90 .PHONY: clean
91 clean:
92 -rm -f $(GLES_PC)
93 -rm -f $(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME)
94 -rm -f lib$(ESAPI).a
95 -rm -f $(ESAPI_OBJECTS)
96 -rm -f depend depend.bak
97 -rm -f glapi-stamp
98 @# clean generated sources/headers
99 @$(MAKE) -C $(GLAPI)/gen-es clean-$(ES)
100
101 pcedit = \
102 -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
103 -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
104 -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
105 -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
106
107 pcedit-es1 = \
108 $(pcedit) \
109 -e 's,@GLESv1_CM_PC_REQ_PRIV@,$(GLESv1_CM_PC_REQ_PRIV),' \
110 -e 's,@GLESv1_CM_PC_LIB_PRIV@,$(GLESv1_CM_PC_LIB_PRIV),' \
111 -e 's,@GLESv1_CM_PC_CFLAGS@,$(GLESv1_CM_PC_CFLAGS),' \
112 -e 's,@GLESv1_CM_LIB@,$(GLESv1_CM_LIB),'
113
114 pcedit-es2 = \
115 $(pcedit) \
116 -e 's,@GLESv2_PC_REQ_PRIV@,$(GLESv2_PC_REQ_PRIV),' \
117 -e 's,@GLESv2_PC_LIB_PRIV@,$(GLESv2_PC_LIB_PRIV),' \
118 -e 's,@GLESv2_PC_CFLAGS@,$(GLESv2_PC_CFLAGS),' \
119 -e 's,@GLESv2_LIB@,$(GLESv2_LIB),'
120
121 $(GLES_PC): $(GLES_PC).in
122 @sed $(pcedit-$(ES)) $< > $@
123
124 install-headers:
125 $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/$(GLES_HEADER)
126 $(INSTALL) -m 644 $(TOP)/include/$(GLES_HEADER)/*.h \
127 $(DESTDIR)$(INSTALL_INC_DIR)/$(GLES_HEADER)
128
129 install-pc: $(GLES_PC)
130 $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
131 $(INSTALL) -m 644 $(GLES_PC) $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
132
133 install: default install-headers install-pc
134 $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
135 $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLES_LIB_GLOB) \
136 $(DESTDIR)$(INSTALL_LIB_DIR)
137
138 depend: $(GLAPI_SOURCES) $(MAPI_UTIL_SOURCES)
139 @echo "running $(MKDEP)"
140 @touch depend
141 @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(INCLUDE_DIRS) \
142 -DMAPI_MODE_UTIL $(GLAPI_SOURCES) $(MAPI_UTIL_SOURCES) \
143 2>/dev/null | sed -e 's,^$(GLAPI)/,,' -e 's,^$(MAPI)/,,' \
144 > depend