mesa/src/glsl/Makefile
Eric Anholt e9df9636b9 glsl: Add implementation of inverse() for mat2/3/4.
This is taken from the ogl-math project, with Inverse renamed to adj
(since it's not actually the inverse), transposed, and our types
plugged in.  There are potential CSE opportunities in this code
(particularly for hardware with RCP but not DIV), but we should be
doing CSE anyway, so don't hand-optimize.

Fixes piglit inverse tests.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
2012-04-24 10:15:47 -07:00

172 lines
4.3 KiB
Makefile

#src/glsl/pp/Makefile
TOP = ../..
include $(TOP)/configs/current
LIBNAME = glsl
include Makefile.sources
GLCPP_SOURCES = \
$(LIBGLCPP_GENERATED_FILES) \
$(LIBGLCPP_FILES) \
ralloc.c \
glcpp/glcpp.c
C_SOURCES = \
$(LIBGLCPP_GENERATED_FILES) \
$(LIBGLCPP_FILES) \
$(LIBGLSL_FILES)
# common sources for builtin_compiler and libglsl
CXX_SOURCES = \
$(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
$(LIBGLSL_CXX_FILES)
LIBS = \
$(TOP)/src/glsl/libglsl.a
APPS = glsl_compiler glsl_test glcpp/glcpp
GLSL2_C_SOURCES = \
../mesa/program/hash_table.c \
../mesa/program/symbol_table.c
GLSL2_CXX_SOURCES = \
$(GLSL_COMPILER_CXX_FILES)
GLSL2_OBJECTS = \
$(GLSL2_C_SOURCES:.c=.o) \
$(GLSL2_CXX_SOURCES:.cpp=.o)
TEST_C_SOURCES = \
../mesa/program/hash_table.c \
../mesa/program/symbol_table.c
TEST_CXX_SOURCES = \
standalone_scaffolding.cpp \
test.cpp \
test_optpass.cpp
TEST_OBJECTS = \
$(TEST_C_SOURCES:.c=.o) \
$(TEST_CXX_SOURCES:.cpp=.o)
### Basic defines ###
DEFINES += \
$(LIBRARY_DEFINES) \
$(API_DEFINES)
GLCPP_OBJECTS = \
$(GLCPP_SOURCES:.c=.o) \
../mesa/program/hash_table.o
OBJECTS = \
$(C_SOURCES:.c=.o) \
$(CXX_SOURCES:.cpp=.o)
DRICORE_OBJ_DIR = obj-visible
OBJECTS_DRICORE = $(addprefix $(DRICORE_OBJ_DIR)/,$(OBJECTS))
INCLUDES = \
-I. \
-I../mesa \
-I../mapi \
-I../../include \
$(LIBRARY_INCLUDES)
ALL_SOURCES = \
$(C_SOURCES) \
$(CXX_SOURCES) \
$(GLSL2_CXX_SOURCES) \
$(GLSL2_C_SOURCES) \
$(TEST_CXX_SOURCES) \
$(TEST_C_SOURCES)
##### TARGETS #####
default: depend lib$(LIBNAME).a $(APPS) $(DRICORE_GLSL_LIBS)
$(TOP)/$(LIB_DIR)/libglsl.so: $(OBJECTS_DRICORE) builtin_function.o Makefile $(TOP)/src/glsl/Makefile.template
$(MKLIB) -o $@ -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
-cplusplus -noprefix \
-install $(TOP)/$(LIB_DIR) -id $(INSTALL_LIB_DIR)/$@.dylib \
$(OBJECTS_DRICORE) builtin_function.o
lib$(LIBNAME).a: $(OBJECTS) builtin_function.o Makefile $(TOP)/src/glsl/Makefile.template
$(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS) builtin_function.o
depend: $(ALL_SOURCES) Makefile
rm -f depend
touch depend
$(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(ALL_SOURCES) 2> /dev/null
$(MKDEP) $(MKDEP_OPTIONS) -a -p $(DRICORE_OBJ_DIR)/ $(INCLUDES) $(ALL_SOURCES) 2> /dev/null
# Remove .o and backup files
clean: clean-dricore
rm -f $(GLCPP_OBJECTS) $(GLSL2_OBJECTS) $(TEST_OBJECTS) $(OBJECTS) lib$(LIBNAME).a depend depend.bak builtin_function.cpp builtin_function.o builtin_stubs.o builtin_compiler
-rm -f $(APPS)
clean-dricore:
-rm -f $(OBJECTS_DRICORE) $(TOP)/$(LIB_DIR)/libglsl.so libglsl.so
ifneq (,$(DRICORE_GLSL_LIBS))
DRICORE_INSTALL_TARGET = install-dricore
endif
# Dummy target
install: $(DRICORE_INSTALL_TARGET)
@echo -n ""
install-dricore: default
$(INSTALL) -d $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
$(INSTALL) -m 755 $(DRICORE_GLSL_LIBS) $(DESTDIR)$(DRI_DRIVER_INSTALL_DIR)
##### RULES #####
glsl_compiler: $(GLSL2_OBJECTS) libglsl.a
$(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLSL2_OBJECTS) $(LIBS) -o $@
glsl_test: $(TEST_OBJECTS) libglsl.a
$(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(TEST_OBJECTS) $(LIBS) -o $@
glcpp: glcpp/glcpp
glcpp/glcpp: $(GLCPP_OBJECTS)
$(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLCPP_OBJECTS) -o $@
.cpp.o:
$(CXX) -c $(INCLUDES) $(CXXFLAGS) $(DEFINES) $< -o $@
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@
$(DRICORE_OBJ_DIR)/%.o : %.cpp
@mkdir -p $(dir $@)
$(CXX) -c $(INCLUDES) $(DRI_CXXFLAGS) $(DEFINES) $< -o $@
$(DRICORE_OBJ_DIR)/%.o : %.c
@mkdir -p $(dir $@)
$(CC) -c $(INCLUDES) $(DRI_CFLAGS) $(DEFINES) $< -o $@
glsl_lexer.cpp: glsl_lexer.ll
$(FLEX) --nounistd -o$@ $<
glsl_parser.cpp: glsl_parser.yy
$(BISON) -v -o "$@" -p "_mesa_glsl_" --defines=glsl_parser.h $<
glcpp/glcpp-lex.c: glcpp/glcpp-lex.l
$(FLEX) --nounistd -o$@ $<
glcpp/glcpp-parse.c: glcpp/glcpp-parse.y
$(BISON) -v -o "$@" --defines=glcpp/glcpp-parse.h $<
builtin_compiler: $(GLSL2_OBJECTS) $(OBJECTS) builtin_stubs.o
$(APP_CXX) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(GLSL2_OBJECTS) builtin_stubs.o -o $@
builtin_function.cpp: builtins/profiles/* builtins/ir/* builtins/glsl/* builtins/tools/generate_builtins.py builtins/tools/texture_builtins.py builtin_compiler
@echo Regenerating builtin_function.cpp...
$(PYTHON2) $(PYTHON_FLAGS) builtins/tools/generate_builtins.py ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp
-include depend