LIBDIR = ../generic_library
LIB_CONFIG = $(LIBDIR)/bin/library-config --prefix=$(LIBDIR)

CXX     = `$(LIB_CONFIG) --c++`
CHDIR   = cd
RM      = rm

DEFAULT_PORT = 0

CXXFLAGS = -DDEFAULT_PORT=$(DEFAULT_PORT) \
	      -g `$(LIB_CONFIG) --cflags` \
	      $(CCXXOPTFLAGS) $(CXXOPTFLAGS) \
	      $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS) \

LDFLAGS = `$(LIB_CONFIG) --libs` $(LDADDITIONALFLAGS)


OBJS = main.o sockctl.o


all: sockctl

sockctl: $(LIBDIR)/.build_done $(OBJS)
	$(RM) -f sockctl
	$(CXX) -o sockctl $(CXXFLAGS) $(OBJS) $(LDFLAGS)

rebuild: $(LIBDIR)/.build_done $(OBJS)
	$(RM) -f sockctl
	$(MAKE) sockctl

$(OBJS): $(LIBDIR)/.build_done

clean:
	$(RM) -f *.o sockctl

.PHONY: all rebuild clean

$(LIBDIR)/.build_done:
	($(CHDIR) $(LIBDIR) && $(MAKE))


##
main.o: main.cc sockctl_option_analyzer.h \
	socket_io.h \
	combination_io.h \
	fd_io.h \
	file_io.h \
	line_buffer_binary_size_wrapper_output.h \
	abstract_io.h abstract_input.h abstract_output.h

sockctl.o: sockctl.h sockctl.cc \
	  abstract_io.h abstract_input.h abstract_output.h
