## Copyright (C) 2009, 2010, 2011 Keith Crane
## 
## This file is part DFILE Tools.
## 
## DFILE Tools is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or (at
## your option) any later version.
## 
## DFILE Tools is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
## for more details.
## 
## You should have received a copy of the GNU General Public License along
## with DFILE Tools; see the file COPYING.  If not, see
## <http://www.gnu.org/licenses/>.
## 


##
## DNDEBUG turns off assert() calls.
##
INC=../include
CFLAGS=-Wall -O -I$(INC) $(MT_CC)
VPATH=SRC
OBJ = main.o get_args.o copy_input_to_output.o get_join_records.o \
	join_files.o write_join.o write_record.o copy_record_to_bind.o \
	compile_io_filters.o assign_control_information.o \
	level1_syntax.o control_syntax_error.o assign_input.o \
	assign_input_dfile.o assign_tag.o assign_ushort.o assign_list_pair.o \
	assign_map_fields.o assign_input_dfile_attribute.o \
	assign_copy_fields.o assign_join.o assign_join_dfile.o \
	assign_key_fields.o assign_join_dfile_attribute.o assign_outer_join.o \
	assign_output.o assign_output_dfile.o assign_open_mode.o \
	dump_input_ctl.o dump_join_ctl.o dump_output_ctl.o \
	open_input_dfile.o open_output_dfile.o find_field_alias.o map_fields.o \
	map_field_names_with_alias.o prepare_joins.o attach_shared_memory.o \
	get_shm_join_records.o copy_shm_record_to_bind.o \
	assign_cmd_line_information.o copy_record.o compare_field_bind.o \
	null_fields.o create_shm_bind.o

TARGET = dfile_join

$(TARGET): $(OBJ)
	$(CC) -O -o $(TARGET) $(OBJ) -L../lib \
		-ldfile_utility -lwhere -lsexpr -ldfile_dynamic -ldfile -ltbox -lz -lpthread

main.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

get_args.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

copy_input_to_output.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

get_join_records.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

join_files.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

copy_record_to_bind.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

write_join.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

compile_filters.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

write_record.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_control_information.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

level1_syntax.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

control_syntax_error.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_input.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_input_dfile.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_tag.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_list_pair.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_map_fields.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_input_dfile_attribute.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_copy_fields.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_join.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_join_dfile.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_key_fields.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_join_dfile_attribute.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_outer_join.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_output.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_output_dfile.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_open_mode.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

dump_input_ctl.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

dump_join_ctl.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

dump_output_ctl.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

open_input_dfile.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

open_output_dfile.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

find_field_alias.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

map_fields.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

map_field_names_with_alias.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

prepare_joins.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

attach_shared_memory.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

get_shm_join_records.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

copy_shm_record_to_bind.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

assign_cmd_line_information.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

copy_record.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

compare_field_bind.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

null_fields.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

create_shm_bind.o: $(INC)/tbox.h $(INC)/dfile.h dfile_join.h

clean:
	rm -f $(OBJ) $(TARGET)
