blob: 633bfb19a3bc69ecf2c213c08e1c41929c0e196b [file] [log] [blame]
Brian Paulde0ee312004-03-26 15:19:11 +00001# src/mesa/Makefile
2
3TOP = ../..
4include $(TOP)/configs/current
5
6include sources
7
8
9GL_MAJOR = 1
10GL_MINOR = 5
11GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
12
13
Michal Krola885c7a2005-01-18 14:16:51 +000014.SUFFIXES : .cpp
Brian Paul7443c2c2005-01-17 22:33:50 +000015
Brian Paulde0ee312004-03-26 15:19:11 +000016.c.o:
17 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
18
Michal Krola885c7a2005-01-18 14:16:51 +000019.cpp.o:
Brian Paul7443c2c2005-01-17 22:33:50 +000020 $(CXX) -c $(INCLUDE_DIRS) $(CXXFLAGS) $< -o $@
21
Brian Paulde0ee312004-03-26 15:19:11 +000022.S.o:
23 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
24
25
26# Figure out what to make here
27default:
Dan Nicholson544ab202007-12-30 08:41:53 -080028 @for driver in $(DRIVER_DIRS) ; do \
29 case "$$driver" in \
30 x11) $(MAKE) stand-alone ;; \
31 dri) $(MAKE) linux-solo ;; \
32 osmesa) $(MAKE) osmesa-only ;; \
33 beos) $(MAKE) beos ;; \
34 directfb) $(MAKE) directfb ;; \
35 fbdev) $(MAKE) fbdev ;; \
36 *) echo "$$driver is invalid in DRIVER_DIRS" >&2; exit 1;; \
37 esac ; \
38 done
Brian Paulde0ee312004-03-26 15:19:11 +000039
Brian Paul26c7e652005-09-10 16:41:17 +000040
Brian Paul26c7e652005-09-10 16:41:17 +000041######################################################################
Philippe Houdoin31848302004-08-14 09:23:09 +000042# BeOS driver target
Brian Paul26c7e652005-09-10 16:41:17 +000043
Brian Paul158a2aa2005-09-06 03:02:01 +000044beos: depend subdirs libmesa.a
Philippe Houdoin31848302004-08-14 09:23:09 +000045 cd drivers/beos; $(MAKE)
Brian Paul7e27ab42004-08-16 17:11:10 +000046
47
Brian Paulde0ee312004-03-26 15:19:11 +000048######################################################################
Brian Paul26c7e652005-09-10 16:41:17 +000049# Linux DRI drivers
Brian Paulde0ee312004-03-26 15:19:11 +000050
51# Make archive of core object files
Brian Paul158a2aa2005-09-06 03:02:01 +000052libmesa.a: $(SOLO_OBJECTS)
Brian Paul158a2aa2005-09-06 03:02:01 +000053 @ $(TOP)/bin/mklib -o mesa -static $(SOLO_OBJECTS);
Philippe Houdoin31848302004-08-14 09:23:09 +000054 @if [ "${CONFIG_NAME}" = "beos" ] ; then \
55 mimeset -f "$@" ; \
56 fi
Brian Paulde0ee312004-03-26 15:19:11 +000057
Dave Airlie654286e2005-09-11 03:58:29 +000058linux-solo: depend subdirs libmesa.a
Eric Anholt2fb5d152004-06-01 00:06:14 +000059 cd drivers/dri ; $(MAKE)
Brian Paulde0ee312004-03-26 15:19:11 +000060
61
Brian Paulbdbdab82005-01-04 14:19:25 +000062#####################################################################
63# Stand-alone Mesa libGL, no built-in drivers (DirectFB)
64
Brian Paul26c7e652005-09-10 16:41:17 +000065libgl-core: $(CORE_OBJECTS)
Brianb1416c22007-12-03 11:57:56 -070066 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
Brian Paulbdbdab82005-01-04 14:19:25 +000067 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
Brian Paul92c43b12006-08-18 20:20:28 +000068 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) $(CORE_OBJECTS) \
69 $(GL_LIB_DEPS)
Brian Paulbdbdab82005-01-04 14:19:25 +000070
Brian Paulbdbdab82005-01-04 14:19:25 +000071directfb: depend subdirs libgl-core
Brian Paul92c43b12006-08-18 20:20:28 +000072 cd drivers/directfb ; $(MAKE)
73
74
75#####################################################################
76# fbdev Mesa driver (libGL.so)
77
Brian Paulb20814f2006-08-21 15:50:41 +000078fbdev: $(CORE_OBJECTS) $(FBDEV_DRIVER_OBJECTS) $(COMMON_DRIVER_OBJECTS)
Dan Nicholson2a3e3382007-09-28 18:42:21 -060079 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
Brian Paul92c43b12006-08-18 20:20:28 +000080 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
81 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
Brian Paulb20814f2006-08-21 15:50:41 +000082 $(CORE_OBJECTS) $(FBDEV_DRIVER_OBJECTS) \
83 $(COMMON_DRIVER_OBJECTS) $(GL_LIB_DEPS)
Brian Paulbdbdab82005-01-04 14:19:25 +000084
Brian Paul6423ec92006-08-21 16:05:30 +000085
Brian Paulde0ee312004-03-26 15:19:11 +000086######################################################################
87# Stand-alone Mesa libGL and libOSMesa
Sean D'Epagnierc6fc8232006-08-19 00:28:36 +000088STAND_ALONE_DRIVER_SOURCES = \
Brian Paulde0ee312004-03-26 15:19:11 +000089 $(COMMON_DRIVER_SOURCES) \
Briana4b2b882007-04-17 16:00:17 -060090 $(X11_DRIVER_SOURCES)
Sean D'Epagnier7e4152f2006-08-18 10:38:15 +000091
Brian Paulde0ee312004-03-26 15:19:11 +000092STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o)
93
94STAND_ALONE_OBJECTS = \
95 $(CORE_OBJECTS) \
Brian Paulde0ee312004-03-26 15:19:11 +000096 $(STAND_ALONE_DRIVER_OBJECTS)
97
98# For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library,
99# not just the osmesa.o object (i.e. we don't have a libGL).
100OSMESA16_OBJECTS = \
101 $(CORE_OBJECTS) \
Brian Paulde0ee312004-03-26 15:19:11 +0000102 $(COMMON_DRIVER_OBJECTS) \
103 $(OSMESA_DRIVER_OBJECTS)
104
105
George Sapountzis32a2a092008-04-18 17:34:24 +0300106stand-alone: depend subdirs libmesa.a \
107 $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
Brian Paulde0ee312004-03-26 15:19:11 +0000108
George Sapountzis32a2a092008-04-18 17:34:24 +0300109osmesa-only: depend subdirs \
110 $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
Brian Paulde0ee312004-03-26 15:19:11 +0000111
Brian Paulde0ee312004-03-26 15:19:11 +0000112# Make the GL library
Brian Paul883f9892006-07-13 02:50:27 +0000113$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)
Dan Nicholson2a3e3382007-09-28 18:42:21 -0600114 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
Brian Paul11a0a992004-11-27 04:37:25 +0000115 -major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \
Brian Paul883f9892006-07-13 02:50:27 +0000116 -install $(TOP)/$(LIB_DIR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000117 $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS)
118
119# Make the OSMesa library
Brian Paul883f9892006-07-13 02:50:27 +0000120$(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS)
Brian Paul11a0a992004-11-27 04:37:25 +0000121 @ if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
Ian Romanicka08d8a02005-07-26 05:55:56 +0000122 $(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \
Dan Nicholson2a3e3382007-09-28 18:42:21 -0600123 -ldflags '$(LDFLAGS)' -major $(MESA_MAJOR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000124 -minor $(MESA_MINOR) -patch $(MESA_TINY) \
Brian Paul883f9892006-07-13 02:50:27 +0000125 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
Brian Paulde0ee312004-03-26 15:19:11 +0000126 $(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \
127 else \
Ian Romanicka08d8a02005-07-26 05:55:56 +0000128 $(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \
Dan Nicholson2a3e3382007-09-28 18:42:21 -0600129 -ldflags '$(LDFLAGS)' -major $(MESA_MAJOR) \
Brian Paulde0ee312004-03-26 15:19:11 +0000130 -minor $(MESA_MINOR) -patch $(GL_TINY) \
Brian Paul883f9892006-07-13 02:50:27 +0000131 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
Brian Paulde0ee312004-03-26 15:19:11 +0000132 $(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \
133 fi
134
135
136######################################################################
Brian Paulde0ee312004-03-26 15:19:11 +0000137# Generic stuff
138
Brian Paulde0ee312004-03-26 15:19:11 +0000139depend: $(ALL_SOURCES)
Brian Paul11a0a992004-11-27 04:37:25 +0000140 @ echo "running $(MKDEP)"
141 @ touch depend
Brian Paula20c0f22006-10-15 16:38:09 +0000142 @$(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \
Keith Whitwell99efde42006-10-30 16:44:13 +0000143 > /dev/null 2>/dev/null
Brian Paulde0ee312004-03-26 15:19:11 +0000144
145
Brian Paul26c7e652005-09-10 16:41:17 +0000146subdirs:
Brianff042bf2007-10-25 14:46:35 -0600147 @ if echo "$(ASM_FLAGS)" | grep -q USE_X86_ASM ; then \
Brian26479fa2007-10-24 16:24:06 -0600148 (cd x86 ; $(MAKE)) ; \
149 fi
Brianff042bf2007-10-25 14:46:35 -0600150 @ if echo "$(ASM_FLAGS)" | grep -q USE_X86_64_ASM ; then \
Brian26479fa2007-10-24 16:24:06 -0600151 (cd x86 ; $(MAKE)) ; \
152 (cd x86-64 ; $(MAKE)) ; \
153 fi
Brian Paul26c7e652005-09-10 16:41:17 +0000154
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400155pcedit = sed \
156 -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
157 -e 's,@LIB_DIR@,$(LIB_DIR),' \
158 -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),'
Brian Paul26c7e652005-09-10 16:41:17 +0000159
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400160gl.pc: gl.pc.in
161 $(pcedit) $< > $@
162
163install-libgl: gl.pc
Dan Nicholsonf5557c32007-09-12 09:57:53 -0600164 $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GL
165 $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400166 $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)/pkgconfig
Dan Nicholsonf5557c32007-09-12 09:57:53 -0600167 $(INSTALL) -m 644 $(TOP)/include/GL/*.h $(DESTDIR)$(INSTALL_DIR)/include/GL
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400168 @if [ -e $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) ]; then \
169 $(INSTALL) $(TOP)/$(LIB_DIR)/libGL* \
170 $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR); \
Brian Paula20c0f22006-10-15 16:38:09 +0000171 fi
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400172 $(INSTALL) -m 644 gl.pc $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR)/pkgconfig
173
174install-osmesa:
175 @if [ -e $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME) ]; then \
176 $(INSTALL) $(TOP)/$(LIB_DIR)/libOSMesa* \
177 $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR); \
178 fi
179
180install-drivers:
Dan Nicholson544ab202007-12-30 08:41:53 -0800181 @for target in $(DRIVER_DIRS); do \
182 case "$$target" in \
183 dri) cd drivers/dri ; $(MAKE) install ;; \
184 esac; \
185 done
Brian Paul26c7e652005-09-10 16:41:17 +0000186
Kristian Høgsbergfe23dc52008-03-10 18:43:53 -0400187install: default install-libgl install-osmesa install-drivers
188
Brian Paulfee08572006-10-18 22:05:13 +0000189## NOT INSTALLED YET:
Dan Nicholsonf5557c32007-09-12 09:57:53 -0600190## $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GLES
191## $(INSTALL) -m 644 include/GLES/*.h $(DESTDIR)$(INSTALL_DIR)/include/GLES
Brian Paul0e794a12006-06-22 22:50:48 +0000192
193
Brian Paulde0ee312004-03-26 15:19:11 +0000194# Emacs tags
195tags:
Brian Pauld2c10272004-11-26 16:23:22 +0000196 etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
Brian Paulde0ee312004-03-26 15:19:11 +0000197
198clean:
199 -rm -f */*.o
Keith Whitwell81032032005-06-09 14:55:34 +0000200 -rm -f */*/*.o
Brian Paul158a2aa2005-09-06 03:02:01 +0000201 -rm -f depend depend.bak libmesa.a
Brian Paul7e27ab42004-08-16 17:11:10 +0000202 -rm -f drivers/*/*.o
Brian261ed742007-06-12 17:06:27 -0600203 (cd drivers/dri && $(MAKE) clean)
204 (cd x86 && $(MAKE) clean)
205 (cd x86-64 && $(MAKE) clean)
Brian Paulde0ee312004-03-26 15:19:11 +0000206
Brian Paul6423ec92006-08-21 16:05:30 +0000207
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500208-include depend