blob: 6943219036df0e85d8e7be822490ef33b85bd08e [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:
28 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
Eric Anholt2fb5d152004-06-01 00:06:14 +000029 $(MAKE) linux-solo ; \
Brian Paulde0ee312004-03-26 15:19:11 +000030 elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
Eric Anholt2fb5d152004-06-01 00:06:14 +000031 $(MAKE) osmesa-only ; \
Philippe Houdoin31848302004-08-14 09:23:09 +000032 elif [ "$(DRIVER_DIRS)" = "beos" ]; then \
33 $(MAKE) beos ; \
Brian Paulbdbdab82005-01-04 14:19:25 +000034 elif [ "$(DRIVER_DIRS)" = "directfb" ]; then \
Brian Paul92c43b12006-08-18 20:20:28 +000035 $(MAKE) directfb ; \
Sean D'Epagnier10cbd082006-11-30 03:25:28 +000036 elif [ "$(DRIVER_DIRS)" = "fbdev osmesa" ]; then \
37 $(MAKE) fbdev ; $(MAKE) osmesa-only ; \
Brian Paulde0ee312004-03-26 15:19:11 +000038 else \
Eric Anholt2fb5d152004-06-01 00:06:14 +000039 $(MAKE) stand-alone ; \
Brian Paulde0ee312004-03-26 15:19:11 +000040 fi
41
Brian Paul26c7e652005-09-10 16:41:17 +000042
Brian Paul26c7e652005-09-10 16:41:17 +000043######################################################################
Philippe Houdoin31848302004-08-14 09:23:09 +000044# BeOS driver target
Brian Paul26c7e652005-09-10 16:41:17 +000045
Brian Paul158a2aa2005-09-06 03:02:01 +000046beos: depend subdirs libmesa.a
Philippe Houdoin31848302004-08-14 09:23:09 +000047 cd drivers/beos; $(MAKE)
Brian Paul7e27ab42004-08-16 17:11:10 +000048
49
Brian Paulde0ee312004-03-26 15:19:11 +000050######################################################################
Brian Paul26c7e652005-09-10 16:41:17 +000051# Linux DRI drivers
Brian Paulde0ee312004-03-26 15:19:11 +000052
53# Make archive of core object files
Brian Paul158a2aa2005-09-06 03:02:01 +000054libmesa.a: $(SOLO_OBJECTS)
Brian Paul158a2aa2005-09-06 03:02:01 +000055 @ $(TOP)/bin/mklib -o mesa -static $(SOLO_OBJECTS);
Philippe Houdoin31848302004-08-14 09:23:09 +000056 @if [ "${CONFIG_NAME}" = "beos" ] ; then \
57 mimeset -f "$@" ; \
58 fi
Brian Paulde0ee312004-03-26 15:19:11 +000059
Dave Airlie654286e2005-09-11 03:58:29 +000060linux-solo: depend subdirs libmesa.a
Eric Anholt2fb5d152004-06-01 00:06:14 +000061 cd drivers/dri ; $(MAKE)
Brian Paulde0ee312004-03-26 15:19:11 +000062
63
Brian Paulbdbdab82005-01-04 14:19:25 +000064#####################################################################
65# Stand-alone Mesa libGL, no built-in drivers (DirectFB)
66
Brian Paul26c7e652005-09-10 16:41:17 +000067libgl-core: $(CORE_OBJECTS)
Ian Romanicka08d8a02005-07-26 05:55:56 +000068 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \
Brian Paulbdbdab82005-01-04 14:19:25 +000069 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
Brian Paul92c43b12006-08-18 20:20:28 +000070 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) $(CORE_OBJECTS) \
71 $(GL_LIB_DEPS)
Brian Paulbdbdab82005-01-04 14:19:25 +000072
Brian Paulbdbdab82005-01-04 14:19:25 +000073directfb: depend subdirs libgl-core
Brian Paul92c43b12006-08-18 20:20:28 +000074 cd drivers/directfb ; $(MAKE)
75
76
77#####################################################################
78# fbdev Mesa driver (libGL.so)
79
Brian Paulb20814f2006-08-21 15:50:41 +000080fbdev: $(CORE_OBJECTS) $(FBDEV_DRIVER_OBJECTS) $(COMMON_DRIVER_OBJECTS)
Brian Paul92c43b12006-08-18 20:20:28 +000081 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \
82 -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
83 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
Brian Paulb20814f2006-08-21 15:50:41 +000084 $(CORE_OBJECTS) $(FBDEV_DRIVER_OBJECTS) \
85 $(COMMON_DRIVER_OBJECTS) $(GL_LIB_DEPS)
Brian Paulbdbdab82005-01-04 14:19:25 +000086
Brian Paul6423ec92006-08-21 16:05:30 +000087
Brian Paulde0ee312004-03-26 15:19:11 +000088######################################################################
89# Stand-alone Mesa libGL and libOSMesa
Sean D'Epagnierc6fc8232006-08-19 00:28:36 +000090STAND_ALONE_DRIVER_SOURCES = \
Brian Paulde0ee312004-03-26 15:19:11 +000091 $(COMMON_DRIVER_SOURCES) \
Briana4b2b882007-04-17 16:00:17 -060092 $(X11_DRIVER_SOURCES)
Sean D'Epagnier7e4152f2006-08-18 10:38:15 +000093
Brian Paulde0ee312004-03-26 15:19:11 +000094STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o)
95
96STAND_ALONE_OBJECTS = \
97 $(CORE_OBJECTS) \
Brian Paulde0ee312004-03-26 15:19:11 +000098 $(STAND_ALONE_DRIVER_OBJECTS)
99
100# For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library,
101# not just the osmesa.o object (i.e. we don't have a libGL).
102OSMESA16_OBJECTS = \
103 $(CORE_OBJECTS) \
Brian Paulde0ee312004-03-26 15:19:11 +0000104 $(COMMON_DRIVER_OBJECTS) \
105 $(OSMESA_DRIVER_OBJECTS)
106
107
Brian Paul883f9892006-07-13 02:50:27 +0000108stand-alone: depend subdirs $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
Brian Paulde0ee312004-03-26 15:19:11 +0000109
Brian Paul883f9892006-07-13 02:50:27 +0000110osmesa-only: depend subdirs $(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)
Ian Romanicka08d8a02005-07-26 05:55:56 +0000114 @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \
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)' \
Brian Paul11a0a992004-11-27 04:37:25 +0000123 -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)' \
Brian Paul11a0a992004-11-27 04:37:25 +0000129 -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:
147 @ (cd x86 ; $(MAKE))
148 @ (cd x86-64 ; $(MAKE))
149
150
151install: default
Brian Paul0e794a12006-06-22 22:50:48 +0000152 $(INSTALL) -d $(INSTALL_DIR)/include/GL
Brian Paul883f9892006-07-13 02:50:27 +0000153 $(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
Brian Paul0e794a12006-06-22 22:50:48 +0000154 $(INSTALL) -m 644 $(TOP)/include/GL/*.h $(INSTALL_DIR)/include/GL
Brian Paula20c0f22006-10-15 16:38:09 +0000155 @if [ -e $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) ]; then \
Brian Paul464fcd02006-10-19 20:09:05 +0000156 $(INSTALL) $(TOP)/$(LIB_DIR)/libGL* $(INSTALL_DIR)/$(LIB_DIR); \
Brian Paula20c0f22006-10-15 16:38:09 +0000157 fi
158 @if [ -e $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME) ]; then \
Brian Paul464fcd02006-10-19 20:09:05 +0000159 $(INSTALL) $(TOP)/$(LIB_DIR)/libOSMesa* $(INSTALL_DIR)/$(LIB_DIR); \
Brian Paula20c0f22006-10-15 16:38:09 +0000160 fi
Brian Paul26c7e652005-09-10 16:41:17 +0000161 @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
162 cd drivers/dri ; $(MAKE) install ; \
163 fi
164
Brian Paulfee08572006-10-18 22:05:13 +0000165## NOT INSTALLED YET:
166## $(INSTALL) -d $(INSTALL_DIR)/include/GLES
167## $(INSTALL) -m 644 include/GLES/*.h $(INSTALL_DIR)/include/GLES
Brian Paul0e794a12006-06-22 22:50:48 +0000168
169
Brian Paulde0ee312004-03-26 15:19:11 +0000170# Emacs tags
171tags:
Brian Pauld2c10272004-11-26 16:23:22 +0000172 etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
Brian Paulde0ee312004-03-26 15:19:11 +0000173
174clean:
175 -rm -f */*.o
Keith Whitwell81032032005-06-09 14:55:34 +0000176 -rm -f */*/*.o
Brian Paul158a2aa2005-09-06 03:02:01 +0000177 -rm -f depend depend.bak libmesa.a
Brian Paul7e27ab42004-08-16 17:11:10 +0000178 -rm -f drivers/*/*.o
Brian261ed742007-06-12 17:06:27 -0600179 (cd drivers/dri && $(MAKE) clean)
180 (cd x86 && $(MAKE) clean)
181 (cd x86-64 && $(MAKE) clean)
Brian Paulde0ee312004-03-26 15:19:11 +0000182
Brian Paul6423ec92006-08-21 16:05:30 +0000183
Brian Paulde0ee312004-03-26 15:19:11 +0000184include depend