79 lines
2.5 KiB
Makefile
79 lines
2.5 KiB
Makefile
SHARP_TARGET?=auto
|
|
ifndef SHARP_TARGET
|
|
SHARP_TARGET:=$(error SHARP_TARGET undefined. Please see README.compilation for help)UNDEFINED
|
|
endif
|
|
|
|
default: compile_all
|
|
SRCROOT:=$(shell pwd)
|
|
include $(SRCROOT)/config/config.$(SHARP_TARGET)
|
|
include $(SRCROOT)/config/rules.common
|
|
|
|
all_hdr:=
|
|
all_lib:=
|
|
all_cbin:=
|
|
|
|
FULL_INCLUDE:=
|
|
|
|
include c_utils/planck.make
|
|
include libfftpack/planck.make
|
|
include libsharp/planck.make
|
|
include docsrc/planck.make
|
|
|
|
CYTHON_MODULES=python/libsharp/libsharp.so $(if $(MPI_CFLAGS), python/libsharp/libsharp_mpi.so)
|
|
|
|
$(all_lib): %: | $(LIBDIR)_mkdir
|
|
@echo "# creating library $*"
|
|
$(ARCREATE) $@ $^
|
|
|
|
$(all_cbin): %: | $(BINDIR)_mkdir
|
|
@echo "# linking C binary $*"
|
|
$(CL) -o $@ $^ $(CLFLAGS)
|
|
|
|
compile_all: $(all_cbin) hdrcopy
|
|
|
|
hdrclean:
|
|
@if [ -d $(INCDIR) ]; then rm -rf $(INCDIR)/* ; fi
|
|
|
|
hdrcopy: | $(INCDIR)_mkdir
|
|
@if [ "$(all_hdr)" ]; then cp -p $(all_hdr) $(INCDIR); fi
|
|
|
|
$(notdir $(all_cbin)) : % : $(BINDIR)/%
|
|
|
|
test: compile_all
|
|
$(BINDIR)/sharp_testsuite acctest && \
|
|
$(BINDIR)/sharp_testsuite test healpix 2048 -1 1024 -1 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test fejer1 2047 -1 -1 4096 2 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 2047 -1 -1 4096 0 2
|
|
|
|
perftest: compile_all
|
|
$(BINDIR)/sharp_testsuite test healpix 2048 -1 1024 -1 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 63 -1 -1 128 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 127 -1 -1 256 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 255 -1 -1 512 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 511 -1 -1 1024 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 1023 -1 -1 2048 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 2047 -1 -1 4096 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 4095 -1 -1 8192 0 1 && \
|
|
$(BINDIR)/sharp_testsuite test gauss 8191 -1 -1 16384 0 1
|
|
|
|
%.c: %.c.in
|
|
# Only do this if the md5sum changed, in order to avoid Python and Jinja
|
|
# dependency when not modifying the c.in file
|
|
grep `md5sum $< | cut -d ' ' -f 1` $@ || ./runjinja.py < $< > $@
|
|
|
|
genclean:
|
|
rm libsharp/sharp_legendre.c || exit 0
|
|
|
|
$(CYTHON_MODULES): %.so: %.pyx
|
|
ifndef PIC_CFLAGS
|
|
$(error Python extension must be built using the --enable-pic configure option.)
|
|
endif
|
|
cython $<
|
|
$(CC) $(DEBUG_CFLAGS) $(OPENMP_CFLAGS) $(PIC_CFLAGS) `python-config --cflags` -I$(INCDIR) -o $(<:.pyx=.o) -c $(<:.pyx=.c)
|
|
$(CL) -shared $(<:.pyx=.o) $(OPENMP_CFLAGS) $(CYTHON_OBJ) -L$(LIBDIR) -lsharp -lfftpack -lc_utils -L`python-config --prefix`/lib `python-config --ldflags` -o $@
|
|
|
|
python: $(all_lib) hdrcopy $(CYTHON_MODULES)
|
|
|
|
pytest: python
|
|
cd python && nosetests --nocapture libsharp/tests/test_sht.py
|