lots of Makefile updates for new build system
[mesa.git] / src / mesa / drivers / dri / radeon / Makefile
index 9dd7c97c7f4742a4a19f86bda7f18b1f2be0cabb..cbc21e45a858c6472c56b91ab3e2a63ba89e7afb 100644 (file)
@@ -1,15 +1,13 @@
 # src/mesa/drivers/dri/radeon/Makefile
+# Note, this Makefile requires GNU make
 
 TOP = ../../../../..
-include $(TOP)/configs/default
-
-SHARED_INCLUDES = $(INCLUDE_DIRS) -I. -I../common -Iserver
-MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini
+include $(TOP)/configs/current
 
 ifeq ($(EMBEDDED),true)
-TARGET = radeon_es_dri.so
+LIBNAME = radeon_es_dri.so
 DEFINES += \
-              -D_EMBEDDED \
+       -D_EMBEDDED \
        -D_HAVE_SWRAST=0 \
        -D_HAVE_SWTNL=0 \
        -D_HAVE_SANITY=0 \
@@ -19,7 +17,7 @@ DEFINES += \
        -D_HAVE_USERCLIP=0 \
        -DGLX_DIRECT_RENDERING
 else
-TARGET = radeon_dri.so
+LIBNAME = radeon_dri.so
 DEFINES += \
        -D_HAVE_SWRAST=1 \
        -D_HAVE_SWTNL=1 \
@@ -31,61 +29,85 @@ DEFINES += \
        -DGLX_DIRECT_RENDERING
 endif
 
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
 MINIGLX_SOURCES = server/radeon_dri.c 
 
-DRIVER_SOURCES = radeon_context.c \
-                radeon_ioctl.c \
-                radeon_lock.c \
-                radeon_screen.c \
-                radeon_state.c \
-                radeon_state_init.c \
-                ../../common/driverfuncs.c \
-                ../common/mm.c \
-                ../common/utils.c \
-                ../common/texmem.c \
-                ../common/vblank.c \
-                ../common/xmlconfig.c
+COMMON_SOURCES = \
+       ../../common/driverfuncs.c \
+       ../common/mm.c \
+       ../common/utils.c \
+       ../common/texmem.c \
+       ../common/vblank.c \
+       ../common/xmlconfig.c
+
+DRIVER_SOURCES = \
+       radeon_context.c \
+       radeon_ioctl.c \
+       radeon_lock.c \
+       radeon_screen.c \
+       radeon_state.c \
+       radeon_state_init.c
 
 SUBSET_DRIVER_SOURCES = \
-               radeon_subset_bitmap.c \
-               radeon_subset_readpix.c \
-               radeon_subset_select.c \
-               radeon_subset_tex.c \
-               radeon_subset_vtx.c 
-
-FULL_DRIVER_SOURCES =  \
-                radeon_tex.c \
-                radeon_texmem.c \
-                radeon_texstate.c \
-                radeon_tcl.c \
-                radeon_swtcl.c \
-                radeon_span.c \
-                radeon_maos.c \
-                radeon_sanity.c \
-                radeon_compat.c \
-                radeon_vtxfmt.c \
-                radeon_vtxfmt_c.c \
-                radeon_vtxfmt_sse.c \
-                radeon_vtxfmt_x86.c 
-
-
-INCLUDES = $(MINIGLX_INCLUDES) \
-          $(SHARED_INCLUDES)
-
+       radeon_subset_bitmap.c \
+       radeon_subset_readpix.c \
+       radeon_subset_select.c \
+       radeon_subset_tex.c \
+       radeon_subset_vtx.c 
+
+FULL_DRIVER_SOURCES = \
+       radeon_tex.c \
+       radeon_texmem.c \
+       radeon_texstate.c \
+       radeon_tcl.c \
+       radeon_swtcl.c \
+       radeon_span.c \
+       radeon_maos.c \
+       radeon_sanity.c \
+       radeon_compat.c \
+       radeon_vtxfmt.c \
+       radeon_vtxfmt_c.c \
+       radeon_vtxfmt_sse.c \
+       radeon_vtxfmt_x86.c 
 
 ifeq ($(EMBEDDED),true)
