HERE:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) ROOT:=$(HERE)/../.. VTABLE:=$(ROOT)/parquet SQLITE:=$(ROOT)/sqlite # Flags CXX = g++ OPTIMIZATIONS = -O3 CFLAGS = -I $(SQLITE) $(OPTIMIZATIONS) -std=c++11 -Wall -fPIC -g LIBS = -lparquet -lboost_regex -lboost_system -lboost_filesystem \ -lbrotlienc -lbrotlicommon -lbrotlidec -licui18n -licuuc -licudata \ -llz4 -lsnappy -lthrift -lz -lzstd -lcrypto -lssl LDFLAGS = $(OPTIMIZATIONS) -Wl,--no-whole-archive $(LIBS) -lz -lcrypto -lssl OBJ = parquet.o parquet_filter.o parquet_table.o parquet_cursor.o PROF = libparquet.so: $(OBJ) $(CXX) $(PROF) -shared -o $@ $(OBJ) $(LDFLAGS) parquet_filter.o: $(VTABLE)/parquet_filter.cc $(VTABLE)/parquet_filter.h $(CXX) $(PROF) -c -o $@ $< $(CFLAGS) parquet_cursor.o: $(VTABLE)/parquet_cursor.cc $(VTABLE)/parquet_cursor.h $(VTABLE)/parquet_table.h $(VTABLE)/parquet_filter.h $(CXX) $(PROF) -c -o $@ $< $(CFLAGS) parquet_table.o: $(VTABLE)/parquet_table.cc $(VTABLE)/parquet_table.h $(CXX) $(PROF) -c -o $@ $< $(CFLAGS) parquet.o: $(VTABLE)/parquet.cc $(VTABLE)/parquet_cursor.h $(VTABLE)/parquet_table.h $(VTABLE)/parquet_filter.h $(CXX) $(PROF) -c -o $@ $< $(CFLAGS) .PHONY: clean parquet clean: rm -f *.o *.so distclean: rm -rf $(SQLITE) $(HERE)