### $Id: XMakefile,v 2.4 1994/12/27 11:49:38 rt Exp $
### Makefile for RTSS

NICE          = 

CXX           = $(NICE) g++ # -I/usr/local/include

MOPT	      = 

CXXFLAGS = -g -O2 -DSJIS_ICONV # -Wall
LDFLAGS  = -g -O2

DEST	      = ${HOME}/bin

LIBDEST	      = ${HOME}/lib

RTSSLIB	      = lib$(PROGRAM).a

MATRIXLIB     = libmatrix.a

TINYXMLLIB    = libtinyxml.a

HDRS	      = enumerat.hh globvar.hh kidenrt.hh matrix.hh train.hh \
		nextsta.hh diapatrn.hh feedline.hh feed_y.hh \
		table.hh table.cc readdata.hh stnobj.hh rtsscmds.hh \
		rtss_iconv.hh rtss_path.hh stnobj_s.hh DataInSection.hh \
		EnergyStorage.hh Expandable.hh StrPrintf.hh \
		Substation_Control_VI_TS.hh SuppressCSV.hh \
		NoRefTable.hh NoRefTable-def.hh RefTable.hh \
		ElectricalChars.hh RS_Object.hh RS_XmlReader.hh \
		Ref_SOC_Curve.hh Ref_SOC_Curve_Container.hh \
		OBESS_CurrentCapper.hh

LINKER	      = $(NICE) g++

MAKEFILE      = Makefile

PRINT	      = printj

INSTALL	      = install

# LIBS	      = -L/usr/local/lib -L$(LIBDEST) -l$(PROGRAM) \
# 		-lmatrix -ltinyxml -lm -lpcre -liconv
LIBS	      = -L$(LIBDEST) -l$(PROGRAM) \
		-lmatrix -ltinyxml -lm -lpcre -liconv

RTSSLIBSRCS   = ccal.cc disttrn.cc feeder.cc ffunc.cc \
		readfile.cc rf_ffile.cc rf_gfile.cc rf_hfile.cc \
		rf_nfile.cc rf_pfile.cc rf_sfile.cc rtss_iconv.cc \
		rtss_path.cc simulate.cc sim_ctla.cc tellimp.cc \
		diapatrn.cc dpt_rf.cc \
		elecchar.cc feedline.cc feed_y.cc \
		gradcrv.cc nextsta.cc nxx_rf.cc \
		motion.cc notchr.cc \
		ontime.cc ontimsub.cc trd_rf.cc \
		train.cc trmove.cc trteta.cc trstncom.cc \
		trnext.cc trn_brak.cc trn_coas.cc trn_cons.cc \
		trn_pass.cc trn_powr.cc trn_regn.cc trn_stop.cc \
		trn_stno.cc trn_btws.cc \
		readdata.cc stnobj.cc stn_dept.cc stn_head.cc \
		stn_arrv.cc stn_rf.cc \
		stnobj_s.cc stn_s_rf.cc \
		Substation_Control_VI_TS.cc EnergyStorage.cc \
		RS_Object.cc RS_XmlReader.cc Ref_SOC_Curve.cc \
		Ref_SOC_Curve_Container.cc \
		OBESS_CurrentCapper.cc

RTSSLIBOBJS   = $(RTSSLIBSRCS:%.cc=%.o)

RTSSLIBDEPS   = $(RTSSLIBSRCS:%.cc=%.d)

MATRIXLIBSRCS = matrix.cc

TINYXMLLIBSRCS = tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp

MATRIXLIBOBJS = $(MATRIXLIBSRCS:%.cc=%.o)

MATRIXLIBDEPS = $(MATRIXLIBSRCS:%.cc=%.d)

TINYXMLLIBOBJS = $(TINYXMLLIBSRCS:%.cpp=%.o)

TINYXMLLIBDEPS = $(TINYXMLLIBSRCS:%.cpp=%.dd)

LINKSRCS      = main.cc \
		Generic_ESS_SubstationCreator.cc \
		Fixed_Percentage_Losses_ModelCreator.cc \
		SimpleEDLCModelCreator.cc SimpleBatteryModelCreator.cc \
		Ref_SOC_Curve_Creator.cc \
		OBESS_RefSOC_Controlled_Creator.cc \
		OBESS_CurrentCapperCreator.cc

LINKOBJS      = $(LINKSRCS:%.cc=%.o)

LINKDEPS      = $(LINKSRCS:%.cc=%.d)

SRCS	      = $(RTSSLIBSRCS) $(MATRIXLIBSRCS) $(TINYXMLLIBSRCS) $(LINKSRCS)

MAKEFILES     = $(RTSSLIBDEPS) $(MATRIXLIBDEPS) $(TINYXMLLIBDEPS) $(LINKDEPS)

OBJS	      = $(RTSSLIBOBJS) $(MATRIXLIBOBJS) $(TINYXMLLIBOBJS) $(LINKOBJS)

all:		$(PROGRAM)

include $(MAKEFILES)

run:		$(PROGRAM)
		$(NICE) $(PROGRAM)

%.dd:		%.cpp
		$(CXX) -M $(CPPFLAGS) $< | sed 's/$*.o/& $@/g' > $@

%.d:		%.cc
		$(CXX) -M $(CPPFLAGS) $< | sed 's/$*.o/& $@/g' > $@

libmatrix:	$(MATRIXLIB)

$(MATRIXLIB):   $(MATRIXLIBOBJS)
		ar cruv $(MATRIXLIB) $(MATRIXLIBOBJS)
		ranlib $(MATRIXLIB)
		$(INSTALL) -c $(MATRIXLIB) $(LIBDEST)

libtinyxml:	$(TINYXMLLIB)

$(TINYXMLLIB):   $(TINYXMLLIBOBJS)
		ar cruv $(TINYXMLLIB) $(TINYXMLLIBOBJS)
		ranlib $(TINYXMLLIB)
		$(INSTALL) -c $(TINYXMLLIB) $(LIBDEST)

$(RTSSLIB):     $(RTSSLIBOBJS)
		ar cruv $(RTSSLIB) $(RTSSLIBOBJS)
		ranlib $(RTSSLIB)
		$(INSTALL) -c $(RTSSLIB) $(LIBDEST)

$(PROGRAM):     $(LINKOBJS) $(RTSSLIB) $(MATRIXLIB) $(TINYXMLLIB)
		$(LINKER) $(LDFLAGS) $(LINKOBJS) $(LIBS) -o $(PROGRAM)

clean:;		rm -f $(OBJS) *~

depend:;	mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST)

install:	$(PROGRAM)
	$(INSTALL) -s $(PROGRAM) $(DEST)/$(PROGRAM)-$(ARCH)-$(PREFIX) 

program:        $(PROGRAM)

update:		$(DEST)/$(PROGRAM)

##$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
##		@gmake $(MAKEFILE) DEST=$(DEST) install

###
