include ../ENVIRONMENT

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

GLOBAL_DIR = ../global
COMMAND_DIR = ../process

LOCAL_FIND_OBJS = \
	peak_find.o \
	data.o \
	find.o \
	script_find.o

GLOBAL_FIND_OBJS = \
	$(GLOBAL_DIR)/block_io.o \
	$(GLOBAL_DIR)/dbl_list.o \
	$(GLOBAL_DIR)/help.o \
	$(GLOBAL_DIR)/list.o \
	$(GLOBAL_DIR)/par.o \
	$(GLOBAL_DIR)/parse.o \
	$(GLOBAL_DIR)/ref.o \
	$(GLOBAL_DIR)/sorts.o \
	$(GLOBAL_DIR)/utility.o

LOCAL_FIT_OBJS = \
	peak_fit.o \
	data.o \
	fit.o \
	fitter.o \
	group.o \
	output.o \
	script_fit.o

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_FIT_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)/dbl_list.o \
	$(GLOBAL_DIR)/fblp.o \
	$(GLOBAL_DIR)/ft.o \
	$(GLOBAL_DIR)/gauss_jordan.o \
	$(GLOBAL_DIR)/help.o \
	$(GLOBAL_DIR)/list.o \
	$(GLOBAL_DIR)/lin_pred.o \
	$(GLOBAL_DIR)/lp.o \
	$(GLOBAL_DIR)/mem.o \
	$(GLOBAL_DIR)/nonlinear_model.o \
	$(GLOBAL_DIR)/par.o \
	$(GLOBAL_DIR)/parse.o \
	$(GLOBAL_DIR)/poly_roots.o \
	$(GLOBAL_DIR)/random.o \
	$(GLOBAL_DIR)/ref.o \
	$(GLOBAL_DIR)/sorts.o \
	$(GLOBAL_DIR)/svd.o \
	$(GLOBAL_DIR)/utility.o \
	$(LINPACK_OBJS)

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

all: peak_find peak_fit

peak_find: local_find global_find
	$(CC) -o $@ $(LFLAGS) \
		$(LOCAL_FIND_OBJS) \
		$(GLOBAL_FIND_OBJS) \
		$(LIB) $(MATH_LIB)

peak_fit: local_fit global_fit commands
	$(CC) -o $@ $(LFLAGS) \
		$(LOCAL_FIT_OBJS) \
		$(GLOBAL_FIT_OBJS) \
		$(COMMAND_OBJS) \
		$(LIB) $(MATH_LIB)

local_find_objects: $(LOCAL_FIND_OBJS)

local_find:
	$(MAKE) local_find_objects

global_find:
	cd $(GLOBAL_DIR); $(MAKE) peak_find_objects

local_fit_objects: $(LOCAL_FIT_OBJS)

local_fit:
	$(MAKE) local_fit_objects

global_fit:
	cd $(GLOBAL_DIR); $(MAKE) peak_fit_objects

commands:
	cd $(COMMAND_DIR); $(MAKE) peak


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

clean:
	rm *.o

realclean:
	rm *.o
	rm peak_find
	rm peak_fit

#make_data: make_data.o script.o globals commands
#	$(CC) -o $@ $(LFLAGS) \
#		make_data.o script.o \
#		$(GLOBAL_OBJS) \
#		$(COMMAND_OBJS) \
#		$(LIB)
