Trying to build a LEVMAR math library on a Mac using an acceleration system

I want to build the levmar-2.5 library on a poppy using the included Makefile. It requires LAPACK,
another math library that is included in the acceleration angle view. I do not know how to change the Makefile to indicate the location of the library so that it builds correctly. There is libLAPACK.dylib as part of. Ultimately, I will want to use this library to create another library. Also, I'm not sure if there will be a problem mixing dynamic .so and .dylib libraries.
Thanks.

The project is located in levmar .

Here is the Makefile:

# # Unix/Linux GCC Makefile for Levenberg - Marquardt minimization # Under windows, use Makefile.vc for MSVC # CC=gcc CONFIGFLAGS=#-ULINSOLVERS_RETAIN_MEMORY #ARCHFLAGS=-march=pentium4 # YOU MIGHT WANT TO UNCOMMENT THIS FOR P4 CFLAGS=$(CONFIGFLAGS) $(ARCHFLAGS) -O3 -funroll-loops -Wall #-ffast-math #-pg LAPACKLIBS_PATH=/usr/local/lib # WHEN USING LAPACK, CHANGE THIS TO WHERE YOUR COMPILED LIBS ARE! LDFLAGS=-L$(LAPACKLIBS_PATH) -L. LIBOBJS=lm.o Axb.o misc.o lmlec.o lmbc.o lmblec.o lmbleic.o LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c lmblec.c lmbleic.c DEMOBJS=lmdemo.o DEMOSRCS=lmdemo.c AR=ar RANLIB=ranlib LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK. # On systems with a FORTRAN (not f2c'ed) version of LAPACK, -lf2c is # not necessary; on others, -lf2c is equivalent to -lF77 -lI77 #LAPACKLIBS=-L/usr/local/atlas/lib -llapack -lcblas -lf77blas -latlas -lf2c # This works with the ATLAS updated lapack and Linux_P4SSE2 # from http://www.netlib.org/atlas/archives/linux/ #LAPACKLIBS=-llapack -lgoto2 -lpthread -lf2c # This works with GotoBLAS # from http://www.tacc.utexas.edu/research-development /tacc-projects/ #LAPACKLIBS=-L/opt/intel/mkl/8.0.1/lib/32/ -lmkl_lapack -lmkl_ia32 -lguide -lf2c # This works with MKL 8.0.1 from # http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/index.htm LIBS=$(LAPACKLIBS) all: liblevmar.a lmdemo liblevmar.a: $(LIBOBJS) $(AR) crv liblevmar.a $(LIBOBJS) $(RANLIB) liblevmar.a lmdemo: $(DEMOBJS) liblevmar.a $(CC) $(LDFLAGS) $(DEMOBJS) -o lmdemo -llevmar $(LIBS) -lm lm.o: lm.c lm_core.c levmar.h misc.h compiler.h Axb.o: Axb.c Axb_core.c levmar.h misc.h misc.o: misc.c misc_core.c levmar.h misc.h lmlec.o: lmlec.c lmlec_core.c levmar.h misc.h lmbc.o: lmbc.c lmbc_core.c levmar.h misc.h compiler.h lmblec.o: lmblec.c lmblec_core.c levmar.h misc.h lmbleic.o: lmbleic.c lmbleic_core.c levmar.h misc.h lmdemo.o: levmar.h clean: @rm -f $(LIBOBJS) $(DEMOBJS) cleanall: clean @rm -f lmdemo @rm -f liblevmar.a depend: makedepend -f Makefile $(LIBSRCS) $(DEMOSRCS) # DO NOT DELETE THIS LINE -- make depend depends on it. 
+1
source share
2 answers

You need to pass -framework Accelerate to gcc. You also need #include <Accelerate/Accelerate.h> . Details here .

+4
source

For reference, here is the makefile that will work:

 # # Unix/Linux GCC Makefile for Levenberg - Marquardt minimization # Under windows, use Makefile.vc for MSVC # CC=gcc CONFIGFLAGS=#-ULINSOLVERS_RETAIN_MEMORY #ARCHFLAGS=-march=pentium4 # YOU MIGHT WANT TO UNCOMMENT THIS FOR P4 CFLAGS=$(CONFIGFLAGS) $(ARCHFLAGS) -O3 -funroll-loops -Wall #-ffast-math #-pg #LAPACKLIBS_PATH=/usr/local/lib # WHEN USING LAPACK, CHANGE THIS TO WHERE YOUR COMPILED LIBS ARE! LDFLAGS=-L. # for non-OSX, add: -L$(LAPACKLIBS) LIBOBJS=lm.o Axb.o misc.o lmlec.o lmbc.o lmblec.o lmbleic.o LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c lmblec.c lmbleic.c DEMOBJS=lmdemo.o DEMOSRCS=lmdemo.c AR=ar RANLIB=ranlib LAPACKLIBS=-framework Accelerate #This works for OSX where the SDK is installed. LIBS=$(LAPACKLIBS) all: liblevmar.a lmdemo liblevmar.a: $(LIBOBJS) $(AR) crv liblevmar.a $(LIBOBJS) $(RANLIB) liblevmar.a lmdemo: $(DEMOBJS) liblevmar.a $(CC) $(LDFLAGS) $(DEMOBJS) -o lmdemo -llevmar $(LIBS) -lm lm.o: lm.c lm_core.c levmar.h misc.h compiler.h Axb.o: Axb.c Axb_core.c levmar.h misc.h misc.o: misc.c misc_core.c levmar.h misc.h lmlec.o: lmlec.c lmlec_core.c levmar.h misc.h lmbc.o: lmbc.c lmbc_core.c levmar.h misc.h compiler.h lmblec.o: lmblec.c lmblec_core.c levmar.h misc.h lmbleic.o: lmbleic.c lmbleic_core.c levmar.h misc.h lmdemo.o: levmar.h clean: @rm -f $(LIBOBJS) $(DEMOBJS) cleanall: clean @rm -f lmdemo @rm -f liblevmar.a depend: makedepend -f Makefile $(LIBSRCS) $(DEMOSRCS) # DO NOT DELETE THIS LINE -- make depend depends on it. 
+1
source

All Articles