--- Makefile.orig 2011-11-28 14:15:16.000000000 -0700 +++ Makefile 2012-01-04 14:53:06.575685168 -0700 @@ -1,7 +1,9 @@ include Makefile.conf -CFLAGS=$(CFLAGS1) -Itmp +CFLAGS=$(CFLAGS1) -Itmp -DMTXLIB=\"$(MTXLIB)\" -DMTXBIN=\"$(MTXBIN)\" -DZZZ=$(ZZZ) LFLAGS=$(LFLAGS1) +VERSION= +MAJVER=$(shell cut -d. -f1 - <<<$(VERSION)) PROGRAMS = \ cfcomp checksum chop decomp genmod mkcycl mkdotl mkgraph mkhom mkhom_old\ @@ -22,7 +24,7 @@ tmp/%.o: tmp/mk.dir src/%.c src/meataxe.h tmp/config.h @echo "Compiling $*.c" - @$(CC) $(CFLAGS) -c src/$*.c -o $@ + @$(CC) $(CFLAGS) -fPIC -c src/$*.c -o $@ tmp/mk.dir: mkdir -p tmp @@ -36,9 +38,9 @@ # Link programs # ------------------------------------------------------------------------------ -bin/%: bin/mk.dir tmp/%.o tmp/libmtx.a +bin/%: bin/mk.dir src/%.c tmp/libmtx.so @echo "Linking $@" - @$(CC) $(LFLAGS) -o $@ tmp/$*.o tmp/libmtx.a + @$(CC) $(CFLAGS) $(LFLAGS) -o $@ src/$*.c -L tmp -lmtx # ------------------------------------------------------------------------------ @@ -97,6 +99,14 @@ @rm -f $@ @ar r $@ $(LIB_OBJS:%=tmp/%.o) +tmp/libmtx.so: $(LIB_OBJS:%=tmp/%.o) + @echo "Creating $@" + @rm -f $@ + @$(CC) $(LFLAGS) -o $@.$(VERSION) -shared \ + -Wl,--soname=libmtx.so.$(MAJVER) $^ + @ln -s libmtx.so.$(VERSION) $@.$(MAJVER) + @ln -s libmtx.so.$(MAJVER) $@ + # ------------------------------------------------------------------------------ # Test suite @@ -108,11 +118,11 @@ c-os c-perm c-poly c-pseed c-quot c-random \ c-sets c-stf c-tensor -TS_OBJS=tmp/zzztest.o $(TS_OBJS1:%=tmp/%.o) tmp/libmtx.a +TS_OBJS=tmp/zzztest.o $(TS_OBJS1:%=tmp/%.o) -bin/zzztest: bin/mk.dir $(TS_OBJS) +bin/zzztest: bin/mk.dir $(TS_OBJS) tmp/libmtx.so @echo "Linking $@" - @$(CC) $(CFLAGS) -o $@ $(TS_OBJS) + @$(CC) $(CFLAGS) -o $@ $(TS_OBJS) -L tmp -lmtx bin/checksum: bin/mk.dir tmp/checksum.o @echo "Linking $@" @@ -126,12 +136,12 @@ check: tmp/zzztest.done $(TESTS:%=tmp/t-%.done) tmp/zzztest.done: tmp/mk.dir bin/zzztest - cd tmp && ../bin/zzztest + cd tmp && LD_LIBRARY_PATH=. ../bin/zzztest touch $@ tmp/t-%.done: tmp/mk.dir test/t-% tmp/t.config bin/checksum build @echo "t-$* `grep '^#:' test/t-$* | cut -c 3-100`" - @cd tmp && ../test/t-$* + @cd tmp && LD_LIBRARY_PATH=. ../test/t-$* @touch $@ tmp/t.config: tmp/mk.dir test/config