# for debug, makefile lib for a_plant: make DBX="-DDEBUG=cerr -g" lib
EKSdir=/usr3/dechao/eks
DBX= -g
LIBS= -L${EKSdir}/lib -lEKS -lIntrinsics -lDimensions -lm
CFLAGS= -I../../dimensions -I../../intrinsics -I../../base -I../../base/theory -I../../base/site -I../../base/building -I../../tax_1 -I../../tax_2 -I../../plant -I../../plant/a_plant -pic ${DBX}
LFLAGS= -hbx
SRC= Ac_building.C Ac_building_def.C Ac_coil.C Ac_coil_def.C Ac_duct.C Ac_duct_def.C Ac_fan.C Ac_fan_def.C Ac_mixbox.C Ac_mixbox_def.C Boundary.C Boundary_def.C Context_pc.C Context_pc_def.C EComponent.C EComponent_def.C EConnection.C EConnection_def.C ESystem.C ESystem_def.C
OBJ= Ac_building.o Ac_building_def.o Ac_coil.o Ac_coil_def.o Ac_duct.o Ac_duct_def.o Ac_fan.o Ac_fan_def.o Ac_mixbox.o Ac_mixbox_def.o Boundary.o Boundary_def.o Context_pc.o Context_pc_def.o EComponent.o EComponent_def.o EConnection.o EConnection_def.o ESystem.o ESystem_def.o

plant_3:	${OBJ}

all:	plant_3 plant_2

plant_2:
	cd ../a_plant; make all

VERSION=`cat ${EKSdir}/lib/.version`
lib:	all
	echo ${VERSION}
	ld -o ${EKSdir}/lib/libEKS.so.${VERSION} -assert pure-text  \
		../../base/[A-Z]*.o ../../base/*/[A-Z]*.o ../../tax_1/[A-Z]*.o\
		../../tax_2/[A-Z]*.o ../../plant/[A-Z]*.o ../../plant/a_plant/[A-Z]*.o [A-Z]*.o
	ar cr ${EKSdir}/lib/libEKS.sa.${VERSION}  ../../base/EKS.o
	ranlib ${EKSdir}/lib/libEKS.sa.${VERSION}

static_lib: all
	ar cr ${EKSdir}/lib/libEKS.a  \
		../../base/[A-Z]*.o  ../../base/*/[A-Z]*.o  ../../tax_1/[A-Z]*.o
		../[A-Z]*.o [A-Z]*.o

build_template:	plant_3 make_meta_for.o desc_def_for.o instantiate.o
	CC ${CFLAGS} -o ${EKSdir}/bin/build_template   ../../base/build_template.o \
			make_meta_for.o  desc_def_for.o  instantiate.o \
			${LIBS}

describe_data:	plant_3 make_meta_for.o desc_def_for.o instantiate.o
	CC ${CFLAGS} -o ${EKSdir}/bin/describe_data   ../../base/describe_data.o \
			make_meta_for.o  desc_def_for.o  instantiate.o \
			${LIBS}

get_data_and_run_model:	plant_3 make_meta_for.o desc_def_for.o instantiate.o
	CC ${CFLAGS} -o ${EKSdir}/bin/get_data_and_run_model   ../../base/get_data_and_run_model.o \
			make_meta_for.o  desc_def_for.o  instantiate.o \
			${LIBS}

run_model:	plant_3 make_meta_for.o desc_def_for.o instantiate.o
	CC ${CFLAGS} -o ${EKSdir}/bin/run_model   ../../base/run_model.o  \
			make_meta_for.o  desc_def_for.o  instantiate.o \
			${LIBS}

make_meta_for.o:	../../standalone/make_meta_for.C
	CC ${CFLAGS} -I. -c -DDEMO1 -DDEMO2 -DDEMOA -DDEMOE ../../standalone/make_meta_for.C

instantiate.o:		../../standalone/instantiate.C
	CC ${CFLAGS} -I. -c -DDEMO1 -DDEMO2 -DDEMOA -DDEMOE ../../standalone/instantiate.C

