include ../ENVIRONMENT

#CC = cc
#CFLAGS = -O
#LFLAGS = -p
#LIB = -lmalloc
#MATH_LIB = -lm

GLOBAL_DIR = ../global

COMMAND_OBJS = \
	arrange.o \
	avance.o \
	baseline.o \
	command.o \
	complex.o \
	convolve.o \
	fft.o \
	lp_extend.o \
	lp_first.o \
	lp_fit.o \
	lp_last.o \
	maxent.o \
	opus.o \
	phase.o \
	weight.o

LOCAL_OBJS = \
	process.o \
	block.o \
	block2.o \
	block3.o \
	files.o \
	script.o \
	store.o \
	$(COMMAND_OBJS)

LINPACK_OBJS = \
	$(GLOBAL_DIR)/linpack/caxpy.o \
	$(GLOBAL_DIR)/linpack/cdotc.o \
	$(GLOBAL_DIR)/linpack/cscal.o \
	$(GLOBAL_DIR)/linpack/csrot.o \
	$(GLOBAL_DIR)/linpack/cswap.o \
	$(GLOBAL_DIR)/linpack/scnrm2.o \
	$(GLOBAL_DIR)/linpack/srotg.o \
	$(GLOBAL_DIR)/linpack/r_cnjg.o \
	$(GLOBAL_DIR)/linpack/r_imag.o \
	$(GLOBAL_DIR)/linpack/r_sign.o \
	$(GLOBAL_DIR)/linpack/c_abs.o \
	$(GLOBAL_DIR)/linpack/c_div.o \
	$(GLOBAL_DIR)/linpack/csvdc.o

GLOBAL_OBJS = \
	$(GLOBAL_DIR)/avance_param.o \
	$(GLOBAL_DIR)/base.o \
	$(GLOBAL_DIR)/block_io.o \
	$(GLOBAL_DIR)/complex.o \
	$(GLOBAL_DIR)/conv.o \
	$(GLOBAL_DIR)/csvd.o \
	$(GLOBAL_DIR)/fblp.o \
	$(GLOBAL_DIR)/ft.o \
	$(GLOBAL_DIR)/help.o \
	$(GLOBAL_DIR)/lin_pred.o \
	$(GLOBAL_DIR)/lp.o \
	$(GLOBAL_DIR)/mem.o \
	$(GLOBAL_DIR)/par.o \
	$(GLOBAL_DIR)/parse.o \
	$(GLOBAL_DIR)/poly_roots.o \
	$(GLOBAL_DIR)/random.o \
	$(GLOBAL_DIR)/ref.o \
	$(GLOBAL_DIR)/svd.o \
	$(GLOBAL_DIR)/utility.o \
	$(LINPACK_OBJS)

process: locals globals
	$(CC) -o $@ $(LFLAGS) \
		$(LOCAL_OBJS) \
		$(GLOBAL_OBJS) \
		$(LIB) $(MATH_LIB)

local_objects: $(LOCAL_OBJS)

peak_objects: $(COMMAND_OBJS)

locals:
	$(MAKE) local_objects

globals:
	cd $(GLOBAL_DIR); $(MAKE) process_objects

peak:
	$(MAKE) peak_objects

.c.o:;	$(CC) -c $(CFLAGS) $<

clean:
	rm *.o

realclean:
	rm *.o
	rm process

block_test: block_test.o block.o
	$(CC) -o $@ $(CFLAGS) block_test.o block.o

OPUS_TEST_OBJS = \
		opus_test.o \
		arrange.o \
		baseline.o \
		command.o \
		complex.o \
		convolve.o \
		fft.o \
		lp.o \
		lp_first.o \
		lp_last.o \
		maxent.o \
		opus.o \
		phase.o \
		weight.o

opus_test:  $(OPUS_TEST_OBJS)
	$(CC) -o $@ $(CFLAGS) $(LFLAGS) \
		$(GLOBAL_DIR)/base.o \
		$(GLOBAL_DIR)/ft.o \
		$(GLOBAL_DIR)/mem.o \
		$(GLOBAL_DIR)/parse.o \
		$(GLOBAL_DIR)/random.o \
		$(GLOBAL_DIR)/svd.o \
		$(GLOBAL_DIR)/utility.o \
		$(OPUS_TEST_OBJS) $(LIB)
