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