-C_SOURCES = $(DRIVER_SOURCES) \
-           $(SUBSET_DRIVER_SOURCES) \
-           $(MINIGLX_SOURCES) 
+C_SOURCES = \
+       $(COMMON_SOURCES) \
+       $(MINIGLX_SOURCES) \
+       $(DRIVER_SOURCES) \
+       $(SUBSET_DRIVER_SOURCES)
 else
-C_SOURCES = $(DRIVER_SOURCES) \
-           $(FULL_DRIVER_SOURCES) \
-           $(MINIGLX_SOURCES) 
+C_SOURCES = \
+       $(COMMON_SOURCES) \
+       $(MINIGLX_SOURCES) \
+       $(DRIVER_SOURCES) \
+       $(FULL_DRIVER_SOURCES)
 endif
 
 
+# Include directories
+INCLUDE_DIRS = \
+       -I. \
+       -I../common \
+       -Iserver \
+       -I$(TOP)/src/glx/mini \
+       -I$(TOP)/include \
+       -I$(TOP)/src/mesa/drivers/dri/drm/shared \
+       -I$(TOP)/src/mesa \
+       -I$(TOP)/src/mesa/main \
+       -I$(TOP)/src/mesa/glapi \
+       -I$(TOP)/src/mesa/math \
+       -I$(TOP)/src/mesa/transform \
+       -I$(TOP)/src/mesa/shader \
+       -I$(TOP)/src/mesa/swrast \
+       -I$(TOP)/src/mesa/swrast_setup
+
+# Core Mesa objects
+MESA_MODULES = $(TOP)/src/mesa/mesa.a
+
+# Libraries that the driver shared lib depends on
+LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
+
+
 ifeq ($(WINDOW_SYSTEM),dri)
 WINOBJ=$(MESABUILDDIR)/dri/dri.a
 WINLIB=
@@ -95,50 +117,34 @@ WINLIB=-L$(MESA)/src/glx/mini
 endif
 
 ASM_SOURCES = 
+
 OBJECTS = $(C_SOURCES:.c=.o) \
          $(ASM_SOURCES:.S=.o) 
 
-### Include directories
-
-INCLUDE_DIRS = \
-       -I$(TOP)/include \
-       -I$(TOP)/src/mesa \
-       -I$(TOP)/src/mesa/main \
-       -I$(TOP)/src/mesa/glapi \
-       -I$(TOP)/src/mesa/math \
-       -I$(TOP)/src/mesa/transform \
-       -I$(TOP)/src/mesa/swrast \
-       -I$(TOP)/src/mesa/swrast_setup
-
 
 ##### RULES #####
 
 .c.o:
-       $(CC) -c $(SHARED_INCLUDES) $(MINIGLX_INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
+       $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
 
 .S.o:
-       $(CC) -c $(SHARED_INCLUDES) $(MINIGLX_INCLUDES) $(CFLAGS) $(DEFINES)  $< -o $@
+       $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES)  $< -o $@
 
 
 ##### TARGETS #####
 
-default: depend $(TARGET)
+default: depend $(LIB_DIR)/$(LIBNAME)
+
 
-$(TARGET):  $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile.solo
-       rm -f $@ && gcc -o $@ -shared $(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(WINLIB) -lc $(GL_LIB_DEPS)
-       rm -f $(LIB_DIR)/$(TARGET) && \
-       install $(TARGET) $(LIB_DIR)/$(TARGET)
+$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
+       $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
+               $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
 
-$(LIB_DIR)/$(TARGET):  $(TARGET)
-       rm -f $(LIB_DIR)/$(TARGET) && \
-       install $(TARGET) $(LIB_DIR)/$(TARGET)
 
-# Run 'make -f Makefile.solo dep' to update the dependencies if you change
-# what's included by any source file.
 depend: $(C_SOURCES) $(ASM_SOURCES)
        touch depend
-       makedepend -fdepend -Y $(SHARED_INCLUDES) $(MINIGLX_INCLUDES)\
-               $(C_SOURCES) $(ASM_SOURCES) >& /dev/null
+       $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
+               >& /dev/null
 
 
 # Emacs tags
@@ -146,9 +152,8 @@ tags:
        etags `find . -name \*.[ch]` `find ../include`
 
 
-# Remove .o and backup files
 clean:
-       -rm -f *.o *~ *.o *~ *.so server/*.o
+       -rm -f *.o server/*.o
 
 
 include depend