#//****************************************************************************** #//** SCATMECH: Polarized Light Scattering C++ Class Library #//** #//** File: Makefile #//** #//** Thomas A. Germer #//** Sensor Science Division, National Institute of Standards and Technology #//** 100 Bureau Dr. Stop 8443; Gaithersburg, MD 20899-8443 #//** Phone: (301) 975-2876 #//** Email: thomas.germer@nist.gov #//** #//** Version: 7.00 (January 2015) #//** #//****************************************************************************** # # TODO: Under Windows, executables must end in .exe ... # EXE = .exe #EXE = # # TODO: Add or remove any optimization compile flags... # #COMPILEFLAGS = -O3 -mtune=pentium4 -DUSING_BLAS #COMPILEFLAGS = -O3 -mtune=pentium4 -DUSE_PTHREADS #COMPILEFLAGS = -O3 -D_DEBUG COMPILEFLAGS = -O3 -march=haswell -Wno-deprecated-declarations # # TODO: Make sure all neccesary libraries are included... # LIBRARIES = ./scatmech.a -lstdc++ # # TODO: Set compiler flag to create Makefile dependencies... # DEPEND = -MM INCLUDEDIR = -I. # # TODO: Set the compiler # #COMPILE = gcc-4 $(INCLUDEDIR) $(COMPILEFLAGS) COMPILE = gcc $(INCLUDEDIR) $(COMPILEFLAGS) #COMPILE = mpic++ $(INCLUDEDIR) $(COMPILEFLAGS) # # TODO: Set the linker # #LINK = gcc-4 -Wl,--enable-auto-import LINK = gcc #LINK = mpic++ # # TODO: Set the library archiver... # ARCHIVE = ar cr # # ******************************************************************************* # EXEOBJS = BRDFProg/brdfprog.o RCWProg/rcwprog.o ReflectProg/reflectprog.o MieProg/mieprog.o EXEEXE = BRDFProg/BRDFProg$(EXE) RCWProg/RCWProg$(EXE) ReflectProg/ReflectProg$(EXE) MieProg/MieProg$(EXE) OBJECTS = allrough.o \ askuser.o \ axifree.o \ axipart1.o \ axipart2.o \ axisym.o \ bobvlieg1.o \ bobvlieg2.o \ bobvlieg3.o \ brdf.o \ coatedmie.o \ crossgrating.o \ crossgrating2.o \ crossrcw.o \ crough.o \ dielfunc.o \ diffuse.o \ facet.o \ fft.o \ filmtran.o \ finiteaperture.o \ firstdiffuse.o \ flake.o \ focussedbeam.o \ fresnel.o \ gcross.o \ grating.o \ inherit.o \ instrument.o \ jmatrix.o \ jvector.o \ lambert.o \ local.o \ matrixmath.o \ matrixmath2.o \ miescat.o \ models.o \ mueller.o \ nsphere.o \ oasphere.o \ onelayer.o \ phasefunction.o \ polydisperse.o \ random.o \ raygscat.o \ rayinst.o \ rayscat.o \ raystack.o \ rcw.o \ reflectance.o \ reg_brdf.o \ reg_facet.o \ reg_instrument.o \ reg_lambert.o \ reg_local.o \ reg_rough.o \ reg_sphrscat.o \ rough.o \ roughnes.o \ scateval.o \ scatmatrix.o \ scattabl.o \ sizedistribution.o \ sphdfct.o \ sphprt.o \ sphrscat.o \ stokes.o \ subbobvlieg.o \ subsphere.o \ tmatrix.o \ torrspar.o \ transmit.o \ two_source.o \ twoface.o \ urough.o \ vector3d.o \ zernike.o \ zernikeexpansion.o .PHONY : all all: scatmech.a $(EXEEXE) %.o : %.cpp $(COMPILE) -o $@ -c $< ##### Make library ###### scatmech.a : $(OBJECTS) $(ARCHIVE) scatmech.a $(OBJECTS) BRDFProg/BRDFProg$(EXE) : BRDFProg/BRDFProg.cpp scatmech.a $(COMPILE) -o BRDFProg/BRDFProg.o -c BRDFProg/BRDFProg.cpp $(LINK) -o BRDFProg/BRDFProg$(EXE) BRDFProg/BRDFProg.o $(LIBRARIES) RCWProg/RCWProg$(EXE) : RCWProg/RCWProg.cpp scatmech.a $(COMPILE) -o RCWProg/RCWProg.o -c RCWProg/RCWProg.cpp $(LINK) -o RCWProg/RCWProg$(EXE) RCWProg/RCWProg.o $(LIBRARIES) ReflectProg/ReflectProg$(EXE) : ReflectProg/ReflectProg.cpp scatmech.a $(COMPILE) -o ReflectProg/ReflectProg.o -c ReflectProg/ReflectProg.cpp $(LINK) -o ReflectProg/ReflectProg$(EXE) ReflectProg/ReflectProg.o $(LIBRARIES) MieProg/MieProg$(EXE) : MieProg/MieProg.cpp scatmech.a $(COMPILE) -o MieProg/MieProg.o -c MieProg/MieProg.cpp $(LINK) -o MieProg/MieProg$(EXE) MieProg/MieProg.o $(LIBRARIES) clean : rm $(OBJECTS) $(EXEOBJS) $(EXEEXE) execlean: rm $(EXEOBJS) $(EXEEXE) #superclean: # rm $(OBJECTS) $(EXEOBJS) $(EXEEXE) Makefile.sub Makefile.sub : Makefile $(COMPILE) $(DEPEND) *.cpp > Makefile.sub include Makefile.sub