SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = .
topdir = $(rubylibdir)/$(arch)
#hdrdir = $(rubylibdir)/$(arch)
hdrdir = /usr/lib/ruby/1.6/$(arch)
VPATH = $(srcdir)
CC = gcc
CFLAGS   = -fPIC -g -O2 -fPIC 
CPPFLAGS = -I. -I$(hdrdir) -I$(srcdir) -I$(prefix)/include -DHAVE_SYS_TYPES_H -DHAVE_U_INT8_T -DHAVE_INT16_T -DHAVE_INT32_T -DHAVE_U_INT32_T -DHAVE_ASINH -DHAVE_FFTW_H  
CXXFLAGS = $(CFLAGS)
DLDFLAGS =  -L$(exec_prefix)/lib 
LDSHARED = gcc -shared 
LIBPATH = 
RUBY_INSTALL_NAME = ruby
RUBY_SO_NAME = 
arch = i386-linux
ruby_version = 1.6

prefix = $(DESTDIR)/usr
exec_prefix = $(prefix)
libdir = $(exec_prefix)/lib
rubylibdir = $(libdir)/ruby/$(ruby_version)
archdir = $(rubylibdir)/$(arch)
#sitedir = $(prefix)/local/lib/site_ruby
#sitelibdir = $(sitedir)/$(ruby_version)
#sitearchdir = $(sitelibdir)/$(arch)
target_prefix = 
#### End of system configuration section. ####
LOCAL_LIBS =  
LIBS = -L. -l$(RUBY_INSTALL_NAME) -lfftw -lc
OBJS = narray.o na_array.o na_func.o na_index.o na_random.o na_op.o na_math.o na_linalg.o na_fftw.o
TARGET = narray
DLLIB = $(TARGET).so
RUBY = ruby
RM = $(RUBY) -rftools -e "File::rm_f(*ARGV.map{|x|Dir[x]}.flatten.uniq)"
EXEEXT = 
all:		$(DLLIB)
clean:;		@$(RM) *.o *.so *.sl *.a $(DLLIB)
		@$(RM) $(TARGET).lib $(TARGET).exp $(TARGET).ilk *.pdb $(CLEANFILES)
distclean:	clean
		@$(RM) Makefile extconf.h conftest.* mkmf.log
		@$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
realclean:	distclean
install:	$(archdir)$(target_prefix)/$(DLLIB)
#site-install:	$(sitearchdir)$(target_prefix)/$(DLLIB)
$(archdir)$(target_prefix)/$(DLLIB): $(DLLIB)
	@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(rubylibdir) $(archdir)$(target_prefix)
	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(archdir)$(target_prefix)/$(DLLIB)
	@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(rubylibdir)$(target_prefix)
	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' ./lib/nmatrix.rb $(rubylibdir)$(target_prefix)
	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' ./lib/narray_ext.rb $(rubylibdir)$(target_prefix)
	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' $(srcdir)/narray.h $(archdir)$(target_prefix)
	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' narray_config.h $(archdir)$(target_prefix)

#$(sitearchdir)$(target_prefix)/$(DLLIB): $(DLLIB)
#	@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(sitearchdir)$(target_prefix)
#	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0555, true)' $(DLLIB) $(sitearchdir)$(target_prefix)/$(DLLIB)
#	@$(RUBY) -r ftools -e 'File::makedirs(*ARGV)' $(sitelibdir)$(target_prefix)
#	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' ./lib/nmatrix.rb $(sitelibdir)$(target_prefix)
#	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' ./lib/narray_ext.rb $(sitelibdir)$(target_prefix)
#	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' $(srcdir)/narray.h $(sitearchdir)$(target_prefix)
#	@$(RUBY) -r ftools -e 'File::install(ARGV[0], ARGV[1], 0644, true)' narray_config.h $(sitearchdir)$(target_prefix)


.c.o:
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
.cc.o:
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
.cpp.o:
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
.cxx.o:
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
.C.o:
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
$(DLLIB): $(OBJS)
	$(LDSHARED) $(DLDFLAGS) -o $(DLLIB) $(OBJS) $(LIBS) $(LOCAL_LIBS)
###
na_op.c: mknafunc.rb mkop.rb
	$(RUBY) -I$(srcdir) $(srcdir)/mkop.rb

na_op.o: na_op.c narray.h $(hdrdir)/ruby.h


na_math.c: mknafunc.rb mkmath.rb
	$(RUBY) -I$(srcdir) $(srcdir)/mkmath.rb

na_math.o: na_math.c narray.h $(hdrdir)/ruby.h


cleanall:  clean
	@$(RM)  na_op.c na_math.c