desc_def_for.o:		../../standalone/desc_def_for.C
	CC ${CFLAGS} -I. -c -DDEMO1 -DDEMO2 -DDEMOA -DDEMOE ../../standalone/desc_def_for.C

destroy.o:		../../standalone/destroy.C
	CC ${CFLAGS} -I. -c -DDEMO1 -DDEMO2 -DDEMOA -DDEMOE ../../standalone/destroy.C


clean:
	rm -f core lintout makeout tags makefile.bak *.o *.cyi

lintout: ${SRC}
	\@rm -f lintout
	lint ${LFLAGS} ${SRC} >lintout

errs:
	\@rm -f makeout
	make main1 >makeout

tags:	${SRC}
	\@rm -f tags
	ctags ${SRC}

source:
	mv makefile makefile.bak
	head -6 makefile.bak >makefile
	echo SRC= `ls *.C` >>makefile
	echo OBJ= `ls *.C | sed s/C$$/o/` >>makefile
	tail +9 <makefile.bak >>makefile

depend: ${SRC}
	for i in ${SRC};  \
	do \
		/lib/cpp  -M -Y/usr/CC/incl $$i \
		|  sort -u \
		|  sed -e 's, \./, ,' \
		|  awk ' \
				{ if ($$1 != prev) { \
					if (rec != "")   print rec; \
					rec = $$0;  prev = $$1;\
			 	  } else { \
					if ($$2 !~ /CC/) { \
						print rec "   \\"; \
						rec = "\t" $$2}\
					} \
				} \
			END { print rec } \
		'; \
	done >makedep
	echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
	echo '$$r makedep' >>eddep
	echo 'w' >>eddep
	cp makefile makefile.bak
	ed - makefile <eddep
	rm eddep makedep
	echo '' >>makefile
	echo '# DEPENDENCIES MUST END AT END OF FILE' >>makefile
	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >>makefile
	echo '# see make depend above' >>makefile

.SUFFIXES: .C
.C.o:
	CC ${CFLAGS} -c $*.C

# DO NOT DELETE THIS LINE -- make depend uses it

Ac_building.o: Ac_building.h   \
	Ac_building_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	Ac_building.C
Ac_building_def.o: Ac_building_def.h   \
	EComponent_def.h   \
	Ac_building_def.C
Ac_coil.o: Ac_coil.h   \
	Ac_coil_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	Ac_coil.C
Ac_coil_def.o: Ac_coil_def.h   \
	EComponent_def.h   \
	Ac_coil_def.C
Ac_duct.o: Ac_duct.h   \
	Ac_duct_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	Ac_duct.C
Ac_duct_def.o: Ac_duct_def.h   \
	EComponent_def.h   \
	Ac_duct_def.C
Ac_fan.o: Ac_fan.h   \
	Ac_fan_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	Ac_fan.C
Ac_fan_def.o: Ac_fan_def.h   \
	EComponent_def.h   \
	Ac_fan_def.C
Ac_mixbox.o: Ac_mixbox.h   \
	Ac_mixbox_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	Ac_mixbox.C
Ac_mixbox_def.o: Ac_mixbox_def.h   \
	EComponent_def.h   \
	Ac_mixbox_def.C
Boundary.o: Boundary.h   \
	Boundary_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	Boundary.C
Boundary_def.o: Boundary_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	Boundary_def.C
Context_pc.o: Context_pc.h   \
	Context_pc_def.h   \
	Context_pc.C
Context_pc_def.o: Context_pc_def.h   \
	EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	ESystem.h   \
	ESystem_def.h   \
	Context_pc_def.C
EComponent.o: EComponent.h   \
	EComponent_def.h   \
	EComponent.C
EComponent_def.o: EComponent_def.h   \
	EComponent_def.C
EConnection.o: EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	EConnection.C
EConnection_def.o: EConnection_def.h   \
	EConnection_def.C
ESystem.o: EComponent.h   \
	EComponent_def.h   \
	EConnection.h   \
	EConnection_def.h   \
	ESystem.h   \
	ESystem_def.h   \
	ESystem.C
ESystem_def.o: ESystem_def.h   \
	ESystem_def.C

# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above
