<commit_before>#src/glsl/pp/Makefile

TOP = ../..

include $(TOP)/configs/current

LIBNAME = glsl

LIBGLCPP_SOURCES = \
	glcpp/glcpp-lex.c \
	glcpp/glcpp-parse.c \
	glcpp/pp.c \
	glcpp/xtalloc.c

GLCPP_SOURCES = \
	$(LIBGLCPP_SOURCES) \
	glcpp/glcpp.c

C_SOURCES = \
	$(LIBGLCPP_SOURCES)

CXX_SOURCES = \
	ast_expr.cpp \
	ast_function.cpp \
	ast_to_hir.cpp \
	ast_type.cpp \
	builtin_function.cpp \
	glsl_lexer.cpp \
	glsl_parser.cpp \
	glsl_parser_extras.cpp \
	glsl_types.cpp \
	hir_field_selection.cpp \
	ir_basic_block.cpp \
	ir_clone.cpp \
	ir_constant_expression.cpp \
	ir_constant_folding.cpp \
	ir_constant_variable.cpp \
	ir_copy_propagation.cpp \
	ir.cpp \
	ir_dead_code.cpp \
	ir_dead_code_local.cpp \
	ir_div_to_mul_rcp.cpp \
	ir_expression_flattening.cpp \
	ir_function_can_inline.cpp \
	ir_function.cpp \
	ir_function_inlining.cpp \
	ir_hierarchical_visitor.cpp \
	ir_hv_accept.cpp \
	ir_if_return.cpp \
	ir_if_simplification.cpp \
	ir_if_to_cond_assign.cpp \
	ir_import_prototypes.cpp \
	ir_mat_op_to_vec.cpp \
	ir_mod_to_fract.cpp \
	ir_print_visitor.cpp \
	ir_reader.cpp \
	ir_swizzle_swizzle.cpp \
	ir_validate.cpp \
	ir_variable.cpp \
	ir_vec_index_to_cond_assign.cpp \
	ir_vec_index_to_swizzle.cpp \
	linker.cpp \
	link_functions.cpp \
	s_expression.cpp

LIBS = \
	$(TOP)/src/glsl/libglsl.a \
	$(shell pkg-config --libs talloc)

APPS = glsl_compiler glcpp/glcpp

GLSL2_C_SOURCES = \
	../mesa/shader/hash_table.c \
	../mesa/shader/symbol_table.c
GLSL2_CXX_SOURCES = \
	main.cpp

GLSL2_OBJECTS = \
	$(GLSL2_C_SOURCES:.c=.o) \
	$(GLSL2_CXX_SOURCES:.cpp=.o)

### Basic defines ###

GLCPP_OBJECTS = \
	$(GLCPP_SOURCES:.c=.o) \
	../mesa/shader/hash_table.o

OBJECTS = \
	$(C_SOURCES:.c=.o) \
	$(CXX_SOURCES:.cpp=.o)

INCLUDES = \
	-I. \
	-I../mesa \
	-I../mapi \
	-I../mesa/shader \
	-I../../include \
	$(LIBRARY_INCLUDES)

ALL_SOURCES = \
	$(C_SOURCES) \
	$(CXX_SOURCES) \
	$(GLSL2_CXX_SOURCES) \
	$(GLSL2_C_SOURCES)

##### TARGETS #####

default: depend lib$(LIBNAME).a $(APPS)

lib$(LIBNAME).a: $(OBJECTS) Makefile $(TOP)/src/glsl/Makefile.template
	$(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS)

