summaryrefslogtreecommitdiffstats
path: root/src/mesa/Makefile.old
blob: b7f905c385f69a1f5c4eb97aa61700144daa6acd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# src/mesa/Makefile

TOP = ../..
include $(TOP)/configs/current

MESA_LIBS := libmesa.a libmesagallium.a
DEPENDS := depend

SRCDIR = .
include sources.mak

# define preprocessor flags
MESA_CPPFLAGS := $(API_DEFINES) $(DEFINES)

# append include dirs
MESA_CPPFLAGS += $(INCLUDE_DIRS)

# tidy compiler flags
CFLAGS := $(filter-out $(DEFINES), $(CFLAGS))
CXXFLAGS := $(filter-out $(DEFINES), $(CXXFLAGS))

# LLVM is needed for the state tracker
MESA_CFLAGS := $(LLVM_CFLAGS) $(CFLAGS)
MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)

%.o: %.c
	$(CC) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CFLAGS)

%.o: %.cpp
	$(CXX) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CXXFLAGS)

%.o: %.S
	$(CC) -c -o $@ $< $(MESA_CPPFLAGS) $(MESA_CFLAGS)

# Default: build dependencies, then asm_subdirs, GLSL built-in lib,
# then convenience libs (.a) and finally the device drivers:
default: $(DEPENDS) $(MESA_LIBS)

.PHONY: main/git_sha1.h.tmp
main/git_sha1.h.tmp:
	@touch main/git_sha1.h.tmp
	@if test -d ../../.git; then \
		if which git > /dev/null; then \
		    git log -n 1 --oneline | \
			sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
			> main/git_sha1.h.tmp ; \
		fi \
	fi

main/git_sha1.h: main/git_sha1.h.tmp
	@echo "updating main/git_sha1.h"
	@if ! cmp -s main/git_sha1.h.tmp main/git_sha1.h; then \
		mv main/git_sha1.h.tmp main/git_sha1.h ;\
	fi

# include glapi_gen.mk for generating glapi headers for GLES
GLAPI := $(TOP)/src/mapi/glapi/gen
include $(GLAPI)/glapi_gen.mk

BUILT_SOURCES = \
	main/api_exec_es1_dispatch.h \
	main/api_exec_es1_remap_helper.h \
	main/api_exec_es2_dispatch.h \
	main/api_exec_es2_remap_helper.h \
	main/api_exec_es1.c \
	main/api_exec_es2.c \
	program/program_parse.tab.c \
	program/program_parse.tab.h \
	program/lex.yy.c

main/api_exec_es1_dispatch.h: $(GLAPI)/gl_and_es_API.xml $(glapi_gen_dispatch_deps)
	$(call glapi_gen_dispatch,$<,es1)

main/api_exec_es1_remap_helper.h: $(GLAPI)/gl_and_es_API.xml $(glapi_gen_remap_deps)
	$(call glapi_gen_remap,$<,es1)

main/api_exec_es1.o: main/api_exec_es1_dispatch.h main/api_exec_es1_remap_helper.h 

main/api_exec_es2_dispatch.h: $(GLAPI)/gl_and_es_API.xml $(glapi_gen_dispatch_deps)
	$(call glapi_gen_dispatch,$<,es2)

main/api_exec_es2_remap_helper.h: $(GLAPI)/gl_and_es_API.xml $(glapi_gen_remap_deps)
	$(call glapi_gen_remap,$<,es2)

main/api_exec_es2.o: main/api_exec_es2_dispatch.h main/api_exec_es2_remap_helper.h 

main/api_exec_es1.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py main/APIspec.py
	$(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V GLES1.1 > $@

main/api_exec_es2.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py main/APIspec.py
	$(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V GLES2.0 > $@

program/program_parse.tab.c program/program_parse.tab.h: program/program_parse.y
	$(BISON) -v -d --output=program/program_parse.tab.c $<

program/lex.yy.c: program/program_lexer.l
	$(FLEX) --never-interactive --outfile=$@ $<

######################################################################
# Helper libraries used by many drivers:

# Make archive of core mesa object files
libmesa.a: $(MESA_OBJECTS) $(GLSL_LIBS)
	@ $(MKLIB) -o mesa -static $(MESA_OBJECTS) $(GLSL_LIBS)

# Make archive of subset of core mesa object files for gallium
libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
	@ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)

######################################################################
# Dependency generation

depend: $(ALL_FILES) main/git_sha1.h
	@ echo "running $(MKDEP)"
	@ touch depend
	@$(MKDEP) $(MKDEP_OPTIONS) $(MESA_CPPFLAGS) \
		$(ALL_FILES) > /dev/null 2>/dev/null

######################################################################
# Installation rules

install: default $(DRICORE_INSTALL_TARGET)
	@for driver in $(DRIVER_DIRS) ; do \
	  case "$$driver" in \
	    osmesa) $(MAKE) -f Makefile.old install-osmesa || exit 1 ;; \
	  esac ; \
	done

install-osmesa: default
	$(MINSTALL) $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_GLOB) \
		$(DESTDIR)$(INSTALL_LIB_DIR)

# Emacs tags
tags:
	etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h

clean:
	-rm -f */*.o
	-rm -f */*/*.o
	-rm -f depend depend.bak libmesa.a libmesagallium.a
	-rm -f $(BUILT_SOURCES)

-include $(DEPENDS)