瀏覽代碼

fix linux linkage (move compiler flags to the end of compilation string)

valenok 14 年之前
父節點
當前提交
aef344f0ff
共有 1 個文件被更改,包括 13 次插入9 次删除
  1. 13 9
      Makefile

+ 13 - 9
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)
 
 
 ##########################################################################