瀏覽代碼

r12611@catbus: nickm | 2007-04-30 22:49:00 -0400
For reasons which make sense to somebody, I'm sure, mingw gcc wants the libraries to appear at the end of the command line. This is done by specifying them with LDADD in Makefile.am, not LDFLAGS.
If anybody can explain to me why mingw thinks "gcc -o foo foo.o -lbar" is fine, whereas "gcc -lbar -o foo foo.o" is Doubleplusbad UnMingwThink, I'd quite appreciate it. Until then, I'll just do what seems to work, and hope we don't blunder across any other great slumbering cthonian deities of arbitrary syntax.


svn:r10082

Nick Mathewson 17 年之前
父節點
當前提交
8f94f0540f
共有 3 個文件被更改,包括 18 次插入12 次删除
  1. 3 1
      configure.in
  2. 9 6
      src/or/Makefile.am
  3. 6 5
      src/tools/Makefile.am

+ 3 - 1
configure.in

@@ -163,7 +163,9 @@ dnl ------------------------------------------------------
 dnl Where do you live, libevent?  And how do we call you?
 
 if test $bwin32 = true; then
-  TOR_LIB_WS32=-lws2_32 -lwsock32
+  TOR_LIB_WS32=-lws2_32
+  # Some of the cargo-cults recommend -lwsock32 as well, but I don't
+  # think it's actually necessary.
   TOR_LIB_GDI=-lgdi32
 else
   TOR_LIB_WS32=

+ 9 - 6
src/or/Makefile.am

@@ -13,10 +13,13 @@ tor_SOURCES = buffers.c circuitbuild.c circuitlist.c \
 	eventdns.c \
 	tor_main.c
 
-tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@ \
-        -lz -levent -lssl -lcrypto @TOR_LIB_WS32@ @TOR_LIB_GDI@
-tor_LDADD = ../common/libor.a ../common/libor-crypto.a
+# -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
+# This seems to matter nowhere but on windows, but I assure you that it
+# matters a lot there, and is quite hard to debug if you forget to do it.
 
+tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
+tor_LDADD = ../common/libor.a ../common/libor-crypto.a \
+  -lz -levent -lssl -lcrypto @TOR_LIB_WS32@ @TOR_LIB_GDI@
 test_SOURCES = buffers.c circuitbuild.c circuitlist.c \
 	circuituse.c command.c config.c \
 	connection.c connection_edge.c connection_or.c control.c \
@@ -27,9 +30,9 @@ test_SOURCES = buffers.c circuitbuild.c circuitlist.c \
 	test.c
 
 test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
-        @TOR_LDFLAGS_libevent@ -lz -levent -lssl -lcrypto \
-        @TOR_LIB_WS32@ @TOR_LIB_GDI@
-test_LDADD = ../common/libor.a ../common/libor-crypto.a
+        @TOR_LDFLAGS_libevent@
+test_LDADD = ../common/libor.a ../common/libor-crypto.a \
+        -lz -levent -lssl -lcrypto @TOR_LIB_WS32@ @TOR_LIB_GDI@
 
 noinst_HEADERS = or.h eventdns.h eventdns_tor.h micro-revision.i
 

+ 6 - 5
src/tools/Makefile.am

@@ -1,11 +1,12 @@
 bin_PROGRAMS = tor-resolve tor-gencert
 
 tor_resolve_SOURCES = tor-resolve.c
-tor_resolve_LDFLAGS = @TOR_LDFLAGS_libevent@ -levent @TOR_LIB_WS32@
-tor_resolve_LDADD = ../common/libor.a
+tor_resolve_LDFLAGS = @TOR_LDFLAGS_libevent@
+tor_resolve_LDADD = ../common/libor.a -levent @TOR_LIB_WS32@
 
 tor_gencert_SOURCES = tor-gencert.c
 tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
-        @TOR_LDFLAGS_libevent@ -lz -lcrypto -levent \
-        @TOR_LIB_WS32@ @TOR_LIB_GDI@
-tor_gencert_LDADD = ../common/libor.a ../common/libor-crypto.a
+        @TOR_LDFLAGS_libevent@
+tor_gencert_LDADD = ../common/libor.a ../common/libor-crypto.a \
+        -lz -lcrypto -levent @TOR_LIB_WS32@ @TOR_LIB_GDI@
+