From aef344f0ff5295729556b525bb3530950003b2e6 Mon Sep 17 00:00:00 2001 From: valenok Date: Wed, 1 Dec 2010 09:25:12 +0000 Subject: [PATCH] fix linux linkage (move compiler flags to the end of compilation string) --- Makefile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index faef3550..68b0e07e 100644 --- a/Makefile +++ b/Makefile @@ -27,22 +27,26 @@ MAC_SHARED= -flat_namespace -bundle -undefined suppress LINFLAGS= -ldl -pthread $(CFLAGS) LIB= _$(PROG).so +# Make sure that the compiler flags come last in the compilation string. +# If not so, this can break some on some Linux distros which use +# "-Wl,--as-needed" turned on by default in cc command. +# Also, this is turned in many other distros in static linkage builds. linux: - $(CC) $(LINFLAGS) mongoose.c -shared -fPIC -fpic -o $(LIB) - $(CC) $(LINFLAGS) mongoose.c main.c -o $(PROG) + $(CC) mongoose.c -shared -fPIC -fpic -o $(LIB) $(LINFLAGS) + $(CC) mongoose.c main.c -o $(PROG) $(LINFLAGS) bsd: - $(CC) $(CFLAGS) mongoose.c -shared -pthread -fpic -fPIC -o $(LIB) - $(CC) $(CFLAGS) mongoose.c main.c -pthread -o $(PROG) + $(CC) mongoose.c -shared -pthread -fpic -fPIC -o $(LIB) $(CFLAGS) + $(CC) mongoose.c main.c -pthread -o $(PROG) $(CFLAGS) mac: - $(CC) $(CFLAGS) $(MAC_SHARED) mongoose.c -pthread -o $(LIB) - $(CC) $(CFLAGS) mongoose.c main.c -pthread -o $(PROG) + $(CC) mongoose.c -pthread -o $(LIB) $(MAC_SHARED) $(CFLAGS) + $(CC) mongoose.c main.c -pthread -o $(PROG) $(CFLAGS) solaris: - gcc $(CFLAGS) mongoose.c -pthread -lnsl \ - -lsocket -fpic -fPIC -shared -o $(LIB) - gcc $(CFLAGS) mongoose.c main.c -pthread -lnsl -lsocket -o $(PROG) + gcc mongoose.c -pthread -lnsl \ + -lsocket -fpic -fPIC -shared -o $(LIB) $(CFLAGS) + gcc mongoose.c main.c -pthread -lnsl -lsocket -o $(PROG) $(CFLAGS) ##########################################################################