1# -*- Makefile -*-
2
3fac1    = sky_ng_sim
4fac2    = sky_ng_sim_bin
5inc     =
6VPATH	= $(BINDIR)
7exec1	= $(BINDIR)/$(fac1)
8exec2	= $(BINDIR)/$(fac2)
9subs    = sky_sub.o  sub_ngpdf_powergauss.o  sub_ngpdf_sho.o
10obj1 	= $(subs)  sky_ng_sim.o
11obj2 	= $(subs)  sky_ng_sim_bin.o
12
13MKDIR   = mkdir -p
14OD :=$(BUILDDIR)/$(fac1)
15SD :=$(shell pwd)
16OBJ1:=$(obj1:%=$(OD)/%)
17OBJ2:=$(obj2:%=$(OD)/%)
18SUBS:=$(subs:%=$(OD)/%)
19LIB:=$(LIBDIR)/libhealpix$(LIBSUFFIX)
20
21
22%_mkdir:
23	@if [ ! -d $* ]; then $(MKDIR) $* ; fi
24
25
26$(OD)/%.o: $(SD)/%.f90 $(inc) $(OD)_mkdir
27	$(FC) $(FFLAGS) -c $< -o $@ $(MODDIR)$(OD)
28
29$(OD)/%.o: $(SD)/%.F90 $(inc) $(OD)_mkdir
30	@echo compiling $(SD)/$*.F90
31	@case $(OS) in \
32	Darwin ) \
33	ln -s -f $< $*.junk.F90; \
34	$(FC) $(FFLAGS) $(ADDUS) $(PPFLAGS) -c $*.junk.F90 -o $@ $(MODDIR)$(OD) ; \
35	rm $*.junk.F90;; \
36	OSF ) \
37	ln -s -f $< $*.f90; \
38	$(FC) $(FFLAGS) $(ADDUS) -cpp       -c $(basename $<).f90 -o $@ $(MODDIR)$(OD) ;; \
39	* ) \
40	$(FC) $(FFLAGS) $(ADDUS) $(PPFLAGS) -c $< -o $@  $(MODDIR)$(OD);; \
41	esac
42
43default: $(exec1) $(exec2)
44
45$(exec1): $(OBJ1) $(LIB)
46	$(FC)  $(FFLAGS) -o $(exec1) $(OBJ1) $(PGLIBS) $(LDFLAGS)
47
48$(exec2): $(OBJ2) $(LIB)
49	$(FC)  $(FFLAGS) -o $(exec2) $(OBJ2) $(PGLIBS) $(LDFLAGS)
50
51# spell out dependencies to allow parallel compilation (make -j)
52$(OD)/sub_ngpdf_powergauss.o: $(OD)/sky_sub.o
53
54$(OD)/sub_ngpdf_sho.o:        $(OD)/sky_sub.o
55
56$(OD)/sky_ng_sim.o:           $(SUBS)
57
58$(OD)/sky_ng_sim_bin.o:       $(SUBS)
59
60