Переглянути джерело

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@
+