#IDIR =../include CC=gcc -std=c99 CFLAGS=-Wall LIBS=-lm libmatrix.so libexponentialsum.so libextend.so libmeasurepauli.so weaksim_relerr: weaksim_relerr.c matrix exponentialsum shrink shrinkstar extend measurepauli innerproduct randomstabilizerstate supplement supplement2 sparsify $(CC) -o $@ weaksim_relerr.c $(CFLAGS) $(LIBS) libshrink.so libshrinkstar.so librandomstabilizerstate.so libsparsify.so libsupplement.so libsupplement2.so libinnerproduct.so weaksim: weaksim.c matrix exponentialsum shrink extend measurepauli innerproduct supplement supplement2 sparsify $(CC) -o $@ weaksim.c $(CFLAGS) $(LIBS) libshrink.so libsparsify.so libsupplement.so libsupplement2.so libinnerproduct.so -fopenmp module_sparsify_test: module_sparsify_test matrix sparsify $(CC) -o $@ module_sparsify_test.c $(CFLAGS) libmatrix.so libsparsify.so matrix: matrix.h matrix.c $(CC) -c -Werror -Wall -fpic matrix.c $(CC) -shared -o libmatrix.so matrix.o exponentialsum: exponentialsum.h exponentialsum.c $(CC) -c -Wall -fpic exponentialsum.c $(CC) -shared -o libexponentialsum.so exponentialsum.o -lm libmatrix.so shrink: shrink.h shrink.c $(CC) -c -Wall -fpic shrink.c $(CC) -shared -o libshrink.so shrink.o -lm libmatrix.so extend: extend.h extend.c $(CC) -c -Werror -Wall -fpic extend.c $(CC) -shared -o libextend.so extend.o -lm libmatrix.so measurepauli: measurepauli.h measurepauli.c $(CC) -c -Wall -fpic measurepauli.c $(CC) -shared -o libmeasurepauli.so measurepauli.o -lm libextend.so libshrink.so libmatrix.so innerproduct_equatorial: innerproduct_equatorial.h innerproduct_equatorial.c $(CC) -c -Wall -fpic innerproduct_equatorial.c $(CC) -shared -o libinnerproduct_equatorial.so innerproduct_equatorial.o -lm libextend.so libshrink.so libexponentialsum.so libmatrix.so innerproduct: innerproduct.h innerproduct.c $(CC) -c -Wall -fpic innerproduct.c $(CC) -shared -o libinnerproduct.so innerproduct.o -lm libextend.so libshrink.so libexponentialsum.so libmatrix.so innerproductintersection: innerproductintersection.h innerproductintersection.c $(CC) -c -Wall -fpic innerproductintersection.c $(CC) -shared -o libinnerproductintersection.so innerproductintersection.o -lm libextend.so libshrink.so libexponentialsum.so libmatrix.so shrinkstar: shrinkstar.h shrinkstar.c $(CC) -c -Wall -fpic shrinkstar.c $(CC) -shared -o libshrinkstar.so shrinkstar.o -lm libmatrix.so randomstabilizerstate_equatorial: randomstabilizerstate_equatorial.h randomstabilizerstate_equatorial.c $(CC) -c -Wall -fpic randomstabilizerstate_equatorial.c $(CC) -shared -o librandomstabilizerstate_equatorial.so randomstabilizerstate_equatorial.o -lm libmatrix.so randomstabilizerstate: randomstabilizerstate.h randomstabilizerstate.c $(CC) -c -Wall -fpic randomstabilizerstate.c $(CC) -shared -o librandomstabilizerstate.so randomstabilizerstate.o -lm libmatrix.so libshrinkstar.so -llapacke supplement: supplement.h supplement.c $(CC) -c -Wall -fpic supplement.c $(CC) -shared -o libsupplement.so supplement.o -lm supplement2: supplement2.h supplement2.c $(CC) -c -Wall -fpic supplement2.c $(CC) -shared -o libsupplement2.so supplement2.o -lm sparsify: sparsify.h sparsify.c supplement2 $(CC) -c -Wall -fpic sparsify.c $(CC) -shared -o libsparsify.so sparsify.o -lm libmatrix.so libsupplement2.so randominputcommutingHermitianPauli: randominputcommutingHermitianPauli.c $(CC) -o randominputcommutingHermitianPauli randominputcommutingHermitianPauli.c randominputcommutingHermitianPauli2: randominputcommutingHermitianPauli2.c $(CC) -o randominputcommutingHermitianPauli2 randominputcommutingHermitianPauli2.c randominputPauli: randominputPauli.c $(CC) -o randominputPauli randominputPauli.c multipauli: multipauli.c $(CC) -o multipauli multipauli.c -lm .PHONY: clean clean: rm ./weaksim_relerr ./weaksim ./matrix.o ./libmatrix.so ./exponentialsum.o ./libexponentialsum.so ./shrink.o ./libshrink.so ./extend.o ./libextend.so ./measurepauli.o ./libmeasurepauli.so ./libinnerproduct.so # you might want to update LD_LIBRARY_PATH to see the library: # export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH # or if you have root privileges put the library /usr/local/lib or whatever library directory in your path # Then, use ldconfig to write the path in the config file: # sudo echo "/usr/local/lib" >> /etc/ld.so.conf # sudo ldconfig