#-----------------------------------------------------------------------
# Submakefile :: ampl/snopt-cpp
#-----------------------------------------------------------------------

amplcpp_SRCDIR   = $(ampl_topdir)/snopt-cpp

amplcpp_OBJDIR   = $(AMPL_DIR)/snopt-cpp

amplcpp_LIBS     = libsnopt_cpp libsnopt libsnprint libsnblas libamplsolver
amplcpp_LIBS_LA  = $(amplcpp_LIBS:%=$(LIBDIR)/%.la)
amplcpp_LIBS_INS = $(amplcpp_LIBS:%=$(libdir)/%.la)

amplcpp_FILES    = snoptAmpl amplProblem
amplcpp_LO       = $(amplcpp_FILES:%=$(amplcpp_OBJDIR)/%.lo)

amplcpp_INCLUDE  = -I$(CPP_SRCDIR) -I$(INCDIR) -I$(F2CINCLUDE) -I$(AMPL_SRCDIR)
amplcpp_LIBRARY  = $(amplcpp_LIBS_LA) $(FCLIBS) $(F2CLIBRARY)

#-----------------------------------------------------------------------

all: all_ampl_cpp
clean: clean_ampl_cpp
veryclean: veryclean_ampl_cpp
distclean: distclean_ampl_cpp

#-----------------------------------------------------------------------

all_ampl_cpp: $(amplcpp_OBJDIR) all_snopt all_snopt_cpp $(BINDIR)/snampl_cpp

$(amplcpp_OBJDIR): $(AMPL_DIR)
	if [ ! -d $(amplcpp_OBJDIR) ]; then mkdir $@; fi

$(BINDIR)/snampl_cpp: $(BINDIR) $(amplcpp_LO) $(amplLIBS_LA)
	$(LINK_CXX) $(CXXFLAGS) $(amplcpp_INCLUDE) $(amplcpp_LO) -o $@ $(amplcpp_LIBRARY)

$(amplcpp_OBJDIR)/%.lo : $(amplcpp_SRCDIR)/%.cc
	$(COMPILE_CXX) $(CXXFLAGS) $(amplcpp_INCLUDE) -c $< -o $@

$(amplcpp_OBJDIR)/%.lo : $(amplcpp_SRCDIR)/%.c
	$(COMPILE_C) $(CFLAGS) $(amplcpp_INCLUDE) -c $< -o $@

#-----------------------------------------------------------------------

clean_ampl_cpp:
	$(CLEAN) rm -f $(amplcpp_OBJDIR)/*.lo

veryclean_ampl_cpp: clean_ampl_cpp
	$(CLEAN) rm -f $(BINDIR)/snampl_cpp

distclean_ampl_cpp: veryclean_ampl_cpp

#-----------------------------------------------------------------------

.PHONY: all_ampl_cpp clean_ampl_cpp veryclean_ampl_cpp distclean_ampl_cpp