depend: $(ALL_SOURCES) Makefile
	rm -f depend
	touch depend
	$(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(ALL_SOURCES) 2> /dev/null

# Remove .o and backup files
clean:
	rm -f $(OBJECTS) lib$(LIBNAME).a depend depend.bak
	-rm -f $(APPS)

# Dummy target
install:
	@echo -n ""


##### RULES #####

glsl_compiler: $(GLSL2_OBJECTS) libglsl.a
	$(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLSL2_OBJECTS) $(LIBS) -o $@

glcpp/glcpp: $(GLCPP_OBJECTS) libglsl.a
	$(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLCPP_OBJECTS) $(LIBS) -o $@

.cpp.o:
	$(CXX) -c $(INCLUDES) $(CXXFLAGS) $(LIBRARY_DEFINES) $< -o $@

.c.o:
	$(CC) -c $(INCLUDES) $(CFLAGS) $(LIBRARY_DEFINES) $< -o $@

glsl_lexer.cpp: glsl_lexer.lpp
	flex --never-interactive --outfile="$@"  $<

glsl_parser.cpp: glsl_parser.ypp
	bison -v -o "$@" --defines=glsl_parser.h $<

glcpp/glcpp-lex.c: glcpp/glcpp-lex.l
	flex --never-interactive --outfile="$@" $<

glcpp/glcpp-parse.c: glcpp/glcpp-parse.y
	bison -v -o "$@" --defines=glcpp/glcpp-parse.h $<

builtin_function.cpp: builtins/*/*
	./builtins/tools/generate_builtins.pl > builtin_function.cpp
<commit_msg>glsl2: Add the API defines to the glsl2 build so we get the right GLcontext<commit_after>#src/glsl/pp/Makefile

TOP = ../..

include $(TOP)/configs/current

LIBNAME = glsl

LIBGLCPP_SOURCES = \
	glcpp/glcpp-lex.c \
	glcpp/glcpp-parse.c \
	glcpp/pp.c \
	glcpp/xtalloc.c

GLCPP_SOURCES = \
	$(LIBGLCPP_SOURCES) \
	glcpp/glcpp.c

C_SOURCES = \
	$(LIBGLCPP_SOURCES)

CXX_SOURCES = \
	ast_expr.cpp \
	ast_function.cpp \
	ast_to_hir.cpp \
	ast_type.cpp \
	builtin_function.cpp \
	glsl_lexer.cpp \
	glsl_parser.cpp \
	glsl_parser_extras.cpp \
	glsl_types.cpp \
	hir_field_selection.cpp \
	ir_basic_block.cpp \
	ir_clone.cpp \
	ir_constant_expression.cpp \
	ir_constant_folding.cpp \
	ir_constant_variable.cpp \
	ir_copy_propagation.cpp \
	ir.cpp \
	ir_dead_code.cpp \
	ir_dead_code_local.cpp \
	ir_div_to_mul_rcp.cpp \
	ir_expression_flattening.cpp \
	ir_function_can_inline.cpp \
	ir_function.cpp \
	ir_function_inlining.cpp \
	ir_hierarchical_visitor.cpp \
	ir_hv_accept.cpp \
	ir_if_return.cpp \
	ir_if_simplification.cpp \
	ir_if_to_cond_assign.cpp \
	ir_import_prototypes.cpp \
	ir_mat_op_to_vec.cpp \
	ir_mod_to_fract.cpp \
	ir_print_visitor.cpp \
	ir_reader.cpp \
	ir_swizzle_swizzle.cpp \
	ir_validate.cpp \
	ir_variable.cpp \
	ir_vec_index_to_cond_assign.cpp \
	ir_vec_index_to_swizzle.cpp \
	linker.cpp \
	link_functions.cpp \
	s_expression.cpp

LIBS = \
	$(TOP)/src/glsl/libglsl.a \
	$(shell pkg-config --libs talloc)

APPS = glsl_compiler glcpp/glcpp

GLSL2_C_SOURCES = \
	../mesa/shader/hash_table.c \
	../mesa/shader/symbol_table.c
GLSL2_CXX_SOURCES = \
	main.cpp

GLSL2_OBJECTS = \
	$(GLSL2_C_SOURCES:.c=.o) \
	$(GLSL2_CXX_SOURCES:.cpp=.o)

### Basic defines ###

DEFINES = \
	$(LIBRARY_DEFINES) \
	$(API_DEFINES)

GLCPP_OBJECTS = \
	$(GLCPP_SOURCES:.c=.o) \
	../mesa/shader/hash_table.o

OBJECTS = \
	$(C_SOURCES:.c=.o) \
	$(CXX_SOURCES:.cpp=.o)

INCLUDES = \
	-I. \
	-I../mesa \
	-I../mapi \
	-I../mesa/shader \
	-I../../include \
	$(LIBRARY_INCLUDES)

ALL_SOURCES = \
	$(C_SOURCES) \
	$(CXX_SOURCES) \
	$(GLSL2_CXX_SOURCES) \
	$(GLSL2_C_SOURCES)

##### TARGETS #####

default: depend lib$(LIBNAME).a $(APPS)

lib$(LIBNAME).a: $(OBJECTS) Makefile $(TOP)/src/glsl/Makefile.template
	$(MKLIB) -cplusplus -o $(LIBNAME) -static $(OBJECTS)

depend: $(ALL_SOURCES) Makefile
	rm -f depend
	touch depend
	$(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(ALL_SOURCES) 2> /dev/null

# Remove .o and backup files
clean:
	rm -f $(OBJECTS) lib$(LIBNAME).a depend depend.bak
	-rm -f $(APPS)

# Dummy target
install:
	@echo -n ""


##### RULES #####

glsl_compiler: $(GLSL2_OBJECTS) libglsl.a
	$(APP_CXX) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLSL2_OBJECTS) $(LIBS) -o $@

glcpp/glcpp: $(GLCPP_OBJECTS) libglsl.a
	$(APP_CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(GLCPP_OBJECTS) $(LIBS) -o $@

.cpp.o:
	$(CXX) -c $(INCLUDES) $(CXXFLAGS) $(DEFINES) $< -o $@

.c.o:
	$(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@

glsl_lexer.cpp: glsl_lexer.lpp
	flex --never-interactive --outfile="$@"  $<

glsl_parser.cpp: glsl_parser.ypp
	bison -v -o "$@" --defines=glsl_parser.h $<

glcpp/glcpp-lex.c: glcpp/glcpp-lex.l
	flex --never-interactive --outfile="$@" $<

glcpp/glcpp-parse.c: glcpp/glcpp-parse.y
	bison -v -o "$@" --defines=glcpp/glcpp-parse.h $<

builtin_function.cpp: builtins/*/*
	./builtins/tools/generate_builtins.pl > builtin_function.cpp

{'fraction_non_alphanumeric': 0.1691861352878302, 'fraction_numerical': 0.003359291494884715, 'mean_word_length': 3.5549374130737137, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3171559', 'n_tokens_mistral': 3167, 'n_tokens_neox': 2982, 'n_words': 429}