* Add -fPIC to CFLAGS because most of this code ends up in a library. * Add a soname to the library. * Use nested if instead of "else ifeq" syntax for compatibility with older versions of make. * mkdir -p the BINDIR. --- chibi-scheme-0.2/Makefile +++ chibi-scheme-0.2/Makefile @@ -24,7 +24,8 @@ EXE = CLIBFLAGS = -dynamiclib STATICFLAGS = -static-libgcc -else ifeq ($(PLATFORM),mingw) +else +ifeq ($(PLATFORM),mingw) SO = .dll EXE = .exe CLIBFLAGS = -fPIC shared @@ -34,6 +35,7 @@ CLIBFLAGS = -fPIC -shared STATICFLAGS = -static endif +endif ifdef USE_BOEHM GCLDFLAGS := -lgc @@ -44,7 +46,7 @@ endif XLDFLAGS := $(LDFLAGS) $(GCLDFLAGS) -lm -XCFLAGS := -Wall -O2 -g $(CFLAGS) +XCFLAGS := -Wall -O2 -g -fPIC $(CFLAGS) INCLUDES = include/chibi/sexp.h include/chibi/config.h include/chibi/install.h @@ -61,7 +63,7 @@ $(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $< libchibi-scheme$(SO): eval.o sexp.o - $(CC) $(CLIBFLAGS) -o $@ $^ $(XLDFLAGS) + $(CC) $(CLIBFLAGS) -o $@ $^ $(XLDFLAGS) -Wl,-soname=$@ chibi-scheme$(EXE): main.o libchibi-scheme$(SO) $(CC) $(XCPPFLAGS) $(XCFLAGS) -o $@ $< -L. -lchibi-scheme @@ -90,6 +92,7 @@ ./chibi-scheme tests/r5rs-tests.scm install: chibi-scheme + mkdir -p $(BINDIR) cp chibi-scheme $(BINDIR)/ mkdir -p $(MODDIR) cp init.scm $(MODDIR)/